2 if (!defined("_ECRIRE_INC_VERSION")) return;
4 function ieconfig_saisies_export() {
8 'saisie' => 'fieldset',
10 'nom' => 'ieconfig_export',
11 'label' => '<:ieconfig:label_ieconfig_export:>',
12 'icone' => 'img/ieconfig-export.png'
18 'nom' => 'ieconfig_export_nom',
19 'label' => '<:ieconfig:label_ieconfig_export_nom:>',
20 'obligatoire' => 'oui',
21 'defaut' => $GLOBALS['meta']['nom_site'].' - '.date('Y/m/d')
25 'saisie' => 'textarea',
27 'nom' => 'ieconfig_export_description',
28 'label' => '<:ieconfig:label_ieconfig_export_description:>',
33 'saisie' => 'explication',
35 'nom' => 'ieconfig_export_explication',
36 'texte' => '<:ieconfig:texte_ieconfig_export_explication:>'
40 'saisie' => 'selection',
42 'nom' => 'ieconfig_export_choix',
43 'label' => '<:ieconfig:label_ieconfig_export_choix:>',
44 'cacher_option_intro' => 'oui',
45 'defaut' => 'telecharger',
47 'sauvegarder' => '<:ieconfig:item_sauvegarder:>',
48 'telecharger' => '<:ieconfig:item_telecharger:>'
54 // Exporter la configuration du contenu du site SPIP
56 'saisie' => 'fieldset',
58 'nom' => 'spip_contenu',
59 'label' => '<:spip:onglet_contenu_site:>',
60 'icone' => 'images/racine-site-24.gif'
64 'saisie' => 'explication',
66 'nom' => 'spip_contenu_explication',
67 'texte' => '<:ieconfig:texte_spip_contenu_export_explication:>'
71 'saisie' => 'selection_multiple',
73 'nom' => 'spip_contenu_choix',
74 'label' => '<:ieconfig:label_elements_a_exporter:>',
75 'cacher_option_intro' => 'oui',
77 'articles' => '<:ecrire:titre_page_articles_page:>',
78 'rubriques' => '<:icone_rubriques:>',
79 'breves' => '<:ecrire:titre_breves:>',
80 'mots' => '<:info_mots_cles:>',
81 'logos' => '<:info_logos:>',
82 'documents' => '<:titre_documents_joints:>',
83 'sites' => '<:titre_referencement_sites:>'
89 // Onglet Interactivité
91 'saisie' => 'fieldset',
93 'nom' => 'spip_interactivite',
94 'label' => '<:spip:onglet_interactivite:>',
95 'icone' => 'images/forum-interne-24.gif'
99 'saisie' => 'explication',
101 'nom' => 'spip_interactivite_explication',
102 'texte' => '<:ieconfig:texte_spip_interactivite_export_explication:>'
106 'saisie' => 'selection_multiple',
108 'nom' => 'spip_interactivite_choix',
109 'label' => '<:ieconfig:label_elements_a_exporter:>',
110 'cacher_option_intro' => 'oui',
112 'participants' => '<:ecrire:info_mode_fonctionnement_defaut_forum_public:>',
113 'contenu_forums' => '<:spip:titre_forum:>',
114 'redacteurs' => '<:ecrire:info_inscription_automatique:>',
115 'visiteurs' => '<:ecrire:info_visiteurs:>',
116 'forums_prives' => '<:ecrire:titre_config_forums_prive:>',
117 'messagerie_agenda' => '<:ecrire:titre_messagerie_agenda:>',
118 'annonces' => '<:ecrire:info_envoi_email_automatique:>',
119 'notifications_forum' => '<:ecrire:info_envoi_forum:>'
126 // On passe via le pipeline ieconfig
127 $saisies = pipeline('ieconfig',array(
129 'action' => 'form_export'
133 // Gestion des plugins utilisant le pipeline ieconfig_metas
134 foreach(pipeline('ieconfig_metas',array()) as $prefixe => $data){
136 'saisie' => 'fieldset',
139 'label' => isset($data['titre']) ?
$data['titre'] : $prefixe,
140 'icone' => isset($data['icone']) ?
$data['icone'] : ''
144 'saisie' => 'oui_non',
146 'nom' => 'export_'.$prefixe,
147 'label' => _T('ieconfig:label_exporter'),
157 function formulaires_ieconfig_export_charger_dist() {
158 $saisies = ieconfig_saisies_export();
160 '_saisies' => $saisies
163 return array_merge(saisies_charger_champs($saisies),$contexte);
166 function formulaires_ieconfig_export_verifier_dist() {
167 include_spip('inc/saisies');
168 return saisies_verifier(ieconfig_saisies_export());
171 function formulaires_ieconfig_export_traiter_dist() {
173 $export['nom'] = _request('ieconfig_export_nom');
174 if (_request('ieconfig_export_description') != '')
175 $export['description'] = _request('ieconfig_export_description');
177 // Configuration du contenu du site SPIP
178 if (count(_request('spip_contenu_choix'))>0) {
179 $export['spip_contenu'] = array();
180 foreach(_request('spip_contenu_choix') as $choix)
183 $export['spip_contenu']["articles_surtitre"] = $GLOBALS['meta']["articles_surtitre"];
184 $export['spip_contenu']["articles_soustitre"] = $GLOBALS['meta']["articles_soustitre"];
185 $export['spip_contenu']["articles_descriptif"] = $GLOBALS['meta']["articles_descriptif"];
186 $export['spip_contenu']["articles_chapeau"] = $GLOBALS['meta']["articles_chapeau"];
187 $export['spip_contenu']["articles_texte"] = $GLOBALS['meta']["articles_texte"];
188 $export['spip_contenu']["articles_ps"] = $GLOBALS['meta']["articles_ps"];
189 $export['spip_contenu']["articles_redac"] = $GLOBALS['meta']["articles_redac"];
190 $export['spip_contenu']["articles_urlref"] = $GLOBALS['meta']["articles_urlref"];
191 $export['spip_contenu']["post_dates"] = $GLOBALS['meta']["post_dates"];
192 $export['spip_contenu']["articles_redirection"] = $GLOBALS['meta']["articles_redirection"];
195 $export['spip_contenu']["rubriques_descriptif"] = $GLOBALS['meta']["rubriques_descriptif"];
196 $export['spip_contenu']["rubriques_texte"] = $GLOBALS['meta']["rubriques_texte"];
199 $export['spip_contenu']["activer_breves"] = $GLOBALS['meta']["activer_breves"];
202 $export['spip_contenu']["articles_mots"] = $GLOBALS['meta']["articles_mots"];
203 $export['spip_contenu']["config_precise_groupes"] = $GLOBALS['meta']["config_precise_groupes"];
204 $export['spip_contenu']["mots_cles_forums"] = $GLOBALS['meta']["mots_cles_forums"];
207 $export['spip_contenu']["activer_logos"] = $GLOBALS['meta']["activer_logos"];
208 $export['spip_contenu']["activer_logos_survol"] = $GLOBALS['meta']["activer_logos_survol"];
211 $export['spip_contenu']["documents_article"] = $GLOBALS['meta']["documents_article"];
212 $export['spip_contenu']["documents_rubrique"] = $GLOBALS['meta']["documents_rubrique"];
213 $export['spip_contenu']["documents_date"] = $GLOBALS['meta']["documents_date"];
216 $export['spip_contenu']["activer_sites"] = $GLOBALS['meta']['activer_sites'];
217 $export['spip_contenu']["activer_syndic"] = $GLOBALS['meta']["activer_syndic"];
218 $export['spip_contenu']["proposer_sites"] = $GLOBALS['meta']["proposer_sites"];
219 $export['spip_contenu']["moderation_sites"] = $GLOBALS['meta']["moderation_sites"];
224 // Onglet Interactivité (configuration de spip)
225 if (count(_request('spip_interactivite_choix'))>0) {
226 $export['spip_interactivite'] = array();
227 foreach(_request('spip_interactivite_choix') as $choix)
230 $export['spip_interactivite']['forums_publics'] = $GLOBALS['meta']["forums_publics"];
232 case 'contenu_forums':
233 $export['spip_interactivite']['forums_titre'] = $GLOBALS['meta']["forums_titre"];
234 $export['spip_interactivite']['forums_texte'] = $GLOBALS['meta']["forums_texte"];
235 $export['spip_interactivite']['forums_urlref'] = $GLOBALS['meta']["forums_urlref"];
236 $export['spip_interactivite']['forums_afficher_barre'] = $GLOBALS['meta']["forums_afficher_barre"];
239 $export['spip_interactivite']['accepter_inscriptions'] = $GLOBALS['meta']["accepter_inscriptions"];
242 $export['spip_interactivite']['accepter_visiteurs'] = $GLOBALS['meta']["accepter_visiteurs"];
244 case 'forums_prives':
245 $export['spip_interactivite']['forum_prive_objets'] = $GLOBALS['meta']["forum_prive_objets"];
246 $export['spip_interactivite']['forum_prive'] = $GLOBALS['meta']["forum_prive"];
247 $export['spip_interactivite']['forum_prive_admin'] = $GLOBALS['meta']["forum_prive_admin"];
249 case 'messagerie_agenda':
250 $export['spip_interactivite']['messagerie_agenda'] = $GLOBALS['meta']["messagerie_agenda"];
253 $export['spip_interactivite']['suivi_edito'] = $GLOBALS['meta']["suivi_edito"];
254 $export['spip_interactivite']['adresse_suivi'] = $GLOBALS['meta']["adresse_suivi"];
255 $export['spip_interactivite']['adresse_suivi_inscription'] = $GLOBALS['meta']["adresse_suivi_inscription"];
256 $export['spip_interactivite']['quoi_de_neuf'] = $GLOBALS['meta']["quoi_de_neuf"];
257 $export['spip_interactivite']['adresse_neuf'] = $GLOBALS['meta']["adresse_neuf"];
258 $export['spip_interactivite']['jours_neuf'] = $GLOBALS['meta']["jours_neuf"];
259 $export['spip_interactivite']['email_envoi'] = $GLOBALS['meta']["email_envoi"];
261 case 'notifications_forum':
262 $export['spip_interactivite']['prevenir_auteurs'] = $GLOBALS['meta']["prevenir_auteurs"];
267 // On passe via le pipeline ieconfig
268 $export = pipeline('ieconfig',array(
275 // Gestion des plugins utilisant le pipeline ieconfig_metas
276 foreach(pipeline('ieconfig_metas',array()) as $prefixe => $data){
277 if(_request('export_'.$prefixe)=='on') {
278 $export_plugin = array();
279 if(isset($data['metas_brutes']))
280 foreach(explode(',',$data['metas_brutes']) as $meta)
281 if (isset($GLOBALS['meta'][$meta]))
282 $export_plugin[$meta] = $GLOBALS['meta'][$meta];
283 if(isset($data['metas_serialize']))
284 foreach(explode(',',$data['metas_serialize']) as $meta)
285 if (isset($GLOBALS['meta'][$meta]))
286 $export_plugin[$meta] = unserialize($GLOBALS['meta'][$meta]);
287 if (count($export_plugin)>0)
288 $export[$prefixe] = $export_plugin;
293 include_spip('inc/yaml');
294 $export = yaml_encode($export,array('inline'=>20));
297 include_spip('inc/texte');
298 $site = isset($GLOBALS['meta']['nom_site'])
299 ?
preg_replace(array(",\W,is",",_(?=_),",",_$,"),array("_","",""), couper(translitteration(trim($GLOBALS['meta']['nom_site'])),30,""))
301 $filename = $site.'_'.date('Y-m-d_H-i').'.yaml';
304 if(_request('ieconfig_export_choix')=='telecharger') {
305 refuser_traiter_formulaire_ajax();
306 Header("Content-Type: text/x-yaml;");
307 Header("Content-Disposition: attachment; filename=$filename");
308 Header("Content-Length: ".strlen($export));
312 sous_repertoire(_DIR_TMP
, 'ieconfig');
313 if (ecrire_fichier(_DIR_TMP
. 'ieconfig/'.$filename , $export))
314 return array('message_ok' => _T('ieconfig:message_ok_export',array('filename'=>$filename)));
316 return array('message_erreur' => _T('ieconfig:message_erreur_export',array('filename'=>$filename)));