| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.navigation.pages.common">
- <title>Caractéristiques communes aux pages</title>
- <para>
- Toutes les classes pour des pages doivent étendre <classname>Zend_Navigation_Page</classname>,
- elles partageront ainsi des caractéristiques communes. Ces options sont représentées dans le
- tableau ci-après.
- </para>
- <para>
- Les noms des options (en clés) sont dirigées vers les setters appropriés <code>set</code>.
- Ceci signifie qu'une option appelée <code>order</code> sera passée à la méthode
- <methodname>setOrder()</methodname>, et une option nommée <code>reset_params</code> sera
- dirigée vers <methodname>setResetParams()</methodname>. Si aucune méthode setter ne correspond,
- l'option sera alors évaluée comme un attribut personnalisé de la page.
- </para>
- <para>
- Documentez vous au sujet de la création de pages <classname>Zend_Navigation_Page</classname> dans
- <link linkend="zend.navigation.pages.custom">la documentation appropriée</link>.
- </para>
- <table id="zend.navigation.pages.common.options">
- <title>Options communes aux pages</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Clé</entry>
- <entry>Type</entry>
- <entry>Valeur par défaut</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><code>label</code></entry>
- <entry><type>chaine</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Un nom de page, comme 'Home' ou 'Blog'.
- </entry>
- </row>
- <row>
- <entry><code>id</code></entry>
- <entry><type>chaine</type> | <code>entier</code></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Un tag id à utiliser lors du rendu de la page, typiquement
- pour repérer un élément.
- </entry>
- </row>
- <row>
- <entry><code>class</code></entry>
- <entry><type>chaine</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Une classe <acronym>CSS</acronym> à utiliser lors du rendu de la page.
- </entry>
- </row>
- <row>
- <entry><code>title</code></entry>
- <entry><type>chaine</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Un titre de page utilisé lors du rendu, utilisé typiquement
- sous forme d'attribut <code>title</code>.
- </entry>
- </row>
- <row>
- <entry><code>target</code></entry>
- <entry><type>chaine</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- La cible à utiliser dans la page.
- </entry>
- </row>
- <row>
- <entry><code>rel</code></entry>
- <entry><type>tableau</type></entry>
- <entry><methodname>array()</methodname></entry>
- <entry>
- Attribue les relations de la page.
- Chaque élément dans le tableau est une paire clé-valeur où
- la clé désigne le type de relation et la valeur un pointeur vers
- la page. Par exemple <code>'alternate' => 'format/plain.html'</code>.
- Pour une fléxibilité maximale, il n'y a pas de restrictions quant aux
- valeurs, elles peuvent être autre chose qu'une chaine. Concernant
- <code>rel</code> et <code>rev</code>, voyez la section de documentation
- <link linkend="zend.view.helpers.initial.navigation.links">sur l'aide
- de vue Links.</link>.
- </entry>
- </row>
- <row>
- <entry><code>rev</code></entry>
- <entry><type>tableau</type></entry>
- <entry><methodname>array()</methodname></entry>
- <entry>
- Spécifie les relations inverses de la page. Fonctionne tout comme
- <code>rel</code>.
- </entry>
- </row>
- <row>
- <entry><code>order</code></entry>
- <entry><type>chaine</type> | <code>entier</code> | <constant>NULL</constant></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Fonctionne comme order pour les éléments de
- <link linkend="zend.form.quickstart.render">
- <classname>Zend_Form</classname></link>. Si spécifiée, la page sera
- parcourue dans un ordre précis ce qui signifie que vous pouvez forcer la page
- à apparaitre avant les autres en utilisant une valeur de
- <code>order</code> basse, comme -100. Si une <type>chaine</type> est passée,
- elle doit pouvoir être convertie en <code>entier</code>. Si <constant>NULL</constant>
- est utilisé, le paramètre sera remis à zéro, donc l'ordre dans lequel la page
- a été ajoutée sera utilisé.
- </entry>
- </row>
- <row>
- <entry><code>resource</code></entry>
- <entry><type>chaine</type> | <classname>Zend_Acl_Resource_Interface</classname> | <constant>NULL</constant></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Une ressource d'<acronym>ACL</acronym> à associer à la page. Voyez la documentation
- <link linkend="zend.view.helpers.initial.navigation.acl">de la section sur les
- <acronym>ACL</acronym> concernant les aides de vue.</link>.
- </entry>
- </row>
- <row>
- <entry><code>privilege</code></entry>
- <entry><type>chaine</type> | <constant>NULL</constant></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Un privilège d'<acronym>ACL</acronym> à associer à la page. Voyez la documentation
- <link linkend="zend.view.helpers.initial.navigation.acl">de la section sur les
- <acronym>ACL</acronym> concernant les aides de vue.</link>.
- </entry>
- </row>
- <row>
- <entry><code>active</code></entry>
- <entry><code>booléen</code></entry>
- <entry><constant>FALSE</constant></entry>
- <entry>
- Si oui ou non la page doit être considérée comme active. Si à
- <constant>FALSE</constant> (ou non fourni), les pages <acronym>MVC</acronym> vont aller
- vérifier l'objet requête suite à l'appel à <code>$page->isActive()</code>.
- </entry>
- </row>
- <row>
- <entry><code>visible</code></entry>
- <entry><code>booléen</code></entry>
- <entry><constant>TRUE</constant></entry>
- <entry>
- Si oui ou non la page doit être visible à l'utilisateur ou juste présente
- dans la structure mais non représentée visuellement.
- </entry>
- </row>
- <row>
- <entry><code>pages</code></entry>
- <entry><type>tableau</type> | <classname>Zend_Config</classname> | <constant>NULL</constant></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Pages enfant de la page en cours. Peut être de type <type>tableau</type>
- ou <classname>Zend_Config</classname> contenant des options à passer à la
- méthode <methodname>factory()</methodname> ou des instances de
- <classname>Zend_Navigation_Page</classname>, ou un mélange des deux types.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <note>
- <title>Propriétés personnalisées</title>
- <para>
- Toutes les pages supportent la gestion de propriétés personnalisées, ceci via les méthodes
- magiques <methodname>__set($name, $value)</methodname>, <methodname>__get($name)</methodname>,
- <methodname>__isset($name)</methodname> et <methodname>__unset($name)</methodname>.
- Ces propriétés peuvent prendre n'importe quelle valeur et seront incluses dans le tableau
- retourné par <code>$page->toArray()</code>, ce qui signifie que les pages peuvent être
- dé/sérialisées même si elles comportent des propriétés non natives à leur classe.
- </para>
- <para>
- Que les pages soient natives ou personnalisées par vos soins, les propriétés peuvent
- être gérées au moyen des méthodes <code>$page->set($name, $value)</code> et
- <code>$page->get($name)</code>, ou encore via des méthodes magiques.
- </para>
- </note>
- <example id="zend.navigation.pages.common.example.customprops">
- <title>Propriétés de pages personnalisées</title>
- <para>
- Cet exemple montre comment les propriétés personnalisées des pages peuvent être utilisées.
- </para>
- <programlisting language="php"><![CDATA[
- $page = new Zend_Navigation_Page_Mvc();
- $page->foo = 'bar';
- $page->meaning = 42;
- echo $page->foo;
- if ($page->meaning != 42) {
- // quelque chose à faire ici
- }
- ]]></programlisting>
- </example>
- </sect2>
|