1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect3 id="zend.view.helpers.initial.headmeta">
4 <title>Помощник HeadMeta</title>
7 Элемент <code><meta></code> используется для добавления
8 мета-информации о вашем HTML-документе, обычно это ключевые слова,
9 кодировка документа, директивы управления кэшированием и т.д.
10 Метатег может быть одного из следующих типов: 'http-equiv' или 'name',
11 должен содержать атрибут 'content', также он может иметь атрибуты
16 Помощник <code>HeadMeta</code> поддерживает следующие методы для
17 установки и добавления метатегов:
21 <listitem><para><code>appendName($keyValue, $content,
22 $conditionalName)</code></para></listitem>
23 <listitem><para><code>offsetSetName($index, $keyValue, $content,
24 $conditionalName)</code></para></listitem>
25 <listitem><para><code>prependName($keyValue, $content,
26 $conditionalName)</code></para></listitem>
27 <listitem><para><code>setName($keyValue, $content,
28 $modifiers)</code></para></listitem>
29 <listitem><para><code>appendHttpEquiv($keyValue, $content,
30 $conditionalHttpEquiv)</code></para></listitem>
31 <listitem><para><code>offsetSetHttpEquiv($index, $keyValue, $content,
32 $conditionalHttpEquiv)</code></para></listitem>
33 <listitem><para><code>prependHttpEquiv($keyValue, $content,
34 $conditionalHttpEquiv)</code></para></listitem>
35 <listitem><para><code>setHttpEquiv($keyValue, $content,
36 $modifiers)</code></para></listitem>
40 Параметр <varname>$keyValue</varname> используется для установки значения
41 атрибута 'name' или 'http-equiv'; <varname>$content</varname> является
42 значением атрибута 'content', а <varname>$modifiers</varname> - необязательный
43 параметр, который может быть ассоциативным массивом с ключами 'lang'
48 Вы можете также устанавливать метатеги, используя метод
49 <code>headMeta()</code>, который имеет следующую сигнатуру:
50 <code>headMeta($content,
51 $keyValue, $keyType = 'name', $modifiers = array(), $placement =
52 'APPEND')</code>. Через <varname>$keyValue</varname> передается содержимое
53 ключа, указанного в <varname>$keyType</varname> (ключом может быть 'name' или
54 'http-equiv'). <varname>$placement</varname> может иметь одно из следующих
55 значений: 'SET' (замена всех ранее сохраненных значений), 'APPEND'
56 (добавление в конец стека) или 'PREPEND' (добавление в начало стека).
60 <code>HeadMeta</code> перегружает методы <code>append()</code>,
61 <code>offsetSet()</code>, <code>prepend()</code> и <code>set()</code>
62 с целью принудительного использования специальных методов, перечисленных
63 выше. Внутри себя помощник сохраняет каждый элемент в виде маркера
64 <code>stdClass</code>, который затем преобразовывается в строку через
65 метод <code>itemToString()</code>. Это позволяет производить проверку
66 элементов в стеке и при необходимости модифицировать их, просто
67 извлекая объект и изменяя его.
71 Помощник <code>HeadMeta</code> является частной реализацией
72 <link linkend="zend.view.helpers.initial.placeholder">помощника
76 <example id="zend.view.helpers.initial.headmeta.basicusage">
77 <title>Использование помощника HeadMeta</title>
80 Вы можете указывать новые метатеги в любой момент времени. Обычно
81 это правила кэширования для клиентской стороны и ключевые слова для
82 поисковой оптимизации.
86 Например, если вы хотите указать ключевые слова для поисковой
87 оптимизации, то вам нужно создать метатег с именем 'keywords'
88 и ключевыми словами для вашей страницы:
91 <programlisting language="php"><![CDATA[
92 // установка мета-ключевых слов
93 $this->headMeta()->appendName('keywords', 'framework php productivity');
97 Если требуется установить правила кэширования для
98 клиентской стороны, то вы можете установить теги http-equiv
99 с требуемыми правилами кэширования:
102 <programlisting language="php"><![CDATA[
103 // отключает кэширование на клиентской стороне
104 $this->headMeta()->appendHttpEquiv('expires',
105 'Wed, 26 Feb 1997 08:21:57 GMT')
106 ->appendHttpEquiv('pragma', 'no-cache')
107 ->appendHttpEquiv('Cache-Control', 'no-cache');
111 Другие распространенные случаи использования - установка типа
112 содержимого, кодировки и языка документа:
115 <programlisting language="php"><![CDATA[
116 // установка типа содержимого и кодировки
117 $this->headMeta()->appendHttpEquiv('Content-Type',
118 'text/html; charset=UTF-8')
119 ->appendHttpEquiv('Content-Language', 'en-US');
123 И последний пример - мета-обновление как простой способ отображения
124 промежуточного сообщения до перенаправления:
127 <programlisting language="php"><![CDATA[
128 // установка мета-обновления через 3 секунды с новым URL:
129 $this->headMeta()->appendHttpEquiv('Refresh',
130 '3;URL=http://www.some.org/some.html');
134 Когда все будет готово для помещения тегов в макет, просто
135 "выводите" помощника:
138 <programlisting language="php"><![CDATA[
139 <?php echo $this->headMeta() ?>