Résumé de la classe
HTML_Menu_SigmaRenderer -- Le rendu qui utilise l'instance HTML_Template_Sigma pour l'affichage du menu.
Description
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.
Structure du gabarit
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.
Blocks dans le gabarit (sans préfixe)
menu_loop
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.
row_loop
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.
entry_loop
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.
inactive_indent, active_indent, activepath_indent
Si présent, ces blocks sont utilisés pour indenter les entrées dans l'arbre de types du
menus
('tree' et 'sitemap').