File: Zend_View-Helpers-HeadMeta.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (184 lines) | stat: -rw-r--r-- 7,316 bytes parent folder | download | duplicates (2)
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>&lt;meta&gt;</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>