We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 867
    • 241 Posts
    Pour l’instant dans mon chunck lié à un snippet de listing d’infos sur des services (tirés d’une table différente que ModX) j’ai par exemple

    <b>Horaires : </b>[+horaires+]

    J’aimerai que si horaires est vide/non rempli, rien ne s’affiche grin

    Sur le modèle
    [*content:isnot=``:then=`[*content*]`*]

    J’ai essayé
    [*horaires:isnot=``:then=`[*horaires*]`*] 

    Mais sur le wiki dans le cas ou phX n’est pas intégré dans la gestion du snippet ils conseillent d’utiliser :
    <b>Horaires : </b>[+phx:if=`[*horaires*]`:is=``:then=`{{chunk2}}`+]<br />

    ça ne renvoie rien, même si horaires est rempli.
    Mais dans tout les cas cela ne résolu pas mon pb puisque <b>Horaires :</b> est encore affiché.

    Quelle doit être la syntaxe et la logique ? faut il inclure chaque rubriques (horaires par exemple) dans un chunk différent appelé par phX ?
    Merci d’avance à ceux qui touche leur billes avec phX smiley

    M.
      • 11975
      • 2,542 Posts
      Salut,

      si les placeholders sont inconnus de modx, il n’y a aucune chance que ca marche.
      Idealement il faut utiliser PHx dans le code de son snippet ou bien la fonction setPlaceholder de MODx pour chaque variable du chunk.

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 867
        • 241 Posts
        Et comment fait on ça svp mr helio ?

        Moi dans mon snippet je n’ai que
        output = '';
        while ( $row = $modx->fetchRow( $sql ) ){
          $output .= $modx->parseChunk('ListChunk',$row,'[+','+]');



        Et aprés il faut faire un chunk différent par row/rubriques ?!
          • 6726
          • 7,075 Posts
          [anchor=ifempty][/anchor]

          Edit : je n’ai pas tenu compte de ton dernier post dans ma réponse, on a posté quasiment en même temps...

          Ca ne marchera pas comme ça, dans ton cas il faut utiliser [tt]ifempty[/tt] qui fonctionne de la manière suivante (testé uniquement sur un placeholder mais ça doit marcher sur une tv, puisque les filtres date fonctionnent ainsi) :

          [tt]<b>Horaires : </b>[*horaires:ifemtpy=`{{chunk2}}`*]
          [/tt]


            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l&#39;outil id
            • 11975
            • 2,542 Posts
            Alors le plus simple c’est d’utiliser la class cchunkie ou le preparser PHx.

            Avec cchunkie ca donne

            if(!class_exists(’cchunkie’)){
            include(path_to_cchunkie);
            }

            while ( $row = $modx->fetchRow( $sql ) ){
            $c = new cchunkie(’ListChunk’);
            $c->Set($row);
            $output .= $c->Render();

            }

            Dans ce cas les [+variable:isnot=``:...+] du chunk seront correctement interprétés.

            :-)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 867
              • 241 Posts
              Merci à tout les 2.

              Je ne connais pas cchunkie mais je vais chercher.. vu qu’il me semble que cela permet de ne pas afficher le titre devant la variable si elle est vide.
                • 867
                • 241 Posts
                Helio, j’ai copié:coller ton code en lieu et place du mien.

                J’obtiens un :
                 Unknown(path_to_cchunkie): failed to open stream: No such file or directory


                faut il lui renseigner à la main ? include(path_to_cchunkie); ? huh
                  • 11975
                  • 2,542 Posts
                  Salut,

                  oui il faut que tu indiques le chemin qui correspond à ton installation.

                  :-)
                    Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                    • 867
                    • 241 Posts
                    J’ai récupéré chunkie.class.inc.php depuis maxigalery et uploader dans le repertoire assets/plugins/phx/chunkie.class.inc.php

                    mais j’obtiens Fatal error: Cannot instantiate non-existent class: cchunkie in /homepages/22/d204225785/htdocs/rlk/manager/includes/document.parser.class.inc.php(769) : eval()’d code on line 19

                    Mais il ne me dit plus que le fichier n’existe pas. Alors pourquoi non existente class. Il en manque un bout ? j’ai oublié qq chose ? huh

                    if(!class_exists('cchunkie')){
                    include('assets/plugins/phx/chunkie.class.inc.php');  // site dans repertoire /rlk et non à la racine
                    } 
                    
                    
                    
                    while ( $row = $modx->fetchRow( $sql ) ){
                    $c = new cchunkie('ListChunk');
                    $c->Set($row);
                      $output .= $c->Render();
                    
                    }
                      • 11975
                      • 2,542 Posts
                      Salut,

                      il faut ouvrir le fichier de la class pour voir le nom exact de celle ci.
                      Dans ce cas i ls’agit de mgChunkie (cchunkie un peu modifié par Doze)

                      Donc changer le nom dans le code du snippet.

                      :-)
                        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l