2
0

Zend_View-Helpers-HeadStyle.xml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.view.helpers.initial.headstyle">
  5. <title>HeadStyle Helfer</title>
  6. <para>
  7. Das HTML Element <code>&lt;style&gt;</code> wird verwendet um CSS Stylesheets im HTML
  8. Element <code>&lt;head&gt;</code> zu inkludieren.
  9. </para>
  10. <note>
  11. <title>HeadLink verwenden um CSS Dateien zu verlinken</title>
  12. <para>
  13. <link linkend="zend.view.helpers.initial.headlink">HeadLink</link> sollte verwendet
  14. werden um <code>&lt;link&gt;</code> Elemente zu Erstellen die externe Stylesheets
  15. enthalten. <code>HeadScript</code> wird verwendet wenn man Stylesheets inline definieren
  16. will.
  17. </para>
  18. </note>
  19. <para>
  20. Der <code>HeadStyle</code> Helfer unterstützt die folgenden Methoden für das Setzen und
  21. Hinzufügen von Stylesheet Deklarationen:
  22. </para>
  23. <itemizedlist>
  24. <listitem><para><code>appendStyle($content, $attributes =
  25. array())</code></para></listitem>
  26. <listitem><para><code>offsetSetStyle($index, $content, $attributes =
  27. array())</code></para></listitem>
  28. <listitem><para><code>prependStyle($content, $attributes =
  29. array())</code></para></listitem>
  30. <listitem><para><code>setStyle($content, $attributes =
  31. array())</code></para></listitem>
  32. </itemizedlist>
  33. <para>
  34. In allen Fällen ist <code>$content</code> die aktuelle CSS Deklaration.
  35. <code>$attributes</code> sind alle zusätzlichen Attribute die das <code>style</code> Tag
  36. erhalten soll: lang, title, media, oder dir sind alle möglich.
  37. </para>
  38. <note>
  39. <title>Abhängige Kommentare setzen</title>
  40. <para>
  41. <code>HeadStyle</code> erlaubt es ein Script Tag in abhängige Kommentare zu setzen, das
  42. es erlaubt es vor speziellen Browsern zu verstecken. Um abhängige Tags zu setzen, muß
  43. der abhängige Wert als Teil des <code>$attrs</code> Parameters im Methodenaufruf
  44. übergeben werden.
  45. </para>
  46. <example id="zend.view.helpers.initial.headstyle.conditional">
  47. <title>Headstyle mit abhängigen Kommentaren</title>
  48. <programlisting language="php"><![CDATA[
  49. // Skripte hinzufügen
  50. $this->headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7');
  51. ]]></programlisting>
  52. </example>
  53. </note>
  54. <para>
  55. <code>HeadStyle</code> erlaubt auch das Erfassen von Style Deklarationen; das kann nützlich
  56. sein wenn eine Deklaration programmtechnisch erstellt werden soll und Sie dann woanders
  57. platziert wird. Die Verwendung hierfür wird in einem unten angeführten Beispiel gezeigt.
  58. </para>
  59. <para>
  60. Letztendlich kann auch die <code>headStyle()</code> Methode verwendet werden um schnellstens
  61. Deklarationselemente hinzuzufügen; die Signatur dafür ist
  62. <code>headStyle($content$placement = 'APPEND', $attributes = array())</code>.
  63. <code>$placement</code> sollte entweder 'APPEND', 'PREPEND', oder 'SET' sein.
  64. </para>
  65. <para>
  66. <code>HeadStyle</code> überschreibt jedes <code>append()</code>, <code>offsetSet()</code>,
  67. <code>prepend()</code>, und <code>set()</code> um die Verwendung der oben gelisteten
  68. speziellen Methoden zu forcieren. Intern wird jeder Teil als <code>stdClass</code> Token
  69. gespeichert, welches später serialisiert wird durch Verwendung der
  70. <code>itemToString()</code> Methode. Das erlaubt es die Teile im Stack zu Prüfen, und
  71. optional auch zu Ändern durch einfaches Modifizieren des zurückgegebenen Objektes.
  72. </para>
  73. <para>
  74. Der <code>HeadStyle</code> Helfer ist eine konkrete Implementation des
  75. <link linkend="zend.view.helpers.initial.placeholder">Platzhalter Helfers</link>.
  76. </para>
  77. <example id="zend.view.helpers.initial.headstyle.basicusage">
  78. <title>Grundsätzliche Verwendung des HeadStyle Helfers</title>
  79. <para>
  80. Ein neues Style Tag kann jederzeit spezifiziert werden:
  81. </para>
  82. <programlisting language="php"><![CDATA[
  83. // Stile hinzufügen
  84. $this->headStyle()->appendStyle($styles);
  85. ]]></programlisting>
  86. <para>
  87. Die Reihenfolge ist in CSS sehr wichtig; es könnte sein das man sichergestellen muß das
  88. Deklarationen in einer speziellen Reihenfolge geladen werden wegen der Reihenfolge der
  89. Kaskade; die verschiedenen append, prepend und offsetSet Direktiven können für diesen
  90. Zweck verwendet werden:
  91. </para>
  92. <programlisting language="php"><![CDATA[
  93. // Styles in Reihenfolge bringen
  94. // Ein spezielles Offset platzieren:
  95. $this->headStyle()->offsetSetStyle(100, $customStyles);
  96. // Am Ende platzieren:
  97. $this->headStyle()->appendStyle($finalStyles);
  98. // Am Anfang platzieren:
  99. $this->headStyle()->prependStyle($firstStyles);
  100. ]]></programlisting>
  101. <para>
  102. Wenn man damit fertig ist und alle Style Deklarationen im Layout Skript ausgegeben
  103. werden können kann der Helfer einfach wiederholt werden:
  104. </para>
  105. <programlisting language="php"><![CDATA[
  106. <?php echo $this->headStyle() ?>
  107. ]]></programlisting>
  108. </example>
  109. <example id="zend.view.helpers.initial.headstyle.capture">
  110. <title>Den HeadStyle Helfer verwenden um Style Deklarationen zu Erfassen</title>
  111. <para>
  112. Hier und da müssen CSS Style Deklarationen programmtechnisch erstellt werden. Wärend
  113. String Kopplungen, HereDocs und ähnliches verwendet werden könnte, ist es oft einfacher
  114. das durch erstellen der Styles und deren Einfügung in PHP Tags zu machen.
  115. <code>HeadStyle</code> lässt das zu indem es in den Stack erfasst wird:
  116. </para>
  117. <programlisting language="php"><![CDATA[
  118. <?php $this->headStyle()->captureStart() ?>
  119. body {
  120. background-color: <?php echo $this->bgColor ?>;
  121. }
  122. <?php $this->headStyle()->captureEnd() ?>
  123. ]]></programlisting>
  124. <para>
  125. Die folgenden Annahmen werden gemacht:
  126. </para>
  127. <itemizedlist>
  128. <listitem>
  129. <para>
  130. Die Style Deklarationen werden dem Stack angefügt. Wenn Sie den Stack ersetzen
  131. sollen oder an den Anfang hinzugefügt werden sollten muß 'SET' oder 'PREPEND'
  132. als erstes Argument an <code>captureStart()</code> übergeben werden
  133. </para>
  134. </listitem>
  135. <listitem>
  136. <para>
  137. Wenn zusätzliche Attribute für das <code>&lt;style&gt;</code> Tag spezifiziert
  138. werden sollen, dann müssen diese in einem Array als zweites Argument an
  139. <code>captureStart()</code> übergeben werden.
  140. </para>
  141. </listitem>
  142. </itemizedlist>
  143. </example>
  144. </sect3>
  145. <!--
  146. vim:se ts=4 sw=4 et:
  147. -->