Régression sur plugin media 3.2.6?

Bonjour,

Le plugin https://git.spip.net/spip/medias/commits/branch/3.2 a été mis à jour récemment (passage en 3.2.6) , et ce commit en particulier me pose problème: https://git.spip.net/spip/medias/commit/e1ea969d5ab40957c713eeb20ae1938f1adf3c06
En effet, cette modification a pour effet de casser tous les liens insérés dans les crédits du type [Ma légende->https://monlien.com]

En version 3.2.5, la compilation du squelette passait par par la fonction propre() ce qui avait pour effet de lancer expanser_liens() comme on peut le voir sur cette call stack:

#0 typo() called at [/var/www/html/plugins-dist/textwheel/inc/lien.php:160] 
#1 inc_lien_dist() called at [/var/www/html/plugins/auto/orthotypo/v1.5.5/orthotypo_options.php:26] 
#2 inc_lien() called at [/var/www/html/plugins-dist/textwheel/inc/lien.php:325] 
#3 expanser_un_lien() 
#4 preg_replace_callback() called at [/var/www/html/plugins-dist/textwheel/inc/lien.php:264] 
#5 expanser_liens() called at [/var/www/html/plugins-dist/textwheel/inc/texte.php:789] 
#6 propre() called at [/var/www/html/ecrire/public/composer.php(92) : eval()'d code:141] 
#7 BOUCLE_doc2html_e968c654a752ef9c29b2b51f68865580() called at [/var/www/html/ecrire/public/composer.php(92) : eval()'d code:23] 
#8 html_e968c654a752ef9c29b2b51f68865580() called at [/var/www/html/ecrire/public/parametrer.php:128] 

Or, en 3.2.6 @cerdic déclare une interface _TRAITEMENT_TYPO sur les crédits (voir $interfaces['table_des_traitements']['CREDITS']['spip_documents'] = _TRAITEMENT_TYPO;). Or, le squelette compilé n’est alors plus du tout le même. La call stack devient:

#0 typo() called at [/var/www/html/ecrire/public/composer.php(92) : eval()'d code:141] 
#1 BOUCLE_doc2html_e968c654a752ef9c29b2b51f68865580() called at [/var/www/html/ecrire/public/composer.php(92) : eval()'d code:23] 
#2 html_e968c654a752ef9c29b2b51f68865580() called at [/var/www/html/ecrire/public/parametrer.php:128] 

On n’expanse plus les liens, on se retrouve donc avec des crédits « cassés ».

Ceci étant dit, je ne sais pas si c’était le but recherché (je ne pense pas, mais le commit message est succinct) ou bien si c’est une régression. De même, je ne comprends pas trop le but de la modification car la principale différence est que la variable $echapper dans la fonction typo() prendra la valeur TYPO au lieu de true. Je n’ai pas cherché très en détail mais rien ne m’a sauté aux yeux. J’ai fait quelques essais au hasard en renseignant des crédits avec du html ou des ‹ Mr › ‹ Mme › et rien de flagrant non plus.

Voilà où j’en suis de mes réflexions pour le moment. J’aurais aimé proposer une correction, mais sans comprendre le but de la modif ni les impacts c’est assez difficile :frowning: (et comme je ne connais pas grand chose à spip, ça n’aide pas non plus… :confused:

Je suis preneur d’éclairage sur le sujet :slight_smile: . En attendant, je vais désactiver ce _TRAITEMENT_TYPO pour retrouver les liens.
Merci à tous!

1 « J'aime »

Je me permet une petite relance sur ce sujet :slight_smile:
@cerdic pourrais tu m’en dire plus sur cette modif stp?

Thanks! :slight_smile:

Donc désolé j’ai voulu répondre et corriger quand j’ai lu ce post il y a quelques jours, et je me suis perdu en route il me semble.
Donc :

Le soucis ici vient du fait que dans oembed on déclare le traitement sur documents et dans le core sur spip_documents et pour de sombres raisons historiques, ce dernier prend la main même si le plugin oembed est bien chargé après medias et aurait du avoir le dernier mot.

Il se trouve que

Et pour conclure sur le sujet, c’est donc la déclaration avec la table complètes qui a la priorité quand elle est utilisée
https://git.spip.net/spip/spip/src/branch/master/ecrire/public/references.php#L803

Bref donc la solution ici c’est

  • corriger oEmbed pour déclarer avec spip_documents et pas documents
  • nettoyer dans le core pour mettre l’écriture courte partout pour que ce soit plus facilement surchargeable

Pas de soucis, merci pour ta réponse! :slight_smile:
Je vais prendre le temps de regarder en détail ta réponse (écriture longue, courte, je connais pas) mais juste un message pour dire qu’effectivement j’ai bien le plugin oEmbed activé sur ce site.

Voilà, en tout cas avec une mise à jour de oEmbed ça doit être bon maintenant
https://git.spip.net/spip-contrib-extensions/oembed/commit/a45db28d3ac6272d5a6ef958c142beea7251937c

1 « J'aime »

Je te confirme que le fix marche bien appliqué sur la version 2.4.0 (spip3) :tada:
Je te remercie pour le support :slight_smile: