| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 21825 -->
- <!-- Reviewed: no -->
- <sect3 id="zend.view.helpers.initial.headmeta">
- <title>HeadMeta Helfer</title>
- <para>
- Das <acronym>HTML</acronym> Element <emphasis><meta></emphasis> wird verwendet um Meta
- Informationen über das <acronym>HTML</acronym> Dokument anzubieten -- typischerweise
- Schlüsselwörter. Dokument Zeichensätze, Cache Pragmas, usw. Meta Tags können entweder
- 'http-equiv' oder 'name' Typen sein, müssen ein 'content' Attribut enthalten, und können
- auch eines der 'lang' oder 'scheme' Modifikator Attributen enthalten.
- </para>
- <para>
- Der <classname>HeadMeta</classname> Helfer unterstützt die folgenden Methoden für das Setzen
- und Hinzufügen von Meta Tags:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <command>appendName($keyValue, $content, $conditionalName)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>offsetSetName($index, $keyValue, $content, $conditionalName)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>prependName($keyValue, $content, $conditionalName)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>setName($keyValue, $content, $modifiers)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>appendHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>offsetSetHttpEquiv($index, $keyValue, $content,
- $conditionalHttpEquiv)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>prependHttpEquiv($keyValue, $content, $conditionalHttpEquiv)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>setHttpEquiv($keyValue, $content, $modifiers)</command>
- </para>
- </listitem>
- <listitem>
- <para>
- <command>setCharset($charset)</command>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Das <varname>$keyValue</varname> Element wird verwendet um einen Wert für den 'name' oder
- 'http-equiv' Schlüssel zu definieren; <varname>$content</varname> ist der Wert für den
- 'content' Schlüssel, und <varname>$modifiers</varname> ist ein optionales assoziatives Array
- das Schlüssel für 'land und/oder 'scheme' enthalten kann.
- </para>
- <para>
- Meta Tags können auch gesetzt werden indem die <methodname>headMeta()</methodname>
- Helfermethode verwendet wird, welche die folgende Signatur hat: <command>headMeta($content,
- $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND')</command>.
- <varname>$keyValue</varname> ist der Intalt für den Schlüssel der in
- <varname>$keyType</varname> spezifiziert ist, und welche entweder 'name' oder 'http-equiv'
- sein sollte. <varname>$placement</varname> kann entweder 'SET' (überschreibt alle vorher
- gespeicherten Werte), 'APPEND' (fügt an das Ende des Stacks hinzu), oder 'PREPEND' (fügt an
- den Beginn des Stacks hinzu) sein.
- </para>
- <para>
- <classname>HeadMeta</classname> überschreibt <methodname>append()</methodname>,
- <methodname>offsetSet()</methodname>, <methodname>prepend()</methodname>, und
- <methodname>set()</methodname> um die Verwendung der speziellen Methoden wie oben gelistet
- zu erzwingen. Intern wird jedes Element als <property>stdClass</property> Token gespeichert,
- welches später durch Verwendung der <methodname>itemToString()</methodname> Methode
- serialisiert wird. Das erlaubt es Prüfungen an den Elementen im Stack durchzuführen, und
- diese Elemente optional zu verändern indem einfach das zurückgegebene Objekt verändert wird.
- </para>
- <para>
- Der <classname>HeadMeta</classname> Helfer ist eine konkrete Implementation des
- <link linkend="zend.view.helpers.initial.placeholder">Platzhalter Helfers</link>.
- </para>
- <example id="zend.view.helpers.initial.headmeta.basicusage">
- <title>Grundsätzliche Verwendung des HeadMeta Helfers</title>
- <para>
- Neue Meta Tags können jederzeit spezifiziert werden. Typischerweise werden Clientseitige
- Cacheregeln oder SEO Schlüsselwörter spezifiziert.
- </para>
- <para>
- Wenn zum Beispiel ein spezielles SEO Schlüsselwort spezifiziert werden soll, kann das
- durch die Erstellung eines Meta Nametags, mit dem Namen 'keywords' und dem Inhalt des
- Schlüsselworts das mit der Seite assoziiert werden soll, geschehen:
- </para>
- <programlisting language="php"><![CDATA[
- // Meta Schlüsselwörter setzen
- $this->headMeta()->appendName('keywords', 'framework, PHP, productivity');
- ]]></programlisting>
- <para>
- Wenn Clientseitige Cacheregeln gesetzt werden sollen, können http-equiv Tags mit den
- Regeln die erzwungen werden sollen, gesetzt werden:
- </para>
- <programlisting language="php"><![CDATA[
- // Clientseitiges cachen verhindern
- $this->headMeta()->appendHttpEquiv('expires',
- 'Wed, 26 Feb 1997 08:21:57 GMT')
- ->appendHttpEquiv('pragma', 'no-cache')
- ->appendHttpEquiv('Cache-Control', 'no-cache');
- ]]></programlisting>
- <para>
- Ein anderer populärer Verwendungszweck für Meta Tags ist das Setzen des Inhalt-Typs,
- Zeichensatzes, und der Sprache:
- </para>
- <programlisting language="php"><![CDATA[
- // Setzen des Inhalttyps und des Zeichensatzes
- $this->headMeta()->appendHttpEquiv('Content-Type',
- 'text/html; charset=UTF-8')
- ->appendHttpEquiv('Content-Language', 'en-US');
- ]]></programlisting>
- <para>
- Wenn man ein <acronym>HTML</acronym>5 Dokument serviert, sollte man das Character Set
- wie folgt angeben:
- </para>
- <programlisting language="php"><![CDATA[
- // Das Character Set im HTML5 setzen
- $this->headMeta()->setCharset('UTF-8'); // Sieht aus wie <meta charset="UTF-8">
- ]]></programlisting>
- <para>
- Als letztes Beispiel, ein einfacher Weg um eine kurze Nachricht anzuzeigen bevor mit
- Hilfe eines "Meta Refreshes" weitergeleitet wird:
- </para>
- <programlisting language="php"><![CDATA[
- // Einen Meta Refresh mit 3 Sekunden zu einer neuen URL setzen:
- $this->headMeta()->appendHttpEquiv('Refresh',
- '3;URL=http://www.some.org/some.html');
- ]]></programlisting>
- <para>
- Wenn man bereit ist die Meta Tags im Layout zu platzieren, muß einfach der Helfer
- ausgegeben werden:
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->headMeta() ?>
- ]]></programlisting>
- </example>
- </sect3>
|