X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fplugins%2Fmenus%2Fmenus_ieconfig.php;fp=www%2Fplugins%2Fmenus%2Fmenus_ieconfig.php;h=c07647b0b216a556a2425d64a7f22cf143778c53;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/plugins/menus/menus_ieconfig.php b/www/plugins/menus/menus_ieconfig.php new file mode 100644 index 0000000..c07647b --- /dev/null +++ b/www/plugins/menus/menus_ieconfig.php @@ -0,0 +1,139 @@ + 'fieldset', + 'options' => array( + 'nom' => 'menus_export', + 'label' => '<:menus:editer_menus_titre:>', + 'icone' => 'images/menus-24.png' + ), + 'saisies' => array( + array( + 'saisie' => 'menus_multiple', + 'options' => array( + 'nom' => 'menus_a_exporter', + 'label' => '<:menus:formulaire_ieconfig_menus_a_exporter:>', + 'cacher_option_intro' => 'oui' + ) + ) + ) + ) + ); + $flux['data'] = array_merge($flux['data'],$saisies); + } + + // Tableau d'export + if ($action=='export' && is_array(_request('menus_a_exporter')) && count(_request('menus_a_exporter'))>0) { + $flux['data']['menus'] = array(); + include_spip('base/abstract_sql'); + include_spip('action/exporter_menu'); + foreach (_request('menus_a_exporter') as $identifiant) { + $menu = sql_fetsel(array('id_menu','titre','css'),'spip_menus','identifiant = '.sql_quote($identifiant)); + $id_menu = $menu['id_menu']; + unset($menu['id_menu']); + $menu['entrees'] = exporter_menu_recursif($id_menu); + $flux['data']['menus'][$identifiant] = $menu; + } + } + + // Formulaire d'import + if ($action=='form_import' && isset($flux['args']['config']['menus']) && is_array($flux['args']['config']['menus']) && count($flux['args']['config']['menus'])>0) { + $saisies = array( + array( + 'saisie' => 'fieldset', + 'options' => array( + 'nom' => 'menus_import', + 'label' => '<:menus:editer_menus_titre:>', + 'icone' => 'images/menus-24.png' + ), + 'saisies' => array( + array( + 'saisie' => 'explication', + 'options' => array( + 'nom' => 'menus_import_explication', + 'texte' => '<:menus:formulaire_ieconfig_choisir_menus_a_importer:>' + ) + ) + ) + ) + ); + foreach ($flux['args']['config']['menus'] as $identifiant => $menu) { + if (sql_countsel('spip_menus','identifiant = '.sql_quote($identifiant))>0) { + $saisies[0]['saisies'][] = array( + 'saisie' => 'selection', + 'options' => array( + 'nom' => 'menus_importer_'.$identifiant, + 'label' => $identifiant.(isset($menu['titre']) ? ' ('.typo($menu['titre']).')' : ''), + 'cacher_option_intro' => 'oui', + 'attention' => '<:menus:formulaire_ieconfig_menu_meme_identifiant:>', + 'datas' => array( + 'non' => '<:menus:formulaire_ieconfig_ne_pas_importer:>', + 'renommer' => '<:menus:formulaire_ieconfig_renommer:>', + 'remplacer' => '<:menus:formulaire_ieconfig_remplacer:>' + ) + ) + ); + } else { + $saisies[0]['saisies'][] = array( + 'saisie' => 'selection', + 'options' => array( + 'nom' => 'menus_importer_'.$identifiant, + 'label' => $identifiant.(isset($menu['titre']) ? ' ('.typo($menu['titre']).')' : ''), + 'cacher_option_intro' => 'oui', + 'datas' => array( + 'non' => '<:menus:formulaire_ieconfig_ne_pas_importer:>', + 'importer' => '<:menus:formulaire_ieconfig_importer:>' + ) + ) + ); + } + } + $flux['data'] = array_merge($flux['data'],$saisies); + } + + // Import de la configuration + if ($action=='import' && isset($flux['args']['config']['menus']) && is_array($flux['args']['config']['menus']) && count($flux['args']['config']['menus'])>0) { + foreach ($flux['args']['config']['menus'] as $identifiant => $menu) { + $choix = _request('menus_importer_'.$identifiant); + include_spip('base/abstract_sql'); + include_spip('inc/menus'); + include_spip('action/editer_menu'); + if ($choix == 'remplacer') { + $id_menu = intval(sql_getfetsel('id_menu','spip_menus','identifiant = '.sql_quote($identifiant))); + menus_supprimer_menu($id_menu); + } + if ($choix == 'renommer') + $identifiant = $identifiant.'_'.time(); + if (in_array($choix,array('importer','remplacer','renommer'))) { + $titre = isset($menu['titre']) ? $menu['titre'] : ''; + $css = isset($menu['css']) ? $menu['css'] : ''; + $id_menu = sql_insertq('spip_menus',array( + 'identifiant' => $identifiant, + 'titre' => $titre, + 'css' => $css + )); + if (isset($menu['entrees'])) + menus_importer($menu['entrees'], $id_menu); + } + } + } + + return($flux); +} + +?> \ No newline at end of file