| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17175 -->
- <!-- Reviewed: no -->
- <sect3 id="zend.view.helpers.initial.headstyle">
- <title>HeadStyle Helfer</title>
- <para>
- Das HTML Element <code><style></code> wird verwendet um <acronym>CSS</acronym>
- Stylesheets im HTML Element <code><head></code> zu inkludieren.
- </para>
- <note>
- <title>HeadLink verwenden um CSS Dateien zu verlinken</title>
- <para>
- <link linkend="zend.view.helpers.initial.headlink">HeadLink</link> sollte verwendet
- werden um <code><link></code> Elemente zu Erstellen die externe Stylesheets
- enthalten. <code>HeadStyle</code> wird verwendet wenn man Stylesheets inline definieren
- will.
- </para>
- </note>
- <para>
- Der <code>HeadStyle</code> Helfer unterstützt die folgenden Methoden für das Setzen und
- Hinzufügen von Stylesheet Deklarationen:
- </para>
- <itemizedlist>
- <listitem><para><code>appendStyle($content, $attributes =
- array())</code></para></listitem>
- <listitem><para><code>offsetSetStyle($index, $content, $attributes =
- array())</code></para></listitem>
- <listitem><para><code>prependStyle($content, $attributes =
- array())</code></para></listitem>
- <listitem><para><code>setStyle($content, $attributes =
- array())</code></para></listitem>
- </itemizedlist>
- <para>
- In allen Fällen ist <varname>$content</varname> die aktuelle <acronym>CSS</acronym>
- Deklaration. <varname>$attributes</varname> sind alle zusätzlichen Attribute die das
- <code>style</code> Tag erhalten soll: lang, title, media, oder dir sind alle möglich.
- </para>
- <note>
- <title>Abhängige Kommentare setzen</title>
- <para>
- <code>HeadStyle</code> erlaubt es ein Script Tag in abhängige Kommentare zu setzen, das
- es erlaubt es vor speziellen Browsern zu verstecken. Um abhängige Tags zu setzen, muß
- der abhängige Wert als Teil des <varname>$attrs</varname> Parameters im Methodenaufruf
- übergeben werden.
- </para>
- <example id="zend.view.helpers.initial.headstyle.conditional">
- <title>Headstyle mit abhängigen Kommentaren</title>
- <programlisting language="php"><![CDATA[
- // Skripte hinzufügen
- $this->headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7');
- ]]></programlisting>
- </example>
- </note>
- <para>
- <code>HeadStyle</code> erlaubt auch das Erfassen von Style Deklarationen; das kann nützlich
- sein wenn eine Deklaration programmtechnisch erstellt werden soll und Sie dann woanders
- platziert wird. Die Verwendung hierfür wird in einem unten angeführten Beispiel gezeigt.
- </para>
- <para>
- Letztendlich kann auch die <methodname>headStyle()</methodname> Methode verwendet werden um
- schnellstens Deklarationselemente hinzuzufügen; die Signatur dafür ist
- <methodname>headStyle($content$placement = 'APPEND', $attributes = array())</methodname>.
- <varname>$placement</varname> sollte entweder 'APPEND', 'PREPEND', oder 'SET' sein.
- </para>
- <para>
- <code>HeadStyle</code> überschreibt jedes <methodname>append()</methodname>,
- <methodname>offsetSet()</methodname>, <methodname>prepend()</methodname>, und
- <methodname>set()</methodname> um die Verwendung der oben gelisteten speziellen Methoden zu
- forcieren. Intern wird jeder Teil als <code>stdClass</code> Token gespeichert, welches
- später serialisiert wird durch Verwendung der <methodname>itemToString()</methodname>
- Methode. Das erlaubt es die Teile im Stack zu Prüfen, und optional auch zu Ändern durch
- einfaches Modifizieren des zurückgegebenen Objektes.
- </para>
- <para>
- Der <code>HeadStyle</code> Helfer ist eine konkrete Implementation des
- <link linkend="zend.view.helpers.initial.placeholder">Platzhalter Helfers</link>.
- </para>
- <example id="zend.view.helpers.initial.headstyle.basicusage">
- <title>Grundsätzliche Verwendung des HeadStyle Helfers</title>
- <para>
- Ein neues Style Tag kann jederzeit spezifiziert werden:
- </para>
- <programlisting language="php"><![CDATA[
- // Stile hinzufügen
- $this->headStyle()->appendStyle($styles);
- ]]></programlisting>
- <para>
- Die Reihenfolge ist in <acronym>CSS</acronym> sehr wichtig; es könnte sein das man
- sichergestellen muß das Deklarationen in einer speziellen Reihenfolge geladen werden
- wegen der Reihenfolge der Kaskade; die verschiedenen append, prepend und offsetSet
- Direktiven können für diesen Zweck verwendet werden:
- </para>
- <programlisting language="php"><![CDATA[
- // Styles in Reihenfolge bringen
- // Ein spezielles Offset platzieren:
- $this->headStyle()->offsetSetStyle(100, $customStyles);
- // Am Ende platzieren:
- $this->headStyle()->appendStyle($finalStyles);
- // Am Anfang platzieren:
- $this->headStyle()->prependStyle($firstStyles);
- ]]></programlisting>
- <para>
- Wenn man damit fertig ist und alle Style Deklarationen im Layout Skript ausgegeben
- werden können kann der Helfer einfach wiederholt werden:
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->headStyle() ?>
- ]]></programlisting>
- </example>
- <example id="zend.view.helpers.initial.headstyle.capture">
- <title>Den HeadStyle Helfer verwenden um Style Deklarationen zu Erfassen</title>
- <para>
- Hier und da müssen <acronym>CSS</acronym> Style Deklarationen programmtechnisch erstellt
- werden. Wärend String Kopplungen, HereDocs und ähnliches verwendet werden könnte, ist es
- oft einfacher das durch erstellen der Styles und deren Einfügung in
- <acronym>PHP</acronym> Tags zu machen. <code>HeadStyle</code> lässt das zu indem es in
- den Stack erfasst wird:
- </para>
- <programlisting language="php"><![CDATA[
- <?php $this->headStyle()->captureStart() ?>
- body {
- background-color: <?php echo $this->bgColor ?>;
- }
- <?php $this->headStyle()->captureEnd() ?>
- ]]></programlisting>
- <para>
- Die folgenden Annahmen werden gemacht:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Die Style Deklarationen werden dem Stack angefügt. Wenn Sie den Stack ersetzen
- sollen oder an den Anfang hinzugefügt werden sollten muß 'SET' oder 'PREPEND'
- als erstes Argument an <methodname>captureStart()</methodname> übergeben werden
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn zusätzliche Attribute für das <code><style></code> Tag spezifiziert
- werden sollen, dann müssen diese in einem Array als zweites Argument an
- <methodname>captureStart()</methodname> übergeben werden.
- </para>
- </listitem>
- </itemizedlist>
- </example>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|