We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20394
    • 134 Posts
    ModX est génial! J’ai réussi à gérer rapidement un nouveau tag : [{élément}].
    L’idée était de remplacer par exemple [{espaceVect}] par un span contenant "espace vectoriel" et qui réagisse à la souris, le tout interfacer avec une table de données.
    J’utilise un plugin (appelé parserelement) associé à l’événement OnParseDocument :
    $content=$modx->documentOutput;
    $replace = array();
        $matches = array();
        if (preg_match_all('~\[\{(.*?)\}\]~', $content, $matches)) {
          $settingsCount = count($matches[1]);
          for($i=0; $i<$settingsCount; $i++) {
              $sql = "SELECT * FROM ".$this->getFullTableName("site_elements")." WHERE ".$this->getFullTableName("site_elements").".name='".mysql_escape_string($matches[1][$i])."';";
              $result = $this->dbQuery($sql);
              $limit=$this->recordCount($result);
              if($limit<1) {
                 $replace[$i] = "<span class='elemncl' title='élément non défini'>";
                 $replace[$i] .=$matches[1][$i]."</span>";
              } else {
                $row=$this->fetchRow($result);
                $replace[$i] = "<span class='elemcl' title='".$row['title']."'";
                $replace[$i] .="id='elemid".$i."'>".$row['singular']."</span>";
                $replace[$i] .='<script type="text/javascript" language="javascript">new Draggable("elemid'.$i.'",{revert:true});</script>';
              
            }
          }
          $content = str_replace($matches[0], $replace, $content);
        }
    $modx->documentOutput=$content;

    Ensuite il faut créer une nouvelle table "site_elements", la peupler, et faire un test.
    Les champs obligatoires ici sont : id, title, name, singular.
      • 20394
      • 134 Posts
      L’intéret des éléments est que l’on peut ensuite générer des indexs.
      Ainsi on repère tous les documents utilisant un certain terme, sans avoir à spécifier un mot clé ou une nouvelle TV.
        • 33175
        • 711 Posts
        Merci pour ce snippet Marcou smiley
        Regarde un peu du côté de AutoLink. Je ne pense pas que ton plugin ai exactelement le même but mais on ne sait jamais wink
          Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
          • 20394
          • 134 Posts
          @Guillaume
          Merci pour la référence grin
          La différence est que l’insertion des éléments clés est explicite dans mon cas, alors qu’elle est implicite avec autolink.
            • 33175
            • 711 Posts
            J’ai fait un petit plugin dans ce sens : WordsReplace. Si ça peux te servir smiley
            Dès que j’aurais un peu de temps, je m’occuperai de lui faire une interface pour gérer les mots
              Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
              • 20394
              • 134 Posts
              Ce serait pas mal un WordReplace se reposant sur une table de données.
              La table aurait par exemple les champs :
              id(autoincrement) texten textfr textde et ainsi de suite.
              Et l’on pourrait préciser dans les paramètres du plugin les langues de départ et d’arrivée.
              Ce serait presque un projet à part et sortant du cadre de modx que d’alimenter cette table.
              N’y-a-t-il pas d’ailleurs de projet opensource de la sorte ?
                • 33175
                • 711 Posts
                Quote from: mrcou at Jun 21, 2006, 11:24 AM

                Ce serait pas mal un WordReplace se reposant sur une table de données.
                C’est sûr et c’est prévu smiley mais je manque un peu de temps en ce moment.
                Quote from: mrcou at Jun 21, 2006, 11:24 AM

                La table aurait par exemple les champs :
                id(autoincrement) texten textfr textde et ainsi de suite.
                Et l’on pourrait préciser dans les paramètres du plugin les langues de départ et d’arrivée.
                Je ne me suis pas encore posé la question pour le multilingue mais c’est une bonne idée smiley
                Quote from: mrcou at Jun 21, 2006, 11:24 AM

                Ce serait presque un projet à part et sortant du cadre de modx que d’alimenter cette table.
                L’intérêt des modules : Modx permet facilement de créer de mini applications en s’appuyant sur sa structure smiley A l’heure actuelle, le plugin semble fonctionner sans problème.
                En fonction des évolutions, je serai amené à le modifier.
                A l’origine j’avais prévu de faire un module pour adminitrer tout c’est mots mais je ne savais pas comment créer un module, et faute de temps... Maintenant je sais grin. J’ai actuellement un autre projet en cours que je dois finaliser et mettre à disposition. J’espère courant de la semaine prochaine. Pour ce projet, j’ai créé 2 librairies (1 pour la gestion des fichiers langues des ressources et 1pour faciliter la création des modules d’en un premier temps). Une fois que ce sera finalisé, je m’appuierai dessus pour créer l’interface de WordsReplace.
                Quote from: mrcou at Jun 21, 2006, 11:24 AM

                N’y-a-t-il pas d’ailleurs de projet opensource de la sorte ?
                Je ne peux pas te répondre smiley

                Pourrais tu mettre tes suggestions dans le thread de WordsReplace ? comme ça, dès que je peux, je me remet au travail smiley
                Toutes les suggestions sont d’ailleurs les bienvenues smiley
                  Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !