b24f21ace4d49095a50c660e331e6f181515c4b5
4 if (!defined("_ECRIRE_INC_VERSION")) return;
6 function action_exporter_menu_dist(){
8 $securiser_action = charger_fonction('securiser_action', 'inc');
9 $arg = $securiser_action();
10 $id_menu = intval($arg);
14 include_spip('base/abstract_sql');
15 include_spip('inc/yaml');
17 // On récupère l'identifiant du menu pour le nom de fichier
18 $identifiant = sql_getfetsel(
24 // On calcule le tableau des entrees
25 $entrees = exporter_menu_recursif($id_menu);
28 $export = yaml_encode($entrees);
31 Header("Content-Type: text/x-yaml;");
32 Header("Content-Disposition: attachment; filename=menu-$identifiant.yaml");
33 Header("Content-Length: ".strlen($export));
39 function exporter_menu_recursif($id_menu){
40 $entrees = sql_allfetsel(
41 'id_menus_entree, type_entree, parametres',
43 'id_menu = '.$id_menu,
48 // Pour chaque entree on nettoie et on ajoute le sous-menu eventuel
49 foreach ($entrees as $cle => $entree){
50 // On remet au propre les parametres
51 $entrees[$cle]['parametres'] = unserialize($entree['parametres']);
53 // On regarde s'il existe un sous-menu
54 $id_sous_menu = intval(sql_getfetsel(
57 'id_menus_entree = '.$entree['id_menus_entree']
60 // Si le menu existe, il faut l'ajouter au tableau
61 if ($id_sous_menu > 0){
62 $entrees[$cle]['sous_menu'] = exporter_menu_recursif($id_sous_menu);
65 // On enleve id_menus_entree car on en a pas besoin
66 unset($entrees[$cle]['id_menus_entree']);