Bonjour tout le monde,
Je transfère enfin mon savoir sur MODx ! (Un grand merci à Heliotrope et mrcou qui m’ont beaucoup aidé pour réaliser ce snippet

)
Objectif du Snippet : Dans une architecture contenant Dossier 1 > Document A, récupérer le contenu d’une tv de Dossier 1alors que l’on affiche le Document A
Etape 1 : Créer le snippet
1- Aller à Ressources > Gestion des Ressources > Snippet > Nouveau snippet
2- Nom du Snippet : GetParentTitle (mais vous pouvez choisir ce que vous souhaitez)
3- Description : Affiche une tv du document Parent
4 - Copier/Coller le code ci-dessous dans le Contenu du Snippet :
$id=(!isset($id)) ? $modx->documentObject['id'] : $id;
if($id==0)return;
$target=(!isset($target)) ? 'pagetitle' : $target;
$parent = $modx->getParent($id,1,$target);
$parent = $parent[$target];
return $parent;
Grâce à la 3ème ligne, on définit que par défaut, on souhaitera afficher le [*pagetitle*]. Nous verrons ensuite comment appeler une autre tv.
5- Enregistrer
Etape 2 : Insérer le Snippet dans un template ou un chunck
1- Sélectionner le template (ou le chunck) dans lequel vous souhaitez afficher le titre du document en cours.
2- Insérer à l’endroit souhaité le code suivant :
[!GetParentTitle? &target=`tv_a_afficher` &id=`[*id*]`!]
Explication du code : Remplacer tv_a_afficher par la tv que vous voulez : pagetitle, introtext...
[*id*] permet de récupérer l’id du document en cours. Le snippet se charge ensuite de calculer l’id du document parent et d’aller charger la tv de ce document.
Info : En appelant uniquement [!GetParentTitle!], le snippet récupère automatiquement l’id du document en cours et le pagetitle du document parent.
Etape 3 : Laisser bosser MODx
Pour aller plus loin - exemple 1
Vous souhaitez faire un lien pour accéder au document parent ? Facile :
1- Insérer le code ci-dessous à l’endroit souhaité :
<a href="[~[*parent*]~]">[!GetParentTitle? &id=`[*id*]`!]</a>
Explication du code : dans la balise <a>, [*parent*] permet de récupérer l’id du document parent. [~xxx~] permet d’afficher un lien vers le document xxx donc il suffit de remplacer xxx par [*parent*] pour afficher un lien vers le document parent... Pas bête !