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

    Suis désolée, en ce moment, je pose plus de questions que ce je réponds mais suis encore noob à MODx et y’a encore des concepts qui m’échappent... et puis y’a pas de questions suffisamment noob auxquelles je puisse répondre !

    Enfin bon bref.

    J’ai un document qui détaille les caractéristiques d’un produit.
    A ce produit, je souhaiterai attacher les caractéristiques du fabricant, caractéristiques qui sont affichées dans un autre document.

    Pour bien détailler :

    Mon document (5) contient les éléments de mon produit.
    Un autre document (12) contient les éléments du fabricant.

    Dans le modèle (produits), j’appelle toutes les TV du document 5 et je souhaiterai en plus appeler certaines TV du document 12. Relier le document 5 au 12 est pas compliqué puisque je peux créer une TV (dans le document 5) dans lequel je spécifie le numéro 12 pour lier produit et fabricant.
    Ma question est : comment, dans le template, je peux appeler des éléments du doc 12 alors que j’affiche le 5.

    Vous me suivez ? C’est possible ?

    Ou alors, encore plus basique, au lieu d’afficher les détails du fabricant sur la fiche produit, je fais un lien vers la fiche fabricant... mais c’est vraiment pas top car l’information est trop diffuse.

    Voilà, si quelqu’un voit comment procéder, je suis preneuse smiley
      • 6726
      • 7,075 Posts
      Oui c’est possible perrine, là je suis un peu crevé (trop de boulot intellectuel, ça sature les neurones), mais un point de départ est de regarder du côté du paramètre hiddentv dans Ditto pour opérer un tri sur une TV que tu n’affiche pas...

      Je cite la doc :

      $hiddenTVs Allows the snippet to filter by TV’s not in the template. Separate by comma.

      Par contre à vérifier si le paramètre est bien hiddenTVs et non hiddenTV, je doute un peu de la doc sur ce coup... avant dans NewsListing c’était "hiddentv", maintenant Mark est passé en CamelCase pour les paramètres mais le "s" me semble bizarre...
        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l'outil id
        • 23050
        • 1,842 Posts
        Repose toi si tu es fatigué wink Moi aussi j’ai trop MODxisé cette semaine, je m’emmêle les pédales :p

        Ok, je vais regarder Ditto... finalement, je crois que j’ai mal du comprendre les fonctions de ce snippet, je pensais qu’il était exclusivement réservé pour faire les menus de nav, mais je crois que ces fonctionnalités sont plus importantes (tout le monde en parle !)

        Merci et bon week-end wink
          • 23050
          • 1,842 Posts
          Ok, je crois que je vois le bout !

          David, j’ai fouillé mais je n’ai pas compris comment utiliser hiddenTV avec Ditto.
          En revanche, merci de m’avoir aiguillé vers cet excellentissime snippet que j’avais mis de côté... quelle nouille ! :p

          J’ai presque réussi à faire ce que je souhaite.
          Ditto me permet d’appeler un document (indépendant de celui que j’affiche) qui me sert à construire un bout de code HTML via les chuncks.

          Le seul hic que je rencontre est qu’on ne peut (sauf erreur de ma part) appeler que les documents d’un dossier et pas un document particulier, comme c’est le cas chez moi.

          Je viens de poser la question ici : http://modxcms.com/forums/index.php/topic,5129.0.html

          Je vous tiendrai au courant... Je pensais que ce que je souhaite faire serait plus commun ^^ Enfin, j’espère que mes pérégrinations (et mon monologue laugh) pourront un jour servir à quelqu’un d’autre que moi wink
            • 6726
            • 7,075 Posts
            MODx sans Ditto, j’ai envie de dire ce n’est plus vraiment MODx... ce snippet est si puissant et indispensable pour gérer le contenu...

            Normalement tu utilise hiddenTV lorsque tu souhaites effectuer un tri sur une variable de modèle qui n’est pas lié au template en cours, de la manière suivante :

            Exemple d’un annuaire d’entreprise que j’avais créé :

            [[NewsListing? &startID=`72` &tpl=`fiche_alpha` &filter=`tvalpha,A,1` &hiddentv=`alpha` &sortdir=`asc` &summarize=`500` &hidefolders=`true`]]


            Exemple d’un catalogue de voyages :

            [!NewsListing? &startID=`27` &tpl=`fiche` &hiddentv=`promotion` &filter=`tvpromotion,oui,1` &truncText=`Voir le détail de la fiche` &emptytext=`Désolé le catalogue ne comporte pas encore de fiche dans cette catégorie`!]


            C’est le même principe avec Ditto : attention le filtre doit contenir le préfixe tv alors que dans le paramètre hiddentv ce n’est pas nécessaire.

            J’espère que ça t’aide smiley

            Sinon, pour appeler un document particulier, à mon avis du devra utiliser l’API, ce sera donc un peu plus complexe...
              .: COO - Commerce Guys - Community Driven Innovation :.


              MODx est l'outil id
              • 23050
              • 1,842 Posts
              mmm donc si je décortique ton premier appel de Ditto :
              Tu souhaites afficher les 500 premiers documents du dossier 72, dont le tv "alpha" est égal à A , dans le chunck "fiche_alpha" ?

              Je ne comprends pas ce qu’est le 1 du &filter, ni pourquoi on répète le tv dans hiddentv et filter ?

              J’espère que ça t’aide
              A l’heure actuelle, je suis dans une phase où toute info est bonne à prendre :p Donc oui ça m’aide wink

              Je crois que je viens de comprendre (il était temps !) comment je peux utiliser hiddentv dans mon cas. Dis-moi si je me gourre :
              Je vais appeler LE document fabricant dont le pagetitle=le_nom_de_mon_fabricant grâce à :

              [[Ditto? &tpl=`fabricant` &startID=`7` &filter=`pagetitle,[*fabricant-pdt*],1` hiddentv=`pagetitle`]]

              où 7 est le numéro de mon dossier "Fabricants" (du coup, plus de prise de tête avec l’appel d’un document unique)
              pagetitle est la variable sur laquelle je fais mon test (et comme c’est pas une tv, pas la peine d’utiliser le préfixe)
              [*fabricant-pdt*] est la tv de mon template "produit" puisqu’il faut bien que, à un produit A, je fasse coincider un fabricant B.

              Effectivement, c’est une 2ème manière de voir les choses. Je vais tester ça. Possible que ma syntaxe ne soit pas bonne, possible aussi qu’on ne puisse pas réaliser de filtre avec comme argument une tv (en l’occurence [*fabricant-pdt*]). Et j’ai mis 1 car je ne sais pas à quoi ça correspond laugh
                • 6726
                • 7,075 Posts
                il faut que tu modifies ton filtre par &filter=`tvpagetitle,[*fabricant-pdt*],1`

                Ca devrait marcher avec une TV pas de raison, le 1 c’est pour tester que la condition est vrai, 0 pour fausse smiley
                  .: COO - Commerce Guys - Community Driven Innovation :.


                  MODx est l'outil id
                  • 23050
                  • 1,842 Posts
                  Bizarre, le filtre fonctionne si j’utilise une tv que j’ai créée mais pas sur une tv du template par défaut (ici pagetitle). Tu as déjà remarqué ?
                    • 6726
                    • 7,075 Posts
                    Jamais essayé de filtrer à partir d’une "document variable", d’ailleurs il y a une erreur dans ce que j’ai dit plus haut, pas fait attention pour ce type de variable tu avais raison, pas de préfixe tv c’était donc bien &filter=`pagetitle,[*fabricant-pdt*],1`

                    Ca ne marche pas ?
                      .: COO - Commerce Guys - Community Driven Innovation :.


                      MODx est l'outil id
                      • 23050
                      • 1,842 Posts
                      Effectivement, pas besoin du tv en préfixe pour une variable de document... j’y ai pensé en allant me coucher lol
                      Je viens de tester et ça marche niquel !

                      Vraiment puissant ce truc !! Je crée un tv "drop list" avec la liste de mes fabricants, j’assigne la tv au template "produit" et il me suffit ensuite de sélectionner le fabricant pour chaque produit et tout roule... Je suis bluffée !!!