多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > ZendFramework > Zend Framework教程-Zend_Helpers-視圖助手-常見的視圖助手-Doctype、HeadLink、HeadMeta、He

Zend Framework教程-Zend_Helpers-視圖助手-常見的視圖助手-Doctype、HeadLink、HeadMeta、He

來源:程序員人生   發布時間:2013-12-02 10:07:43 閱讀次數:3844次
以下是官方提供的文檔說明,并帶有例子說明。已經很詳細。這里不再詳細解釋。

文檔類型助手(Doctype Helper)

有效的HTML和XHTML文檔應當包括一個 DOCTYPE 聲明。但是文檔類型聲明很難記憶,而且會影響到文檔中的特定元素的解析(例如,在 <script> 和 <style> 元素中轉義的CDATA)。

Doctype 助手允許指定下列類型之一:

  • XHTML11

  • XHTML1_STRICT

  • XHTML1_TRANSITIONAL

  • XHTML1_FRAMESET

  • XHTML_BASIC1

  • HTML4_STRICT

  • HTML4_LOOSE

  • HTML4_FRAMESET

你也可以指定一個自己定制的帶有良好結構的文檔類型。

Doctype助手是 占位符助手 的一個具體的實現。

Example #8 Doctype 助手的基本用法

在任何時候都可以指定 doctype。然而,依賴 doctype 輸出的助手只在你設置后才認識它,所以最簡單的用法是在 bootstrap 腳本中指定:

$doctypeHelper = new Zend_View_Helper_Doctype();$doctypeHelper->doctype('XHTML1_STRICT');

然后在布局腳本中輸出:

<?php echo $this->doctype() ?>

Example #9 獲取 Doctype

如果需要知道文檔類型,可以在由調用助手返回的對象中調用getDoctype()。

<?php$doctype = $view->doctype()->getDoctype();?>

很常見地,你需要知道doctype是否XHTML;那么,isXhtml()方法已經足夠:

<?phpif ($view->doctype()->isXhtml()) {    // do something differently}?>

HeadMeta 助手

HTML <meta>元素用來提供關于HTML文檔的 meta 信息-如關鍵字,文檔字符集,緩沖的 pragama 等。Meta標簽可以是'http-equiv' 或 'name' 類型,必須包含'content'屬性,并且也可以有 'lang' 或 'scheme' 修飾屬性。

HeadMeta 助手提供下列方法來設置和添加 meta 標簽:

  • appendName($keyValue, $content, $conditionalName)

  • offsetSetName($index, $keyValue, $content, $conditionalName)

  • prependName($keyValue, $content, $conditionalName)

  • setName($keyValue, $content, $modifiers)

  • appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)

  • offsetSetHttpEquiv($index, $keyValue, $content, $conditionalHttpEquiv)

  • prependHttpEquiv($keyValue, $content, $conditionalHttpEquiv)

  • setHttpEquiv($keyValue, $content, $modifiers)

$keyValue 參數用來定義'name'的值或'http-equive'鍵;$content 是'content' 鍵的值,$modifiers 是可選的包含'lang' 和/或 'scheme'鍵的聯合數組。

也可以用 headMeta() 助手方法來設置 meta 標簽:headMeta($content, $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND')。$keyValue 是指定在 $keyType 里的鍵的內容,$keyType 應該是'name' 或 'http-equiv'。$placement 可以是 'SET' (覆蓋所有先前存儲的值), 'APPEND' (添加到棧尾)或 'PREPEND'(添加到棧頂)。

HeadMeta 覆蓋每個 append()、offsetSet()、 prepend() 和 set() 來加強上面列出的特殊方法的用法。在內部,它存儲每個條目為 stdClass 令牌,它稍后用 itemToString() 方法來序列化。這允許在堆棧的條目中執行檢查,并可選地通過修改對象返回來修改這些條目。

HeadMeta助手是 占位符助手 的一個具體實現。

Example #11 HeadMeta 助手基本用法

你可以在任何時候指定一個新的meta標簽。例如指定客戶端緩沖規則或SEO關鍵字。

例如,如果想指定SEO關鍵字,要創建帶有名為'keywords'和內容(在頁面上和關鍵字有關聯的)的meta名稱標簽:

<?php // setting meta keywords$this->headMeta()->appendName('keywords', 'framework php productivity');?>

如果想設置一些客戶端緩沖規則,最好設置帶有想執行的規則的 http-equiv 標簽:

<?php // 禁止客戶端緩存$this->headMeta()->appendHttpEquiv('expires', 'Wed, 26 Feb 1997 08:21:57 GMT')                 ->appendHttpEquiv('pragma', 'no-cache')                 ->appendHttpEquiv('Cache-Control', 'no-cache');?>

meta標簽的另一個流行用法是設置內容類型,字符集和語言:

<?php // setting content type and character set$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')                 ->appendHttpEquiv('Content-Language', 'en-US');?>

最后一個例子,可以使用"meta refresh" 來讓頁面轉向,一個簡單的辦法來顯示過渡消息:

<?php // 設置以下meta可使頁面3秒鐘后轉向一個新的url$this->headMeta()->appendHttpEquiv('Refresh', '3;URL=http://www.some.org/some.html');?>

在布局腳本(layout)中放置所有meta標簽后,簡單地echo助手,把所有內容輸出:

<?= $this->headMeta() ?>

HeadScript 助手

HTML <script> 元素用來提供內嵌的客戶端腳本元素或鏈接到遠程包含客戶端腳本代碼的資源。你可以用HeadScript 助手來管理它們。

HeadScript 助手支持下列方法來設置和添加腳本:

  • appendFile($src, $type = 'text/javascript', $attrs = array())

  • offsetSetFile($index, $src, $type = 'text/javascript', $attrs = array())

  • prependFile($src, $type = 'text/javascript', $attrs = array())

  • setFile($src, $type = 'text/javascript', $attrs = array())

  • appendScript($script, $type = 'text/javascript', $attrs = array())

  • offsetSetScript($index, $script, $type = 'text/javascript', $attrs = array())

  • prependScript($script, $type = 'text/javascript', $attrs = array())

  • setScript($script, $type = 'text/javascript', $attrs = array())

對于所有*File()方法,$src 是要加載的腳本的遠程位置,常常以 URL 或路徑的形式表示。 對于所有*Script()方法,$script是客戶端你想用于元素中的腳本。

HeadScript也允許抓取腳本,然后放到其它地方,如果你想通過程序生成客戶端腳本,這將很有用。下面的例子里有它的用法。

最后,你也可以用 headScript()方法 來快速地添加腳本元素,它的用法是: headScript($mode = 'FILE', $spec, $placement = 'APPEND')。$mode 是指鏈接一個文件還是一個腳本,可以是'FILE' 或 'SCRIPT' ,$spec 是鏈接的腳本文件或腳本代碼。$placement必須為'APPEND', 'PREPEND', 或'SET'其中之一.

HeadScript 覆蓋 append(), offsetSet(),prepend() 和 set() 中的每一個來加強上述特殊方法的用法。在內部,它存儲每個條目為 stdClass 令牌,它在稍后用itemToString() 方法 serializes 。這允許在堆棧里檢查條目,并可選地通過修改返回的對象來修改這些條目。

The HeadScript 助手是 占位符助手 的一個具體實現。

Note在HTML Body中使用 InlineScript 
當包含腳本內嵌在 HTML body里時,應當使用HeadScript 的兄弟助手,InlineScript。為了加速頁面的加載,提高用戶訪問速度,特別是當使用第三方分析腳本(比如Google Analytics等流量統計系統的javascript文件 --Haohappy注),把腳本放在文檔的最后是一個好的習慣。 

Note任意的屬性缺省關閉 (Disabled)
缺省地,HeadScript 將只解析(render)由 W3C 賦予的 <script> 屬性,包括 'type'、 'charset'、 'defer'、 'language' 和 'src' 。 然而,一些 javascript 框架,如? Dojo,利用定制的屬性來修改行為。為了允許這樣的屬性,可以通過 setAllowArbitraryAttributes() 方法來打開(enable)它們: 

<?php$this->headScript()->setAllowArbitraryAttributes(true);?>


Example #12 HeadScript 助手基本用法

在任何時候可以指定一個新的腳本。如上所述,可以鏈接到外部資源文件或腳本自己。

<?php // adding scripts$this->headScript()->appendFile('/js/prototype.js')                   ->appendScript($onloadScript);?>

在客戶端腳本編程中,順序常常很重要,因為依賴的緣故,需要確保按特定的順序來加載庫,使用 append、 prepend 和 offsetSet 指令來幫助完成任務:

<?php // 按順序放置腳本文件//設置偏移量來確保這個文件最后加載$this->headScript()->offsetSetScript(100, '/js/myfuncs.js');//使用scriptaculous效果文件,這時append動作使用索引101,接上行代碼的索引$this->headScript()->appendScript('/js/scriptaculous.js');//但總是保證prototype文件首先加載$this->headScript()->prependScript('/js/prototype.js');?>

當準備好輸出所有腳本到布局腳本,簡單地 echo 這個助手:

<?= $this->headScript() ?>

Example #13 Capturing Scripts Using the HeadScript Helper

有時候,需要“編程式”地生成客戶端腳本。你可以使用字符串串聯、heredoc或類似的技術(字符串串聯即$string1.$string2這種形式,heredoc即使用<<<操作符--Haohappy注),通常通過創建腳本和在PHP標簽里做手腳會更容易些。HeadScript 可以實現這個功能,把一段JavaScript代碼抓取到堆棧中暫存(道理同緩沖輸出--Haohappy注):

<?php $this->headScript()->captureStart() ?>var action = '<?= $this->baseUrl ?>';$('foo_form').action = action;<?php $this->headScript()->captureEnd() ?>

下面是上例中的一些假設:

  • 腳本將追加到堆棧。如果需要替換或者追加到堆棧頂部,那么需要分別把 'SET' 或 'PREPEND' 作為第一個參數傳遞給 captureStart() 。

  • 腳本 MIME 類型假定為 'text/javascript',如果想指定一個不同的類型,需要把它作為第二個參數傳遞給 captureStart() 。

  • 如果需要為 <script> 標簽指定附加屬性, 把它們放入數組作為第三個參數傳遞給 captureStart() 。

HeadStyle 助手

在 HTML <head> 元素中 HTML <style> 元素用來包含 CSS stylesheets inline 。

Note使用 HeadLink 來鏈接 CSS 文件 
HeadLink 為包含外部 stylesheets 應該用來生成 <link> 元素。如果想定義自己的 stylesheets inline, 使用 HeadScript 。 

HeadStyle 助手支持下列方法來設置和添加 stylesheet 聲明:

  • appendStyle($content, $attributes = array())

  • offsetSetStyle($index, $content, $attributes = array())

  • prependStyle($content, $attributes = array())

  • setStyle($content, $attributes = array())

對于所有情況,$content 是實際上的 CSS 聲明。$attributes 是提供給 style 標簽的任何額外的屬性:lang、 title、 media 或 dir 都是允許的。

HeadStyle 也允許抓取樣式聲明,如果想用程序生成聲明,然后在任何地方自由使用,這很有用。這個用法將在下面的例子給出。

最后,你也可以用 headStyle()方法 來快速地添加聲明元素,它的用法: headStyle($content$placement = 'APPEND', $attributes = array()) 。$placement 是 'APPEND'、 'PREPEND' 或 'SET'。

HeadStyle 覆蓋 append(), offsetSet(),prepend() 和 set() 中的每一個來加強上述特殊方法的用法。 在內部,它存儲每個條目為 stdClass 令牌,它在稍后用itemToString() 方法 serializes 。這允許在堆棧里檢查條目,并可選地通過修改返回的對象來修改這些條目。

HeadStyle 助手是 占位符助手 的一個具體實現。

Example #14 HeadStyle 助手的基本用法

在任何時候都可以指定一個新的樣式標簽:

<?php // adding styles$this->headStyle()->appendStyle($styles);?>

對 CSS 來說,順序非常重要,因為層疊的順序(the order of the cascade),你需要確保樣式表中的聲明按特定的順序加載。使用append、 prepend 和 offsetSet 指令可幫助你達到目的:

<?php // Putting styles in order// place at a particular offset:$this->headStyle()->offsetSetStyle(100, $customStyles);// place at end:$this->headStyle()->appendStyle($finalStyles);// place at beginning$this->headStyle()->prependStyle($firstStyles);?>

當準備好在布局腳本里輸出所有樣式聲明,簡單地 echo 助手:

<?= $this->headStyle() ?>

Example #15 用 HeadStyle 助手抓取樣式聲明

有時候需要用程序生成 CSS 樣式聲明。當你可以使用字符串串聯,heredoc等等, 通常通過創建腳本和在PHP標簽里做手腳會更容易些。HeadStyle 可以做這個,把它抓取到堆棧:

<?php $this->headStyle()->captureStart() ?>body {    background-color: <?= $this->bgColor ?>;}<?php $this->headStyle()->captureEnd() ?>


下面是一些假設:

  • 樣式聲明將追加到堆棧。如果需要替換或者加到堆棧頂部,那么需要分別把 'SET' 或 'PREPEND' 作為第一個參數傳遞給 captureStart() 。

  • 如果想指定任何另外的屬性給 <style> 標簽,通過數組把它們作為第二個參數傳遞給 captureStart() 。

HeadTitle 助手

HTML <title> 元素用來提供標題給HTML文檔。HeadTitle 助手允許用程序生成和存儲標題供以后解析和輸出。

HeadTitle 助手是 占位符助手 的一個具體實現。 它覆蓋 toString() 方法來確保生成 <title> 元素,并添加一個 headTitle() 方法來快速并容易地設置和標題元素的聚合。那個方法的 signature 是 headTitle($title, $setType = 'APPEND'),缺省地是追加到堆棧(聚合標題元素)的值,但你也可以指定 'PREPEND' ( 放棧頂 ) 或 'SET' ( 重寫堆棧 )。

Example #16 HeadTitle 助手基本用法

你可以在任何時候指定一個標題標簽。一般的用法可以讓你在應用程序的每一個層次來設置標題段:站點、控制器、動作和潛在的資源。

<?php// setting the controller and action name as title segments://把控制器和動作的名稱設置為標題的一部分$request = Zend_Controller_Front::getInstance()->getRequest();$this->headTitle($request->getActionName())     ->headTitle($request->getControllerName());// setting the site in the title; possibly in the layout script://添加標題內容,這種寫法常用于布局腳本中$this->headTitle('Zend Framework');// setting a separator string for segments://為標題的各部分設置分隔符$this->headTitle()->setSeparator(' / ');?>

在布局腳本中準備好標題后,使用echo即可輸出:

<!-- renders <action> / <controller> / Zend Framework --><?= $this->headTitle() ?>


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲天堂美女 | 日韩拍拍拍 | 国产精品久久久久久福利漫画 | 精品国产一区二区三区在线观看 | h视频免费在线 | 欧美巨大另类极品video | 日韩 欧美 综合 | 中国美女牲交一级毛片 | www日本视频 | 日本午夜片成年www 日本午夜三级 | 免费91最新地址永久入口 | 看片在线麻豆免费 | 欧美日韩精品一区二区在线线 | 亚洲欧美中文日韩综合 | 欧美三级超在线视频 | 久久久国产成人精品 | 欧美成人免费全部色播 | 亚洲成网777777国产精品 | 亚洲视频二 | 国产精品久久久久久网站 | 一级特黄aa大片一又好看 | 午夜影院啪啪 | 久久福利一区二区三区 | 国产精品免费aⅴ片在线观看 | 久久艹免费视频 | 好吊日在线观看 | 中文字幕 亚洲 一区二区三区 | 国产在线播放不卡 | 日韩老女人 | 中文字幕乱码无线码在线 | 亚洲永久精品免费www52zcm男男 | 毛片网站大全 | h在线免费视频 | 动漫精品在线 | 最近中文免费字幕6 | 亚洲精品久久久久中文字幕一区 | 欧美高清videos36op | 中文字幕视频免费在线观看 | 俺去啦最新官网 | 国产精品日韩欧美久久综合 | 男女啪啦猛视频免费 |