[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / svp / formulaires / charger_plugin.php
index ab0fba8..88d271f 100644 (file)
@@ -8,16 +8,21 @@
  * @license GPL
  * @package SPIP\SVP\Formulaires
  */
-if (!defined("_ECRIRE_INC_VERSION")) return;
+
+if (!defined("_ECRIRE_INC_VERSION")) {
+       return;
+}
+
+// pour svp_presenter_actions_realisees()
+include_spip('exec/admin_plugin');
 
 /**
  * Chargement du formulaire de recherche et téléchargement de plugins
  *
  * @return array
  *     Environnement du formulaire
-**/
-function formulaires_charger_plugin_charger_dist(){
+ **/
+function formulaires_charger_plugin_charger_dist() {
        return array(
                'phrase' => _request('phrase'),
                'categorie' => _request('categorie'),
@@ -26,7 +31,11 @@ function formulaires_charger_plugin_charger_dist(){
                'doublon' => _request('doublon'),
                'exclusion' => _request('exclusion'),
                'ids_paquet' => _request('ids_paquet'),
-               '_todo' => _request('_todo'));
+               '_todo' => _request('_todo'),
+               '_libelles_actions' => _request('_libelles_actions'),
+               // on présente les actions réalisées ici au retour, lorsqu'il n'y avait eu que des Téléchargement demandés (sans activation)
+               '_actions_realisees' => (_request('todo') or _AJAX) ? '' : svp_presenter_actions_realisees()
+       );
 }
 
 /**
@@ -42,11 +51,12 @@ function formulaires_charger_plugin_charger_dist(){
  * de conséquence.
  *
  * Si on reçoit une demande de confirmation, on sort sans lever d'erreur !
- * 
+ *
+ * @uses svp_decider_verifier_actions_demandees()
  * @return array
  *     Tableau des erreurs
-**/
-function formulaires_charger_plugin_verifier_dist(){
+ **/
+function formulaires_charger_plugin_verifier_dist() {
 
        $erreurs = array();
        $a_installer = array();
@@ -55,43 +65,45 @@ function formulaires_charger_plugin_verifier_dist(){
                // Requete : Annulation des actions d'installation en cours
                // -- On vide la liste d'actions en cours
                set_request('_todo', '');
-       
+
        } elseif (_request('valider_actions')) {
-               
-       
+
+
        } elseif (_request('rechercher')) {
                // annuler les selections si nouvelle recherche
                set_request('ids_paquet', array());
        } else {
                // Requete : Installation d'un ou de plusieurs plugins
                // -- On construit le tableau des ids de paquets conformement a l'interface du decideur
-               if (_request('installer')) {
+               if (_request('installer') or _request('telecharger')) {
+                       $action = _request('installer') ? 'geton' : 'get';
                        // L'utilisateur a demande une installation multiple de paquets
                        // -- on verifie la liste des id_paquets uniquement
                        if ($id_paquets = _request('ids_paquet')) {
-                               foreach ($id_paquets as $_id_paquet)
-                                       $a_installer[$_id_paquet] = 'geton';
+                               foreach ($id_paquets as $_id_paquet) {
+                                       $a_installer[$_id_paquet] = $action;
+                               }
                        }
-               }
-               else {
+               } else {
                        // L'utilisateur a demande l'installation d'un paquet en cliquant sur le bouton en regard
                        // du resume du plugin -> installer_paquet
-                       if ($install = _request('installer_paquet'))
-                               if ($id_paquet = key($install))
+                       if ($install = _request('installer_paquet')) {
+                               if ($id_paquet = key($install)) {
                                        $a_installer[$id_paquet] = 'geton';
+                               }
+                       }
                }
 
-               if (!$a_installer)
+               if (!$a_installer) {
                        $erreurs['message_erreur'] = _T('svp:message_nok_aucun_plugin_selectionne');
-               else {
-                       
+               } else {
                        // On fait appel au decideur pour determiner la liste exacte des commandes apres
                        // verification des dependances
                        include_spip('inc/svp_decider');
                        svp_decider_verifier_actions_demandees($a_installer, $erreurs);
                }
        }
-       
+
        return $erreurs;
 }
 
@@ -100,31 +112,32 @@ function formulaires_charger_plugin_verifier_dist(){
  *
  * Si une liste d'action est validée, on redirige de formulaire sur
  * l'action 'actionner' qui les traitera une par une.
- * 
+ *
  * @return array
  *     Retours du traitement
-**/
-function formulaires_charger_plugin_traiter_dist(){
+ **/
+function formulaires_charger_plugin_traiter_dist() {
 
        $retour = array();
 
-       if (_request('rechercher') OR _request('annuler_actions')) {
+       if (_request('rechercher') or _request('annuler_actions')) {
 
-       }
-       elseif (_request('valider_actions')) {
+       } elseif (_request('valider_actions')) {
                #refuser_traiter_formulaire_ajax();
                // Ajout de la liste des actions à l'actionneur
                // c'est lui qui va effectuer rellement les actions
                // lors de l'appel de action/actionner 
                $actions = unserialize(_request('_todo'));
                include_spip('inc/svp_actionner');
-               svp_actionner_traiter_actions_demandees($actions, $retour);
+               // si toutes les actions sont des téléchargements (pas d'activation), on reste sur cette page
+               $redirect = null;
+               if (!array_diff($actions, array('get'))) {
+                       $redirect = self();
+               }
+               svp_actionner_traiter_actions_demandees($actions, $retour, $redirect);
        }
 
        $retour['editable'] = true;
 
        return $retour;
 }
-
-
-?>