[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / action / description_outil.php
1 <?php
2 if (!defined("_ECRIRE_INC_VERSION")) return;
3
4 include_spip('inc/filtres');
5
6 function action_description_outil_dist() {
7 cs_log("INIT : action_description_outil_dist() - Une modification de variable(s) a ete demandee !");
8 $securiser_action = charger_fonction('securiser_action', 'inc');
9 $arg = $securiser_action();
10 spip_log("action_description_outil du Couteau suisse : $arg / "._request('submit'));
11 // spip_log($_POST);
12
13 //cs_log(" -- arg = $arg (index de l'outil appelant)");
14 if (preg_match(",^\W*(\d+)$,", $arg, $r))
15 action_description_outil_post($r[1]);
16 else spip_log("action_description_outil_dist $arg pas compris");
17 cs_log(" FIN : action_description_outil_dist($arg)");
18 }
19
20 function action_description_outil_post($index) {
21 global $metas_vars;
22 if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur'];
23 else global $connect_id_auteur;
24 cs_log("Debut : action_description_outil_post($index) - On modifie la(les) variable(s) dans la base");
25
26 // on recupere dans le POST le nom des variables a modifier et le nom de l'outil correspondant
27 $variables = unserialize(urldecode(corriger_caracteres(_request('variables'))));
28 $outil = corriger_caracteres(_request('outil'));
29 //cs_log($variables, '$variables = ');
30 cs_log($metas_vars, 'metas_vars :');
31 // besoin des outils pour l'autorisation de modifier les variables
32 include_spip('cout_utils');
33 include_spip('config_outils');
34 global $outils, $cs_variables;
35 // on traite chaque variable
36 foreach($variables as $var) if(autoriser('configurer', 'variable', 0, NULL, array('nom'=>$var, 'outil'=>$outils[$outil]))) {
37 // on recupere dans le POST la nouvelle valeur de la variable
38 $final = corriger_caracteres(_request($var));
39 if (in_array($var, $metas_vars['_nombres'])) $final = intval($final);
40 spip_log("Outil du Couteau Suisse ($outil). Demande de modification sur une variable par l'auteur id=$connect_id_auteur : %$var% = $final");
41 // et on modifie les metas !
42 if(!isset($cs_variables[$var]['externe'])) $metas_vars[$var] = $final;
43 if(isset($cs_variables[$var]['action'])) {
44 $action = str_replace('%s', $final, $cs_variables[$var]['action']);
45 spip_log("Outil du Couteau Suisse ($outil). Demande d'action sur cette variable : ".$action);
46 eval($action);
47 }
48
49 } else
50 spip_log("Outil du Couteau Suisse n°$index. Modification interdite de la variable %$var% par l'auteur id=$connect_id_auteur !!");
51 //cs_log($metas_vars, " -- metas_vars = ");
52 ecrire_meta('tweaks_variables', serialize($metas_vars));
53 ecrire_metas();
54
55 cs_log(" -- donc, reinitialisation forcee !");
56 // on reinitialise tout, au cas ou ...
57 include_spip('inc/invalideur');
58 suivre_invalideur("1"); # tout effacer
59 purger_repertoire(_DIR_SKELS);
60 purger_repertoire(_DIR_CACHE);
61 include_spip('cout_utils');
62 cs_initialisation(true);
63 cs_log(" FIN : action_description_outil_post(Array($index)) - Reinitialisation forcee terminee.");
64 }
65 ?>