Modifier les comportement de la démo impliquent à minima de modifier les noms de code des pages, voir le code source des modèles de page ou de rangées fournies. Ça peut-paraître rude pour un débutant mais Automne est avant tout destiné aux développeurs qui ont des connaissances solides en HTML. Le simple fait d'ajouter une nouvelle page dans l'arborescence n'est parfois pas suffisant pour obtenir le comportement souhaité.
Je vais donc essayer de faire le point sur les différentes manières de créer des liens entre les pages d'un site sous Automne, en partant du principe que tu connais au moins HTML. Au passage on en profitera pour se familiariser avec la syntaxe XML et les variables de page dans Automne.
Chaque page de l'arborescence d'un site sous Automne possède un
identifiant unique attribué lors de la création de page. Depuis la version 4.1 Il est également possible d'affecter un
nom de code unique lui aussi dans les propriétés de la page.
Dès lors nous avons à notre disposition 2 façon de faire référence à une page :
- via son identifiant (ID) ;
- via son nom de code (codename).
Remarque : nous vous conseillons d'utiliser les noms de code si vous travaillez avec une version d'Automne > 4.1.0. Le nom de code est unique par site (home, news, contact, sitemap, etc.), il permet ainsi de faire des modèles qui pourront être facilement réutilisables entre différents sites.Il y a 2 syntaxes à connaître pour faire des liens : celle utilisée dans les
modèles de pages et celle utilisées dans les
blocs qui appellent des modules construits à l'aide du Polymod. A noter qu'on peut aussi inclure ces blocs dans des modèles de page depuis la 4.1.0.
1. Dans les modèles de pageDans le cas où je veux faire un lien direct vers une page depuis un modèle de page je peux donc écrire :
Code :
<atm-linx type="direct" node="ID_PAGE"><a href="{{href}}">{{title}}</a></atm-linx>
où ID_PAGE est un entier qui correspondant à l'identifiant. Afin d'améliorer la portabilité des modèles de pages, la version 4.1 a introduit l'usage de nom de code pour les pages, pour ne pas être dépendant des identifiants.
Je peux donc maintenant définir le nom de code 'news' pour ma page qui affiche les actualités et écrire à la place :
Code :
<atm-linx type="direct" codename="news"><a href="{{href}}">{{title}}</a></atm-linx>
On aurait pu aussi utiliser ce système avec les autres types de liens disponibles pour l'élement <atm-linx> : sous-liens, liens récursifs ou liens descendants. Ces type de liens sont ceux utilisés dans les modèles de la demo. Je à aller voir le code des modèles pour comprendre comment ça marche. Voir aussi le billet de blog sur les noms de code :
http://blog.automne-cms.org/?item=1393Attention : Les balises <atm-linx> sont utilisées seulement dans les modèles de page, mais je peux également vouloir faire un lien vers cette page actualités dans une rangée contenant un appel au module actualités.
2. Dans les blocs de données d'un module polymodJe pourrais écrire à l'intérieur d'une balise <block module="pnews"> par exemple :
1. Si j'utilise l'identifiant de page :
Code :
<block module="pnews" ...>
....
<a href="{page:ID:url}">{page:ID:title}</a>
....
</block>
2. Si j'utilise le nom de code de page :
Code :
<block module="pnews" ...>
....
<a href="{page:news:url}">{page:news:title}</a>
....
</block>
J'espère que ça t'aidera à comprendre pourquoi ton lien ne pointe pas vers la page désirée et que tu pourras corriger facilement ça. Ça devrait se limiter à changer un identifiant ou à affecter le nom de code à une nouvelle page.