Traitement typo sur balise plugin spip 3

BOnjour à tous !

Pour un besoin bien spécifique, j'ai créer un plugin.
A un moment, via un formulaire, on saisit, entre autre, une explication.

J'ai lu sur cette page : programmer.spip.net/Traitements-automatiques-des, que l'on devait faire quelque chose comme :
$table_des_traitements['TEXTE'][] = _TRAITEMENT_RACCOURCIS; pour traiter une balise

Ma balise est donc #EXPLICATION.

Je pense que je dois mettre quelque part :
$table_des_traitements['EXPLICATION'][] = _TRAITEMENT_RACCOURCIS;

Mais je ne sais pas où... En sachant que j'aimerais que ce soit dans fichier quelque part dans le dossier du plugin...

Merci d'avance de votre aide !

Gilles L

Le 9 juin 2014 17:03, robomatix <robomatix@robomatix.net> a écrit :

Je pense que je dois mettre quelque part :
$table_des_traitements['EXPLICATION'] = _TRAITEMENT_RACCOURCIS;

Mais je ne sais pas où... En sachant que j'aimerais que ce soit dans fichier
quelque part dans le dossier du plugin...

Sans avoir testé, je pense que ça doit être dans
nomplugins_options.php, et que tu déclares dans le plugin.xml
(Rédaction du paquet.xml - Plugins SPIP)

--
Beurt

Bonjour,

Merci Beurt de ton aide.
J'ai essayé comme indiqué, ça n'a pas marché, même en vidant le cahe...

Par contre, si je met dans config/mes_options.php :
$table_des_traitements['EXPLICATIONS'] = _TRAITEMENT_RACCOURCIS;
J'obtiens :
propre(%s, $connect, $Pile[0]) au lieu du texte des explication...

Il y aurait il quelque chose d'autres à déclarer ?

Merci d'avance de votre aide !

Gilles L

Le 09/06/2014 17:13, Beurt a écrit :

Le 9 juin 2014 17:03, robomatix <robomatix@robomatix.net> a écrit :

Je pense que je dois mettre quelque part :
$table_des_traitements['EXPLICATION'] = _TRAITEMENT_RACCOURCIS;

Mais je ne sais pas où... En sachant que j'aimerais que ce soit dans fichier
quelque part dans le dossier du plugin...

Sans avoir testé, je pense que ça doit être dans
nomplugins_options.php, et que tu déclares dans le plugin.xml
(Rédaction du paquet.xml - Plugins SPIP)

Le 10 juin 2014 10:23, robomatix <robomatix@robomatix.net> a écrit :

Merci Beurt de ton aide.
J'ai essayé comme indiqué, ça n'a pas marché, même en vidant le cahe...

C'est à dire ? qu'as-tu fais précisément ?

--
Beurt

Le 10/06/2014 10:32, Beurt a écrit :

Le 10 juin 2014 10:23, robomatix <robomatix@robomatix.net> a écrit :

Merci Beurt de ton aide.
J'ai essayé comme indiqué, ça n'a pas marché, même en vidant le cahe...

C'est à dire ? qu'as-tu fais précisément ?

A la racine de mon plugin, j'ai créé prefixe_plugin_options.php avec comme code :
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) return;

// Pour activer le traitement typo sur la balise #EXPLICATIONS
$table_des_traitements['EXPLICATIONS'] = _TRAITEMENT_RACCOURCIS;

J'ai testé, ça n'a pas marché...
Je suis donc allé sur /ecrire/?exec=admin_plugin
et vidé tmp/cache/
Petite précision, le cache est désactivé.
Ceinture et bretelles... lol !

Ca n'a pas marché...

Je me suis dit que j'ai testé depuis config/mes_options.php en y ajoutant le code :

$table_des_traitements['EXPLICATIONS'] = _TRAITEMENT_RACCOURCIS;

Désasctivation du cache
Vidage cache depuis la partie privée de spip
Vidage de tmp/cache/
Visite de /ecrire/?exec=admin_plugin

Et j'obtiens : propre(%s, $connect, $Pile[0]) à l'emplacement de la balise [(#EXPLICATIONS)]

Pour info : SPIP 3.0.16

Voilà !

J'espère avoir été clair !

Le 10 juin 2014 11:56, robomatix <robomatix@robomatix.net> a écrit :

A la racine de mon plugin, j'ai créé prefixe_plugin_options.php avec comme
code

Est-ce que tu as signalé le prefixe_plugin_options.php dans le
paquet.xml ?? (cf.:
Rédaction du paquet.xml - Plugins SPIP)

--
Beurt

Bonjour,

Si tu as un champ #EXPLICATION, je suppose que ton plugin installes une table. Dans ce cas, dans le fichier qui déclare la table (base/prefixe_du_plugin.php), tu peux déclarer les traitements typo dans la pipeline «declarer_tables_interfaces».

Par exemple :

Le 10/06/2014 12:02, Beurt a écrit :

Le 10 juin 2014 11:56, robomatix <robomatix@robomatix.net> a écrit :

A la racine de mon plugin, j'ai créé prefixe_plugin_options.php avec comme
code

Est-ce que tu as signalé le prefixe_plugin_options.php dans le
paquet.xml ?? (cf.:
Rédaction du paquet.xml - Plugins SPIP)

Non.

Il est dit :

Les balises <fonctions>, <options> et <install> de plugin.xmlne sont plus reprises dans la nouvelle DTD de paquet.xml.

Les fichiers correspondants sont maintenant uniques et normalisés : il doivent être placés à la racine du plugin et porter le nom :

  • prefixe_du_plugin_options pour les fonctions, variables et constantes nécessaires à l’espace privé ;

J’ai donc l’impression que maintenant, il n’y a plus besoin de le déclarer…

En dessous sur la page, il y a un exemple avec toutes les balises possibles, et on y voit pas celle pour options… En tout cas, je ne l’ai pas vue…

Ai-je mal lu ?

Si il faut la déclarer, comment on fait ?

Encore merci de ton aide !

Gilles L

Merci Charles !

Cette solution me semble la mieux !

En gros, j'ai mis selon ton exemple :

     // Traitements typo et raccourcis
     $interfaces['table_des_traitements']['EXPLICATIONS'] = _TRAITEMENT_RACCOURCIS;

Remarque : j'ai utilisé la fabrique pour jeter les bases de mon plugin. Et on a $interfaces au lieu de $interface ( s en plus à la fin :wink: ).

J'ai ensuite vidé tous les caches.

Ensuite comme ça n'avait pas marché, j'ai changé la version du plugin et du schéma puis fait une maj.
Ca n'a pas marché... J'ai réfléchi un peu et mis dans le squelette :
[(#EXPLICATIONS|paragrapher)] au lieu de [(#EXPLICATIONS)] et là miracle ! Les pargraphes sont apparus !

Je ne sais pas vraiment si il faut vraiment vider les caches et changer la version du plugin et celle du schéma, mais au final, ça marche !!!! Ô Joie intense !

Merci à tous !

Gilles L

Le 10/06/2014 12:35, Charles Razack a écrit :

Bonjour,

Si tu as un champ #EXPLICATION, je suppose que ton plugin installes une table. Dans ce cas, dans le fichier qui déclare la table (base/prefixe_du_plugin.php), tu peux déclarer les traitements typo dans la pipeline «declarer_tables_interfaces».

Par exemple :
Connexion · GitLab

Le 10/06/2014 12:02, Beurt a écrit :

Le 10 juin 2014 11:56, robomatix <robomatix@robomatix.net> a écrit :

A la racine de mon plugin, j'ai créé prefixe_plugin_options.php avec comme
code

Est-ce que tu as signalé le prefixe_plugin_options.php dans le
paquet.xml ?? (cf.:
Rédaction du paquet.xml - Plugins SPIP)

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc