| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <!-- EN-Revision: 14385 -->
- <sect3 id="zend.view.helpers.initial.headstyle">
- <title>L'aide de vue HeadStyle</title>
- <para>L'élément HTML <code><style></code> est utilisé pour inclure des feuilles de styles CSS à l'intérieur de
- l'élément HTML <code><head></code>.</para>
- <note>
- <title>Utilisez HeadLink pour lier des fichiers CSS externes</title>
- <para><link linkend="zend.view.helpers.initial.headlink">HeadLink</link> devrait être utilisé pour inclure des
- feuilles de styles externes. <code>HeadScript</code> ne devrait être utilisé que si vous souhaitez définir des
- feuilles de styles internes.</para>
- </note>
- <para>L'aide de vue <code>HeadStyle</code> supporte les méthodes suivantes pour l'ajout et le paramétrage des
- déclarations de feuilles de styles :</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>Dans tous les cas, <code>$content</code> est le contenu des déclarations CSS. <code>$attributes</code> sont
- les attributs additionnels que vous pouvez fournir à la balise <code>style</code> : "lang", "title", "media", ou
- "dir" sont autorisés.</para>
- <note>
- <title>Paramétrez des commentaires conditionnels</title>
- <para><code>HeadStyle</code> vous permet d'englober vos balises de style avec des commentaires conditionnels, ce
- qui permet de les masquer pour des navigateurs spécifiques. Pour ajouter les balises conditionnelles, fournissez
- le paramètre <code>conditional</code> en tant que partie du paramètre <code>$attrs</code> lors de l'appel de la
- méthode.</para>
- <example id="zend.view.helpers.initial.headstyle.conditional">
- <title>HeadStyle avec des commentaires conditionnels</title>
- <programlisting role="php"><![CDATA[
- // adding scripts
- $this->headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7');
- ]]></programlisting>
- </example>
- </note>
- <para><code>HeadStyle</code> permet aussi la capture des déclarations de style ; ceci peut être utile si vous voulez
- créer des déclarations par programme, et ensuite les placer à un autre endroit. L'utilisation de cette
- fonctionnalité est montrée dans un exemple ci-dessous.</para>
- <para>Enfin, vous pouvez utiliser la méthode <code>headStyle()</code> pour ajouter rapidement des éléments de
- déclarations ; la signature de la méthode est <code>headStyle($content$placement = 'APPEND', $attributes =
- array())</code>. <code>$placement</code> peut être "APPEND", "PREPEND", ou "SET".</para>
- <para><code>HeadStyle</code> surcharge chacune des méthodes <code>append()</code>, <code>offsetSet()</code>,
- <code>prepend()</code>, et <code>set()</code> pour imposer l'utilisation des méthodes spéciales listées ci-dessus.
- En interne, il stocke chaque élément sous la forme d'un <code>stdClass</code>, qui est ensuite sérialisé en
- utilisant la méthode <code>itemToString()</code>. Ceci vous permet de réaliser des vérifications sur les éléments de
- la pile, et optionnellement modifier ces éléments en modifiant simplement l'objet retourné.</para>
- <para>L'aide <code>HeadStyle</code> est une implémentation concrète de l'aide <link
- linkend="zend.view.helpers.initial.placeholder">Placeholder</link>.</para>
- <example id="zend.view.helpers.initial.headstyle.basicusage">
- <title>Utilisation basique de l'aide HeadStyle</title>
- <para>Vous pouvez spécifier une nouvelle balise de style à n'importe quel moment :</para>
- <programlisting role="php"><![CDATA[
- // ajout de styles
- $this->headStyle()->appendStyle($styles);
- ]]></programlisting>
- <para>L'ordre est très important avec les CSS ; vous pouvez devoir assurer que les déclarations soient chargées
- dans un ordre spécifique dû à l'ordre de la cascade ; employez les diverses directives "append", "prepend", et
- "offsetSet" pour faciliter cette tâche :</para>
- <programlisting role="php"><![CDATA[
- // Mettre les styles dans le bon ordre
- // - placer à un offset particulier
- $this->headStyle()->offsetSetStyle(100, $stylesPerso);
- // - placer à la fin
- $this->headStyle()->appendStyle($stylesFinaux);
- // - placer au début
- $this->headStyle()->prependStyle($stylesInitiaux);
- ]]></programlisting>
- <para>Quand vous êtes finalement prêt à afficher toutes les déclarations de styles dans votre script de layout,
- faîtes un simple <code>echo</code> de l'aide :</para>
- <programlisting role="php"><![CDATA[
- <?php echo $this->headStyle() ?>
- ]]></programlisting>
- </example>
- <example id="zend.view.helpers.initial.headstyle.capture">
- <title>Capturer les déclarations de style en utilisant l'aide HeadStyle</title>
- <para>Parfois vous devez produire des déclarations de styles CSS par programme. Même si vous pouvez employer la
- concaténation de chaînes, les "heredocs", ou tout autre équivalent, il est souvent plus facile de faire juste la
- création des styles et de les entourer par des balises PHP. <code>HeadStyle</code> vous permet de le faire, et
- capture ainsi l'élément dans la pile :</para>
- <programlisting role="php"><![CDATA[
- <?php $this->headStyle()->captureStart() ?>
- body {
- background-color: <?php echo $this->bgColor ?>;
- }
- <?php $this->headStyle()->captureEnd() ?>
- ]]></programlisting>
- <para>Les suppositions suivantes sont considérées :</para>
- <itemizedlist>
- <listitem>
- <para>Les déclarations de styles sont ajoutées à la pile. Si vous souhaitez qu'elles remplacent la pile
- ou qu'elles soient ajoutées en début de pile, vous devez fournir "SET" ou "PREPEND", en tant que premier
- argument de <code>captureStart()</code>.</para>
- </listitem>
- <listitem>
- <para>Si vous souhaitez spécifier un quelconque attribut additionnel pour la balise
- <code><style></code>, fournissez-le sous la forme d'un tableau en deuxième argument de
- <code>captureStart()</code>.</para>
- </listitem>
- </itemizedlist>
- </example>
- </sect3>
|