La bonne nouvelle c’est que je suis arrivé à mes fins, la mauvaise c’est que Wayfinder est pas très intuitif... imho. A vrai dire je comprends bien maintenant d’où vient son nom... c’est qu’il faut beaucoup chercher... son chemin.
Pour arriver à comprendre son fonctionnement il m’a fallu plusieurs soiréesd’expérimentation et finalement j’ai adopté la méthode du ’trial and error’ suivante:
- Ajouter un exemple de code html dans votre template, c’est le code que vous voulez obtenir de Wayfinder, typiquement c’est du genre:
<h3>Un titre</h3>
<ul>
<li>premier</li>
<li>deuxième</li>
</ul>
Assurez vous qu’il s’affiche comme attendu avant d’essayer de convaincre wf de vous pondre le code à la volée.
- Après lecture du wiki et pour savoir ce que fait wf exactement j’ai pondu l’appel suivant, que j’ai inséré dans mon template, juste sous le code exemple:
[!Wayfinder? &startId=`48` &level= `2` &outerTpl=`wf.outer` &rowTpl=`wf.row` &parentRowTpl=`wf.parentRow` &parentRowHereTpl=`wf.parentRowHere` &innerTpl=`wf.inner` &hereTpl=`wf.here` &innerRowTpl=`wf.innerRow` &innerHereTpl=`wf.innerHere` &activeParentRowTpl=`wf.activeParentRow` &categoryFoldersTpl=`wf.categoryFolders` !]
N’oubliez pas d’adapter le startId et le level à votre contexte!
- Les chunks ressemblent à ceci, le code vient en ligne droite du wiki. Exemple du wf.Outer chunk:
<!-- Wayfinder debugging starts here:
<ul wf="Outer" id="topnav"[+wf.classes+]>[+wf.wrapper+]</ul>
-->
Il commence par une balise de commentaire html, le code généré par wf ne gènera donc pas la présentation.
- Le wf.parentRow chunck:
<li wf="parentRow" [+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
Vous noterez que j’ai à chaque fois rajouté un attribut bidon pour m’indiquer l’origine du code généré.
- L’idée est maintenant d’afficher la page en question et de consulter la source pour comparer notre exemple avec le code généré par l’appel wf.
- Repérez les templates à modifier.
- Faites une copie de l’appel a wf avant de commencer, l’original vous sera encore d’une grande utilité pendant l’élaboration de l’appel final. Remplacez un template à la fois et observez bien le comportement de wf en chargeant différentes pages.
- Pour forcer wf a ne rien générer à certains endroits j’utilise un chunk wf.span:
Sans template wf va générér un code standard en fonction du contexte... a utiliser si il ne vous convient pas.
- Pour ne rien générér mais continuer la traversée de l’arbre des documents j’utilise un chunck wf.wrap:
J’espère que ma méthode vous sera utile pour maîtriser Wayfinder au plus vite, si c’est pas clair je peux étoffer... ;-).