Faire simple, c'est compliqué. Mais c'est mon métier.
Cet article est ancien et ne correspond plus à ma façon de faire. Renseignez-vous sur le "logicless templating".
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.
{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}
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
J'y parle beaucoup technique de développement web, logiciels libres, et autres.
Ce site est entièrement consultable sans cookies et sans Javascript