Caractéristiques communes aux pages Toutes les classes pour des pages doivent étendre Zend_Navigation_Page, elles partageront ainsi des caractéristiques communes. Ces options sont représentées dans le tableau ci-après. Les noms des options (en clés) sont dirigées vers les setters appropriés set. Ceci signifie qu'une option appelée order sera passée à la méthode setOrder(), et une option nommée reset_params sera dirigée vers setResetParams(). Si aucune méthode setter ne correspond, l'option sera alors évaluée comme un attribut personnalisé de la page. Documentez vous au sujet de la création de pages Zend_Navigation_Page dans la documentation appropriée. Options communes aux pages Clé Type Valeur par défaut Description label chaine NULL Un nom de page, comme 'Home' ou 'Blog'. id chaine | entier NULL Un tag id à utiliser lors du rendu de la page, typiquement pour repérer un élément. class chaine NULL Une classe CSS à utiliser lors du rendu de la page. title chaine NULL Un titre de page utilisé lors du rendu, utilisé typiquement sous forme d'attribut title. target chaine NULL La cible à utiliser dans la page. rel tableau array() 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 'alternate' => 'format/plain.html'. Pour une fléxibilité maximale, il n'y a pas de restrictions quant aux valeurs, elles peuvent être autre chose qu'une chaine. Concernant rel et rev, voyez la section de documentation sur l'aide de vue Links.. rev tableau array() Spécifie les relations inverses de la page. Fonctionne tout comme rel. order chaine | entier | NULL NULL Fonctionne comme order pour les éléments de Zend_Form. 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 order basse, comme -100. Si une chaine est passée, elle doit pouvoir être convertie en entier. Si NULL est utilisé, le paramètre sera remis à zéro, donc l'ordre dans lequel la page a été ajoutée sera utilisé. resource chaine | Zend_Acl_Resource_Interface | NULL NULL Une ressource d'ACL à associer à la page. Voyez la documentation de la section sur les ACL concernant les aides de vue.. privilege chaine | NULL NULL Un privilège d'ACL à associer à la page. Voyez la documentation de la section sur les ACL concernant les aides de vue.. active booléen FALSE Si oui ou non la page doit être considérée comme active. Si à FALSE (ou non fourni), les pages MVC vont aller vérifier l'objet requête suite à l'appel à $page->isActive(). visible booléen TRUE Si oui ou non la page doit être visible à l'utilisateur ou juste présente dans la structure mais non représentée visuellement. pages tableau | Zend_Config | NULL NULL Pages enfant de la page en cours. Peut être de type tableau ou Zend_Config contenant des options à passer à la méthode factory() ou des instances de Zend_Navigation_Page, ou un mélange des deux types.
Propriétés personnalisées Toutes les pages supportent la gestion de propriétés personnalisées, ceci via les méthodes magiques __set($name, $value), __get($name), __isset($name) et __unset($name). Ces propriétés peuvent prendre n'importe quelle valeur et seront incluses dans le tableau retourné par $page->toArray(), 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. 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 $page->set($name, $value) et $page->get($name), ou encore via des méthodes magiques. Propriétés de pages personnalisées Cet exemple montre comment les propriétés personnalisées des pages peuvent être utilisées. foo = 'bar'; $page->meaning = 42; echo $page->foo; if ($page->meaning != 42) { // quelque chose à faire ici } ]]>