Zend_View-Helpers-HeadMeta.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 21825 -->
  4. <sect3 id="zend.view.helpers.initial.headmeta">
  5. <title>HeadMeta ヘルパー</title>
  6. <para>
  7. <acronym>HTML</acronym> の <emphasis>&lt;meta&gt;</emphasis> 要素は、
  8. <acronym>HTML</acronym> ドキュメントに関するメタ情報を扱います。
  9. たとえばキーワードや文字セット、キャッシュ方式などです。
  10. Meta タグには 'http-equiv' 形式と 'name' 形式があり、
  11. 'content' 属性が必須となります。また、
  12. 'lang' あるいは 'scheme' のいずれかの属性を含むことができます。
  13. </para>
  14. <para>
  15. <classname>HeadMeta</classname> ヘルパーは、
  16. meta タグを設定したり追加したりするための次のようなメソッドを提供します。
  17. </para>
  18. <itemizedlist>
  19. <listitem>
  20. <para>
  21. <command>appendName($keyValue, $content, $conditionalName)</command>
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. <command>offsetSetName($index, $keyValue, $content, $conditionalName)</command>
  27. </para>
  28. </listitem>
  29. <listitem>
  30. <para>
  31. <command>prependName($keyValue, $content, $conditionalName)</command>
  32. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. <command>setName($keyValue, $content, $modifiers)</command>
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <command>appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
  42. </para>
  43. </listitem>
  44. <listitem>
  45. <para>
  46. <command>offsetSetHttpEquiv($index, $keyValue, $content, $conditionalHttpEquiv)</command>
  47. </para>
  48. </listitem>
  49. <listitem>
  50. <para>
  51. <command>prependHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
  52. </para>
  53. </listitem>
  54. <listitem>
  55. <para>
  56. <command>setHttpEquiv($keyValue, $content, $modifiers)</command>
  57. </para>
  58. </listitem>
  59. </itemizedlist>
  60. <para>
  61. <varname>$keyValue</varname> は 'name' あるいは 'http-equiv'
  62. キーの値を定義します。<varname>$content</varname> は
  63. 'content' キーの値を定義し、<varname>$modifiers</varname>
  64. はオプションで連想配列を指定します。この配列には
  65. 'lang' や 'scheme' といったキーが含まれます。
  66. </para>
  67. <para>
  68. ヘルパーメソッド <methodname>headMeta()</methodname> で meta タグを設定することもできます。
  69. このメソッドのシグネチャは <command>headMeta($content,
  70. $keyValue, $keyType = 'name', $modifiers = array(), $placement =
  71. 'APPEND')</command>
  72. です。<varname>$keyValue</varname> には、
  73. <varname>$keyType</varname> ('name' あるいは 'http-equiv')
  74. で指定したキーのコンテンツを指定します。
  75. <varname>$placement</varname> は 'SET' (既存の値をすべて上書きする)
  76. か 'APPEND' (スタックの最後に追加する)、
  77. あるいは 'PREPEND' (スタックの先頭に追加する) となります。
  78. </para>
  79. <para>
  80. <classname>HeadMeta</classname> は <methodname>append()</methodname> や
  81. <methodname>offsetSet()</methodname>、<methodname>prepend()</methodname>、そして <methodname>set()</methodname>
  82. をそれぞれオーバーライドして、上にあげた特別なメソッドを使用させるようにします。
  83. 内部的には、各項目を <property>stdClass</property> のトークンとして保管し、
  84. あとで <methodname>itemToString()</methodname> メソッドでシリアライズします。
  85. これはスタック内の項目についてチェックを行い、
  86. オプションでそれを修正したものを返します。
  87. </para>
  88. <para>
  89. <classname>HeadMeta</classname> ヘルパーは、
  90. <link linkend="zend.view.helpers.initial.placeholder">Placeholder
  91. ヘルパー</link> の具象実装です。
  92. </para>
  93. <example id="zend.view.helpers.initial.headmeta.basicusage">
  94. <title>HeadMeta ヘルパーの基本的な使用法</title>
  95. <para>
  96. meta タグは、いつでも好きなときに指定できます。
  97. 一般的には、クライアント側でのキャッシュの制御方法や
  98. SEO 用キーワードなどを指定します。
  99. </para>
  100. <para>
  101. たとえば、SEO 用のキーワードを指定したい場合は
  102. 'keywords' という名前の meta タグを作成します。
  103. そして、そのページに関連するキーワードを値として指定します。
  104. </para>
  105. <programlisting language="php"><![CDATA[
  106. // meta タグでキーワードを指定します
  107. $this->headMeta()->appendName('keywords', 'framework, PHP, productivity');
  108. ]]></programlisting>
  109. <para>
  110. クライアント側でのキャッシュの制御方法を指定したい場合は、
  111. http-equiv タグを設定してルールを指定します。
  112. </para>
  113. <programlisting language="php"><![CDATA[
  114. // クライアント側でのキャッシュを無効にします
  115. $this->headMeta()->appendHttpEquiv('expires',
  116. 'Wed, 26 Feb 1997 08:21:57 GMT')
  117. ->appendHttpEquiv('pragma', 'no-cache')
  118. ->appendHttpEquiv('Cache-Control', 'no-cache');
  119. ]]></programlisting>
  120. <para>
  121. meta タグの使い方としてもうひとつよくあるのは、
  122. コンテンツタイプや文字セット、言語を指定するものです。
  123. </para>
  124. <programlisting language="php"><![CDATA[
  125. // コンテンツタイプと文字セットを設定します
  126. $this->headMeta()->appendHttpEquiv('Content-Type',
  127. 'text/html; charset=UTF-8')
  128. ->appendHttpEquiv('Content-Language', 'en-US');
  129. ]]></programlisting>
  130. <!-- TODO : to be translated -->
  131. <para>
  132. If you are serving an <acronym>HTML</acronym>5 document, you should provide the character
  133. set like this:
  134. </para>
  135. <programlisting language="php"><![CDATA[
  136. // HTML5 で文字セットを設定します
  137. $this->headMeta()->setCharset('UTF-8'); // <meta charset="UTF-8"> のように見えます
  138. ]]></programlisting>
  139. <para>
  140. 最後の例として、リダイレクトの前に見せるメッセージを
  141. "meta refresh" で指定するものを示します。
  142. </para>
  143. <programlisting language="php"><![CDATA[
  144. // 3 秒後に新しい URL に移動させます
  145. $this->headMeta()->appendHttpEquiv('Refresh',
  146. '3;URL=http://www.some.org/some.html');
  147. ]]></programlisting>
  148. <para>
  149. レイアウト内で meta タグを指定し終えたら、ヘルパーの内容を出力します。
  150. </para>
  151. <programlisting language="php"><![CDATA[
  152. <?php echo $this->headMeta() ?>
  153. ]]></programlisting>
  154. </example>
  155. </sect3>
  156. <!--
  157. vim:se ts=4 sw=4 et:
  158. -->