Zend_View-Helpers-HeadStyle.xml 6.7 KB

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