We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2327
    • 214 Posts
    Bonjour,

    Je cherche à générer un plan de site contenant, outre la hiérarchie des pages, l’arborescence du contenu de ces pages depuis leurs balises H1, H2,...

    Je suis étonné de ne rien trouver qui fasse cela. Wayfinder s’arrête aux pages (sauf erreur).

    J’avais trouvé il y a longtemps deux outils Page TOC Generator et AUTOMATIC TOC permettant de générer des sommaires dans les pages depuis leurs titres H1..Hn, mais je n’ai pas trouvé le moyen de récupérer automatiquement ces sommaires dans un sitmap global.

    Pouvez-vous m’aider ? Peut-être qu’un plugin existe et que j’ai mal cherché ?

    Merci.
      • 2327
      • 214 Posts
      On me conseille en fait d’utiliser Ditto...mais ce ne semble pas aisé pour un débutant.

      Qu’en pensez-vous ? Je ne parvins pas à trouver de tuto en ligne.
        • 33976 ☆ A M B ☆
        • 571 Posts
        Bonjour,

        Dit comme ça, je pense que tu ne donnes que trop peu d’informations. Tes pages contiennent elles un nombre identique de Hn, sont-ils placés dans des Templates Variables… Si c’est le cas, je pense que Ditto (combiné à un/des chunks contenant des PlaceHolders pour tes Hn) serait effectivement la solution la plus simple.

        Appel Ditto du genre :
        [!Ditto? &parents=`0` &tpl=`chunkPlaceHolder`!]


        Et par exemple en chunk (chunkPlaceHolder) :
        <ul>
         <li>[+pagetitle+]</li>
         <li>[+tvH1+</li>
         <li>[+tvH2+]</li>
         <li>[+tvH3+]</li>
        …
        </ul>



        Sinon, je ne vois que l’écriture d’un snippet, mais quelqu’un aura certainement une autre solution à te proposer smiley

        Au passage, http://ditto.modxcms.com/ qui est une très bonne source d’informations au sujet de Ditto. Bon courage.
          • 2327
          • 214 Posts
          Merci Romain.

          En fait je souhaiterais générer sur une page dédiée au plan du site, non pas un simple :

          --Home
          --Category a
          --PageA
          --PageB
          --PageC
          --Category b
          --PageA....

          mais :

          --Home
          --Category A
          --Page a
          --Title1 H1
          --Title1 H2
          --Title2 H2
          --Title2 H1
          --Title1 H2
          --Title2 H2
          --Title1 H3
          --Title2 H3

          --page B
          ...
          --Page C
          --Category b
          --Page A....

          Le nombre de balises Hn et leurs profondeurs (1-n) sont variables d’une page à l’autre et leur tag html (<h1 name="Mon_titre">Mon titre</h1) directement placés dans le contenu de ces pages.

          Il me faudrait donc demander à Ditto de générer, à l’instar de Wayfinder, l’arborescence du site (ça, je sais faire avec WF) mais en restituant en plus dans chaque page le contenu des balises <Hn>...</Hn> s’il en trouve et les liens idoines (<a href="page_correspondante.htm#Mon_titre">Mon titre</A>

          L’exemple [+tvH1+] que tu mentionnes (merci !) requiert-il que mes titres H1-Hn soient placés dans des TV ? Pardon, je ne comprends pas très bien à quoi cela correspond.


            • 33976 ☆ A M B ☆
            • 571 Posts
            à ma connaissance oui, tes Hn devront être dans des TV afin de pouvoir utiliser des Placeholder afin d’afficher ton plan. C’est là le problème, vu que ton nombre de Hn est variable.
            Côté affichage du résultat, pas de problème puisque tu pourrais utiliser PHx (http://wiki.modxcms.com/index.php/PHx) pour vérifier si tes TV sont vides ou non avant de les afficher :
            [+tvH1:len:gt=`0`:show+]

            Qui signifie : si tvH1 contient plus de 0 caractères, alors afficher le contenu.

            En revanche, du côté backend, cela te ferait créer une quantité de TV pour tes Hn… certainement pas la meilleure solution.
            Du coup, je me pencherais plus du côté d’un snippet/plugin pour chercher et afficher la valeur des Hn de tes pages. Pour le coup, je ne te serais d’aucune utilité.

            Je te souhaite bonne chance
              • 2327
              • 214 Posts
              Merci Romain.

              C’est dingue que ce soit si compliqué de générer un plan de site incluant les Hn des pages...et que personne ne s’y soit intéressé depuis que Modx existe (j’ai du mal à y croire).

              Si Ditto n’est pas la solution, il faudrait que je parvienne à combiner (dans mon ignorance de débutant), WayFinder avec l’un des deux plugin précités (Autotoc ou PageToc) si j’arrive à placer leur résultat non dans le corps des pages correspondantes mais dans un TV.

              Il sera alors ensuite aisé de récupérer le contenu de ces TV dans wayFinder pour les afficher dans le plan du site......

              Merci en tout cas pour ces précisions sur Ditto et semble-t-il ses limites pour le besoin formulé !

              Edit: bon en tout cas grâce à toi et Fairytree, je connaitrais la syntaxe pour inclure le tv de la page en cours...Merci !
                • 33976 ☆ A M B ☆
                • 571 Posts
                Tiens, je viens de voir (sur la ML OVH) quelque chose qui pourrait t’intéresser : http://simplehtmldom.sourceforge.net/
                à adapter en snippet si tu te sent à l’aise avec php smiley
                  • 2327
                  • 214 Posts
                  Très intéressant en effet mais un peu ardu pour mes modestes compétences php...

                  En revanche si quelqu’un me dit comment récupérer les placeholder d’Autotoc ou Page toc generator dans WayFinder, je suis preneur et sauvé !

                  Merci en tout cas Romain de cette info !
                    • 1778
                    • 659 Posts
                    Hello,

                    Je suis sous Revo et je fais quelque chose dans ce gout là sans nul besoin de TV pour les ToC.

                    J’ai créé un snippet qui génère la table des matières du document que j’indique en entrée. (en l’occurrence le "current document").
                    Ce snippet extrait toutes les balises Hn de [[*content]] et les restitue sous forme de liste de liens cliquables. Il va sans dire que la hiérarchie des titres est respectée et que l’imbrication de listes l’est aussi.
                    Par ailleurs et pour ne pas altérer le texte original du content, si le sommaire est présent dans le document j’affiche une "copie" du content enrichi des liens ancres (qui permettent en cliquant dans le sommaire d’atteindre le titre Hn concerné). Il ne s’agit que d’une "ruse" d’affichage, le content n’est pas modifié et ainsi le rédacteur du contenu n’est pas obligé d’insérer manuellement les ancres qui vont bien. (je mets une condition dans le template sur l’affichage du content, si pas de sommaire on affiche le content original, sinon on affiche le content avec les ancres)

                    Ce snippet est placé dans mon template tout bêtement entre 2 balises div ( <div id="sommaire">[[!tdmGenerator]]</div>)

                    J’ai dans mon cas j’ai fait le choix d’afficher ou pas le sommaire sur les pages en fonction du choix dans une TV (afficher le sommaire oui/non).

                    Je n’ai pas encore attaqué la partie plan du site mais ça ne saurait tarder...

                    L’idée est de récupérer le placeholder ’sommaire’ (généré par le snippet) de chaque page sur laquelle il y a un sommaire et de l’intégrer dans le rendu wayfinder...

                    Si ça t’intéresse, je peux t’envoyer mon snippet (pour Revo mais ça devrait le faire aussi sous Evo en l’adaptant j’imagine).

                    Cheers
                      • 2327
                      • 214 Posts
                      Merci bp Anso...

                      A l’instar de ce que faisiat Automatic Toc http://modxcms.com/extras/repository/packages/toc ou Page Toc Generator http://modxcms.com/extras/?package=331 ?

                      Je n’ai pas testé ces outils sur evo mais avais utilisé le premier avec succès sur des versions de 2007....

                      Je veux bien en effet volontiers tester ton snippet sur evo.

                      L’idée est de récupérer le placeholder ’sommaire’ (généré par le snippet) de chaque page sur laquelle il y a un sommaire et de l’intégrer dans le rendu wayfinder...

                      Bravo ! C’est exactement ce dont je souhaiterais moi aussi disposer pour offir un plan de site "digne de ce nom" aux lecteurs. Mais comment insérer ce placeholder dans WF ? C’est toute la question, même si ce ne doit pas être très compliqué puisqu’il peut le faire. En l’occurence, il s’agirait de récupérer le placeholder non dans le contenu de la page (ce contenu n’est pas suffisamment hiérarchisé en profondeur pour justifier un sommaire sur chacune de mes pages) mais dans un TV de la page ré-injectable dans WF...


                      En tout cas ton idée est excellente et serais je pense utile à beaucoup, voir même à une future version de WF, dont je suis surpris qu’il ne l’intègre déjà pas depuis tout ce temps !