1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
<?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>
|