Changeset 113067 in spip-zone


Ignore:
Timestamp:
Dec 22, 2018, 2:47:03 PM (3 months ago)
Author:
root
Message:

test conditionnel @config:plugin:valeur@ : étendre à des sous config, et pas nécessairement à des plugins + mutualisation du code php/js + tests unitaires

Location:
_plugins_/saisies/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/inc/saisies_afficher_si.php

    r113056 r113067  
    7171                                }
    7272                        }
    73                         // On gère le cas @config:plugin:meta@ suivi d'un test
    74                         preg_match_all('#@config:(.+):(.+)@#U', $condition, $matches);
    75                         foreach ($matches[1] as $plugin) {
    76                                 $config = lire_config($plugin);
    77                                 $condition = preg_replace('#@config:'.$plugin.':'.$matches[2][0].'@#U', '"'.$config[$matches[2][0]].'"', $condition);
    78                         }
     73                        $condition = saisies_transformer_condition_afficher_si_config($condition);
    7974                        // On transforme en une condition valide
    8075                        preg_match_all('#@(.+)@#U', $condition, $matches);
     
    225220                                }
    226221                        }
    227                         // On gère le cas @config:plugin:meta@ suivi d'un test
    228                         preg_match_all('#@config:(.+):(.+)@#U', $condition, $matches);
    229                         foreach ($matches[1] as $plugin) {
    230                                 $config = lire_config($plugin);
    231                                 $condition = preg_replace('#@config:'.$plugin.':'.$matches[2][0].'@#U', '"'.$config[$matches[2][0]].'"', $condition);
    232                         }
     222                        $condition = saisies_transformer_condition_afficher_si_config($condition);
    233223                        // On transforme en une condition PHP valide
    234224                        $ok = saisies_evaluer_afficher_si($condition, $env);
     
    290280        //Sinon c'est que c'est bon
    291281        return true;
     282}
     283
     284/**
     285 * Prend un test conditionnel
     286 * cherche dedans les test @config:xxx@
     287 * remplace par la valeur de la config
     288 * @param string condition;
     289 * @return string condition;
     290**/
     291function saisies_transformer_condition_afficher_si_config($condition) {
     292        include_spip("inc/config");
     293        preg_match_all('#@config:(.*)@#U', $condition, $matches, PREG_SET_ORDER);
     294        foreach ($matches as $plugin) {
     295                $arobase = $plugin[0];
     296                $config_a_tester = str_replace(":", "/", $plugin[1]);
     297                $config = lire_config($config_a_tester);
     298                $condition = str_replace($arobase, '"'.$config.'"', $condition);
     299        }
     300        return $condition;
    292301}
    293302
  • _plugins_/saisies/trunk/paquet.xml

    r113042 r113067  
    22        prefix="saisies"
    33        categorie="outil"
    4         version="3.10.1"
     4        version="3.11.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.