test activité d'un plugin

en spip 4 version BETA.

Je dois avoir une erreur de syntaxe

si le plugin couleur_rubrique est inactif
[(#PLUGIN{couleur_rubrique}|oui)[(#SET{couleur,[#(#ID_RUBRIQUE|couleur_secteur)]})]]

donne le message j’ai filtre couleur_secteur non défini

même pb avec les tables si composer_pages est absent j’ai table sql EDITIONS inconnue même en essayant

[(#PLUGIN{composer_pages}|oui)#SET{present,oui}]
<BOUCLE_testzone1(CONDITION) {si #GET{present,non}|=={oui}}>
<BOUCLE_zone1(EDITIONS) {zone=zone1} >

comment tester la présence d’un plugin et neutraliser table/ actions quandle plugin est inactif ou absent ?

utilise plutot |appliquer_filtre |appliquer_filtre - SPIP (c’est une affaire d’ordre d’interpretation…)

j e vais essayer entre temps je viens de voir que effectivement si je ne rentre pas dans la boucle englobante ( pas de reponse ok) … il met l’erreur

Message du 28/06/21 12:40
De : « Maïeul Rouquette via Discuter de SPIP » noreply@discuter.spip.net
A : josiane.aletto@orange.fr
Copie à :
Objet : [SPIP][Général] test activité d’un plugin

Maïeul Rouquette maieul
> Juin 28

utilise plutot |appliquer_filtre |appliquer_filtre - SPIP (c’est une affaire d’ordre d’interpretation…)


Voir le sujet ou répondre à ce courriel pour répondre.

Pour se désabonner de ces courriels, cliquez ici.

Tu peux un peu simplifier ton code en omettant certains crochets

Au moins

[(#PLUGIN{couleur_rubrique}|oui)
    #SET{couleur,[#(#ID_RUBRIQUE|couleur_secteur)]}
]

C’est plus lisible.
Mais peut être aussi

[(#PLUGIN{couleur_rubrique}|oui)
	#SET{couleur,\#(#ID_RUBRIQUE|couleur_secteur)}
]

C’est encore plus lisible.

Et puis dans ton cas, tu peux aussi t’assurer que la boucle teste d’abord si la table existe et ne boucle que dans ce cas : en ajoutant un ? après le nom de la table : <BOUCLE_zone1(EDITIONS?) {zone=zone1}>
Dans ce cas pas besoin de tester avec #PLUGIN
Mais je sais pas à partir de quelle version de SPIP est-ce que cette possibilité existe.

Également utile : à partir de SPIP 4, tu peux mettre une BOUCLE à l’intérieur d’un test de balise

[(#UNTEST_PAREXEMPLE_PLUGIN...) <BOUCLE_truc(...)>...</BOUCLE_truc>]

merci beaucoup

Je résume,

pour tester la présence d’un plugin dans un squelette …

[(#PLUGIN{couleur_rubrique}|oui) bla bla ]

Plutot que de tester la présence du plugin, lorsqu’on veut appliquer le filtre d’un plugin

on utilise |appliquer_filtre soit [(#BALISE|appliquer_filtre{nom_du_filtre})]

pour éviter une erreur de compilation du a l’ordre d’interpretation de spip.( |appliquer_filtre et |appliquer_si_filtre - SPIP)

Pour la même raison, il faut mettre ? aprés le nom de la table créé dans un plugin pour que la boucle ne soit prise en compte que le plugin activé sans erreur de compilation

<BOUCLE_zone1(EDITIONS?) ... >

Tables conditionnelles en spip 4 : La syntaxe des boucles - SPIP