Zend_View-Helpers-HeadMeta.xml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect3 id="zend.view.helpers.initial.headmeta">
  4. <title>Помощник HeadMeta</title>
  5. <para>
  6. Элемент <code>&lt;meta&gt;</code> используется для добавления
  7. мета-информации о вашем HTML-документе, обычно это ключевые слова,
  8. кодировка документа, директивы управления кэшированием и т.д.
  9. Метатег может быть одного из следующих типов: 'http-equiv' или 'name',
  10. должен содержать атрибут 'content', также он может иметь атрибуты
  11. 'lang' и 'scheme'.
  12. </para>
  13. <para>
  14. Помощник <code>HeadMeta</code> поддерживает следующие методы для
  15. установки и добавления метатегов:
  16. </para>
  17. <itemizedlist>
  18. <listitem><para><code>appendName($keyValue, $content,
  19. $conditionalName)</code></para></listitem>
  20. <listitem><para><code>offsetSetName($index, $keyValue, $content,
  21. $conditionalName)</code></para></listitem>
  22. <listitem><para><code>prependName($keyValue, $content,
  23. $conditionalName)</code></para></listitem>
  24. <listitem><para><code>setName($keyValue, $content,
  25. $modifiers)</code></para></listitem>
  26. <listitem><para><code>appendHttpEquiv($keyValue, $content,
  27. $conditionalHttpEquiv)</code></para></listitem>
  28. <listitem><para><code>offsetSetHttpEquiv($index, $keyValue, $content,
  29. $conditionalHttpEquiv)</code></para></listitem>
  30. <listitem><para><code>prependHttpEquiv($keyValue, $content,
  31. $conditionalHttpEquiv)</code></para></listitem>
  32. <listitem><para><code>setHttpEquiv($keyValue, $content,
  33. $modifiers)</code></para></listitem>
  34. </itemizedlist>
  35. <para>
  36. Параметр <varname>$keyValue</varname> используется для установки значения
  37. атрибута 'name' или 'http-equiv'; <varname>$content</varname> является
  38. значением атрибута 'content', а <varname>$modifiers</varname> - необязательный
  39. параметр, который может быть ассоциативным массивом с ключами 'lang'
  40. и/или 'scheme'.
  41. </para>
  42. <para>
  43. Вы можете также устанавливать метатеги, используя метод
  44. <code>headMeta()</code>, который имеет следующую сигнатуру:
  45. <code>headMeta($content,
  46. $keyValue, $keyType = 'name', $modifiers = array(), $placement =
  47. 'APPEND')</code>. Через <varname>$keyValue</varname> передается содержимое
  48. ключа, указанного в <varname>$keyType</varname> (ключом может быть 'name' или
  49. 'http-equiv'). <varname>$placement</varname> может иметь одно из следующих
  50. значений: 'SET' (замена всех ранее сохраненных значений), 'APPEND'
  51. (добавление в конец стека) или 'PREPEND' (добавление в начало стека).
  52. </para>
  53. <para>
  54. <code>HeadMeta</code> перегружает методы <code>append()</code>,
  55. <code>offsetSet()</code>, <code>prepend()</code> и <code>set()</code>
  56. с целью принудительного использования специальных методов, перечисленных
  57. выше. Внутри себя помощник сохраняет каждый элемент в виде маркера
  58. <code>stdClass</code>, который затем преобразовывается в строку через
  59. метод <code>itemToString()</code>. Это позволяет производить проверку
  60. элементов в стеке и при необходимости модифицировать их, просто
  61. извлекая объект и изменяя его.
  62. </para>
  63. <para>
  64. Помощник <code>HeadMeta</code> является частной реализацией
  65. <link linkend="zend.view.helpers.initial.placeholder">помощника
  66. Placeholder</link>.
  67. </para>
  68. <example id="zend.view.helpers.initial.headmeta.basicusage">
  69. <title>Использование помощника HeadMeta</title>
  70. <para>
  71. Вы можете указывать новые метатеги в любой момент времени. Обычно
  72. это правила кэширования для клиентской стороны и ключевые слова для
  73. поисковой оптимизации.
  74. </para>
  75. <para>
  76. Например, если вы хотите указать ключевые слова для поисковой
  77. оптимизации, то вам нужно создать метатег с именем 'keywords'
  78. и ключевыми словами для вашей страницы:
  79. </para>
  80. <programlisting language="php"><![CDATA[
  81. // установка мета-ключевых слов
  82. $this->headMeta()->appendName('keywords', 'framework php productivity');
  83. ]]></programlisting>
  84. <para>
  85. Если требуется установить правила кэширования для
  86. клиентской стороны, то вы можете установить теги http-equiv
  87. с требуемыми правилами кэширования:
  88. </para>
  89. <programlisting language="php"><![CDATA[
  90. // отключает кэширование на клиентской стороне
  91. $this->headMeta()->appendHttpEquiv('expires',
  92. 'Wed, 26 Feb 1997 08:21:57 GMT')
  93. ->appendHttpEquiv('pragma', 'no-cache')
  94. ->appendHttpEquiv('Cache-Control', 'no-cache');
  95. ]]></programlisting>
  96. <para>
  97. Другие распространенные случаи использования - установка типа
  98. содержимого, кодировки и языка документа:
  99. </para>
  100. <programlisting language="php"><![CDATA[
  101. // установка типа содержимого и кодировки
  102. $this->headMeta()->appendHttpEquiv('Content-Type',
  103. 'text/html; charset=UTF-8')
  104. ->appendHttpEquiv('Content-Language', 'en-US');
  105. ]]></programlisting>
  106. <para>
  107. И последний пример - мета-обновление как простой способ отображения
  108. промежуточного сообщения до перенаправления:
  109. </para>
  110. <programlisting language="php"><![CDATA[
  111. // установка мета-обновления через 3 секунды с новым URL:
  112. $this->headMeta()->appendHttpEquiv('Refresh',
  113. '3;URL=http://www.some.org/some.html');
  114. ]]></programlisting>
  115. <para>
  116. Когда все будет готово для помещения тегов в макет, просто
  117. "выводите" помощника:
  118. </para>
  119. <programlisting language="php"><![CDATA[
  120. <?php echo $this->headMeta() ?>
  121. ]]></programlisting>
  122. </example>
  123. </sect3>
  124. <!--
  125. vim:se ts=4 sw=4 et:
  126. -->