--- /dev/null
+<?php\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+include_spip('inc/filtres');\r
+\r
+function action_description_outil_dist() {\r
+cs_log("INIT : action_description_outil_dist() - Une modification de variable(s) a ete demandee !");\r
+ $securiser_action = charger_fonction('securiser_action', 'inc');\r
+ $arg = $securiser_action();\r
+ spip_log("action_description_outil du Couteau suisse : $arg / "._request('submit'));\r
+// spip_log($_POST);\r
+\r
+//cs_log(" -- arg = $arg (index de l'outil appelant)");\r
+ if (preg_match(",^\W*(\d+)$,", $arg, $r))\r
+ action_description_outil_post($r[1]);\r
+ else spip_log("action_description_outil_dist $arg pas compris");\r
+cs_log(" FIN : action_description_outil_dist($arg)");\r
+}\r
+\r
+function action_description_outil_post($index) {\r
+ global $metas_vars;\r
+ if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur'];\r
+ else global $connect_id_auteur;\r
+cs_log("Debut : action_description_outil_post($index) - On modifie la(les) variable(s) dans la base");\r
+\r
+ // on recupere dans le POST le nom des variables a modifier et le nom de l'outil correspondant\r
+ $variables = unserialize(urldecode(corriger_caracteres(_request('variables'))));\r
+ $outil = corriger_caracteres(_request('outil'));\r
+//cs_log($variables, '$variables = ');\r
+cs_log($metas_vars, 'metas_vars :');\r
+ // besoin des outils pour l'autorisation de modifier les variables\r
+ include_spip('cout_utils');\r
+ include_spip('config_outils');\r
+ global $outils, $cs_variables;\r
+ // on traite chaque variable\r
+ foreach($variables as $var) if(autoriser('configurer', 'variable', 0, NULL, array('nom'=>$var, 'outil'=>$outils[$outil]))) {\r
+ // on recupere dans le POST la nouvelle valeur de la variable\r
+ $final = corriger_caracteres(_request($var));\r
+ if (in_array($var, $metas_vars['_nombres'])) $final = intval($final);\r
+ spip_log("Outil du Couteau Suisse ($outil). Demande de modification sur une variable par l'auteur id=$connect_id_auteur : %$var% = $final");\r
+ // et on modifie les metas !\r
+ if(!isset($cs_variables[$var]['externe'])) $metas_vars[$var] = $final;\r
+ if(isset($cs_variables[$var]['action'])) {\r
+ $action = str_replace('%s', $final, $cs_variables[$var]['action']);\r
+ spip_log("Outil du Couteau Suisse ($outil). Demande d'action sur cette variable : ".$action);\r
+ eval($action);\r
+ }\r
+ \r
+ } else \r
+ spip_log("Outil du Couteau Suisse n°$index. Modification interdite de la variable %$var% par l'auteur id=$connect_id_auteur !!");\r
+//cs_log($metas_vars, " -- metas_vars = ");\r
+ ecrire_meta('tweaks_variables', serialize($metas_vars));\r
+ ecrire_metas();\r
+\r
+cs_log(" -- donc, reinitialisation forcee !");\r
+ // on reinitialise tout, au cas ou ...\r
+ include_spip('inc/invalideur');\r
+ suivre_invalideur("1"); # tout effacer\r
+ purger_repertoire(_DIR_SKELS);\r
+ purger_repertoire(_DIR_CACHE);\r
+ include_spip('cout_utils');\r
+ cs_initialisation(true);\r
+cs_log(" FIN : action_description_outil_post(Array($index)) - Reinitialisation forcee terminee.");\r
+}\r
+?>
\ No newline at end of file