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
    Bonsoir,

    Quelqu’un a-t-il déjà intégré l’excellent script de gestion de newsletter qu’est Wanewseletter dans MODx ?

    Il faut insérer du code php :

    <?php
    define('IN_WA_FORM', true);
    define('WA_ROOTDIR', '/chemin/wanewsletter');
    
    include WA_ROOTDIR . '/newsletter.php';
    return $output;
    ?>


    Mais en l’intégrant dans un snippet tel quel, cela me renvoie une erreur.
    A savoir que j’ai déjà essayé de l’intégrer dans d’autres cms, sans succès !

    Merci smiley
      • 20488
      • 353 Posts
      Il est vrai que ce script est puissant, mais hélas, il n’y a pas de contribution permettant de bridger ce script avec la bas webuser de MODx. C’est la raison pour laquelle je ne l’ai pas utilisée.

      Cela dit, quelle erreur t’est renvoyée ?

        • 23050
        • 1,842 Posts
        Voici l’erreur :

        Fatal error: Cannot redeclare class output in /home/histfr/www/modx/wanewsletter/includes/class.output.php on line 32


        Quand j’ai vu output, j’ai rapidement pensé que c’était un problème avec le snippet [[WAN]] que j’ai ajouté (parce que les snippets finissent généralement avec un output^^). Mais finalement, l’adresse montre que c’est une classe de Wanewsletter.

        En fait, je me moque un peu que wanewsletter récupère la liste des utilisateurs de MODx. Je ne trouve pas ça gênant d’avoir 2 bases user différentes. Je souhaiterai juste pouvoir intégrer le formulaire dans une page MODx mais je ne sais pas si c’est possible.

        Le cas échéant, je fonctionnerai comme j’ai fait jusqu’à présent : une page statique en dehors du contenu du cms que j’utilise. (Voir ici : http://www.histwar.fr + le lien vers la newsletter - on voit bien au design que c’est pas du tout intégré dans le cms (ici Textpattern)
          • 20488
          • 353 Posts
          Oui c’est une solution effectivement.

          Ton erreur, vient à priori du include. Si MODx appelle plusieurs fois le fichier de déclaration des classes, ce qui est une hypothèse plausible, cela va provoquer une erreur car la classe va être précédemment déclarée.

          Essaye peut être ceci :

          <?php
          
          if(!defined('IN_WA_FORM'))
          {
          define('IN_WA_FORM', true);
          define('WA_ROOTDIR', '/chemin/wanewsletter');
          }
          require_once(WA_ROOTDIR . '/newsletter.php');
          return $output;
          ?>


          @+



            • 23050
            • 1,842 Posts
            Toujours la même erreur avec ton code :/

            Si tu n’as pas trop le temps ni l’utilité de ce script, laisse tomber Olivier, je ferai comme j’ai fait jusqu’à présent wink

            Merci
              • 20488
              • 353 Posts
              Oki, pas trop le temps de me pencher là dessus en effet ! smiley
              Il est vrai qu’une classe nommée "output" ca peut faire un peu peur... wink

              Cela dit, si tu réussis, je veux bien avoir quelques tuyaux smiley

                • 1186
                • 202 Posts
                Je me suis aussi cassée les dents là-dessus il y a quelques temps, et j’avais adopté pour finir la méthode de la page statique hors CMS, reprenant le même design toutefois que le template général, pour ne pas qu’il y ait rupture. Ca reste donc transparent pour l’internaute. Ce n’est pas vraiment idéal question maintenance, mais bon...
                  R
                  • 16732
                  • 592 Posts
                  Il existe déja une classe Output dans Quick Edit... je pense que le problème viens de là.
                    • 23050
                    • 1,842 Posts
                    J’ai une excellente nouvelle : Hélio, a résolu le problème de l’intégration de Wanewsletter dans MODx ! smiley smiley smiley smiley

                    Voici les modifications à apporter aux fichiers de wanewsletter (nous avons travaillé sur la version 2.3.2) pour que tout fonctionne :

                    Dans start.php

                    Avant

                    if( !defined('IN_NEWSLETTER') )


                    Ajouter

                    //MODIFIE PAR HELIO pour compatibilité avec MODX
                    global $db,$output,$nl_config;
                    /////


                    Dans includes/functions.php

                    dans la function load_settings

                    Remplacer
                    $output = new output($template_path);

                    par
                    $output = new wa_output($template_path);


                    Remplacer
                    return sprintf("%s\xA0%s", wa_number_format($size), $lsize);

                    par
                    return sprintf("%s %s", wa_number_format($size), $lsize);


                    dans setup/setup.inc.php

                    Remplacer
                    $output = new output(WA_ROOTDIR . '/templates/');

                    par
                    $output = new wa_output(WA_ROOTDIR . '/templates/');


                    dans includes/class.output.php

                    Remplacer
                    class output extends Template {

                    par
                    class wa_output extends wa_template {


                    Remplacer
                    global $nl_config, $lang, $template, $admindata, $auth;

                    par
                    global $nl_config, $lang, $wa_template, $admindata, $auth;


                    dans includes/templates.php

                    Remplacer
                    class Template {
                        var $classname = "Template";

                    par
                    class wa_template {
                        var $classname = "wa_template";


                    Remplacer
                    function Template($root = "templates/")

                    par
                    function wa_template($root = "templates/")


                    Si vous êtes en UTF-8, pensez à réencoder votre fichier langue.
                    Je vous mets en fichier attaché les fichiers langue de l’admin (templates/admin) au cas où wink

                    Encore un énorme merci à Hélio qui a passé du temps dessus et j’en profite pour le féliciter pour son nouveau statut au sein de la team MODx kiss
                      • 1186
                      • 202 Posts
                      Houuuu, Helio a encore frappé !! laugh
                      Merci à lui, c’est une excellente nouvelle ça, et merci à toi Perrine d’avoir pris le temps de rédiger le mode opératoire. Pour ma part, je teste tout ça dès que je peux.
                        R