Zend_View-Helpers-HeadMeta.xml 6.1 KB

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