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

    Je suis en train de bosser sur une integration de template a mon site développé sous MoDX.
    Pour la partie "Actus", j’ai différents blocs suivant la rubrique à laquelle les actus appartiennent... et donc différente couleurs en fonctions de ca, par exemple

    le titre de l’actu et les liens de l’actu "solidarité" sont orange
    le titre de l’actu et les liens de l’actu "gestion des déchets" sont vert

    et sont intégré de la sorte
    <h3 class="orange filet_orange" style="background:url(images/puce_orange.gif) no-repeat 2px">Solidarités</h3>
    <p><img src="images/img2.jpg" class="img_left" />Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod temporincididunt ut labore et doloremagna aliqua. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla paoccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum reprehenderit in voluptate velit esse reprehenderit in voluptate....  
    <a href="#" class="lien_article orange">Lire la suite</a><br />
    <strong><a href="#" class="lien_article orange">>> Tous les projets</a></strong></p>
    			
    <h3 class="vert filet_vert" style="background:url(images/puce_verte.gif) no-repeat 2px">Gestion des déchets</h3>
    <p><img src="images/img3.jpg" class="img_left" />Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiue reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla paoccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum cillum dolore sunt in culpa qui officia deserunt mollit anim id est laborum...  
    <a href="#" class="lien_article vert">Lire la suite</a><br />
    <strong><a href="#" class="lien_article vert">>> Tous les projets</a></strong></p>
    


    Mon arborescence d’actu est de la sorte
    Actualités (id 1)
    |
    ---- Solidarites (id 2)
    --- Actu 1 (id 4)
    --- Actu 2 (id 5)
    |
    ---- Gestion des déchets (id 3)
    --- Actu 1 (id 6)
    --- Actu 2 (id 7)


    Mon idée est de mettre en place au niveau du chunk qui va mettre en page mes intro d’actu (du genre "lire la suite"), une condition via PHx qui permet de ressortir la "couleur" du bloc pour n’avoir qu’un seul chunk de mise en page qui varie en fonction de l’ID du parent.

    Pas de problème au niveau de l’algo mais je ne vois pas comment le réaliser avec PHx

    Si [*parent*] = 2 alors "ma-variable-couleur" = ’orange’
    Si [*parent*] = 3 alors "ma-variable-couleur" = ’vert’
    Si [*parent*] = X alors "ma-variable-couleur" = ’etc’


    Pour ensuite utiliser mon chunk de la sorte
    <h3 class="ma-variable-couleur filet_ma-variable-couleur" style="background:url(images/puce_ma-variable-couleur.gif) no-repeat 2px">Gestion des déchets</h3>
    <p><img src="images/img3.jpg" class="img_left" />Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiue reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla paoccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum cillum dolore sunt in culpa qui officia deserunt mollit anim id est laborum...  
    <a href="#" class="lien_article ma-variable-couleur">Lire la suite</a><br />
    <strong><a href="#" class="lien_article ma-variable-couleur">>> Tous les projets</a></strong></p>
    


    Je ne vois pas comment le mettre en place?
    Via des varaibles de modèles (si oui comment, car je ne saisie il me semble pas totalement le concept a vrai dire, car si je dois utiliser cela, cela veux dire créer un modèle de page uniquement pour ces pages là, ce qui n’est pas necessaire je pense)

    Bref merci d’avance si vous pouvez me donner un petit coup de main
      Webmaster of 4 site on MODx Revolution
      MODx user since MODx 0.9.6
      http://about.me/narno07
      • 20966
      • 130 Posts
      J’ai trouvé une combine, je ne sais pas si c’est une manière bien catholique mais bon smiley

      Actualités (id 1)
      |
      ---- Solidarites (id 2) (modele de page "Actus")
      --- Actu 1 (id 4)
      --- Actu 2 (id 5)
      |
      ---- Gestion des déchets (id 3) (modele de page "Actus")
      --- Actu 1 (id 6)
      --- Actu 2 (id 7)

      Mon modele de page "Actus" contient une TV "couleur_dominante"
      "couleur_dominante" est un TV sous forme de liste simple contenant les options "orange", "violet", "vert", "gris"

      J’attribue ensuite dans mon fichier "solidarité" (id 2) la "couleur_dominante" "orange" et pour "gestion des déchets" (id 3) la "couleur_dominante" égale "vert"

      Ensuite au niveau de mon chunck d’affichage de mes actus je le met comme ca
      <h3 class="[[GetField?docid=`[+parent+]` &field=`couleur_dominante`]] filet_[[GetField?docid=`[+parent+]` &field=`couleur_dominante`]]" style="background:url(images/puce_[[GetField?docid=`[+parent+]` &field=`couleur_dominante`]].gif) no-repeat 2px">[+title+]</h3>
      <p>
      <img src="[(base_url)]vignette.php?f=../[+actu_image+]&h=100" class="img_left" />
      [+introtext+] (...) 
      <a href="[~[+id+]~]" class="lien_article [[GetField?docid=`[+parent+]` &field=`couleur_dominante`]]">Lire la suite</a><br />
      <a href="[~219~]" class="lien_article [[GetField?docid=`[+parent+]` &field=`couleur_dominante`]]"><strong>>> Toutes les actus</strong></a>
      </p>
      


      Ca a l’air de fonctionner mais est ce que ma methode est bonne ?
        Webmaster of 4 site on MODx Revolution
        MODx user since MODx 0.9.6
        http://about.me/narno07
        • 8894
        • 114 Posts
        Je n’ai pas essayé mais je pense que ce serait plus simple sans TV, en écrivant un snippet qui te renvoie la couleur en fonction du parent, du style:
        switch($modx->documentObject['parent']) {
        case 2: return 'orange';
        case 3: return 'vert';
        case X: return 'etc';
        default: return '';
        }
          • 20966
          • 130 Posts
          je vais essayer de la sorte alors, merci du conseil smiley
            Webmaster of 4 site on MODx Revolution
            MODx user since MODx 0.9.6
            http://about.me/narno07
            • 20966
            • 130 Posts
            Ta technique est plus simple à mettre ne place c’est vrai, mais par contre, vu que c’est pour afficher le style d’une news sur la page d’accueil, le $modx->documentObject[’parent’] est toujours égal à 0 et donc ca ne fonctionne pas dans mon cas, ya t’il moyen de trouver le "parent" du document news plutot que le parent de la page affichée ?
              Webmaster of 4 site on MODx Revolution
              MODx user since MODx 0.9.6
              http://about.me/narno07
              • 8894
              • 114 Posts
              Encore une fois je n’ai pas testé, mais essaye ceci:
              <?php
              // Rajout d'un parametre &newsId pour le snippet, qui doit contenir l'ID du document de la news
              // Par defaut j'y ai mis l'ID du document courant, qui devrait etre ta page d'accueil
              $newsId = isset($newsId) ? $newsId : $modx->documentIdentifier;
              
              // Recuperation des informations sur le document de la news
              $newsDoc = $modx->getDocument($newsId);
              
              // Renvoi de la couleur en fonction du parent
              switch($newsDoc['parent']) {
              case 2: return 'orange';
              case 3: return 'vert';
              case X: return 'etc';
              default: return '';
              }
              ?>
              
                • 20966
                • 130 Posts
                Merci,

                Je viens de modifier mon Snippet [[Couleur_Ambiance]] à l’aide de ton code, voici le snippet
                <?php
                // Rajout d'un parametre &newsId pour le snippet, qui doit contenir l'ID du document de la news
                // Par defaut j'y ai mis l'ID du document courant, qui devrait etre ta page d'accueil
                $newsId = isset($newsId) ? $newsId : $modx->documentIdentifier;
                //echo $newsId;
                
                // Renvoi de la couleur en fonction du parent
                switch ($newsId) {
                case 220:
                    echo "violet";
                    break;
                case 226:
                    echo "violet";
                    break;
                case 221:
                    echo "orange";
                    break;
                case 224:
                    echo "orange";
                    break;
                case 222:
                    echo "orange";
                    break;
                case 225:
                    echo "vert";
                    break;
                default :
                	echo "gris";
                	break;
                }
                ?>
                


                Voici l’appel via un chunk
                <h3 class="[[Couleur_Ambiance? &newsId=`[+parent+]`]] filet_[[Couleur_Ambiance? &newsId=`[+parent+]`]]" style="background:url([(base_url)]assets/templates/ccvd/images/puce_[[Couleur_Ambiance? &newsId=`[+parent+]`]].gif) no-repeat 2px">[+title+]</h3>
                <p>
                <img src="[(base_url)]vignette.php?f=../[+actu_image+]&h=100" class="img_left" />
                [+introtext+] (...) 
                <a href="[~[+id+]~]" class="lien_article [[Couleur_Ambiance? &newsId=`[+parent+]`]]">Lire la suite</a><br />
                <a href="[~219~]" class="lien_article [[Couleur_Ambiance? &newsId=`[+parent+]`]]"><strong>>> Toutes les actus</strong></a>
                </p>
                


                Ce n’est pas exactement ce que tu m’a donné mais grace a toi j’ai pu y arriver, merci beaucoup.
                Ca marche a priori (sauf bug non decelé), je passe le post en résolu
                Merci
                  Webmaster of 4 site on MODx Revolution
                  MODx user since MODx 0.9.6
                  http://about.me/narno07
                  • 6726
                  • 7,075 Posts
                  Juste pour info on peut faire la même chose sans passer par un snippet custom, via le snippet UltimateParent, j’ai fait ça pour un site il y a quelque temps...

                  Remplacer l’appel de ton snippet par [tt]nom_de_classe_[[UltimateParent? &id=`[+id+]` &topLevel=`1`]][/tt]

                  Evidemment à ajuster cas dans mon cas, le stylage était conditionné au parent ultime (i.e la rubrique d’appartenance) mais tu peux changer &topLevel et même le paramètre &top où tu peux spécifier une ID. (Cf la doc du snippet). Attention dans mon cas pour obtenir l’ID j’utilise [tt][+id+][/tt] car je suis dans un template Ditto mais dans une page il faut utiliser [tt][*id*][/tt]
                    .: COO - Commerce Guys - Community Driven Innovation :.


                    MODx est l&#39;outil id