Mediawiki : pb avec génération de javascript dans un article

Mediawiki : pb avec génération de javascript dans un article - PHP - Programmation

Marsh Posté le 28-09-2021 à 17:24:02    

Bonjour,
Je suis en train de porter une extension de Mediawiki d'une ancienne version vers la dernière version de Mediawiki (1.36.1) et je rencontre un problème : cette extension génère à la volée un javascript permettant d'afficher une googlemaps interactive à partir de données contenues dans des modèles du wiki mais certaines portions du javascript sont "endommagées" par le parser de Mediawiki. :(
Par ex, ça me transforme les < et > des if et for en &lt; et &gt;, ça me rajoute des <p></p>... Bref, ça rend mon javascript inutilisable.
 
Je cherche comment désactiver le parser sur cette partie mais je n'y arrive pas.
Dans les options du parser, j'ai mis à false le ParserOptions "wrapclass" mais ça empêche juste d'avoir un ajout de <div class="mw-output-parser">...</div>.
 
Je cherche dans la doc : https://doc.wikimedia.org/mediawiki [...] arser.html
Mais je ne trouve pas. :pt1cable:  Le traitement d'un tag <mymap> se fait sur le hook ParserAfterTidy.
 
Merci par avance pour votre aide.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-09-2021 à 17:24:02   

Reply

Marsh Posté le 06-10-2021 à 08:32:42    

Je ne connais absolument rien a mediawiki mais ça ne serait pas au moment d'affecter le bout de HTML a l'article qu'il y aurait deux modes de fonctionnement par deux propriétés ou méthodes différentes dédiées : un qui intègre le texte brut tel quel sans rien chercher à parser, et un qui transite dans le parser si défonce tout ?

 

C'est assez courant comme approche dans les trucs qui gèrent du contenu HTML.


Message édité par TotalRecall le 06-10-2021 à 08:33:27

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 06-10-2021 à 09:28:20    

Le mode "sans parser" a été retiré si j'ai bien compris dans la v1.36.1 (depuis la v1.35, je crois). Dans une fonction appelée sur le hook ParserAfterTidy, j'ai bien trouvé qu'on peut lui retourner un array($output, "noparser" => true, "isHTML" => true) mais à ce stade, mon code javascript a déjà été défoncé. Et sur le hook "ParserBeforeTidy" (ou un truc du genre), c'est trop tôt dans le process. Ca coince dans le internal parser... :/
Du coup, j'ai trouvé une solution bien cracra : j'inverse les effets du parser sur une portion bien précise du $output. Ca marche mais c'est de la bidouille.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed