[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / action / description_outil.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/action/description_outil.php b/www/plugins/auto/couteau_suisse/couteau_suisse/action/description_outil.php
new file mode 100644 (file)
index 0000000..ae34aea
--- /dev/null
@@ -0,0 +1,65 @@
+<?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