[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / action / activer_plugins.php
index 0226197..cdc592d 100644 (file)
@@ -3,65 +3,90 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2016                                                *
+ *  Copyright (c) 2001-2017                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Gestion de l'action activer_plugins
+ *
+ * @package SPIP\Core\Plugins
+ **/
 
-// mise a jour des donnees si envoi via formulaire
-// http://doc.spip.org/@enregistre_modif_plugin
-function enregistre_modif_plugin(){
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
+
+/**
+ * Mise à jour des données si envoi via formulaire
+ *
+ * @global array $GLOBALS ['visiteur_session']
+ * @global array $GLOBALS ['meta']
+ * @return void
+ */
+function enregistre_modif_plugin() {
        include_spip('inc/plugin');
-  // recuperer les plugins dans l'ordre des $_POST
+       // recuperer les plugins dans l'ordre des $_POST
        $test = array();
-       foreach(liste_plugin_files() as $file){
-         $test['s'.substr(md5(_DIR_PLUGINS.$file),0,16)] = $file;
+       foreach (liste_plugin_files() as $file) {
+               $test['s' . substr(md5(_DIR_PLUGINS . $file), 0, 16)] = $file;
        }
-       if (defined('_DIR_PLUGINS_SUPPL'))
-               foreach(liste_plugin_files(_DIR_PLUGINS_SUPPL) as $file){
-                 $test['s'.substr(md5(_DIR_PLUGINS_SUPPL.$file),0,16)] = $file;
+       if (defined('_DIR_PLUGINS_SUPPL')) {
+               foreach (liste_plugin_files(_DIR_PLUGINS_SUPPL) as $file) {
+                       $test['s' . substr(md5(_DIR_PLUGINS_SUPPL . $file), 0, 16)] = $file;
                }
+       }
 
-       $plugin=array();
+       $plugin = array();
 
-       foreach($_POST as $choix=>$val){
-               if (isset($test[$choix])&&$val=='O')
-                       $plugin[]=$test[$choix];
+       foreach ($_POST as $choix => $val) {
+               if (isset($test[$choix]) && $val == 'O') {
+                       $plugin[] = $test[$choix];
+               }
        }
 
-       spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['visiteur_session']['id_auteur'] . ": " . join(',', $plugin));
+       spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['visiteur_session']['id_auteur'] . ": " . join(',',
+                       $plugin));
        ecrire_plugin_actifs($plugin);
 
        // Chaque fois que l'on valide des plugins, on memorise la liste de ces plugins comme etant "interessants", avec un score initial, qui sera decremente a chaque tour : ainsi un plugin active pourra reter visible a l'ecran, jusqu'a ce qu'il tombe dans l'oubli.
        $plugins_interessants = @unserialize($GLOBALS['meta']['plugins_interessants']);
-       if (!is_array($plugins_interessants))
+       if (!is_array($plugins_interessants)) {
                $plugins_interessants = array();
+       }
 
        $plugins_interessants2 = array();
 
-       foreach($plugins_interessants as $plug => $score)
-               if ($score > 1)
-                       $plugins_interessants2[$plug] = $score-1;
-       foreach ($plugin as $plug)
-               $plugins_interessants2[$plug] = 10; // score initial
+       foreach ($plugins_interessants as $plug => $score) {
+               if ($score > 1) {
+                       $plugins_interessants2[$plug] = $score - 1;
+               }
+       }
+       foreach ($plugin as $plug) {
+               $plugins_interessants2[$plug] = 10;
+       } // score initial
        ecrire_meta('plugins_interessants', serialize($plugins_interessants2));
 }
 
-// http://doc.spip.org/@action_activer_plugins_dist
+/**
+ * Fonction d'initialisation avant l'activation des plugins
+ *
+ * Vérifie les droits et met à jour les méta avant de lancer l'activation des plugins
+ *
+ * @return void
+ */
 function action_activer_plugins_dist() {
 
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $securiser_action();
 
-       if (!autoriser('configurer', '_plugins'))
+       if (!autoriser('configurer', '_plugins')) {
                die('erreur');
+       }
        // forcer la maj des meta pour les cas de modif de numero de version base via phpmyadmin
        lire_metas();
        enregistre_modif_plugin();
 }
-
-?>