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