Zend_View-Helpers-HeadStyle.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!-- EN-Revision: 14385 -->
  2. <sect3 id="zend.view.helpers.initial.headstyle">
  3. <title>L'aide de vue HeadStyle</title>
  4. <para>L'élément HTML <code>&lt;style&gt;</code> est utilisé pour inclure des feuilles de styles CSS à l'intérieur de
  5. l'élément HTML <code>&lt;head&gt;</code>.</para>
  6. <note>
  7. <title>Utilisez HeadLink pour lier des fichiers CSS externes</title>
  8. <para><link linkend="zend.view.helpers.initial.headlink">HeadLink</link> devrait être utilisé pour inclure des
  9. feuilles de styles externes. <code>HeadScript</code> ne devrait être utilisé que si vous souhaitez définir des
  10. feuilles de styles internes.</para>
  11. </note>
  12. <para>L'aide de vue <code>HeadStyle</code> supporte les méthodes suivantes pour l'ajout et le paramétrage des
  13. déclarations de feuilles de styles :</para>
  14. <itemizedlist>
  15. <listitem>
  16. <para><code>appendStyle($content, $attributes = array())</code></para>
  17. </listitem>
  18. <listitem>
  19. <para><code>offsetSetStyle($index, $content, $attributes = array())</code></para>
  20. </listitem>
  21. <listitem>
  22. <para><code>prependStyle($content, $attributes = array())</code></para>
  23. </listitem>
  24. <listitem>
  25. <para><code>setStyle($content, $attributes = array())</code></para>
  26. </listitem>
  27. </itemizedlist>
  28. <para>Dans tous les cas, <code>$content</code> est le contenu des déclarations CSS. <code>$attributes</code> sont
  29. les attributs additionnels que vous pouvez fournir à la balise <code>style</code> : "lang", "title", "media", ou
  30. "dir" sont autorisés.</para>
  31. <note>
  32. <title>Paramétrez des commentaires conditionnels</title>
  33. <para><code>HeadStyle</code> vous permet d'englober vos balises de style avec des commentaires conditionnels, ce
  34. qui permet de les masquer pour des navigateurs spécifiques. Pour ajouter les balises conditionnelles, fournissez
  35. le paramètre <code>conditional</code> en tant que partie du paramètre <code>$attrs</code> lors de l'appel de la
  36. méthode.</para>
  37. <example id="zend.view.helpers.initial.headstyle.conditional">
  38. <title>HeadStyle avec des commentaires conditionnels</title>
  39. <programlisting role="php"><![CDATA[
  40. // adding scripts
  41. $this->headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7');
  42. ]]></programlisting>
  43. </example>
  44. </note>
  45. <para><code>HeadStyle</code> permet aussi la capture des déclarations de style ; ceci peut être utile si vous voulez
  46. créer des déclarations par programme, et ensuite les placer à un autre endroit. L'utilisation de cette
  47. fonctionnalité est montrée dans un exemple ci-dessous.</para>
  48. <para>Enfin, vous pouvez utiliser la méthode <code>headStyle()</code> pour ajouter rapidement des éléments de
  49. déclarations ; la signature de la méthode est <code>headStyle($content$placement = 'APPEND', $attributes =
  50. array())</code>. <code>$placement</code> peut être "APPEND", "PREPEND", ou "SET".</para>
  51. <para><code>HeadStyle</code> surcharge chacune des méthodes <code>append()</code>, <code>offsetSet()</code>,
  52. <code>prepend()</code>, et <code>set()</code> pour imposer l'utilisation des méthodes spéciales listées ci-dessus.
  53. En interne, il stocke chaque élément sous la forme d'un <code>stdClass</code>, qui est ensuite sérialisé en
  54. utilisant la méthode <code>itemToString()</code>. Ceci vous permet de réaliser des vérifications sur les éléments de
  55. la pile, et optionnellement modifier ces éléments en modifiant simplement l'objet retourné.</para>
  56. <para>L'aide <code>HeadStyle</code> est une implémentation concrète de l'aide <link
  57. linkend="zend.view.helpers.initial.placeholder">Placeholder</link>.</para>
  58. <example id="zend.view.helpers.initial.headstyle.basicusage">
  59. <title>Utilisation basique de l'aide HeadStyle</title>
  60. <para>Vous pouvez spécifier une nouvelle balise de style à n'importe quel moment :</para>
  61. <programlisting role="php"><![CDATA[
  62. // ajout de styles
  63. $this->headStyle()->appendStyle($styles);
  64. ]]></programlisting>
  65. <para>L'ordre est très important avec les CSS ; vous pouvez devoir assurer que les déclarations soient chargées
  66. dans un ordre spécifique dû à l'ordre de la cascade ; employez les diverses directives "append", "prepend", et
  67. "offsetSet" pour faciliter cette tâche :</para>
  68. <programlisting role="php"><![CDATA[
  69. // Mettre les styles dans le bon ordre
  70. // - placer à un offset particulier
  71. $this->headStyle()->offsetSetStyle(100, $stylesPerso);
  72. // - placer à la fin
  73. $this->headStyle()->appendStyle($stylesFinaux);
  74. // - placer au début
  75. $this->headStyle()->prependStyle($stylesInitiaux);
  76. ]]></programlisting>
  77. <para>Quand vous êtes finalement prêt à afficher toutes les déclarations de styles dans votre script de layout,
  78. faîtes un simple <code>echo</code> de l'aide :</para>
  79. <programlisting role="php"><![CDATA[
  80. <?php echo $this->headStyle() ?>
  81. ]]></programlisting>
  82. </example>
  83. <example id="zend.view.helpers.initial.headstyle.capture">
  84. <title>Capturer les déclarations de style en utilisant l'aide HeadStyle</title>
  85. <para>Parfois vous devez produire des déclarations de styles CSS par programme. Même si vous pouvez employer la
  86. concaténation de chaînes, les "heredocs", ou tout autre équivalent, il est souvent plus facile de faire juste la
  87. création des styles et de les entourer par des balises PHP. <code>HeadStyle</code> vous permet de le faire, et
  88. capture ainsi l'élément dans la pile :</para>
  89. <programlisting role="php"><![CDATA[
  90. <?php $this->headStyle()->captureStart() ?>
  91. body {
  92. background-color: <?php echo $this->bgColor ?>;
  93. }
  94. <?php $this->headStyle()->captureEnd() ?>
  95. ]]></programlisting>
  96. <para>Les suppositions suivantes sont considérées :</para>
  97. <itemizedlist>
  98. <listitem>
  99. <para>Les déclarations de styles sont ajoutées à la pile. Si vous souhaitez qu'elles remplacent la pile
  100. ou qu'elles soient ajoutées en début de pile, vous devez fournir "SET" ou "PREPEND", en tant que premier
  101. argument de <code>captureStart()</code>.</para>
  102. </listitem>
  103. <listitem>
  104. <para>Si vous souhaitez spécifier un quelconque attribut additionnel pour la balise
  105. <code>&lt;style&gt;</code>, fournissez-le sous la forme d'un tableau en deuxième argument de
  106. <code>captureStart()</code>.</para>
  107. </listitem>
  108. </itemizedlist>
  109. </example>
  110. </sect3>