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 ?
maieul
(Maïeul Rouquette)
Juin 28, 2021, 10:30
2
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
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 .
JLuc
(JLuc)
Juin 28, 2021, 1:58
4
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