1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20794 -->
4 <sect3 id="zend.view.helpers.initial.headmeta">
5 <title>HeadMeta ヘルパー</title>
8 HTML の <emphasis><meta></emphasis> 要素は、
9 HTML ドキュメントに関するメタ情報を扱います。
10 たとえばキーワードや文字セット、キャッシュ方式などです。
11 Meta タグには 'http-equiv' 形式と 'name' 形式があり、
12 'content' 属性が必須となります。また、
13 'lang' あるいは 'scheme' のいずれかの属性を含むことができます。
17 <classname>HeadMeta</classname> ヘルパーは、
18 meta タグを設定したり追加したりするための次のようなメソッドを提供します。
24 <command>appendName($keyValue, $content, $conditionalName)</command>
30 <command>offsetSetName($index, $keyValue, $content, $conditionalName)</command>
36 <command>prependName($keyValue, $content, $conditionalName)</command>
42 <command>setName($keyValue, $content, $modifiers)</command>
48 <command>appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
54 <command>offsetSetHttpEquiv($index, $keyValue, $content, $conditionalHttpEquiv)</command>
60 <command>prependHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
66 <command>setHttpEquiv($keyValue, $content, $modifiers)</command>
72 <varname>$keyValue</varname> は 'name' あるいは 'http-equiv'
73 キーの値を定義します。<varname>$content</varname> は
74 'content' キーの値を定義し、<varname>$modifiers</varname>
75 はオプションで連想配列を指定します。この配列には
76 'lang' や 'scheme' といったキーが含まれます。
80 ヘルパーメソッド <methodname>headMeta()</methodname> で meta タグを設定することもできます。
81 このメソッドのシグネチャは <command>headMeta($content,
82 $keyValue, $keyType = 'name', $modifiers = array(), $placement =
84 です。<varname>$keyValue</varname> には、
85 <varname>$keyType</varname> ('name' あるいは 'http-equiv')
87 <varname>$placement</varname> は 'SET' (既存の値をすべて上書きする)
88 か 'APPEND' (スタックの最後に追加する)、
89 あるいは 'PREPEND' (スタックの先頭に追加する) となります。
93 <classname>HeadMeta</classname> は <methodname>append()</methodname> や
94 <methodname>offsetSet()</methodname>、<methodname>prepend()</methodname>、そして <methodname>set()</methodname>
95 をそれぞれオーバーライドして、上にあげた特別なメソッドを使用させるようにします。
96 内部的には、各項目を <property>stdClass</property> のトークンとして保管し、
97 あとで <methodname>itemToString()</methodname> メソッドでシリアライズします。
98 これはスタック内の項目についてチェックを行い、
103 <classname>HeadMeta</classname> ヘルパーは、
104 <link linkend="zend.view.helpers.initial.placeholder">Placeholder
108 <example id="zend.view.helpers.initial.headmeta.basicusage">
109 <title>HeadMeta ヘルパーの基本的な使用法</title>
112 meta タグは、いつでも好きなときに指定できます。
113 一般的には、クライアント側でのキャッシュの制御方法や
118 たとえば、SEO 用のキーワードを指定したい場合は
119 'keywords' という名前の meta タグを作成します。
120 そして、そのページに関連するキーワードを値として指定します。
123 <programlisting language="php"><![CDATA[
124 // meta タグでキーワードを指定します
125 $this->headMeta()->appendName('keywords', 'framework, PHP, productivity');
129 クライアント側でのキャッシュの制御方法を指定したい場合は、
130 http-equiv タグを設定してルールを指定します。
133 <programlisting language="php"><![CDATA[
134 // クライアント側でのキャッシュを無効にします
135 $this->headMeta()->appendHttpEquiv('expires',
136 'Wed, 26 Feb 1997 08:21:57 GMT')
137 ->appendHttpEquiv('pragma', 'no-cache')
138 ->appendHttpEquiv('Cache-Control', 'no-cache');
142 meta タグの使い方としてもうひとつよくあるのは、
143 コンテンツタイプや文字セット、言語を指定するものです。
146 <programlisting language="php"><![CDATA[
147 // コンテンツタイプと文字セットを設定します
148 $this->headMeta()->appendHttpEquiv('Content-Type',
149 'text/html; charset=UTF-8')
150 ->appendHttpEquiv('Content-Language', 'en-US');
153 <!-- TODO : to be translated -->
155 If you are serving an HTML5 document, you should provide the character
159 <programlisting language="php"><![CDATA[
160 // HTML5 で文字セットを設定します
161 $this->headMeta()->setCharset('UTF-8'); // <meta charset="UTF-8"> のように見えます
165 最後の例として、リダイレクトの前に見せるメッセージを
166 "meta refresh" で指定するものを示します。
169 <programlisting language="php"><![CDATA[
170 // 3 秒後に新しい URL に移動させます
171 $this->headMeta()->appendHttpEquiv('Refresh',
172 '3;URL=http://www.some.org/some.html');
176 レイアウト内で meta タグを指定し終えたら、ヘルパーの内容を出力します。
179 <programlisting language="php"><![CDATA[
180 <?php echo $this->headMeta() ?>