Browse Source

balise #DEFAULT + vraies erreurs de compil SPIP + simplification - oeuf

master
jluc@no-log.org 6 years ago
parent
commit
88258b929c
  1. 7
      paquet.xml
  2. 6
      plugin.xml
  3. 36
      switchcase_options.php

7
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="switchcase"
categorie="outil"
version="0.1.1"
version="0.2.0"
etat="test"
compatibilite="[2.1.0;3.1.*]"
logo="images/switchcase-32.png"
@ -9,11 +9,12 @@
>
<nom>Balises #SWITCH #CASE</nom>
<!-- Balises #SWITCH et #CASE pour les squelettes -->
<!-- Définition de balises #SWITCH, #CASE et #DEFAULT pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
-->
<auteur lien="http://contrib.spip.net/JLuc">JLuc</auteur>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GNU/GPL</licence>
<credit lien="https://thenounproject.com/term/flow-chart/49063/">Inspiration pour l'icone : flowchart by Piotr Kołodziejski, Licence Creative Commons</credit>
</paquet>
</paquet>

6
plugin.xml

@ -4,14 +4,14 @@
<icon>images/switchcase-32.png</icon>
<auteur>JLuc</auteur>
<licence>GPL</licence>
<version>0.1.1</version>
<version>0.2.0</version>
<etat>test</etat>
<description>
Définition de balises #SWITCH ET #CASE pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
Définition des balises #SWITCH, #CASE et #DEFAULT pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
</description>
<prefix>switchcase</prefix>
<necessite id="SPIP" version="[2.1.0;3.1.99]" />
<categorie>outil</categorie>
<options>switchcase_options.php</options>
</plugin>
</plugin>

36
switchcase_options.php

@ -3,18 +3,21 @@
/**
* Balises SPIP génériques supplémentaires, du genre Bonux
*
* @copyright 2015
* @copyright 2015-2016
* @author JLuc chez no-log.org
* @licence GPL
*/
function balise_SWITCH_dist($p) {
$_val = interprete_argument_balise(1, $p);
if ($_val === NULL)
$p->code="'il faut 1 argument pour la balise #SWITCH et très exactement 1 pour l\'instant'";
if ($_val === NULL) {
$err = array('zbug_balise_sans_argument', array('balise' => ' #SWITCH'));
erreur_squelette($err, $p);
}
else
$p->code = $p->code = "vide(\$Pile['vars'][\$_zzz=(string)'_switch_'] = $_val)";
// #GET{_switch_} vaut maintenant la valeur testée
$p->code = $p->code = "(vide(\$Pile['vars']['_switch_'] = $_val).vide(\$Pile['vars']['_switch_matched_']=''))";
// #GET{_switch_} renvoie maintenant la valeur testée
// et #GET{_switch_matched_} indique si un test #CASE a déjà été satisfait
$p->interdire_script = false;
return $p;
@ -24,17 +27,22 @@ function balise_SWITCH_dist($p) {
function balise_CASE_dist($p) {
$tested = interprete_argument_balise(1, $p);
if ($tested === NULL)
$p->code="'il faut 1 ou 2 arguments pour la balise #CASE (1 seulement si on a fait # SWITCH(XXX) avant : todo)'";
if ($tested === NULL) {
$err = array('zbug_balise_sans_argument', array('balise' => ' #CASE'));
erreur_squelette($err, $p);
}
else {
$value = interprete_argument_balise(2, $p);
if ($value === NULL) {
$value=$tested;
$tested = "(\$Pile['vars'][\$_zzz=(string)'_switch_'])";
}
$p->code = "(($tested == $value) ? ' ' : '')";
};
$p->code = "(($tested == \$Pile['vars']['_switch_']) ? ' '.vide(\$Pile['vars']['_switch_matched_']=' ') : '')";
};
$p->interdire_script = false;
return $p;
}
if (!function_exists(balise_DEFAULT_dist)) {
function balise_DEFAULT_dist($p) {
$p->code = "(\$Pile['vars']['_switch_matched_'] ? '' : ' ')";
$p->interdire_script = false;
return $p;
}
}

Loading…
Cancel
Save