[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / menus_1 / action / editer_menus_entree.php
1 <?php
2
3 if (!defined("_ECRIRE_INC_VERSION")) return;
4
5 /**
6 * Action de création / Modification d'une entrée de menu
7 * @param unknown_type $arg
8 * @return unknown_type
9 */
10 function action_editer_menus_entree_dist($arg=null) {
11
12 $securiser_action = charger_fonction('securiser_action', 'inc');
13 $arg = $securiser_action();
14
15 // si id_menus_entree n'est pas un nombre, c'est une creation
16 if (!$id_menus_entree = intval($arg)) {
17 $id_menu = _request('id_menu_nouvelle_entree') ? _request('id_menu_nouvelle_entree') : _request('id_menu');
18 if(intval($id_menu)){
19 $id_menus_entree = insert_menus_entree($id_menu);
20 }
21 }
22
23 // Enregistre l'envoi dans la BD
24 if ($id_menus_entree > 0)
25 $err = menus_entree_set($id_menus_entree);
26
27 if (_request('redirect')) {
28 $redirect = parametre_url(urldecode(_request('redirect')),
29 'id_menus_entree', $id_menus_entree, '&') . $err;
30
31 include_spip('inc/headers');
32 redirige_par_entete($redirect);
33 }
34 else
35 return array($id_menus_entree,$err);
36 }
37
38 /**
39 * Crée une nouvelle entree de menu et retourne son ID
40 *
41 * @return int id_menus_entree
42 */
43 function insert_menus_entree($id_menu) {
44 // Envoyer aux plugins
45 $champs = array();
46 $champs['id_menu'] = $id_menu;
47 $champs = pipeline('pre_insertion',
48 array(
49 'args' => array(
50 'table' => 'spip_menus_entrees',
51 ),
52 'data' => $champs
53 )
54 );
55
56 $id_menus_entree = sql_insertq("spip_menus_entrees",array('id_menu'=>$id_menu));
57
58 return $id_menus_entree;
59 }
60
61 /**
62 * Appelle la fonction de modification d'une entrée de menu
63 *
64 * @param int $id_menu_entree
65 * @param unknown_type $set
66 * @return $err
67 */
68 function menus_entree_set($id_menus_entree, $set=null) {
69 $err = '';
70
71 $c = array();
72 $c['id_menu'] = _request('id_menu_nouvelle_entree');
73
74 foreach (array(
75 'rang',
76 'type_entree',
77 'parametres'
78 ) as $champ)
79 $c[$champ] = _request($champ, $set);
80
81 $c['parametres'] = is_array($c['parametres']) ? $c['parametres'] : array();
82 $c['parametres'] = serialize($c['parametres']);
83
84 include_spip('inc/menus');
85 $entrees = menus_lister_disponibles();
86 $infos = $entrees[$c['type_entree']];
87
88 include_spip('inc/modifier');
89 revision_menus_entree($id_menus_entree, $c);
90
91 return $err;
92 }
93
94 /**
95 * Enregistre une révision d'entree de menu
96 *
97 * @param int $id_menus_entree
98 * @param array $c
99 * @return
100 */
101 function revision_menus_entree ($id_menus_entree, $c=false) {
102 $invalideur = "id='id_menus_entree/$id_menus_entree'";
103
104 modifier_contenu('menus_entree', $id_menus_entree,
105 array(
106 'invalideur' => $invalideur
107 ),
108 $c);
109
110 return ''; // pas d'erreur
111 }
112 ?>