[SPIP] +spip v3.0.17
[lhc/web/clavette_www.git] / www / plugins-dist / svp / formulaires / charger_plugin.php
1 <?php
2
3 /**
4 * Gestion du formulaire de recherche et téléchargement de plugins
5 * distants connus dans un dépot
6 *
7 * @plugin SVP pour SPIP
8 * @license GPL
9 * @package SPIP\SVP\Formulaires
10 */
11
12 if (!defined("_ECRIRE_INC_VERSION")) return;
13
14 /**
15 * Chargement du formulaire de recherche et téléchargement de plugins
16 *
17 * @return array
18 * Environnement du formulaire
19 **/
20 function formulaires_charger_plugin_charger_dist(){
21 return array(
22 'phrase' => _request('phrase'),
23 'categorie' => _request('categorie'),
24 'etat' => _request('etat'),
25 'depot' => _request('depot'),
26 'doublon' => _request('doublon'),
27 'exclusion' => _request('exclusion'),
28 'ids_paquet' => _request('ids_paquet'),
29 '_todo' => _request('_todo'));
30 }
31
32 /**
33 * Vérification du formulaire de recherche et téléchargement de plugins
34 *
35 * Appelle le décideur qui détermine la liste des actions à faire et si celles-ci
36 * peuvent être faites (dépendances connues). Une erreur sera levé dans le
37 * cas contraire.
38 *
39 * Si toutes les actions peuvent être faites, une demande de confirmation
40 * est envoyée (dans une erreur spéciale), présentant alors toutes les
41 * actions qui seront réalisées (celle demandée + celles à faire par voie
42 * de conséquence.
43 *
44 * Si on reçoit une demande de confirmation, on sort sans lever d'erreur !
45 *
46 * @return array
47 * Tableau des erreurs
48 **/
49 function formulaires_charger_plugin_verifier_dist(){
50
51 $erreurs = array();
52 $a_installer = array();
53
54 if (_request('annuler_actions')) {
55 // Requete : Annulation des actions d'installation en cours
56 // -- On vide la liste d'actions en cours
57 set_request('_todo', '');
58
59 } elseif (_request('valider_actions')) {
60
61
62 } elseif (_request('rechercher')) {
63 // annuler les selections si nouvelle recherche
64 set_request('ids_paquet', array());
65 } else {
66 // Requete : Installation d'un ou de plusieurs plugins
67 // -- On construit le tableau des ids de paquets conformement a l'interface du decideur
68 if (_request('installer')) {
69 // L'utilisateur a demande une installation multiple de paquets
70 // -- on verifie la liste des id_paquets uniquement
71 if ($id_paquets = _request('ids_paquet')) {
72 foreach ($id_paquets as $_id_paquet)
73 $a_installer[$_id_paquet] = 'geton';
74 }
75 }
76 else {
77 // L'utilisateur a demande l'installation d'un paquet en cliquant sur le bouton en regard
78 // du resume du plugin -> installer_paquet
79 if ($install = _request('installer_paquet'))
80 if ($id_paquet = key($install))
81 $a_installer[$id_paquet] = 'geton';
82 }
83
84 if (!$a_installer)
85 $erreurs['message_erreur'] = _T('svp:message_nok_aucun_plugin_selectionne');
86 else {
87
88 // On fait appel au decideur pour determiner la liste exacte des commandes apres
89 // verification des dependances
90 include_spip('inc/svp_decider');
91 svp_decider_verifier_actions_demandees($a_installer, $erreurs);
92 }
93 }
94
95 return $erreurs;
96 }
97
98 /**
99 * Traitement du formulaire de recherche et téléchargement de plugins
100 *
101 * Si une liste d'action est validée, on redirige de formulaire sur
102 * l'action 'actionner' qui les traitera une par une.
103 *
104 * @return array
105 * Retours du traitement
106 **/
107 function formulaires_charger_plugin_traiter_dist(){
108
109 $retour = array();
110
111 if (_request('rechercher') OR _request('annuler_actions')) {
112
113 }
114 elseif (_request('valider_actions')) {
115 #refuser_traiter_formulaire_ajax();
116 // Ajout de la liste des actions à l'actionneur
117 // c'est lui qui va effectuer rellement les actions
118 // lors de l'appel de action/actionner
119 $actions = unserialize(_request('_todo'));
120 include_spip('inc/svp_actionner');
121 svp_actionner_traiter_actions_demandees($actions, $retour);
122 }
123
124 $retour['editable'] = true;
125
126 return $retour;
127 }
128
129
130 ?>