[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / menus_1 / menus_ieconfig.php
1 <?php
2
3 if (!defined("_ECRIRE_INC_VERSION")) return;
4
5 /*
6 * function menus_ieconfig_metas
7 * Pipeline ieconfig pour l'import/export desmetas du plugin menu
8 *
9 * @param array $table
10 * @return array
11 *
12 */
13 function menus_ieconfig_metas($table) {
14 $table['menus_meta']['titre'] = _T('paquet-menus:menus_titre');
15 $table['menus_meta']['icone'] = 'prive/themes/spip/images/menu-16.png';
16 $table['menus_meta']['metas_serialize'] = 'menus';
17 return $table;
18 }
19
20 /**
21 * Pipeline ieconfig pour l'import/export des menus
22 *
23 * @param array $flux
24 * @return array
25 */
26 function menus_ieconfig($flux){
27 include_spip('inc/texte');
28 $action = $flux['args']['action'];
29
30 // Formulaire d'export
31 if ($action=='form_export') {
32 $saisies = array(
33 array(
34 'saisie' => 'fieldset',
35 'options' => array(
36 'nom' => 'menus_export',
37 'label' => '<:menus:editer_menus_titre:>',
38 'icone' => 'menu-16.png'
39 ),
40 'saisies' => array(
41 array(
42 'saisie' => 'menus_multiple',
43 'options' => array(
44 'nom' => 'menus_a_exporter',
45 'label' => '<:menus:formulaire_ieconfig_menus_a_exporter:>',
46 'cacher_option_intro' => 'oui'
47 )
48 )
49 )
50 )
51 );
52 $flux['data'] = array_merge($flux['data'],$saisies);
53 }
54
55 // Tableau d'export
56 if ($action=='export' && is_array(_request('menus_a_exporter')) && count(_request('menus_a_exporter'))>0) {
57 $flux['data']['menus'] = array();
58 include_spip('base/abstract_sql');
59 include_spip('action/exporter_menu');
60 foreach (_request('menus_a_exporter') as $identifiant) {
61 $menu = sql_fetsel(array('id_menu','titre','css'),'spip_menus','identifiant = '.sql_quote($identifiant));
62 $id_menu = $menu['id_menu'];
63 unset($menu['id_menu']);
64 $menu['entrees'] = exporter_menu_recursif($id_menu);
65 $flux['data']['menus'][$identifiant] = $menu;
66 }
67 }
68
69 // Formulaire d'import
70 if ($action=='form_import' && isset($flux['args']['config']['menus']) && is_array($flux['args']['config']['menus']) && count($flux['args']['config']['menus'])>0) {
71 $saisies = array(
72 array(
73 'saisie' => 'fieldset',
74 'options' => array(
75 'nom' => 'menus_import',
76 'label' => '<:menus:editer_menus_titre:>',
77 'icone' => 'menu-16.png'
78 ),
79 'saisies' => array(
80 array(
81 'saisie' => 'explication',
82 'options' => array(
83 'nom' => 'menus_import_explication',
84 'texte' => '<:menus:formulaire_ieconfig_choisir_menus_a_importer:>'
85 )
86 )
87 )
88 )
89 );
90 foreach ($flux['args']['config']['menus'] as $identifiant => $menu) {
91 if (sql_countsel('spip_menus','identifiant = '.sql_quote($identifiant))>0) {
92 $saisies[0]['saisies'][] = array(
93 'saisie' => 'selection',
94 'options' => array(
95 'nom' => 'menus_importer_'.$identifiant,
96 'label' => $identifiant.(isset($menu['titre']) ? ' ('.typo($menu['titre']).')' : ''),
97 'cacher_option_intro' => 'oui',
98 'attention' => '<:menus:formulaire_ieconfig_menu_meme_identifiant:>',
99 'datas' => array(
100 'non' => '<:menus:formulaire_ieconfig_ne_pas_importer:>',
101 'renommer' => '<:menus:formulaire_ieconfig_renommer:>',
102 'remplacer' => '<:menus:formulaire_ieconfig_remplacer:>'
103 )
104 )
105 );
106 } else {
107 $saisies[0]['saisies'][] = array(
108 'saisie' => 'selection',
109 'options' => array(
110 'nom' => 'menus_importer_'.$identifiant,
111 'label' => $identifiant.(isset($menu['titre']) ? ' ('.typo($menu['titre']).')' : ''),
112 'cacher_option_intro' => 'oui',
113 'datas' => array(
114 'non' => '<:menus:formulaire_ieconfig_ne_pas_importer:>',
115 'importer' => '<:menus:formulaire_ieconfig_importer:>'
116 )
117 )
118 );
119 }
120 }
121 $flux['data'] = array_merge($flux['data'],$saisies);
122 }
123
124 // Import de la configuration
125 if ($action=='import' && isset($flux['args']['config']['menus']) && is_array($flux['args']['config']['menus']) && count($flux['args']['config']['menus'])>0) {
126 foreach ($flux['args']['config']['menus'] as $identifiant => $menu) {
127 $choix = _request('menus_importer_'.$identifiant);
128 include_spip('base/abstract_sql');
129 include_spip('inc/menus');
130 include_spip('action/editer_menu');
131 if ($choix == 'remplacer') {
132 $id_menu = intval(sql_getfetsel('id_menu','spip_menus','identifiant = '.sql_quote($identifiant)));
133 menus_supprimer_menu($id_menu);
134 }
135 if ($choix == 'renommer')
136 $identifiant = $identifiant.'_'.time();
137 if (in_array($choix,array('importer','remplacer','renommer'))) {
138 $titre = isset($menu['titre']) ? $menu['titre'] : '';
139 $css = isset($menu['css']) ? $menu['css'] : '';
140 $id_menu = sql_insertq('spip_menus',array(
141 'identifiant' => $identifiant,
142 'titre' => $titre,
143 'css' => $css
144 ));
145 if (isset($menu['entrees']))
146 menus_importer($menu['entrees'], $id_menu);
147 }
148 }
149 }
150
151 return($flux);
152 }
153
154 ?>