[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / exec / action_rapide.php
1 <?php
2 #-----------------------------------------------------#
3 # Plugin : Couteau Suisse - Licence : GPL #
4 # Auteur : Patrice Vanneufville, 2008 #
5 # Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
6 # Infos : http://www.spip-contrib.net/?article2166 #
7 #-----------------------------------------------------#
8 if (!defined("_ECRIRE_INC_VERSION")) return;
9
10 include_spip('inc/actions');
11
12 // fonction generique appelee par ?exec=action_rapide&arg=mon_outil|argument (pipe obligatoire)
13 // la fonction mon_outil_argument_action_rapide() est apellee apres un include_spip('outils/mon_outil_action_rapide')
14 function exec_action_rapide_dist() {
15 global $type_urls;
16 cs_log("INIT : exec_action_rapide_dist() - Preparation par Ajax (donnees transmises par GET)");
17 // droits du Couteau Suisse
18 cs_minipres();
19 list($outil, $arg) = explode('|',_request('arg'),2);
20 $script = _request('script');
21 cs_log(" -- script = $script - outil = $outil - arg = $arg");
22 // verification du format de l'argument
23 cs_minipres(!isset($arg));
24 if(!strlen($arg)) $arg = 'retour_nul';
25 cs_minipres(!preg_match('/^\w+$/', $script));
26
27 switch ($arg) {
28 // retour normal des actions rapides du couteau suisse : affichage du bloc au sein de la description d'un outil
29 case 'description_outil':
30 cs_log(" -- Preparation de l'affichage de la description de l'outil");
31 include_spip('inc/cs_outils');
32 $res = cs_action_rapide($outil);
33 cs_log(" FIN : exec_action_rapide_dist() - Appel maintenant de ajax_retour() pour afficher le formulaire de '$outil'");
34 ajax_retour($res);
35 break;
36
37 // mettre a jour les fichiers distants d'un outil...
38 case 'fichiers_distants':
39 global $outils;
40 include_spip('cout_utils');
41 include_spip('config_outils');
42 if(autoriser('configurer', 'outil', 0, NULL, $outil)) {
43 include_spip('inc/cs_outils');
44 cs_initialisation_d_un_outil($outil, charger_fonction('description_outil', 'inc'), false);
45 // mise a jour forcee
46 $res = cs_action_fichiers_distants($outils[$outil], true);
47 }
48 cs_log(" FIN : exec_action_rapide_dist() - Appel maintenant de ajax_retour() pour afficher le formulaire de '$outil'");
49 ajax_retour($res);
50 break;
51
52 // pour le reste (ex : 'sauve_pack' en mode non ajax), rien a faire.
53 case 'retour_nul':
54 cs_log("FIN : exec_action_rapide_dist() - Retour nul");
55 break;
56
57 default:
58 // fonction mon_outil_argument_exec() suite a l'appel de ?exec=action_rapide&arg=mon_outil|argument
59 cs_log("FIN : exec_action_rapide_dist() - Appel de {$outil}_{$arg}_exec()");
60 include_spip('outils/'.$outil.'_action_rapide');
61 if(function_exists($fct = $outil.'_'.$arg.'_exec')) $fct();
62 break;
63 }
64 }
65
66 ?>