--- /dev/null
+<?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