Zend_View-Helpers-HeadMeta.xml 6.2 KB

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