source: spip-zone/_core_/plugins/svp/formulaires/admin_plugin.php @ 64251

Last change on this file since 64251 was 64251, checked in by marcimat@…, 7 years ago

Changement de stratégie pour l'affichage des erreurs XML : on les affiche via le squelette et non en echo dans le PHP ce qui provoquait semble-t-il parfois des erreurs «header sent» et cassait l'ajax. (cerdic)

File size: 3.3 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function formulaires_admin_plugin_charger_dist($voir='actif', $verrouille='non', $id_paquet='',$redirect=''){
6        $valeurs = array();
7
8        // actualiser la liste des paquets locaux systematiquement
9        include_spip('inc/svp_depoter_local');
10        // sans forcer tout le recalcul en base, mais en récupérant les erreurs XML
11        $valeurs['erreurs_xml'] = array();
12        svp_actualiser_paquets_locaux(false, $valeurs['erreurs_xml']);
13
14        $valeurs['actif'] = 'oui';
15        if ($voir == 'inactif')
16                $valeurs['actif'] = 'non';
17        if ($voir == 'tous')
18                $valeurs['actif'] = '';
19
20        $valeurs['constante'] = array('_DIR_PLUGINS','_DIR_PLUGINS_SUPPL');
21        if ($verrouille == 'oui')
22                $valeurs['constante'] = array('_DIR_PLUGINS_DIST');
23        if ($verrouille == 'tous')
24                $valeurs['constante'] = array();
25
26        $valeurs['verrouille'] = $verrouille;
27        $valeurs['id_paquet'] = $id_paquet;
28        $valeurs['actions'] = array();
29        $valeurs['ids_paquet'] = _request('ids_paquet');
30        $valeurs['_todo'] = _request('_todo');
31
32        return $valeurs;
33}
34
35function formulaires_admin_plugin_verifier_dist($voir='actif', $verrouille='non', $id_paquet='',$redirect=''){
36
37        $erreurs = array();
38
39        if (_request('annuler_actions')) {
40                // Requete : Annulation des actions d'installation en cours
41                // -- On vide la liste d'actions en cours
42                set_request('_todo', '');
43                // -- vider les paquets coches s'il y en a
44                set_request('ids_paquet', array());
45        } elseif (_request('valider_actions')) {
46                // ...
47        } else {
48                $a_actionner = array();
49               
50                // actions globales...
51                if ($action_globale = _request('action_globale') AND _request('appliquer')) {
52                        $ids_paquet = _request('ids_paquet');
53                        if (!is_array($ids_paquet)) {
54                                $erreurs['message_erreur'] = _T('svp:message_erreur_aucun_plugin_selectionne');
55                        } else {
56                                foreach ($ids_paquet as $i) {
57                                        $a_actionner[$i] = $action_globale;
58                                }
59                        }
60                // action unitaire
61                } else {
62                        $actions = _request('actions');
63                        // $actions[type][id] = Texte
64                        // -> $a_actionner[id] = type
65                        foreach ($actions as $action => $p) {
66                                foreach ($p as $i => $null) {
67                                        $a_actionner[$i] = $action;
68                                }
69                        }
70                }
71                // lancer les verifications
72                if (!$a_actionner)
73                        $erreurs['message_erreur'] = _T('svp:message_erreur_aucun_plugin_selectionne');
74                else {
75                       
76                        // On fait appel au decideur pour determiner la liste exacte des commandes apres
77                        // verification des dependances
78                        include_spip('inc/svp_decider');
79                        svp_decider_verifier_actions_demandees($a_actionner, $erreurs);
80                }
81        }
82       
83        return $erreurs;
84}
85
86function formulaires_admin_plugin_traiter_dist($voir='actif', $verrouille='non', $id_paquet='',$redirect=''){
87       
88        $retour = array();
89
90        if (_request('valider_actions')) {
91                #refuser_traiter_formulaire_ajax();
92                // Ajout de la liste des actions à l'actionneur
93                // c'est lui qui va effectuer rellement les actions
94                // lors de l'appel de action/actionner
95                $actions = unserialize(_request('_todo'));
96                include_spip('inc/svp_actionner');
97                svp_actionner_traiter_actions_demandees($actions, $retour,$redirect);
98        }
99               
100        $retour['editable'] = true;
101        return $retour;
102}
103
104/**
105 * Filtre pour simplifier la creation des actions du formulaire
106 * [(#ID_PAQUET|svp_nom_action{desactiver})]
107 * actions[desactiver][24]
108**/
109function filtre_svp_nom_action($id_paquet, $action) {
110        return "actions[$action][$id_paquet]";
111}
112
113?>
Note: See TracBrowser for help on using the repository browser.