Zend_View-Helpers-HeadMeta.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <sect3 id="zend.view.helpers.initial.headmeta">
  2. <title>HeadMeta 助手</title>
  3. <para>
  4. HTML <code>&lt;meta&gt;</code>元素用来提供关于HTML文档的 meta 信息-如关键字,文档字符集,缓冲的 pragama 等。Meta标签可以是'http-equiv' 或 'name' 类型,必须包含'content'属性,并且也可以有 'lang' 或 'scheme' 修饰属性。
  5. </para>
  6. <para>
  7. <code>HeadMeta</code> 助手提供下列方法来设置和添加 meta 标签:
  8. </para>
  9. <itemizedlist>
  10. <listitem><para><code>appendName($keyValue, $content,
  11. $conditionalName)</code></para></listitem>
  12. <listitem><para><code>offsetSetName($index, $keyValue, $content,
  13. $conditionalName)</code></para></listitem>
  14. <listitem><para><code>prependName($keyValue, $content,
  15. $conditionalName)</code></para></listitem>
  16. <listitem><para><code>setName($keyValue, $content,
  17. $modifiers)</code></para></listitem>
  18. <listitem><para><code>appendHttpEquiv($keyValue, $content,
  19. $conditionalHttpEquiv)</code></para></listitem>
  20. <listitem><para><code>offsetSetHttpEquiv($index, $keyValue, $content,
  21. $conditionalHttpEquiv)</code></para></listitem>
  22. <listitem><para><code>prependHttpEquiv($keyValue, $content,
  23. $conditionalHttpEquiv)</code></para></listitem>
  24. <listitem><para><code>setHttpEquiv($keyValue, $content,
  25. $modifiers)</code></para></listitem>
  26. </itemizedlist>
  27. <para>
  28. <code>$keyValue</code> 参数用来定义'name'的值或'http-equive'键;<code>$content</code> 是'content' 键的值,<code>$modifiers</code> 是可选的包含'lang' 和/或 'scheme'键的联合数组。
  29. </para>
  30. <para>
  31. 也可以用 <code>headMeta()</code> 助手方法来设置 meta 标签:<code>headMeta($content, $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND')</code>。<code>$keyValue</code> 是指定在 <code>$keyType</code> 里的键的内容,<code>$keyType</code> 应该是'name' 或 'http-equiv'。<code>$placement</code> 可以是 'SET' (覆盖所有先前存储的值), 'APPEND' (添加到栈尾)或 'PREPEND'(添加到栈顶)。
  32. </para>
  33. <para>
  34. <code>HeadMeta</code> 覆盖每个 <code>append()</code>、<code>offsetSet()</code>、 <code>prepend()</code> 和 <code>set()</code> 来加强上面列出的特殊方法的用法。在内部,它存储每个条目为 <code>stdClass</code> 令牌,它稍后用 <code>itemToString()</code> 方法来序列化。这允许在堆栈的条目中执行检查,并可选地通过修改对象返回来修改这些条目。
  35. </para>
  36. <para>
  37. <code>HeadMeta</code>助手是 <link linkend="zend.view.helpers.initial.placeholder"> 占位符助手 </link> 的一个具体实现。
  38. </para>
  39. <example id="zend.view.helpers.initial.headmeta.basicusage">
  40. <title>HeadMeta 助手基本用法</title>
  41. <para>
  42. 你可以在任何时候指定一个新的meta标签。例如指定客户端缓冲规则或SEO关键字。
  43. </para>
  44. <para>
  45. 例如,如果想指定SEO关键字,要创建带有名为'keywords'和内容(在页面上和关键字有关联的)的meta名称标签:
  46. </para>
  47. <programlisting role="php"><![CDATA[
  48. <?php // setting meta keywords
  49. $this->headMeta()->appendName('keywords', 'framework php productivity');
  50. ?>
  51. ]]></programlisting>
  52. <para>
  53. 如果想设置一些客户端缓冲规则,最好设置带有想执行的规则的 http-equiv 标签:
  54. </para>
  55. <programlisting role="php"><![CDATA[
  56. <?php // 禁止客户端缓存
  57. $this->headMeta()->appendHttpEquiv('expires', 'Wed, 26 Feb 1997 08:21:57 GMT')
  58. ->appendHttpEquiv('pragma', 'no-cache')
  59. ->appendHttpEquiv('Cache-Control', 'no-cache');
  60. ?>
  61. ]]></programlisting>
  62. <para>
  63. meta标签的另一个流行用法是设置内容类型,字符集和语言:
  64. </para>
  65. <programlisting role="php"><![CDATA[
  66. <?php // setting content type and character set
  67. $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')
  68. ->appendHttpEquiv('Content-Language', 'en-US');
  69. ?>
  70. ]]></programlisting>
  71. <para>
  72. 最后一个例子,可以使用"meta refresh" 来让页面转向,一个简单的办法来显示过渡消息:
  73. </para>
  74. <programlisting role="php"><![CDATA[
  75. <?php // 设置以下meta可使页面3秒钟后转向一个新的url
  76. $this->headMeta()->appendHttpEquiv('Refresh', '3;URL=http://www.some.org/some.html');
  77. ?>
  78. ]]></programlisting>
  79. <para>
  80. 在布局脚本(layout)中放置所有meta标签后,简单地echo助手,把所有内容输出:
  81. </para>
  82. <programlisting role="php"><![CDATA[
  83. <?= $this->headMeta() ?>
  84. ]]></programlisting>
  85. </example>
  86. </sect3>
  87. <!--
  88. vim:se ts=4 sw=4 et:
  89. -->