Un sitemap avec eZ Publish
27 juin 2011 Laisser un commentaire
Voici un petit template eZ Publish de mon cru pour afficher une arborescence de noeuds sous forme d’une liste. Puisse-t-il servir à quelqu’un d’autre qu’à moi… On peut l’utiliser pour faire un sitemap ou un menu de navigation pour peu qu’on sache utiliser les CSS correctement.
Le code
{if $tree|count|gt(0)}
{def $diff = 0
$depth = $tree.0.depth}
<ul>
<li><a href={$tree.0.url_alias|ezurl}>{$tree.0.name|wash}}</a>
{foreach $tree as $item offset 1}
{set $diff = $depth|sub($item.depth)}
{if $diff|lt(0)}
<ul>
{else}
{'</li></ul>'|repeat($diff)}</li>
{/if}
<li><a href={$item.url_alias|ezurl}>{$item.name|wash}</a>
{set $depth = $item.depth}
{/foreach}
</li>
</ul>
{/if}
Utilisation
Imaginons que nous voulions faire un sitemap de toute l’arborescence de contenu (nous partirons du principe que le node_id de la racine est “2″)…
Tout d’abord, on copie le code dans un fichier de template, par exemple sitemap.tpl.
Puis on récupère la liste des nœuds grâce à la fonction fetch :
{def $sitemap = fetch( 'content', 'tree', hash( 'parent_node_id', 2 ) )}
Ensuite, il suffit d’inclure le template sitemap.tpl en passant la variable $sitemap en paramètre.
{include uri="design:menu.tpl" tree=$sitemap}
Si on le souhaite, on peut bien évidemment copier/coller le code directement, sans passer par un template dédié, mais c’est moins lisible à la fin.
Un sitemap avec eZ Publish par Charles-Edouard Coste est mis à disposition selon les termes de la Licence Creative Commons Paternité – Pas de Modification 3.0 France
