We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16732
    • 592 Posts
    Bonjour,

    Tout est dans dans la titre smiley

    J’arrive bien à modifier une contenu général (template + content) avec un plugin sur l’évènement OnWebPagePrerender avec $modx->documentOutput

    Mais là je cherche à modifier uniquement la Tv [*content*], par exemple en lui rajoutant du texte à la suite.
    Pour ce rajout de texte, mon expérience actuelle en utilisant $modx->documentOutput met le texte ajouté en dessous du template ! undecided

    Comment puis-je m’y prendre

    Merci de votre éclairage
      • 16732
      • 592 Posts
      C’est bon j’ai trouvé dans le forum anglophone : il faut utiliser $modx->documentObject[’content’] avec l’évènement OnLoadWebDocument
        • 27526
        • 204 Posts
        Peux-tu détailler une peu la procédure pour les non-anglophone et/ou débutants stp ?
        (et un ptit edit pour mettre [réglé] dans le titre ça peut aider pour les recherches)

        Merci d’avance wink
          • 16732
          • 592 Posts
          Voila :

          Le plus souvent les plugins sont utilisés comme ça (cf doc Modx sur les plugins) :
           $words = array("snippet", "template"); // words to filter
          
          $e = &$modx->Event;
          switch ($e->name) {
                      case "OnWebPagePrerender":
                               $o = &$modx->documentOutput; // get a reference of the output
                               $o = str_replace($words,"<b>[filtered]</b>",$o);
                     break;
                     default :
                               return; // stop here - this is very important.
                    break;
          }
          
          


          C’est à dire que lors de l’évènement "OnWebPagePrerender" on récupère le contenu de "documentOutput" et on le manipule.
          Or OnWebPagePrerender est le dernier évènement avant l’envoi au navigateur et à cette étape documentOutput contient la compilation du template de la page et de son contenu (Tv [*content*]).

          C’est pas génant si on se borne à remplacer des placeholdes spécifiques, par contre lors de la création du plugin FootNote je souhaitais ajouter à la fin du contenu de ma page la liste des notes.

          Il fallais donc que j’effectue mon traitement des notes avant que le template et le Content ne soient assemblés.

          Pour cela il faut activer le plugin avant l’évènement "OnWebPagePrerender", cad à l’évènement "OnLoadWebDocument".
          Quant au contenu à traité à cette étape on accède au Content en utilisant $modx->documentObject[’content’]
          Que l’on peux manipuler puis parser.

          D’ou le code suivant :
           $words = array("snippet", "template"); // words to filter
          $e = &$modx->Event;
          switch ($e->name) {
                  case "OnLoadWebDocument":
                          $o = &$modx->documentObject['content']; 
                           //traitement du Content avant qu'il ne fusionne avec le template
                          $o = str_replace($words,"<b>[filtered]</b>",$o);
                  break;
                  default :
                      return;
                  break;
          }
          
          


          heu ... on fait comment pour éditer un titre embarrassed
            • 6726
            • 7,075 Posts
            Merci Laurent pour cette explication, limpide, on aurait presque l’impression que coder est facile tongue
            Ce bout de code pourrait bien me servir... je vois quelques applications possible smiley

            Et moi qui n’arrive toujours pas à trouver le temps de me plonger sérieusement dans PHP... arf !
              .: COO - Commerce Guys - Community Driven Innovation :.


              MODx est l&#39;outil id
              • 16732
              • 592 Posts
              Pas de quoi David.

              J’ai tendance à m’enflammer un peu depuis que je connais MODx grin

              PHP ... c’est un langage puissant et vraiment facile d’accès (et pour tout te dire plus simple à appréhender que tous les concepts MODx.
              D’ailleurs c’est ce qui me frustre un peu, je n’arrive pas à avancer comme je le souhaiterais avec MODx plusieurs concepts avancer pour profiter pleinement de l’appli me sont encore inconnus ex : le cout du documentObjetc[’footnotes’] de mrcou.... dans ma précipitation je n’avais pas vu la porté de ce tableau undecided

                • 27526
                • 204 Posts
                Merci Laurent, c’est très clair. Ca me donne presque envie de me remettre à la prog smiley