We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1240
    • 43 Posts
    Et bien voilà, grâce à votre aide, mon plugin est enfin opérationnel. Et j’avoue que je suis assez content de ce que je viens de programmer ... ça va me faire gagner un temps fou par la suite.

    Le plugin (qui sera nommé directResize) se charge de lui-même de retailler et compresser les images présentent dans la page pour les optimiser avant de les envoyer au navigateur client.

    Tout l’intérêt réside dans le fait que du côté admin, il suffit de prendre l’image grandeur nature dans la bibliothèque, la placer dans la page et la redimentionner grâce à TinyMCE par exemple pour la réduire à la taille choisie. Si l’image fait 1600x1200 d’origine et que vous la redimentionnez à 300x200, une vignette sera alors automatiquement crée dans le dossier de votre choix à la taille d’affichage au moment où un visiteur ouvrira la page en question.

    Bien sûr, j’ai déjà pu trouver quelques plugins du genre sur la toile mais je n’en ai jamais trouvé un complet qui me permette de faire tout ce que je souhaite. Voici donc la liste des actions et possibilités :

    * Exécution automatiquement avant que la page ne soit envoyée au client. (Quand vous retournez dans l’admin, vous avez toujours l’image d’origine que vous pouvez redimentionner à souhaits)
    * Recherche dans la page toutes les images qui sont dans le dossier (et ses sous-dossiers) que vous avez spécifié ex: assets/images. Le but est qu’il ne redimentionne pas les images du template par exemple.
    * Détermine si les valeurs de tailles sont dans des balises de type width=100 ou dans le style : style="width: 100px" et récupère les valeurs de width et height.
    * Calcul le nom de la vignette (qui est lié aux tailles) et regarde si une vignette du même nom existe déjà. S’il y a déjà une vignette, elle ne sera donc pas recalculée.
    * Redimentionnement et enregistrement de la vignette au besoin suivant les critères d’emplacement et de type de recadrement définis. 5 modes de recadrement ont été programmés. 0: applique w et h ; 1: basé sur w ; 2: basé sur h ; 3: w max et h max ; 4: img mini pour remplir un rectangle de w x h. Seul le mode 0 est un mode non proportionnel. Gère automatiquement les .jpg, .jpeg, .gif et .png. Préserve la transparance des images .png
    * Recherche toutes les balises d’images en question et les remplace par les nouvelles balises faisant appel aux nouvelle vignettes. Suppression dans la foulée des valeurs définies dans les width et height.
    * Renvoie de la page recalculée à MODx


    Voici un lien pour voir le résultat d’une page calculée avec ce système : http://netambition.dynalias.org/modx/pageindex http://netambition.dynalias.org/dr

    Il me reste un point que je ne comprend pas. (je suis issu de l’ASP et viens de me mettre à PHP). Pourquoi le système de redimentionnement ne fonctionne pas sur des images de très grande taille ?? J’ai bien essayé de jouer avec ce paramètre : ini_set(’memory_limit’, ’4M’); mais même en le mettant à 200M, le calcul ne se fait pas. D’ailleurs, le système de gestions des images lié à TinyMCE n’arrive pas non plus à calculer la vignette de cette image.
      • 6726
      • 7,075 Posts
      Je viens seulement de le télécharger et je n’ai pas encore testé mais ce plugin va faire un malheur je pense, vu le nombre de pros qui se prennent la tête avec ce problème !

      Je teste dès que j’ai un moment smiley

      Et je pense que tu as intérêt à poster côté english aussi, tu auras alors plus de testeurs... si tu veux que je traduise l’essentiel et que je pointe vers ce post, fais moi signe !

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


        MODx est l'outil id
        • 1240
        • 43 Posts
        Merci pour tes encouragements, mais je dois bien dire que j’en ai tout autant à faire à l’équipe de MODx. Pour avoir testé et trituré plusierurs ("grands") CMS, je peux dire que ce système est vraiment bien pensé et réalisé. Je me régale à chaque fois que je dois faire quelque chose d’un peu spécial car avec ce système ... tout est possible. Bon, j’arrète là les compliments ... mais je n’en pense pas moins !

        Pour ce qui est de passer tout ça de l’autre côté de la manche, j’ai peur que ce soit un peu prématuré. Je me débrouille pas trop mal pour lire l’anglais mais pour ce qui est de répondre à d’éventuels posts ... c’est pas gagné. Je ne sais pas comment vous procédez habituellement, mais si les travaux avancent en français, ce sera plus facile pour moi de centraliser tout ça. Et c’est tellement agréable pour nous français de pouvoir s’investir dans quelques projets dans notre langue ... Bien sûr, je n’ai rien contre le partage de ce plugin avec qui que ce soit.

        Pour ceux qui souhaiteraient le tester, voici le principe d’installation (qui reste plutôt simple en soit) :

        • Créer un dossier directresize dans le dossier assets/plugins/ et y copier les fichiers du zip
        • Eventuellement créer un dossier où seront stockées à part les miniatures, genre : assets/images/cache/
        • Copier le contenu de directResize.plugin.php dans un nouveau plugin que vous nommez à votre convenance. Cocher "OnWebPagePrerender" dans l’onglet "Événements système".
          N’oubliez pas supprimer les balises <?php ?>
        • Modifier les variables du plugin au besoin.
          • 33175
          • 711 Posts
          Je trouve ton plugin très intéressant smiley Je n’ai malheureusement pas la possibilité de le tester maintenant mais je la garde sous le coude wink

          Il me semblerai encore plus intéressant (si si c’est possible wink) de le mettre dans le "repository". Pour cela, une traduction anglophone est quasi nécessaire. Un plus, serait de mettre dans un fichier texte les instructions d’installation, mais c’est peut être déjà fait smiley

          En tout cas, continue comme ça grin
            Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
            • 6726
            • 7,075 Posts
            S’il le faut, je m’occuperai de la trad, mais pas tout de suite bcp de chose à gérer simultannémment en ce moment !
              .: COO - Commerce Guys - Community Driven Innovation :.


              MODx est l&#39;outil id
              • 33175
              • 711 Posts
              Je comptais le proposer mais vu mon emploi du temps...

              Si quelqu’un le traduit avant nous, merci de l’ajouter à ce thread smiley
                Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
                • 34162
                • 1 Posts
                bonjour
                la page exemple semble absente http://netambition.dynalias.org/modx/pageindex
                  • 1240
                  • 43 Posts
                  oui, désolé, cette page peu "paraître" absente de temps en temps. C’est la page qui me sert à faire mes tests de développement, et il y a parfois des bugs qui en bloque son affichage.

                  Merci pour vos propositions de traduction. Si vous n’avez pas le temps pour le moment, c’est pas grave. Ca me permet de continuer à développer le plugin de mon côté. On pourra traduire tout ça un peu plus tard.

                  Pour le moment, j’essai de changer le fonctionnement d’appel en plaçant la programmation de redimentionnement de l’image dans une fonction indépendante qui renverrait directement le lien de l’image recalculée. C’est pas gagné, j’ai des problèmes avec des fonctions d’image qui gêne les fonctions de return.

                  Si j’arrive à faire cela, je mets en place dans la foulée un système pour lier tout ça au génial système Lightbox pour le zoom sur les images.
                    • 1240
                    • 43 Posts
                    Désolé pour ceux qui auraient été intéressés par ces travaux et qui n’ont pu consulter le site de démo aujourd’hui ! J’ai bossé sur ce plugin encore toute la journée, ce qui a occasionné de nombreuses impossibilités de consultation.

                    Mais le résultat est plutôt intéressant car maintenant, le plugin est en plus lié à Lightbox pour créer des zoom automatiquement ou sur demande.

                    Comme un forum ne permet pas d’être suffisament complet dans les démonstrations et explications, j’ai ouvert en parallèle un mini site pour ce plugin :

                    http://netambition.dynalias.org/dr (comment ça je ne me suis pas foulé pour l’interface ?? rolleyes )

                    Ce devrait être beaucoup plus claire ainsi.

                    Merci d’avance à ceux qui voudraient bien tester la bête wink Le plugin est complètement opérationnel chez moi.

                    J’attend vos remarques à ce sujet !
                      • 10828 ☆ A M B ☆
                      • 174 Posts
                      Bravo, superbe travail ! J’ai développé il y a quelques temps un bout de code dont le but est similaire dans le cadre d’un module d’Emailing en cours de finalisation, mais je n’ai pas eu le temps d’aller aussi loin... Donc, au delà de son usage en tant que Plugin, je vais tenter de l’intégrer à mon module wink Encore bravo et merci.
                      A+
                        Ackwa - Web Design & Development agency | Tours - France | Follow me on Twitter...

                      This discussion is closed to further replies. Keep calm and carry on.