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

    je viens de me lancer dans la création d’un site sous modx n’ayant jamais utlisé ce CMF je fais appel à vous.

    J’ai un soucis afin de créer un slideshow j’ai créé 5 TV img1,img2,img3,img4,img5.

    Je souhaiterais les récupérer dans un snippet afin de tester si ces TV sont vides ou non et ainsi de générer mon slideshow avec le bon nombre de panel.

    Je suppose qu’il faut utiliser gettemplateVar mais je ne comprend pas comment utiliser et exploiter cette fonction.

    Merci à tous de m’avoir lu et peut être de votre aide.
      • 34001
      • 428 Posts
      Bonsoir,

      Bienvenue sur MODx. wink

      Bon, je ne suis pas développeur mais voilà une première piste de snippet:
      <?php
      $img = $modx->getTemplateVarOutput(array("img1","img2","img3","img4","img5"),$docid='1',$published=1);
      
      if(isset($img['img1'])) {
          echo $img['img1'];
      }
      if(isset($img['img2'])) {
          echo $img['img2'];
      }
      // etc.
      ?>

      J’imagine qu’on doit pouvoir inclure les tests dans un foreach, histoire d’automatiser tout ça.

      Sinon, il y a toujours le plugin PHx qui permet de tester des variables mais c’est pas tip top en termes de performances.
        Intégrateur web freelance
        • 17636
        • 6 Posts
        Merci bien je vais essayé de me débrouiller avec ce début de code !

        Et je te tiens au courant wink
          • 17636
          • 6 Posts
          Bon voici mon code final ça marche du tonnerre si ça peut aider certain d’entre vous.

          <?php
          
          $docid = $modx->documentIdentifier;
          
          $img = $modx->getTemplateVarOutput(array("img1","img2","img3","img4","img5"),$docid,$published=1);
           $test1 = false;
           $test2 = false;
           $test3 = false;
           $test4 = false;
           $test5 = false;
          
          $output = "<div id='photos' class='galleryview' style='float:left;margin-right : 20px;'>";
          
          if(isset($img['img1']) && !empty($img['img1'])) {
              $output .= "<div class='panel'><img src='image.php?img=".$img['img1']."&xm=450&ym=450' /> </div>";
              $test1 = true; 
          }
          if(isset($img['img2']) && !empty($img['img2'])) {
              $output .= "<div class='panel'><img src='image.php?img=".$img['img2']."&xm=450&ym=450' /> </div>";
              $test2 = true;
          }
          if(isset($img['img3']) && !empty($img['img3'])) {
              $output .= "<div class='panel'><img src='image.php?img=".$img['img3']."&xm=450&ym=450' /> </div>";
              $test3 = true;
          }
          if(isset($img['img4']) && !empty($img['img4'])) {
              $output .= "<div class='panel'><img src='image.php?img=".$img['img4']."&xm=450&ym=450' /> </div>";
              $test4 = true;
          }
          if(isset($img['img5']) && !empty($img['img5'])) {
              $output .= "<div class='panel'><img src='image.php?img=".$img['img5']."&xm=450&ym=450' /> </div>";
              $test5 = true;
          }
          
          $output .= "<ul class='filmstrip'>";
          
          if($test1 == true) {
              $output .= "<li><img src='thumb.php?img=".$img['img1']."&xm=50&ym=50' /></li>";
          }
          if($test2 == true) {
               $output .= "<li><img src='thumb.php?img=".$img['img2']."&xm=50&ym=50' /></li>";
          }
          if($test3 == true) {
               $output .= "<li><img src='thumb.php?img=".$img['img3']."&xm=50&ym=50' /></li>";
          }
          if($test4 == true) {
               $output .= "<li><img src='thumb.php?img=".$img['img4']."&xm=50&ym=50' /></li>";
          }
          if($test5 == true) {
               $output .= "<li><img src='thumb.php?img=".$img['img5']."&xm=50&ym=50' /></li>";
          }
          
          $output .=  "</ul></div>";
          
          return $output;
          ?>


          Merci encore
            • 11975
            • 2,542 Posts
            hello,

            voici une version plus courte
            Ps testé mais devrait marcher.

            Sinon tu devrais éviter, les déclaration de style dans ton HTML et les ranger ds ton CSS.

            <?php
            
            $docid = $modx->documentIdentifier;
            $selectedTVs = array("img1","img2","img3","img4","img5");
            
            $img = $modx->getTemplateVarOutput($selectedTVs,$docid,$published=1);
            
            if(is_array($img) && count($img)>0){
            	
            	$wrapper = "<divid='photos'class='galleryview'style='float:left;margin-right:20px;'>".$imgDiv."<ul class='filmstrip'>".$ImgList."</ul></div>";
            	
            	foreach ($selectedTVs as $imgTV){
            		if(isset($img[$imgTV])&&!empty($img[$imgTV])){
            			$imgDiv.="<divclass='panel'><imgsrc='image.php?img=".$img[$imgTV]."&xm=450&ym=450'/></div>";
            			$ImgList.="<li><imgsrc='thumb.php?img=".$img[$imgTV]."&xm=50&ym=50'/></li>";
            		}
            	}
            	return $wrapper;
            }else{
            	return "Aucune image ";
            }
            
            ?>
            


            :)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 17636
              • 6 Posts
              Merci pour ce code raccourci !

              Je testerais quand j’aurais un peu de temps.

              Les style css dans le html c’était juste temporaire le temps de caler tout wink