[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ru / module_specs / Zend_View-Helpers-HeadMeta.xml
blobc6c8bf8a80a1b8d189cf9b0eade25877d4d1d3c4
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect3 id="zend.view.helpers.initial.headmeta">
4     <title>Помощник HeadMeta</title>
6     <para>
7         Элемент <code>&lt;meta&gt;</code> используется для добавления
8         мета-информации о вашем HTML-документе, обычно это ключевые слова,
9         кодировка документа, директивы управления кэшированием и т.д.
10         Метатег может быть одного из следующих типов: 'http-equiv' или 'name',
11         должен содержать атрибут 'content', также он может иметь атрибуты
12         'lang' и 'scheme'.
13     </para>
15     <para>
16         Помощник <code>HeadMeta</code> поддерживает следующие методы для
17         установки и добавления метатегов:
18     </para>
20     <itemizedlist>
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>
37     </itemizedlist>
39     <para>
40         Параметр <varname>$keyValue</varname> используется для установки значения
41         атрибута 'name' или 'http-equiv'; <varname>$content</varname> является
42         значением атрибута 'content', а <varname>$modifiers</varname> - необязательный
43         параметр, который может быть ассоциативным массивом с ключами 'lang'
44         и/или 'scheme'.
45     </para>
47     <para>
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' (добавление в начало стека).
57     </para>
59     <para>
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         извлекая объект и изменяя его.
68     </para>
70     <para>
71         Помощник <code>HeadMeta</code> является частной реализацией 
72         <link linkend="zend.view.helpers.initial.placeholder">помощника
73             Placeholder</link>.
74     </para>
76     <example id="zend.view.helpers.initial.headmeta.basicusage">
77         <title>Использование помощника HeadMeta</title>
79         <para>
80             Вы можете указывать новые метатеги в любой момент времени. Обычно
81             это правила кэширования для клиентской стороны и ключевые слова для
82             поисковой оптимизации.
83         </para>
85         <para>
86             Например, если вы хотите указать ключевые слова для поисковой
87             оптимизации, то вам нужно создать метатег с именем 'keywords'
88             и ключевыми словами для вашей страницы:
89         </para>
91         <programlisting language="php"><![CDATA[
92 // установка мета-ключевых слов
93 $this->headMeta()->appendName('keywords', 'framework php productivity');
94 ]]></programlisting>
96         <para>
97             Если требуется установить правила кэширования для
98             клиентской стороны, то вы можете установить теги http-equiv
99             с требуемыми правилами кэширования:
100         </para>
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');
108 ]]></programlisting>
110         <para>
111             Другие распространенные случаи использования - установка типа
112             содержимого, кодировки и языка документа:
113         </para>
115         <programlisting language="php"><![CDATA[
116 // установка типа содержимого и кодировки
117 $this->headMeta()->appendHttpEquiv('Content-Type',
118                                    'text/html; charset=UTF-8')
119                  ->appendHttpEquiv('Content-Language', 'en-US');
120 ]]></programlisting>
122         <para>
123             И последний пример - мета-обновление как простой способ отображения
124             промежуточного сообщения до перенаправления:
125         </para>
127         <programlisting language="php"><![CDATA[
128 // установка мета-обновления через 3 секунды с новым URL:
129 $this->headMeta()->appendHttpEquiv('Refresh',
130                                    '3;URL=http://www.some.org/some.html');
131 ]]></programlisting>
133         <para>
134             Когда все будет готово для помещения тегов в макет, просто
135             "выводите" помощника:
136         </para>
138         <programlisting language="php"><![CDATA[
139 <?php echo $this->headMeta() ?>
140 ]]></programlisting>
141     </example>
142 </sect3>
143 <!--
144 vim:se ts=4 sw=4 et: