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
    Mmmh ok, les &img sont maintenant ajoutées à l’url mais je reviens sur ma question : comment sont assignés les numéros d’img dans l’url ?

    Les &img=1, 2 ou 3, c’est moi qui les inscris dans le chunk, manuellement. Ils ne sont pas générés automatiquement. C’est à dire que dans mon chunk qui contient 2 miniatures, initialement, j’avais ça :

    <ul id="galerie-rea">
      <li><a href="[~[*id*]~]&img=1"><img src="[(base_url)]assets/images/projets/[*id*]/picto1-s.jpg" alt="" /></a></li>
      <li><a href="[~[*id*]~]&img=2"><img src="[(base_url)]assets/images/projets/[*id*]/picto2-s.jpg" alt="" /></a></li>
    </ul>


    et si je veux 3 miniatures, j’ajoute une ligne de li

    C’est pas très dynamique mais c’était à l’époque la seule façon que j’avais trouvé pour gérer ma galerie contenant 3 dimensions différentes d’une image.

    Pour le menu droit, c’est des répertoires contenant un FirstRedirectChild, donc quand on clique, il va essayer d’afficher un document dans lequel on utilise PHx oui, est-ce que c’est ça qui le gêne ?

    Edit : je viens de comprendre la page blanche, c’est en fait que le [!FirstChildRedirect!] ne fonctionne plus et comme j’avais mis blank en template du répertoire, ça nous donne une page blanche. J’ai mis maintenant un vrai template et malgré le [!FirstChildRedirect!] en content, la redirection ne fonctionne plus. Je pense que ça vient de PHx puisque je n’avais pas le problème avant ?
      • 11975
      • 2,542 Posts
      C’est pas très nclean mais ca devrait faire l’affaire

      pour les vignettes [*id:addStart=`start,img=1`*]
      la aussi il faut enlever le [~~] autour de id
      
      global $modx;
      
      $sep = ($modx->config['friendly_urls'] != 1 ) ? "&" : "?";
      $urlString = "";
      
      //on verifie si il y a plusieurs params
      // addStart=`img` ou addStart=`start,img` 
      
      if(strpos($options,",") !== false) $myvar = explode(",",$options);
      
      if(is_array($myvar)){
      	$first = true;
      	
      	foreach($myvar as $v){
      	print($v);		
      		if($first){
      		$s = $sep;
      		$first = false;
      		}else{
      		$s = "&";
      		}
      		
      		if( $v =="start" ) {
      		
      			if(is_numeric($_GET['start'])) $urlString .= $s . "start=".$_GET['start'];
      		
      		}else{
      			if(strpos($options,"=") !== false){
      			$var2 = explode("=",$v);
      			$name = $var2[0];
      			$value = $var2[1];
      			$urlString .= $s . $name . "=" . $value ;
      			
      			}else{
      			$value = (is_numeric($_GET[$v])) ? $_GET[$v] : 1 ;
      			$urlString .= $s . $v . "=" . $value ;
      			}
      		
      		}
      	
      	}
      	
      }else{
      
      	if($options == "start"){
      
      		if (is_numeric($_GET['start'])) $urlString .= $sep . "start=".$_GET['start'];
      	
      	}else{
      	
      		if(strpos($options,"=") !== false){
      		
      			$var2 = explode("=",$v);
      			$name = $var2[0];
      			$value = $var2[1];
      			$urlString .= $s . $name . "=" . $value ;
      			
      			}else{
      		
      			$urlString .= $sep . $options . "=" . $value;
      			
      			}
      
      	}
      }
      
      $addlink = $modx->makeUrl($output,NULL,$urlString);
      
      return $addlink;
      
      


      Pour la page blanche, je sais pas si il y une incompatibilité avec PHx et firstChild
      Je ne vois pas comment le modifier peut être impliqué.
      Je vais voir le code de firstChild

      Sinon peux tu essayer d’appliquer un autre filtre de PHx dans une des pages en désactivant addStart
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 11975
        • 2,542 Posts
        Et je me suis trompé dans le code précédent

        
        global $modx;
        
        $sep = ($modx->config['friendly_urls'] != 1 ) ? "&" : "?";
        $urlString = "";
        
        //on verifie si il y a plusieurs params
        // addStart=`img` ou addStart=`start,img` 
        
        if(strpos($options,",") !== false) $myvar = explode(",",$options);
        
        if(is_array($myvar)){
        	$first = true;
        	
        	foreach($myvar as $v){
        	print($v);		
        		if($first){
        		$s = $sep;
        		$first = false;
        		}else{
        		$s = "&";
        		}
        		
        		if( $v =="start" ) {
        		
        			if(is_numeric($_GET['start'])) $urlString .= $s . "start=".$_GET['start'];
        		
        		}else{
        			if(strpos($v,"=") !== false){
        			$var2 = explode("=",$v);
        			$name = $var2[0];
        			$value = $var2[1];
        			$urlString .= $s . $name . "=" . $value ;
        			
        			}else{
        			$value = (is_numeric($_GET[$v])) ? $_GET[$v] : 1 ;
        			$urlString .= $s . $v . "=" . $value ;
        			}
        		
        		}
        	
        	}
        	
        }else{
        
        	if($options == "start"){
        
        		if (is_numeric($_GET['start'])) $urlString .= $sep . "start=".$_GET['start'];
        	
        	}else{
        	
        		if(strpos($options,"=") !== false){
        		
        			$var2 = explode("=",$options);
        			$name = $var2[0];
        			$value = $var2[1];
        			$urlString .= $s . $name . "=" . $value ;
        			
        			}else{
        		
        			$urlString .= $sep . $options . "=" . $value;
        			
        			}
        
        	}
        }
        
        $addlink = $modx->makeUrl($output,NULL,$urlString);
        
        return $addlink;
        
        
          Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
          • 23050
          • 1,842 Posts
          Visiblement, il y a aussi un problème avec GetField qui ne fonctionne plus. Je pensais que ça venait au début de Ditto (car j’avais utilisé GetField dans un chunk Ditto) mais je viens de voir PHx pose aussi problème avec GetField en dehors de Ditto.

          Je vais me renseigner.

          Merci pour le nouveau code wink C’est quoi qu’est pas clean ?

          L’url générée pour les images est de la forme : http://www.architecture-gambino.com/v2/startimg=1/v2/index.php?id=83&start=0&img=1
            • 11975
            • 2,542 Posts
            ben c’est que j’ai rafistolé pour que tu puisses utiliser img=1 etc ...
            sans prendre le temps de revoir le code en entier

            Je viens de tester chez moi.
            J’ai désactivé le plugins, décocher l’évenement "onParseDocument" et FirstChild ne marche pas.

            Il faudrait poster dans le fil PHx pour vérifier s’il n’y pas d’incompatibilité.

            en ce qui concerne les urls des vignettes c’est bizarre.
            Tu as bien enlevé les [~~]

            :-)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 23050
              • 1,842 Posts
              Ayé, je viens de poster sur le thread de PHx

              Et j’ai bien supprimé les [~ ~] donc je ne sais pas d’où vient le problème... je continue de chercher wink
                • 23050
                • 1,842 Posts
                Helio, j’essaie de comprendre le snippet que tu m’as créé pour corriger l’erreur sur l’url des vignettes. Mais, je n’arrive pas à voir dans quel if else je passe pour gérer les url sur les vignettes. Je ne sais pas où regarder pour faire des corrections.

                Le test que tu fais sur &myvar sert à quoi ? Tu regardes si c’est un tableau et si c’est un tableau (donc que ça contient 2 valeurs), ça veut dire que tu gères les url des vignettes ?
                  • 11975
                  • 2,542 Posts
                  Voici le code commenté

                  <?php //a enlever
                  
                  
                  global $modx;
                  
                  // verfie si furls sont actives et retourne le 1er separateur
                  $sep = ($modx->config['friendly_urls'] != 1 ) ? "&" : "?";
                  $urlString = "";
                  
                  //on verifie si il y a plusieurs params
                  // addStart=`img` ou addStart=`start,img` 
                  if(strpos($options,",") !== false) $myvar = explode(",",$options);
                  
                  if(is_array($myvar)){
                  //il y a plusieurs variables passees en options
                  	$first = true;
                  	
                  	foreach($myvar as $v){
                  	//on parcours le tableau de variable
                  	
                  		if($first){//determine quel separateur utiliser
                  		$s = $sep;
                  		$first = false;
                  		}else{
                  		$s = "&";
                  		}
                  		
                  		if( $v =="start" ) {//traitement de start
                  		
                  			if(is_numeric($_GET['start'])) $urlString .= $s . "start=".$_GET['start'];
                  		
                  		}else{
                  		//on verifie si la valeur contient "=", ex:img=1
                  			if(strpos($v,"=") !== false){
                  			//si oui on explose la valeur pour creer un tableau
                  			$var2 = explode("=",$v);
                  			$name = $var2[0];//le nom de la variable
                  			$value = $var2[1];//la valeur de la variable
                  			//on construit la chaine de parametres
                  			$urlString .= $s . $name . "=" . $value ;
                  			
                  			}else{
                  			//la valeur ne contient pas "="
                  			$value = (is_numeric($_GET[$v])) ? $_GET[$v] : 1 ;
                  			//on construit la chaine de parametres
                  			$urlString .= $s . $v . "=" . $value ;
                  			}
                  		
                  		}
                  	
                  	}
                  	
                  }else{
                  //il n'y a qu'une option
                  	if($options == "start"){
                  	//si elle est egale a start
                  		if (is_numeric($_GET['start'])) $urlString .= $sep . "start=".$_GET['start'];
                  	
                  	}else{
                  	//ce n est pas start
                  	
                  		if(strpos($options,"=") !== false){
                  		//verifie si l'option contient un "="
                  			$var2 = explode("=",$options);// cree un tableau
                  			$name = $var2[0];//nom de la variable
                  			$value = $var2[1];//valeur de la variable
                  			//on construit la chaine de parametres
                  			$urlString .= $s . $name . "=" . $value ;
                  			
                  			}else{
                  		// elle ne contient pas "="
                  		//on construit la chaine de parametres
                  			$urlString .= $sep . $options . "=" . $value;
                  			
                  			}
                  
                  	}
                  }
                  
                  //on cree le lien avec id=output et ajoute la chaine de caractere cree precedemment
                  $addlink = $modx->makeUrl($output,NULL,$urlString);
                  
                  return $addlink;
                  
                  
                    Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                    • 23050
                    • 1,842 Posts
                    Bon lol il y a du avoir une erreur lors d’un copier / coller car la dernière version que tu mets fonctionne bien wink

                    Merci encore Helio ! smiley