[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / svp / exec / admin_plugin.php
index e1295e6..fcb206c 100644 (file)
  *
  * @plugin SVP pour SPIP
  * @license GPL
- * @package SPIP\SVP\Actions
+ * @package SPIP\SVP\Exec
  */
-if (!defined('_ECRIRE_INC_VERSION')) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 include_spip('inc/presentation');
 
 /**
  * Affichage de la page de gestion des plugins
+ *
+ * @uses actualise_plugins_actifs()
+ * @uses svp_presenter_actions_realisees()
+ * @uses plugin_installes_meta()
+ * @uses plugin_donne_erreurs()
+ * @uses svp_vider_tables()
+ *
+ * @pipeline_appel affiche_gauche
+ * @pipeline_appel affiche_droite
  */
 function exec_admin_plugin_dist() {
 
@@ -39,10 +50,10 @@ function exec_admin_plugin_dist() {
        // et l'installation des qu'on est dans la colonne principale
        // si jamais la liste des plugins actifs change, il faut faire un refresh du hit
        // pour etre sur que les bons fichiers seront charges lors de l'install
-       include_spip('inc/plugin'); 
+       include_spip('inc/plugin');
        $new = actualise_plugins_actifs();
-       if ($new AND _request('actualise')<2) {
-               $url = parametre_url(self(),'actualise',_request('actualise')+1,'&');
+       if ($new and _request('actualise') < 2) {
+               $url = parametre_url(self(), 'actualise', _request('actualise') + 1, '&');
                include_spip('inc/headers');
                echo redirige_formulaire($url);
                exit;
@@ -64,18 +75,18 @@ function exec_admin_plugin_dist() {
 // car dans le html d'un squelette, encapsule dans un ob_start()/ob_flush(),
 // la redirection en cas de timeout sur une installation ne se fait pas.
 
-/*
-       // on installe les plugins maintenant,
-       // cela permet aux scripts d'install de faire des affichages (moches...)
-       plugin_installes_meta();
-       
-       // les squelettes ne peuvent pas s'appeler 'admin_plugin'
-       // sinon Z les charge en priorite par rapport a ce fichier exec en PHP
-       set_request('fond', 'svp_admin_plugin');
-       
-       // on lance l'affichage standard Z
-       include_spip('exec/fond');
-*/
+       /*
+               // on installe les plugins maintenant,
+               // cela permet aux scripts d'install de faire des affichages (moches...)
+               plugin_installes_meta();
+
+               // les squelettes ne peuvent pas s'appeler 'admin_plugin'
+               // sinon Z les charge en priorite par rapport a ce fichier exec en PHP
+               set_request('fond', 'svp_admin_plugin');
+
+               // on lance l'affichage standard Z
+               include_spip('exec/fond');
+       */
 
 
        // liste des erreurs mises en forme 
@@ -89,40 +100,75 @@ function exec_admin_plugin_dist() {
 
        echo pipeline('affiche_gauche',
                array(
-               'args'=>array('exec'=>'admin_plugin'),
-               'data'=> recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')
+                       'args' => array('exec' => 'admin_plugin'),
+                       'data' => recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')
                )
        );
 
        echo debut_droite('plugin', true);
 
+       echo gros_titre(_T('icone_admin_plugin'), '', false);
+
        //  alerte si mode de compatibilité forcée
-       $mode_compat = defined('_DEV_PLUGINS') ?
-               '<span class="notice">'. _T('svp:alerte_compatibilite') .'</span>' : '';
-       
-       echo gros_titre(_T('icone_admin_plugin') . $mode_compat, '', false);
+       if (defined('_DEV_VERSION_SPIP_COMPAT')) {
+               echo '<div class="notice">'
+                               . '<strong>' .  _T('svp:alerte_compatibilite') . '</strong><br />'
+                               . _T('svp:alerte_compatibilite_version_autorisee', array('version' => _DEV_VERSION_SPIP_COMPAT))
+                       . '</div>';
+       }
 
        // message d'erreur au retour d'une operation
-       if ($erreur_activation){
+       if ($erreur_activation) {
                include_spip('inc/filtres_boites');
-               echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreur_activation . boite_fermer() . "</div>";
+               echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'),
+                               'error') . $erreur_activation . boite_fermer() . "</div>";
        }
 
        // afficher les actions realisees s'il y en a eu
        // (activation/desactivation/telechargement...)
        echo svp_presenter_actions_realisees();
-       
+
        // on installe les plugins maintenant,
        // cela permet aux scripts d'install de faire des affichages (moches...)
        plugin_installes_meta();
 
+       $args = $_REQUEST;
+       // quand on demande un 'voir', on le memorise en session utilisateur
+       if (isset($args['voir'])) {
+               session_set('svp_admin_plugin_voir', $args['voir']);
+       }
+       if (!isset($args['voir'])
+               and $voir = session_get('svp_admin_plugin_voir')
+               and in_array($voir, array('tous', 'actif', 'inactif'))
+       ) {
+               $args['voir'] = $voir;
+       }
+       if (!isset($args['voir'])) {
+               /*$args['voir'] = 'tous';
+               $count = count(liste_plugin_files());
+               if ($count>256) */
+               $args['voir'] = 'actif';
+       }
 
-       echo recuperer_fond('prive/squelettes/contenu/svp_admin_plugin', $_REQUEST, array('ajax' => true));
+       if (isset($args['verrouille'])) {
+               session_set('svp_admin_plugin_verrouille', $args['verrouille']);
+       }
+       if (!isset($args['verrouille'])
+               and $verrouille = session_get('svp_admin_plugin_verrouille')
+               and in_array($verrouille, array('tous', 'oui', 'non'))
+       ) {
+               $args['verrouille'] = $verrouille;
+       }
+       if (!isset($args['verrouille'])) {
+               $args['verrouille'] = 'non'; //'tous';
+       }
+
+       echo recuperer_fond('prive/squelettes/contenu/svp_admin_plugin', $args, array('ajax' => true));
 
        echo pipeline('affiche_milieu',
                array(
-               'args'=>array('exec'=>'admin_plugin'),
-               'data'=>''
+                       'args' => array('exec' => 'admin_plugin'),
+                       'data' => ''
                )
        );
 
@@ -141,11 +187,11 @@ function exec_admin_plugin_dist() {
  *   dans l'URL (ce lien est justement disponible si l'auteur des actions
  *   tombe sur cette page alors qu'il reste des actions à faire, ce qui
  *   signale en général un problème)
- * 
+ *
  * @return string
  *     Code HTML présentant les actions réalisées
  *     Vide si rien ne s'est passé !
-**/
+ **/
 function svp_presenter_actions_realisees() {
        // presenter les traitements realises... si tel est le cas...
        include_spip('inc/svp_actionner');
@@ -160,7 +206,7 @@ function svp_presenter_actions_realisees() {
        $pres = $actionneur->presenter_actions($fin = true);
 
        // s'il ne reste aucune action a faire
-       if (!$actionneur->est_verrouille() OR !count($actionneur->end)) {
+       if (!$actionneur->est_verrouille() or !count($actionneur->end)) {
                $actionneur->nettoyer_actions();
        }