Changeset 98197 in spip-zone


Ignore:
Timestamp:
Jun 4, 2016, 2:28:26 PM (3 years ago)
Author:
jluc@…
Message:

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

Location:
_plugins_/switchcase/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/switchcase/trunk/paquet.xml

    r98114 r98197  
    22        prefix="switchcase"
    33        categorie="outil"
    4         version="0.1.1"
     4        version="0.2.0"
    55        etat="test"
    66        compatibilite="[2.1.0;3.1.*]"
     
    1010
    1111        <nom>Balises #SWITCH #CASE</nom>
    12         <!-- Balises #SWITCH et #CASE pour les squelettes -->
     12        <!-- Définition de balises #SWITCH, #CASE et #DEFAULT pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
     13 -->
    1314
    1415        <auteur lien="http://contrib.spip.net/JLuc">JLuc</auteur>
  • _plugins_/switchcase/trunk/plugin.xml

    r98114 r98197  
    55        <auteur>JLuc</auteur>
    66        <licence>GPL</licence>
    7         <version>0.1.1</version>
     7        <version>0.2.0</version>
    88        <etat>test</etat>
    99        <description>
    10         Définition de balises #SWITCH ET #CASE pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
     10        Définition des balises #SWITCH, #CASE et #DEFAULT pour les créateurs de squelette, pour comparer une valeur à plusieurs autres.
    1111        </description>
    1212        <prefix>switchcase</prefix>
  • _plugins_/switchcase/trunk/switchcase_options.php

    r95998 r98197  
    44 * Balises SPIP génériques supplémentaires, du genre Bonux
    55 *
    6  * @copyright  2015
     6 * @copyright  2015-2016
    77 * @author     JLuc chez no-log.org
    88 * @licence    GPL
     
    1111function balise_SWITCH_dist($p) {
    1212        $_val = interprete_argument_balise(1, $p);
    13         if ($_val === NULL)
    14                 $p->code="'il faut 1 argument pour la balise #SWITCH et très exactement 1 pour l\'instant'";
     13        if ($_val === NULL) {
     14                $err = array('zbug_balise_sans_argument', array('balise' => ' #SWITCH'));
     15                erreur_squelette($err, $p);
     16        }
    1517        else
    16                 $p->code = $p->code = "vide(\$Pile['vars'][\$_zzz=(string)'_switch_'] = $_val)";
    17                 // #GET{_switch_} vaut maintenant la valeur testée
     18                $p->code = $p->code = "(vide(\$Pile['vars']['_switch_'] = $_val).vide(\$Pile['vars']['_switch_matched_']=''))";
     19                // #GET{_switch_} renvoie maintenant la valeur testée
     20                // et #GET{_switch_matched_} indique si un test #CASE a déjà été satisfait
    1821
    1922        $p->interdire_script = false;
     
    2528function balise_CASE_dist($p) {
    2629        $tested = interprete_argument_balise(1, $p);
    27         if ($tested === NULL)
    28                 $p->code="'il faut 1 ou 2 arguments pour la balise #CASE (1 seulement si on a fait # SWITCH(XXX) avant : todo)'";
     30        if ($tested === NULL) {
     31                $err = array('zbug_balise_sans_argument', array('balise' => ' #CASE'));
     32                erreur_squelette($err, $p);
     33        }
    2934        else {
    30                 $value = interprete_argument_balise(2, $p);
    31                 if ($value === NULL) {
    32                         $value=$tested;
    33                         $tested = "(\$Pile['vars'][\$_zzz=(string)'_switch_'])";
    34                 }
    35                 $p->code = "(($tested == $value) ? ' ' : '')";
    36         };
     35                $p->code = "(($tested == \$Pile['vars']['_switch_']) ? ' '.vide(\$Pile['vars']['_switch_matched_']=' ') : '')";
     36        };
    3737        $p->interdire_script = false;
    3838        return $p;
    3939}
    4040
     41if (!function_exists(balise_DEFAULT_dist)) {
     42        function balise_DEFAULT_dist($p) {
     43                $p->code = "(\$Pile['vars']['_switch_matched_'] ? '' : ' ')";
     44        $p->interdire_script = false;
     45        return $p;
     46}
     47
     48}
Note: See TracChangeset for help on using the changeset viewer.