| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24604 -->
- <!-- Reviewed: no -->
- <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 <acronym>CSS</acronym> à 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>HeadStyle</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><methodname>appendStyle($content, $attributes = array())</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>offsetSetStyle($index, $content, $attributes = array())</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>prependStyle($content, $attributes = array())</methodname></para>
- </listitem>
- <listitem>
- <para><methodname>setStyle($content, $attributes = array())</methodname></para>
- </listitem>
- </itemizedlist>
- <para>
- Dans tous les cas, <varname>$content</varname> est le contenu des déclarations <acronym>CSS</acronym>.
- <varname>$attributes</varname> 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 <varname>$attrs</varname> 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 language="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 <methodname>headStyle()</methodname> pour ajouter
- rapidement des éléments de déclarations ; la signature de la méthode est
- <methodname>headStyle($content$placement = 'APPEND', $attributes = array())</methodname>.
- <varname>$placement</varname> peut être "APPEND", "PREPEND", ou "SET".
- </para>
- <para>
- <code>HeadStyle</code> surcharge chacune des méthodes <methodname>append()</methodname>,
- <methodname>offsetSet()</methodname>, <methodname>prepend()</methodname>, et <methodname>set()</methodname> 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
- <methodname>itemToString()</methodname>. 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>
- <note>
- <title>UTF-8 encoding used by default</title>
- <para>
- By default, Zend Framework uses <acronym>UTF-8</acronym> as its default encoding, and,
- specific to this case, <classname>Zend_View</classname> does as well. Character encoding
- can be set differently on the view object itself using the
- <methodname>setEncoding()</methodname> method (or the the <varname>encoding</varname>
- instantiation parameter). However, since <classname>Zend_View_Interface</classname> does
- not define accessors for encoding, it's possible that if you are using a custom view
- implementation with this view helper, you will not have a
- <methodname>getEncoding()</methodname> method, which is what the view helper uses
- internally for determining the character set in which to encode.
- </para>
- <para>
- If you do not want to utilize <acronym>UTF-8</acronym> in such a situation, you will
- need to implement a <methodname>getEncoding()</methodname> method in your custom view
- implementation.
- </para>
- </note>
- <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 language="php"><![CDATA[
- // ajout de styles
- $this->headStyle()->appendStyle($styles);
- ]]></programlisting>
- <para>
- L'ordre est très important avec les <acronym>CSS</acronym> ; 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 language="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 language="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 <acronym>CSS</acronym> 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 <acronym>PHP</acronym>. <code>HeadStyle</code> vous permet de le faire, et capture
- ainsi l'élément dans la pile :
- </para>
- <programlisting language="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
- <methodname>captureStart()</methodname>.
- </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 <methodname>captureStart()</methodname>.
- </para>
- </listitem>
- </itemizedlist>
- </example>
- </sect3>
|