Ce rendu utilise HTML_Template_Sigma pour la génération HTML. Ceci vous permet d'intégrer facilement HTML_Menu dans la structure de votre site si vous utilisez ce moteur de gabarit.
Ce rendu offre plus de possibilités pour personnaliser l'affichage que HTML_Menu_DirectRenderer.
Ce rendu peut fonctionner également avec l'instance HTML_Template_IT, mais a un gabarit de menu qui insite à avoir beaucoup de blocks ; les fonctionnalités de cache de HTML_Template_Sigma donneront un gain de performance significatif.
Ce gabarit minimal permet l'affichage de chaque type de menu :
<!-- BEGIN mu_menu_loop --> <table cellpadding="2" cellspacing="0" border="1"> <!-- BEGIN mu_row_loop --> <tr> <!-- BEGIN mu_entry_loop --> <!-- BEGIN mu_inactive --> <td><!-- BEGIN mu_inactive_indent --> <!-- END mu_inactive_indent --><a href="{mu_url}">{mu_title}</a></td> <!-- END mu_inactive --> <!-- BEGIN mu_active --> <td><!-- BEGIN mu_active_indent --> <!-- END mu_active_indent --><strong>{mu_title}</strong></td> <!-- END mu_active --> <!-- BEGIN mu_activepath --> <td><!-- BEGIN mu_activepath_indent --> <!-- END mu_activepath_indent --><a href="{mu_url}"><strong>{mu_title}</strong></a></td> <!-- END mu_activepath --> <!-- BEGIN mu_previous --> <td><a href="{mu_url}"><<< {mu_title}</a></td> <!-- END mu_previous --> <!-- BEGIN mu_next --> <td><a href="{mu_url}">{mu_title} >>></a></td> <!-- END mu_next --> <!-- BEGIN mu_upper --> <td><a href="{mu_url}">^ {mu_title} ^</a></td> <!-- END mu_upper --> <!-- BEGIN mu_breadcrumb --> <td><a href="{mu_url}">{mu_title}</a> >>></td> <!-- END mu_breadcrumb --> <!-- END mu_entry_loop --> </tr> <!-- END mu_row_loop --> </table> <!-- END mu_menu_loop -->
Un exemple plus complet montrant les possibilités de personnalisation peut être trouvé dans l'archive du package.
Notez que les blocks ainsi que les marqueurs dans le gabarit ont le préfixe mu_. Ceci est fait pour prévenir les conflits de noms avec les blocks et les manqueurs existants, mu_ est le préfixe par défaut, un autre préfixe peut être passé au constructeur de la classe.
Si présent, ce block sera analysé (parse()) après l'affichage du menu courant ou (dans le cas où le type est 'rows') le niveau du menu courant. Si le type de menu est 'rows'et que le block %level%_menu_loop est présent, il sera analysé à la place.
Si présent, ce block sera analysé après avoir affiché la ligne courante du menu. Si le type de menu est 'rows' et que le block %level%_row_loop est présent, il sera analysé à la place.
Ce block doit toujours être présent et doit être un parent pour tous les blocks d'entrées du menu. Il est utilisé pour implémenter "flow" pour rendre les entrées les unes après les autres.
Si le type de menu est 'rows' et que le block %level%_entry_loop est présent, il sera utilisé à la place.
Ces blocks sont utilisés pour afficher les entrées du menu, ils correspondent à de possibles types d'entrées. Chaque block doit contenir un marqueur {title} ainsi qu'un marqueur {url} et un block indent.
Si le type de menu est 'tree', 'sitemap' ou 'rows' et que le block %level%_%entry type% existe, il sera utilisé à la place.
Si présent, ces blocks sont utilisés pour indenter les entrées dans l'arbre de types du menus ('tree' et 'sitemap').
HTML_Menu_SigmaRenderer
Méthodes héritées HTML_Menu_SigmaRenderer
Nom de la Méthode | Résumé |
---|---|
HTML_Menu_Renderer::finishLevel() | Termine le nuveau del'arbre (pour les types 'tree' et 'sitemap') |
HTML_Menu_Renderer::finishMenu() | Termine le menu |
HTML_Menu_Renderer::finishRow() | Termine la ligne du menu |
HTML_Menu_Renderer::renderEntry() | Rendu de l'élément du menu |
HTML_Menu_Renderer::setMenuType() | Définie le type de menu à être rendu. |
Prev | HTML_Menu | Next |
ArrayRenderer::toArray() | PEAR Manual | constructor HTML_Menu_SigmaRenderer() |