[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / cfg / cfg / params / rediriger.php
diff --git a/www/plugins/auto/cfg/cfg/params/rediriger.php b/www/plugins/auto/cfg/cfg/params/rediriger.php
new file mode 100644 (file)
index 0000000..068919d
--- /dev/null
@@ -0,0 +1,58 @@
+<?php\r
+\r
+/**\r
+ * Plugin générique de configuration pour SPIP\r
+ *\r
+ * @license    GNU/GPL\r
+ * @package    plugins\r
+ * @subpackage cfg\r
+ * @category   outils\r
+ * @copyright  (c) toggg, marcimat 2007-2008\r
+ * @link       http://www.spip-contrib.net/\r
+ * @version    $Id: rediriger.php 53409 2011-10-13 20:42:57Z yffic@lefourneau.com $\r
+ */\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+\r
+/**\r
+ * restaure des messages serialises dans une meta 'cfg_message_{id_auteur}'\r
+ * \r
+ * Si le formulaire cfg avait demande une redirection...\r
+ * (et provient de cette redirection), il est possible\r
+ * qu'il y ait un message a afficher\r
+ * \r
+ * @param mixed $valeur # inutilisé\r
+ * @param Object $cfg\r
+ */\r
+function cfg_pre_charger_param_rediriger($valeur, &$cfg){\r
+       if ($messages = $GLOBALS['meta']['cfg_message_'.$GLOBALS['auteur_session']['id_auteur']]){\r
+                       include_spip('inc/meta');\r
+                       effacer_meta('cfg_message_'.$GLOBALS['auteur_session']['id_auteur']);\r
+                       if (defined('_COMPAT_CFG_192')) ecrire_metas();\r
+                       $cfg->messages = array_merge($cfg->messages, unserialize($messages));\r
+       }       \r
+}\r
+\r
+/**\r
+ * Traite une demande de redirection\r
+ * \r
+ * Si le fond du formulaire demande expressement une redirection\r
+ * par <!-- rediriger=1 -->, on stocke le message dans une meta\r
+ * et on redirige le client, de maniere a charger la page\r
+ * avec la nouvelle config (ce qui permet par exemple a Autorite\r
+ * de controler d'eventuels conflits generes par les nouvelles autorisations)\r
+ * \r
+ * @param mixed $valeur # inutilisé\r
+ * @param Object $cfg\r
+ */\r
+function cfg_post_traiter_param_rediriger($valeur, &$cfg){\r
+       if ($cfg->messages) {\r
+               include_spip('inc/meta');\r
+               ecrire_meta('cfg_message_'.$GLOBALS['auteur_session']['id_auteur'], serialize($cfg->messages), 'non');\r
+               if (defined('_COMPAT_CFG_192')) ecrire_metas();\r
+               include_spip('inc/headers');\r
+               redirige_par_entete(parametre_url(self(),null,null,'&'));\r
+       }\r
+}\r
+\r
+?>\r