Zend_View-Helpers-HeadMeta.xml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 21825 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.view.helpers.initial.headmeta">
  5. <title>HeadMeta Helfer</title>
  6. <para>
  7. Das <acronym>HTML</acronym> Element <emphasis>&lt;meta&gt;</emphasis> wird verwendet um Meta
  8. Informationen über das <acronym>HTML</acronym> Dokument anzubieten -- typischerweise
  9. Schlüsselwörter. Dokument Zeichensätze, Cache Pragmas, usw. Meta Tags können entweder
  10. 'http-equiv' oder 'name' Typen sein, müssen ein 'content' Attribut enthalten, und können
  11. auch eines der 'lang' oder 'scheme' Modifikator Attributen enthalten.
  12. </para>
  13. <para>
  14. Der <classname>HeadMeta</classname> Helfer unterstützt die folgenden Methoden für das Setzen
  15. und Hinzufügen von Meta Tags:
  16. </para>
  17. <itemizedlist>
  18. <listitem>
  19. <para>
  20. <command>appendName($keyValue, $content, $conditionalName)</command>
  21. </para>
  22. </listitem>
  23. <listitem>
  24. <para>
  25. <command>offsetSetName($index, $keyValue, $content, $conditionalName)</command>
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. <command>prependName($keyValue, $content, $conditionalName)</command>
  31. </para>
  32. </listitem>
  33. <listitem>
  34. <para>
  35. <command>setName($keyValue, $content, $modifiers)</command>
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. <command>appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
  41. </para>
  42. </listitem>
  43. <listitem>
  44. <para>
  45. <command>offsetSetHttpEquiv($index, $keyValue, $content,
  46. $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. <listitem>
  60. <para>
  61. <command>setCharset($charset)</command>
  62. </para>
  63. </listitem>
  64. </itemizedlist>
  65. <para>
  66. Das <varname>$keyValue</varname> Element wird verwendet um einen Wert für den 'name' oder
  67. 'http-equiv' Schlüssel zu definieren; <varname>$content</varname> ist der Wert für den
  68. 'content' Schlüssel, und <varname>$modifiers</varname> ist ein optionales assoziatives Array
  69. das Schlüssel für 'land und/oder 'scheme' enthalten kann.
  70. </para>
  71. <para>
  72. Meta Tags können auch gesetzt werden indem die <methodname>headMeta()</methodname>
  73. Helfermethode verwendet wird, welche die folgende Signatur hat: <command>headMeta($content,
  74. $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND')</command>.
  75. <varname>$keyValue</varname> ist der Intalt für den Schlüssel der in
  76. <varname>$keyType</varname> spezifiziert ist, und welche entweder 'name' oder 'http-equiv'
  77. sein sollte. <varname>$placement</varname> kann entweder 'SET' (überschreibt alle vorher
  78. gespeicherten Werte), 'APPEND' (fügt an das Ende des Stacks hinzu), oder 'PREPEND' (fügt an
  79. den Beginn des Stacks hinzu) sein.
  80. </para>
  81. <para>
  82. <classname>HeadMeta</classname> überschreibt <methodname>append()</methodname>,
  83. <methodname>offsetSet()</methodname>, <methodname>prepend()</methodname>, und
  84. <methodname>set()</methodname> um die Verwendung der speziellen Methoden wie oben gelistet
  85. zu erzwingen. Intern wird jedes Element als <property>stdClass</property> Token gespeichert,
  86. welches später durch Verwendung der <methodname>itemToString()</methodname> Methode
  87. serialisiert wird. Das erlaubt es Prüfungen an den Elementen im Stack durchzuführen, und
  88. diese Elemente optional zu verändern indem einfach das zurückgegebene Objekt verändert wird.
  89. </para>
  90. <para>
  91. Der <classname>HeadMeta</classname> Helfer ist eine konkrete Implementation des
  92. <link linkend="zend.view.helpers.initial.placeholder">Platzhalter Helfers</link>.
  93. </para>
  94. <example id="zend.view.helpers.initial.headmeta.basicusage">
  95. <title>Grundsätzliche Verwendung des HeadMeta Helfers</title>
  96. <para>
  97. Neue Meta Tags können jederzeit spezifiziert werden. Typischerweise werden Clientseitige
  98. Cacheregeln oder SEO Schlüsselwörter spezifiziert.
  99. </para>
  100. <para>
  101. Wenn zum Beispiel ein spezielles SEO Schlüsselwort spezifiziert werden soll, kann das
  102. durch die Erstellung eines Meta Nametags, mit dem Namen 'keywords' und dem Inhalt des
  103. Schlüsselworts das mit der Seite assoziiert werden soll, geschehen:
  104. </para>
  105. <programlisting language="php"><![CDATA[
  106. // Meta Schlüsselwörter setzen
  107. $this->headMeta()->appendName('keywords', 'framework, PHP, productivity');
  108. ]]></programlisting>
  109. <para>
  110. Wenn Clientseitige Cacheregeln gesetzt werden sollen, können http-equiv Tags mit den
  111. Regeln die erzwungen werden sollen, gesetzt werden:
  112. </para>
  113. <programlisting language="php"><![CDATA[
  114. // Clientseitiges cachen verhindern
  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. Ein anderer populärer Verwendungszweck für Meta Tags ist das Setzen des Inhalt-Typs,
  122. Zeichensatzes, und der Sprache:
  123. </para>
  124. <programlisting language="php"><![CDATA[
  125. // Setzen des Inhalttyps und des Zeichensatzes
  126. $this->headMeta()->appendHttpEquiv('Content-Type',
  127. 'text/html; charset=UTF-8')
  128. ->appendHttpEquiv('Content-Language', 'en-US');
  129. ]]></programlisting>
  130. <para>
  131. Wenn man ein <acronym>HTML</acronym>5 Dokument serviert, sollte man das Character Set
  132. wie folgt angeben:
  133. </para>
  134. <programlisting language="php"><![CDATA[
  135. // Das Character Set im HTML5 setzen
  136. $this->headMeta()->setCharset('UTF-8'); // Sieht aus wie <meta charset="UTF-8">
  137. ]]></programlisting>
  138. <para>
  139. Als letztes Beispiel, ein einfacher Weg um eine kurze Nachricht anzuzeigen bevor mit
  140. Hilfe eines "Meta Refreshes" weitergeleitet wird:
  141. </para>
  142. <programlisting language="php"><![CDATA[
  143. // Einen Meta Refresh mit 3 Sekunden zu einer neuen URL setzen:
  144. $this->headMeta()->appendHttpEquiv('Refresh',
  145. '3;URL=http://www.some.org/some.html');
  146. ]]></programlisting>
  147. <para>
  148. Wenn man bereit ist die Meta Tags im Layout zu platzieren, muß einfach der Helfer
  149. ausgegeben werden:
  150. </para>
  151. <programlisting language="php"><![CDATA[
  152. <?php echo $this->headMeta() ?>
  153. ]]></programlisting>
  154. </example>
  155. </sect3>