[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / ieconfig / formulaires / ieconfig_export.php
diff --git a/www/plugins/auto/ieconfig/formulaires/ieconfig_export.php b/www/plugins/auto/ieconfig/formulaires/ieconfig_export.php
new file mode 100644 (file)
index 0000000..cb3241f
--- /dev/null
@@ -0,0 +1,320 @@
+<?php\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+function ieconfig_saisies_export() {\r
+       $saisies = array (\r
+               // Options d'export\r
+               array(\r
+                       'saisie' => 'fieldset',\r
+                       'options' => array(\r
+                               'nom' => 'ieconfig_export',\r
+                               'label' => '<:ieconfig:label_ieconfig_export:>',\r
+                               'icone' => 'img/ieconfig-export.png'\r
+                       ),\r
+                       'saisies' => array(\r
+                               array(\r
+                                       'saisie' => 'input',\r
+                                       'options' => array(\r
+                                               'nom' => 'ieconfig_export_nom',\r
+                                               'label' => '<:ieconfig:label_ieconfig_export_nom:>',\r
+                                               'obligatoire' => 'oui',\r
+                                               'defaut' => $GLOBALS['meta']['nom_site'].' - '.date('Y/m/d')\r
+                                       )\r
+                               ),\r
+                               array(\r
+                                       'saisie' => 'textarea',\r
+                                       'options' => array(\r
+                                               'nom' => 'ieconfig_export_description',\r
+                                               'label' => '<:ieconfig:label_ieconfig_export_description:>',\r
+                                               'rows' => 4\r
+                                       )\r
+                               ),\r
+                               array(\r
+                                       'saisie' => 'explication',\r
+                                       'options' => array(\r
+                                               'nom' => 'ieconfig_export_explication',\r
+                                               'texte' => '<:ieconfig:texte_ieconfig_export_explication:>'\r
+                                       )\r
+                               ),\r
+                               array(\r
+                                       'saisie' => 'selection',\r
+                                       'options' => array(\r
+                                               'nom' => 'ieconfig_export_choix',\r
+                                               'label' => '<:ieconfig:label_ieconfig_export_choix:>',\r
+                                               'cacher_option_intro' => 'oui',\r
+                                               'defaut' => 'telecharger',\r
+                                               'datas' => array(\r
+                                                       'sauvegarder' => '<:ieconfig:item_sauvegarder:>',\r
+                                                       'telecharger' => '<:ieconfig:item_telecharger:>'\r
+                                               )\r
+                                       )\r
+                               )\r
+                       )\r
+               ),\r
+               // Exporter la configuration du contenu du site SPIP\r
+               array(\r
+                       'saisie' => 'fieldset',\r
+                       'options' => array(\r
+                               'nom' => 'spip_contenu',\r
+                               'label' => '<:spip:onglet_contenu_site:>',\r
+                               'icone' => 'images/racine-site-24.gif'\r
+                       ),\r
+                       'saisies' => array(\r
+                               array(\r
+                                       'saisie' => 'explication',\r
+                                       'options' => array(\r
+                                               'nom' => 'spip_contenu_explication',\r
+                                               'texte' => '<:ieconfig:texte_spip_contenu_export_explication:>'\r
+                                       )\r
+                               ),\r
+                               array(\r
+                                       'saisie' => 'selection_multiple',\r
+                                       'options' => array(\r
+                                               'nom' => 'spip_contenu_choix',\r
+                                               'label' => '<:ieconfig:label_elements_a_exporter:>',\r
+                                               'cacher_option_intro' => 'oui',\r
+                                               'datas' => array(\r
+                                                       'articles' => '<:ecrire:titre_page_articles_page:>',\r
+                                                       'rubriques' => '<:icone_rubriques:>',\r
+                                                       'breves' => '<:ecrire:titre_breves:>',\r
+                                                       'mots' => '<:info_mots_cles:>',\r
+                                                       'logos' => '<:info_logos:>',\r
+                                                       'documents' => '<:titre_documents_joints:>',\r
+                                                       'sites' => '<:titre_referencement_sites:>'\r
+                                               )\r
+                                       )\r
+                               )\r
+                       )\r
+               ),\r
+                               // Onglet Interactivité\r
+               array(\r
+                       'saisie' => 'fieldset',\r
+                       'options' => array(\r
+                               'nom' => 'spip_interactivite',\r
+                               'label' => '<:spip:onglet_interactivite:>',\r
+                               'icone' => 'images/forum-interne-24.gif'\r
+                       ),\r
+                       'saisies' => array(\r
+                               array(\r
+                                       'saisie' => 'explication',\r
+                                       'options' => array(\r
+                                               'nom' => 'spip_interactivite_explication',\r
+                                               'texte' => '<:ieconfig:texte_spip_interactivite_export_explication:>'\r
+                                       )\r
+                               ),\r
+                               array(\r
+                                       'saisie' => 'selection_multiple',\r
+                                       'options' => array(\r
+                                               'nom' => 'spip_interactivite_choix',\r
+                                               'label' => '<:ieconfig:label_elements_a_exporter:>',\r
+                                               'cacher_option_intro' => 'oui',\r
+                                               'datas' => array(\r
+                                                       'participants' => '<:ecrire:info_mode_fonctionnement_defaut_forum_public:>',\r
+                                                       'contenu_forums' => '<:spip:titre_forum:>',\r
+                                                       'redacteurs' => '<:ecrire:info_inscription_automatique:>',\r
+                                                       'visiteurs' => '<:ecrire:info_visiteurs:>',\r
+                                                       'forums_prives' => '<:ecrire:titre_config_forums_prive:>',\r
+                                                       'messagerie_agenda' => '<:ecrire:titre_messagerie_agenda:>',\r
+                                                       'annonces' => '<:ecrire:info_envoi_email_automatique:>',\r
+                                                       'notifications_forum' => '<:ecrire:info_envoi_forum:>'\r
+                                               )\r
+                                       )\r
+                               )\r
+                       )\r
+               )\r
+       );\r
+       // On passe via le pipeline ieconfig\r
+       $saisies = pipeline('ieconfig',array(\r
+               'args' => array(\r
+                       'action' => 'form_export'\r
+               ),\r
+               'data' => $saisies\r
+       ));\r
+       // Gestion des plugins utilisant le pipeline ieconfig_metas\r
+       foreach(pipeline('ieconfig_metas',array()) as $prefixe => $data){\r
+               $saisies[] = array(\r
+                       'saisie' => 'fieldset',\r
+                       'options' => array(\r
+                               'nom' => $prefixe,\r
+                               'label' => isset($data['titre']) ? $data['titre'] : $prefixe,\r
+                               'icone' => isset($data['icone']) ? $data['icone'] : ''\r
+                       ),\r
+                       'saisies' => array(\r
+                               array(\r
+                                       'saisie' => 'oui_non',\r
+                                       'options' => array(\r
+                                               'nom' => 'export_'.$prefixe,\r
+                                               'label' => _T('ieconfig:label_exporter'),\r
+                                               'defaut' => ''\r
+                                       )\r
+                               )\r
+                       )\r
+               );\r
+       }\r
+       return $saisies;\r
+}\r
+\r
+function formulaires_ieconfig_export_charger_dist() {\r
+       $saisies = ieconfig_saisies_export();\r
+       $contexte = array(\r
+               '_saisies' => $saisies\r
+       );\r
+       \r
+       return array_merge(saisies_charger_champs($saisies),$contexte);\r
+}\r
+\r
+function formulaires_ieconfig_export_verifier_dist() {\r
+       include_spip('inc/saisies');\r
+       return saisies_verifier(ieconfig_saisies_export());\r
+}\r
+\r
+function formulaires_ieconfig_export_traiter_dist() {\r
+       $export = array();\r
+       $export['nom'] = _request('ieconfig_export_nom');\r
+       if (_request('ieconfig_export_description') != '')\r
+               $export['description'] = _request('ieconfig_export_description');\r
+       \r
+       // Configuration du contenu du site SPIP\r
+       if (count(_request('spip_contenu_choix'))>0) {\r
+               $export['spip_contenu'] = array();\r
+               foreach(_request('spip_contenu_choix') as $choix) \r
+                       switch ($choix) {\r
+                       case 'articles':\r
+                               $export['spip_contenu']["articles_surtitre"] = $GLOBALS['meta']["articles_surtitre"];\r
+                               $export['spip_contenu']["articles_soustitre"] = $GLOBALS['meta']["articles_soustitre"];\r
+                               $export['spip_contenu']["articles_descriptif"] = $GLOBALS['meta']["articles_descriptif"];\r
+                               $export['spip_contenu']["articles_chapeau"] = $GLOBALS['meta']["articles_chapeau"];\r
+                               $export['spip_contenu']["articles_texte"] = $GLOBALS['meta']["articles_texte"];\r
+                               $export['spip_contenu']["articles_ps"] = $GLOBALS['meta']["articles_ps"];\r
+                               $export['spip_contenu']["articles_redac"] = $GLOBALS['meta']["articles_redac"];\r
+                               $export['spip_contenu']["articles_urlref"] = $GLOBALS['meta']["articles_urlref"];\r
+                               $export['spip_contenu']["post_dates"] = $GLOBALS['meta']["post_dates"];\r
+                               $export['spip_contenu']["articles_redirection"] = $GLOBALS['meta']["articles_redirection"];\r
+                               break;\r
+                       case 'rubriques':\r
+                               $export['spip_contenu']["rubriques_descriptif"] = $GLOBALS['meta']["rubriques_descriptif"];\r
+                               $export['spip_contenu']["rubriques_texte"] = $GLOBALS['meta']["rubriques_texte"];\r
+                               break;\r
+                       case 'breves':\r
+                               $export['spip_contenu']["activer_breves"] = $GLOBALS['meta']["activer_breves"];\r
+                               break;\r
+                       case 'mots':\r
+                               $export['spip_contenu']["articles_mots"] = $GLOBALS['meta']["articles_mots"];\r
+                               $export['spip_contenu']["config_precise_groupes"] = $GLOBALS['meta']["config_precise_groupes"];\r
+                               $export['spip_contenu']["mots_cles_forums"] = $GLOBALS['meta']["mots_cles_forums"];\r
+                               break;\r
+                       case 'logos':\r
+                               $export['spip_contenu']["activer_logos"] = $GLOBALS['meta']["activer_logos"];\r
+                               $export['spip_contenu']["activer_logos_survol"] = $GLOBALS['meta']["activer_logos_survol"];\r
+                               break;\r
+                       case 'documents':\r
+                               $export['spip_contenu']["documents_article"] = $GLOBALS['meta']["documents_article"];\r
+                               $export['spip_contenu']["documents_rubrique"] = $GLOBALS['meta']["documents_rubrique"];\r
+                               $export['spip_contenu']["documents_date"] = $GLOBALS['meta']["documents_date"];\r
+                               break;\r
+                       case 'sites':\r
+                               $export['spip_contenu']["activer_sites"] = $GLOBALS['meta']['activer_sites'];\r
+                               $export['spip_contenu']["activer_syndic"] = $GLOBALS['meta']["activer_syndic"];\r
+                               $export['spip_contenu']["proposer_sites"] = $GLOBALS['meta']["proposer_sites"];\r
+                               $export['spip_contenu']["moderation_sites"] = $GLOBALS['meta']["moderation_sites"];\r
+                               break;\r
+                       }\r
+       }\r
+       \r
+       // Onglet Interactivité (configuration de spip)\r
+       if (count(_request('spip_interactivite_choix'))>0) {\r
+               $export['spip_interactivite'] = array();\r
+               foreach(_request('spip_interactivite_choix') as $choix) \r
+                       switch ($choix) {\r
+                       case 'participants':\r
+                               $export['spip_interactivite']['forums_publics'] = $GLOBALS['meta']["forums_publics"];\r
+                               break;\r
+                       case 'contenu_forums':\r
+                               $export['spip_interactivite']['forums_titre'] = $GLOBALS['meta']["forums_titre"];\r
+                               $export['spip_interactivite']['forums_texte'] = $GLOBALS['meta']["forums_texte"];\r
+                               $export['spip_interactivite']['forums_urlref'] = $GLOBALS['meta']["forums_urlref"];\r
+                               $export['spip_interactivite']['forums_afficher_barre'] = $GLOBALS['meta']["forums_afficher_barre"];\r
+                               break;\r
+                       case 'redacteurs':\r
+                               $export['spip_interactivite']['accepter_inscriptions'] = $GLOBALS['meta']["accepter_inscriptions"];\r
+                               break;\r
+                       case 'visiteurs':\r
+                               $export['spip_interactivite']['accepter_visiteurs'] = $GLOBALS['meta']["accepter_visiteurs"];\r
+                               break;\r
+                       case 'forums_prives':\r
+                               $export['spip_interactivite']['forum_prive_objets'] = $GLOBALS['meta']["forum_prive_objets"];\r
+                               $export['spip_interactivite']['forum_prive'] = $GLOBALS['meta']["forum_prive"];\r
+                               $export['spip_interactivite']['forum_prive_admin'] = $GLOBALS['meta']["forum_prive_admin"];\r
+                               break;\r
+                       case 'messagerie_agenda':\r
+                               $export['spip_interactivite']['messagerie_agenda'] = $GLOBALS['meta']["messagerie_agenda"];\r
+                               break;\r
+                       case 'annonces':\r
+                               $export['spip_interactivite']['suivi_edito'] = $GLOBALS['meta']["suivi_edito"];\r
+                               $export['spip_interactivite']['adresse_suivi'] = $GLOBALS['meta']["adresse_suivi"];\r
+                               $export['spip_interactivite']['adresse_suivi_inscription'] = $GLOBALS['meta']["adresse_suivi_inscription"];\r
+                               $export['spip_interactivite']['quoi_de_neuf'] = $GLOBALS['meta']["quoi_de_neuf"];\r
+                               $export['spip_interactivite']['adresse_neuf'] = $GLOBALS['meta']["adresse_neuf"];\r
+                               $export['spip_interactivite']['jours_neuf'] = $GLOBALS['meta']["jours_neuf"];\r
+                               $export['spip_interactivite']['email_envoi'] = $GLOBALS['meta']["email_envoi"];\r
+                               break;\r
+                       case 'notifications_forum':\r
+                               $export['spip_interactivite']['prevenir_auteurs'] = $GLOBALS['meta']["prevenir_auteurs"];\r
+                               break;\r
+                       }\r
+       }\r
+       \r
+       // On passe via le pipeline ieconfig\r
+       $export = pipeline('ieconfig',array(\r
+               'args' => array(\r
+                       'action' => 'export'\r
+               ),\r
+               'data' => $export\r
+       ));\r
+       \r
+       // Gestion des plugins utilisant le pipeline ieconfig_metas\r
+       foreach(pipeline('ieconfig_metas',array()) as $prefixe => $data){\r
+               if(_request('export_'.$prefixe)=='on') {\r
+                       $export_plugin = array();\r
+                       if(isset($data['metas_brutes']))\r
+                               foreach(explode(',',$data['metas_brutes']) as $meta)\r
+                                       if (isset($GLOBALS['meta'][$meta]))\r
+                                               $export_plugin[$meta] = $GLOBALS['meta'][$meta];\r
+                       if(isset($data['metas_serialize']))\r
+                               foreach(explode(',',$data['metas_serialize']) as $meta)\r
+                                       if (isset($GLOBALS['meta'][$meta]))\r
+                                               $export_plugin[$meta] = unserialize($GLOBALS['meta'][$meta]);\r
+                       if (count($export_plugin)>0)\r
+                               $export[$prefixe] = $export_plugin;\r
+               }\r
+       }\r
+       \r
+       // On encode en yaml\r
+       include_spip('inc/yaml');\r
+       $export = yaml_encode($export,array('inline'=>20));\r
+       \r
+       // Nom du fichier\r
+       include_spip('inc/texte');\r
+       $site = isset($GLOBALS['meta']['nom_site'])\r
+         ? preg_replace(array(",\W,is",",_(?=_),",",_$,"),array("_","",""), couper(translitteration(trim($GLOBALS['meta']['nom_site'])),30,""))\r
+         : 'spip';\r
+       $filename = $site.'_'.date('Y-m-d_H-i').'.yaml';\r
+       \r
+       // Si telechargement\r
+       if(_request('ieconfig_export_choix')=='telecharger') {\r
+               refuser_traiter_formulaire_ajax();\r
+               Header("Content-Type: text/x-yaml;");\r
+               Header("Content-Disposition: attachment; filename=$filename");\r
+               Header("Content-Length: ".strlen($export));\r
+               echo $export;\r
+               exit;\r
+       } else {\r
+               sous_repertoire(_DIR_TMP, 'ieconfig');\r
+               if (ecrire_fichier(_DIR_TMP . 'ieconfig/'.$filename , $export))\r
+                       return array('message_ok' => _T('ieconfig:message_ok_export',array('filename'=>$filename)));\r
+               else\r
+                       return array('message_erreur' => _T('ieconfig:message_erreur_export',array('filename'=>$filename)));\r
+       }\r
+}\r
+\r
+?>
\ No newline at end of file