Changeset 108130 in spip-zone


Ignore:
Timestamp:
Dec 20, 2017, 5:49:39 PM (15 months ago)
Author:
jluc@…
Message:

Les champs de la boucle englobante sont dans Pile[SP] et non Pile[0]. Nouvelles valeurs d'id calculé pour #_AUTORISER : 'boucle' et 'debug'

Location:
_plugins_/macrosession/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/macrosession/trunk/macrosession_options.php

    r108099 r108130  
    1717include_spip('inc/session');
    1818include_spip ('inc/filtres');
     19
     20unset($_GET['debug']); // commenter pour permettre l'analyse et debug
    1921
    2022// on utilise nobreak quand il n'y a pas de break entre 2 cases d'un switch,
     
    210212}
    211213
    212 function macrosession_pipe($q) {
    213 //      echo "exec macrosession_pipe($q)<br>";
     214function macrosession_pipe($q="!!! non défini !!!") {
     215        if (isset($_GET['debug']))
     216                echo "exec macrosession_pipe($q)<br>";
    214217        return $q;
     218}
     219function macrosession_print($a) {
     220        if (isset($_GET['debug']))
     221                echo '<pre>'.print_r($a, 1).'</pre>';
     222        return "''";
    215223}
    216224
     
    236244        // 4 possibilités de passer des id calculées à #_AUTORISER_SI :
    237245        // - Appels directs de #BALISE ou #GET{variable} (non recommandé)
    238         // - Passer 'env' et 'url' pour chercher l'id_ associé au type dans l'env ou dans l'url
    239         // Ex : #_AUTORISER{modifier,article,env} ou #_AUTORISER{modifier,article,url}
     246        // - Passer 'env', 'boucle' et 'url' pour chercher l'id_ associé au type dans l'env reçu, dans la boucle immédiatement englobante ou dans l'url
     247        // Ex : #_AUTORISER{modifier,article,env} ou #_AUTORISER{modifier,article,boucle} ou #_AUTORISER{modifier,article,url}
    240248        //
    241249
     
    264272                        // 3)
    265273                        case "'env'" :
     274                                if (isset($_GET['debug']))
     275                                        echo "Avec 'env' : compile appel autoriser($autorisation, $type, \$Pile[0][$id_type])<br>";
    266276                                $ret = "autoriser('.\"$autorisation\".', '.\"$type\".', '.\"macrosession_pipe({\$Pile[0][$id_type]})\".')";
    267277                                return $ret;
    268278
     279                        case "'boucle'" :
     280                                if (isset($_GET['debug']))
     281                                        echo "Avec 'boucle' : compile appel autoriser($autorisation, $type, \$Pile[\$SP][$id_type])<br>";
     282                                $ret = "autoriser('.\"$autorisation\".', '.\"$type\".', '.\"macrosession_pipe({\$Pile[\$SP][$id_type]})\".')";
     283                               
     284                                return $ret;
     285
     286                        case "'debug'" :
     287                                $ret = 'time()';
     288                                if (isset($_GET['debug'])) {
     289                                        echo "Avec 'debug' : macrosession_print(get_defined_vars())<br>";
     290                                        $ret = "macrosession_print(get_defined_vars())";
     291                                }
     292                                return $ret;
     293
    269294                        // 4)
    270295                        case "'url'" :
     296                                if (isset($_GET['debug']))
     297                                        echo "Avec 'url' : compile appel autoriser($autorisation, $type, _request($id_type)<br>";
    271298                                $ret = "autoriser('.\"$autorisation\".', '.\"$type\".', '.\"macrosession_pipe(_request($id_type))\".')";
    272299                                return $ret;
     
    310337        if (substr($val, 0, 1) != "'") {
    311338                if ($contexte_ok)
    312                         $contexte_ok = "Pour chercher dans les variables d'environnement ou d'url, vous pouvez aussi utiliser 'env' et 'url'";
     339                        $contexte_ok = "Pour chercher dans les variables d'environnement ou d'url, vous pouvez utiliser 'env', 'boucle', 'url' et aussi '#BALISE' pour les balises reçues par le squelette, mais pas pour les champs de la boucle immédiatement englobante";
    313340                erreur_squelette ("L'argument '$argument' de la macro '$macro' ne doit pas être une valeur calculée (".$val."). $contexte_ok", $p);
    314341                return true;
  • _plugins_/macrosession/trunk/paquet.xml

    r108099 r108130  
    22        prefix="macrosession"
    33        categorie="outil"
    4         version="0.9.0"
     4        version="0.9.1"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
  • _plugins_/macrosession/trunk/plugin.xml

    r108099 r108130  
    55        <auteur>JLuc</auteur>
    66        <licence>GPL</licence>
    7         <version>0.9.0</version>
     7        <version>0.9.1</version>
    88        <etat>test</etat>
    99        <description>
Note: See TracChangeset for help on using the changeset viewer.