We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1240
    • 43 Posts
    ouf !! On y arrive !!

    Juste pour être sûr du truc, fais bien attention, les liens générés sont maintenant en relatif mais sont toujours stockés en absolu dans la base de données. Donc ma bidouille fonctionne mais ne change pas grand chose au problème soulevé par Perrine !

    Bon, je vais inclure ce changement dans le plug en version 07 ... dès fois que ça en arrange certains ...

    (A l’occaz, il va vraiment falloir que je me mette à apprendre à faire des catalogue comme vous deux !)
      • 5727
      • 160 Posts
      Bon, j’ai installé le plugin, mais j’ai le même problème que David. Par contre, moi mes sources d’images sont relatifs à la racine du serveur, c’est à dire qu’elles commencent par ’/’. J’ai ajouté des fonctions qui log le comportement du plugin dans le Manager pour étudier un peu. Je pense qu’il manque un peu de robustesse du côté des paths. Je vais voir si je peux pas patcher le code de manière minimal pour que ça marche avec toutes les types de lien.

      Aussi, si vous avez besoin d’aide pour traduire quoi que ce soit, je suis bilingue alors je peux aider.

      Edit: J’ai arrangé le problème des src qui commencent par ’/’. J’ai ajouté ces lignes aux modifs que alphanono a proposé davidm( ligne 61 ):
       } elseif ( substr($lien_img,0,1) == '/' ){
          $lien_img_relatif = substr($lien_img,1);
      
        Olivier Deland
        Montreal, Canada - Web Developer
        • 1240
        • 43 Posts
        Tu devrais commencer par vérifier si tu as bien créé les dossiers nécessaires (cache, ...) avec les bons CHMOD (777 par exemple) et vérifier que les chemins indiqués dans les variables sont les bons (pas de problème de majuscule par exemple), parceque le plugin fonctionne très bien chez ceux qui l’ont installé et utilisent des liens relatifs.

        Je serais quand même bien curieux de voir ce que ça donne chez toi. Tu aurais une adresse, la liste de tes variables, ... ?

        Tu dis avoir le même problème que David mais il en a eu plusieurs. Pourrais-tu définir les symptômes ?
          • 1240
          • 43 Posts
          Bon ba ok, je vois que c’est résolu ... je rajoute la modif dans la v07
            • 6726
            • 7,075 Posts
            Un chemin relatif ne commence pas par "/" normalement...

            Ce n’est pas <img src="/assets/images/mon_image.jpg" /> mais <img src="assets/images/mon_image.jpg" />

            le problème ne viendrait il pas de là ?

            Sinon, penser à bien mettre <base href="[(site_url)]" /> dans les templates, lorsqu’on bosse en relatif...
              .: COO - Commerce Guys - Community Driven Innovation :.


              MODx est l&#39;outil id
              • 5727
              • 160 Posts
              Tout d’abord, je voulais vous dire que vous faites du très bon travail!

              Pour ce qui est des chemins, il y a trois type:

              • relatif au document courant: commence immédiatement par le nom du fichier ou du répertoire
              • relatif à l’hôte: débute par une barre oblique (/)
              • absolue: contient le protocole et le nom de domaine


              Chacun préfère ça façon, mais je crois qu’il est important de faire la différence et de savoir que les différentes manières de l’écrire existent. J’avoue que le relatif au document est le meilleur moyen, surtout pour le passage en production, mais il est important de ne pas laisser les autres pour contre.

              En expérimentant avec le plugin, j’ai trouvé un autre problème. Si l’adresse contient un caractère encodé, comme un espace (%20) ou autre, le plugin échoue silencieusement. Il faudrait rajouter la fonction urldecode() à quelque part avant d’aller chercher le fichier d’origine, mais je n’ai pas vraiment regarder où...

              Je regarde et je vous reviens là-dessus
                Olivier Deland
                Montreal, Canada - Web Developer
                • 1240
                • 43 Posts
                Effectivement, on n’est pas censé écrire "/assets..." et de toute façon, ça n’affichera pas l’image avec cette syntaxe dans la balise <img>. Par contre, il est vrai que parfois certains font ce genre d’erreur dans la déclaration des paths dans les variables. Donc par sécurité, ça mange pas de paim, ... j’ai rajouté ça au début, dans le traitement des variables :

                if (substr($path,0,1) == '/')		$path 		= substr($path,1);
                if (substr($lien_base,0,1) == '/')	$lien_base 	= substr($lien_base,1);
                if (substr($lien_plugin,0,1) == '/')	$lien_plugin 	= substr($lien_plugin,1);


                Au fait, à propos de la balise <base href="">, je n’en connais pas vraiment l’intérêt ou le principe ... Tu aurais 2sec pour m’expiquer ça ? (STP)

                Pour CW qui a répondu entre temps ... il faudrait mettre l’urldecode() sur la variable $lien_base juste après sa récupération aux alentours de la ligne 36 pour moi.
                  • 5727
                  • 160 Posts
                  Merci pour le pointeur...

                  pour ce qui est des chemins, ce n’est pas une erreur de la faire, détrompez-vous. J’ai fait une recherche sur google pour vous trouvez la référence: http://fr.wikipedia.org/wiki/Uniform_Resource_Locator#Fonctionnement. Vous trouvez quelques lignes plus bas:
                  Nom complet de la resource à demander sur le service une fois connecté

                  * /chemin/d/ - chemin absolu (commençant par un /) sur le service contenant la page Web, obligatoire pour les services à chemin d’accès (par défaut ce chemin sera /).

                  Bon, je sais, je suis orgueilleux, vous m’excuserez...

                  mais bon, j’ai continué à faire des tests et j’ai découvert un problème avec les images GIFs transparents. En effet, quand les GIFs sont redimmensionner, la couleur de transparence n’est pas configurer pour l’image de sorti. J’ai déjà eu ce problème auparavant et j’avais trouvé une solution sur le Web. Je vous en fais par ici, de mon côté je patch le code.

                  Pour avoir accès à l’info sur les GIFs transparents, il nous faut une petite classe, sois la coller à la fin du fichier source ou inclure dans un fichier externe. Voilà la classe en question:
                  /*
                   *		Class GifInfo
                   * 
                   * fred at webblake dot net
                   *
                   * Little class to get extra information from a GIF file
                   * Usefull for finding transparent pixel
                   */
                  class GifInfo
                  {
                     var $m_transparentRed;
                     var $m_transparentGreen;
                     var $m_transparentBlue;
                     var $m_signature;
                     var $m_version;
                     var $m_width;
                     var $m_height;
                     var $m_colorFlag;
                     var $m_backgroundIndex;
                    
                    
                     function GifInfo($filename)
                     {
                  
                  	   $fp                        = fopen($filename,"rb");
                  	   $result                    = fread($fp,13);
                  	   $this->m_signature    = substr($result,0,3);
                  	   $this->m_version        = substr($result,3,3);
                  	   $this->m_width        = ord(substr($result,6,1)) + ord(substr($result,7,1)) * 256;
                  	   $this->m_height        = ord(substr($result,8,1)) + ord(substr($result,9,1)) * 256;
                  	   $this->m_colorFlag    = ord(substr($result,10,1)) >> 7;
                  	   $this->m_background    = ord(substr($result,11));
                  
                  	   if($this->m_colorFlag)
                  	   {
                  		   $tableSizeNeeded = ($this->m_background + 1) * 3;
                  		   $result = fread($fp,$tableSizeNeeded);
                  		   $this->m_transparentRed    = ord(substr($result,$this->m_background * 3,1));
                  		   $this->m_transparentGreen    = ord(substr($result,$this->m_background * 3 + 1,1));       
                  		   $this->m_transparentBlue    = ord(substr($result,$this->m_background * 3 + 2,1));           
                  	   }
                  	   fclose($fp);
                     }
                  }



                  Ensuite, il faut modifier le code du fichier directResize.php, aux alentours de la ligne 165, vous trouverez ce code:
                  } else if ( $img_ext == "gif" ){
                  	$image_p 	= imagecreatetruecolor($img_min_w_calc, $img_min_h_calc);
                  	$image 		= imagecreatefromgif($GLOBALS['modx']->config['base_path'].$img_src);
                  


                  Insérez ceci tout de suite après:
                  	// S'assurer de garder la transparence!
                  	$gi = new GifInfo($GLOBALS['modx']->config['base_path'].$img_src);
                  	
                  	if($gi->m_version == '89a' && $gi->m_colorFlag == 1)
                  	{
                  		$transparent = imagecolorallocate($image_p,
                  		$gi->m_transparentRed,
                  		$gi->m_transparentGreen,
                  		$gi->m_transparentBlue);
                  	
                  		imagefill( $image_p, 0, 0, $transparent);
                  		imagecolortransparent( $image_p, $transparent );				
                  	}
                  
                    Olivier Deland
                    Montreal, Canada - Web Developer
                    • 1876
                    • 835 Posts
                    Bonjour;

                    Je travaille sur ma gallerie avec directResize.
                    Par contre j’aurai aimé utiliser la fonction "imge set" pour naviguer dans un jeu de plusieurs images.
                    Cela est activable en écrivant : "rel="lightbox[qlqchose]"

                    J’ai modifié la création du lien en dur dans le plugin mais est il possible de faire une option du plugin

                    merci
                      • 1240
                      • 43 Posts
                      Aour: le plug a été aménagé pour gérer la possibilité de mettre les images de la page dans un groupe pour Lightbox. Par contre, il va regrouper dans le même groupe toutes les images de la page qui sont traitée par directResize et qui sont en mode lightbox.
                      Si tu veux juste grouper les images de ta galerie, place les photos dans un autre dossier et duplique le plugin directResize pour appliquer des paramètres différents à ce dossier galerie. Chaque duplication du plugin directResize génère son propre nom de groupe.

                      A télécharger en version 07