Salut tombook2 et bienvenue avec Modx !
Bon, c'est vrai que de prime abord le système pour les liens est particulier, mais un fois pigé c'est assez puissant.
Déjà, oublie les pages php qui s'appellent bidule.php
De base, pour modx c'est par exemple modx/index.php?id=66 ==> toutes les pages sont appelées par leur id unique. Simple, mais pas joli.
Pour de la réécriture d'url le friendly_url dans les paramètres + la configuration du .htaccess à la racine c'est la base. Tu suis la doc et tout va bien se passer. Ni plus ni moins.
Ca c'est pour la partie technique.
Pour la partie fonctionnelle, je vais tenter de compléter les propos ci-dessus :
Dans un contexte (web), tu as des pages. Tu créé une page elle se met sous l'autre, au même niveau.
POur avoir des conteneurs de page (des pages parents puis enfant etc...), tu fais un clic droit sur une page et ajouter une ressource. Ou bien dans une ressource existante, dans l'onglet paramètres, tu peux pointer vers une page parente. Ainsi cette nouvelle ressource deviendra une sous page, page enfant, d'une page parent ou plutôt conteneur. Et ça fonctionne commune une arborescence classique de dossiers imbriqués. Si tu veux qu'une page soit conteneur, tu peux aussi l'indiquer dans l'onglet paramètre de la page en cochant la case conteneur.
Et enfin, pour maintenant appeler une page, il suffit de faire un lien html sous ce format pour aller à la page 125 :
<a title="Mon titre" href="[[~125]]">Mon texte</a>
Pas très dynamique pour les noms de page n'est-ce pas ?
Alors pour ne pas avoir à réécrire les titres et autres attributs pour chaque lien (s'il y en a plusieurs), il vaut mieux passer par une extention. Par exemple pdoTools contient un snippet
pdoResources qui te permettra d'appeler :
- toutes les pages enfants d'une page déterminée,
- comme une liste définie manuellement de page
Mais il fait beaucoup plus que ça. Et le principe est :
J'appelle le snippet pdoResources et je lui dit : affiche moi toutes les pages enfants de la page 125, et applique leur le gabarit $untel (untel étant un chunk)
[[pdoResources?
&parents=`125`
&tpl=`untel`
]]
Et voici le gabarit du chunk untel que je peux utiliser et qui ressemble à ce que tu souhaites obtenir :
<a href="[[+id]]" title="[[+title]]">[[+longtitle]]</a>
Ce tpl se répétera autant de fois qu'il y a des sous pages à la page 125. Et tout le remplissage sera automatisé selon le template untel.
Dans le chunk untel, tu peux ainsi appeler les paramètres des pages selon ce format [[+paramètre]] qui correspond à [[*paramètre]]. Sauf que le dernier ne fonctionne que quand on est dans la page actuelle.
Si je suis dans la page 1 et j'écris [[*id]] ça donne 1. Si je suis dans la 125 [[*id]] donne 125. Si je suis dans la page 1 et que je veux l'id de la page 125, je peux écrire dans la page 1, ou dans mon modèle par exemple :
[[pdoResources?
&resources=`125`
&tpl=`justID`
]]
Et j'ai un chunk qui s'appelle justID et qui contient :
<-- chunk justID -->
[[+id]]
<!-- fin chunk -->
Et ça m'affiche 125 alors que je suis sur la page 1. Tu comprends qu'on peut faire afficher le titre, le contenu et tous les autres attributs de ta page, même jusqu'au TV (mais là tu verras par la suite).
J'espère que cet exemple t'auras aidé à mieux comprendre le fonctionnement des pages et rien ne vaut que d'essayer en reprenant cet exemple (s'il n'a pas d'erreurs) simple et en l'adaptant à tes propres noms etc... La documentation de Modx et de pdOTools seront vraiment très utiles aussi. Bon courage.