[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / action / activer_plugins.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 // mise a jour des donnees si envoi via formulaire
16 // http://doc.spip.org/@enregistre_modif_plugin
17 function enregistre_modif_plugin(){
18 include_spip('inc/plugin');
19 // recuperer les plugins dans l'ordre des $_POST
20 $test = array();
21 foreach(liste_plugin_files() as $file){
22 $test['s'.substr(md5(_DIR_PLUGINS.$file),0,16)] = $file;
23 }
24 if (defined('_DIR_PLUGINS_SUPPL'))
25 foreach(liste_plugin_files(_DIR_PLUGINS_SUPPL) as $file){
26 $test['s'.substr(md5(_DIR_PLUGINS_SUPPL.$file),0,16)] = $file;
27 }
28
29 $plugin=array();
30
31 foreach($_POST as $choix=>$val){
32 if (isset($test[$choix])&&$val=='O')
33 $plugin[]=$test[$choix];
34 }
35
36 spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['visiteur_session']['id_auteur'] . ": " . join(',', $plugin));
37 ecrire_plugin_actifs($plugin);
38
39 // 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.
40 $plugins_interessants = @unserialize($GLOBALS['meta']['plugins_interessants']);
41 if (!is_array($plugins_interessants))
42 $plugins_interessants = array();
43
44 $plugins_interessants2 = array();
45
46 foreach($plugins_interessants as $plug => $score)
47 if ($score > 1)
48 $plugins_interessants2[$plug] = $score-1;
49 foreach ($plugin as $plug)
50 $plugins_interessants2[$plug] = 10; // score initial
51 ecrire_meta('plugins_interessants', serialize($plugins_interessants2));
52 }
53
54 // http://doc.spip.org/@action_activer_plugins_dist
55 function action_activer_plugins_dist() {
56
57 $securiser_action = charger_fonction('securiser_action', 'inc');
58 $securiser_action();
59
60 if (!autoriser('configurer', '_plugins'))
61 die('erreur');
62 // forcer la maj des meta pour les cas de modif de numero de version base via phpmyadmin
63 lire_metas();
64 enregistre_modif_plugin();
65 }
66
67 ?>