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

    J’ai voulu m’essayer au fonctionnement des plugins mais je n’obtiens aucune réaction de la part de MODx (0.9.5).
    Voici le code de mon plugin :

    <?php
    $e = &$modx->Event;
    switch ($e->name) {
        case "OnWebPagePrerender":
            $o = $modx->documentOutput;
            $o = str_replace("essai","plouf",$o);
            $modx->documentOutput = $o;
            break;
        default :
            return; // stop here - this is very important.
            break;
    }
    ?>


    Vous l’aurez compris, pour l’essai tout simple, je souhaite remplacer toutes les occurances de "essai" par "plouf" dans la page avant qu’elle ne s’affiche.
    J’ai bien coché le System Event : OnWebPagePrerender mais je n’obtiens aucune réaction. Les "essai" dans ma page restent toujours des "essai" et il n’y a aucune erreur de signalée ... pas facile à analyser ! Quelqu’un aurait-il la solution ??
      • 23050
      • 1,842 Posts
      Salut alphanono,

      Je crois qu’il faut que tu supprimes les <?php et ?>
      Ils ne sont pas nécessaires dans les codes de plugin.
        • 1240
        • 43 Posts
        rolala !! shocked Une demi journée de perdue à cause de ça !!!

        Merci beaucoup Perrine de ton aide !

        Bonne prog à toi wink
          • 23050
          • 1,842 Posts
          Oui des fois on tourne en rond pour des trucs tout bêtes wink

          Bonne continuation et tiens-nous au courant de tes plugins, ça peut nous intéresser ! ^^
            • 11975
            • 2,542 Posts
            Salut,

            selon l’evenement tu peux aussi utiliser cette synatxe pour l’output

            $e->output($o);

            :-)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 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 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.

              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
              • 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

              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.
                • 18219
                • 826 Posts
                Excellent travail (du moins à la lecture de ton post).
                Par contre, je pense que tu aurais du placer celui ci dans un nouveau fil lié à directresize.

                Je pense qu’un modérateur fera le déplacement wink
                Je le télécharge mais j’avoue que je ne le regarderai plus tard.
                Pour le moment je n’en ai pas le temps wink

                Pour la limite de la fonction ini_set, je ne connais pas la réponse: as-tu regarder sur le net la réponse de ce point ?
                  Marc
                  I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
                  • 1240
                  • 43 Posts
                  Voilà qui est fait (enfin j’espère que c’est ce qu’il fallait faire ...) :

                  http://modxcms.com/forums/index.php/topic,12507.0.html