[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / ieconfig / formulaires / ieconfig_export.php
1 <?php
2 if (!defined("_ECRIRE_INC_VERSION")) return;
3
4 function ieconfig_saisies_export() {
5 $saisies = array (
6 // Options d'export
7 array(
8 'saisie' => 'fieldset',
9 'options' => array(
10 'nom' => 'ieconfig_export',
11 'label' => '<:ieconfig:label_ieconfig_export:>',
12 'icone' => 'img/ieconfig-export.png'
13 ),
14 'saisies' => array(
15 array(
16 'saisie' => 'input',
17 'options' => array(
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')
22 )
23 ),
24 array(
25 'saisie' => 'textarea',
26 'options' => array(
27 'nom' => 'ieconfig_export_description',
28 'label' => '<:ieconfig:label_ieconfig_export_description:>',
29 'rows' => 4
30 )
31 ),
32 array(
33 'saisie' => 'explication',
34 'options' => array(
35 'nom' => 'ieconfig_export_explication',
36 'texte' => '<:ieconfig:texte_ieconfig_export_explication:>'
37 )
38 ),
39 array(
40 'saisie' => 'selection',
41 'options' => array(
42 'nom' => 'ieconfig_export_choix',
43 'label' => '<:ieconfig:label_ieconfig_export_choix:>',
44 'cacher_option_intro' => 'oui',
45 'defaut' => 'telecharger',
46 'datas' => array(
47 'sauvegarder' => '<:ieconfig:item_sauvegarder:>',
48 'telecharger' => '<:ieconfig:item_telecharger:>'
49 )
50 )
51 )
52 )
53 ),
54 // Exporter la configuration du contenu du site SPIP
55 array(
56 'saisie' => 'fieldset',
57 'options' => array(
58 'nom' => 'spip_contenu',
59 'label' => '<:spip:onglet_contenu_site:>',
60 'icone' => 'images/racine-site-24.gif'
61 ),
62 'saisies' => array(
63 array(
64 'saisie' => 'explication',
65 'options' => array(
66 'nom' => 'spip_contenu_explication',
67 'texte' => '<:ieconfig:texte_spip_contenu_export_explication:>'
68 )
69 ),
70 array(
71 'saisie' => 'selection_multiple',
72 'options' => array(
73 'nom' => 'spip_contenu_choix',
74 'label' => '<:ieconfig:label_elements_a_exporter:>',
75 'cacher_option_intro' => 'oui',
76 'datas' => array(
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:>'
84 )
85 )
86 )
87 )
88 ),
89 // Onglet Interactivité
90 array(
91 'saisie' => 'fieldset',
92 'options' => array(
93 'nom' => 'spip_interactivite',
94 'label' => '<:spip:onglet_interactivite:>',
95 'icone' => 'images/forum-interne-24.gif'
96 ),
97 'saisies' => array(
98 array(
99 'saisie' => 'explication',
100 'options' => array(
101 'nom' => 'spip_interactivite_explication',
102 'texte' => '<:ieconfig:texte_spip_interactivite_export_explication:>'
103 )
104 ),
105 array(
106 'saisie' => 'selection_multiple',
107 'options' => array(
108 'nom' => 'spip_interactivite_choix',
109 'label' => '<:ieconfig:label_elements_a_exporter:>',
110 'cacher_option_intro' => 'oui',
111 'datas' => array(
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:>'
120 )
121 )
122 )
123 )
124 )
125 );
126 // On passe via le pipeline ieconfig
127 $saisies = pipeline('ieconfig',array(
128 'args' => array(
129 'action' => 'form_export'
130 ),
131 'data' => $saisies
132 ));
133 // Gestion des plugins utilisant le pipeline ieconfig_metas
134 foreach(pipeline('ieconfig_metas',array()) as $prefixe => $data){
135 $saisies[] = array(
136 'saisie' => 'fieldset',
137 'options' => array(
138 'nom' => $prefixe,
139 'label' => isset($data['titre']) ? $data['titre'] : $prefixe,
140 'icone' => isset($data['icone']) ? $data['icone'] : ''
141 ),
142 'saisies' => array(
143 array(
144 'saisie' => 'oui_non',
145 'options' => array(
146 'nom' => 'export_'.$prefixe,
147 'label' => _T('ieconfig:label_exporter'),
148 'defaut' => ''
149 )
150 )
151 )
152 );
153 }
154 return $saisies;
155 }
156
157 function formulaires_ieconfig_export_charger_dist() {
158 $saisies = ieconfig_saisies_export();
159 $contexte = array(
160 '_saisies' => $saisies
161 );
162
163 return array_merge(saisies_charger_champs($saisies),$contexte);
164 }
165
166 function formulaires_ieconfig_export_verifier_dist() {
167 include_spip('inc/saisies');
168 return saisies_verifier(ieconfig_saisies_export());
169 }
170
171 function formulaires_ieconfig_export_traiter_dist() {
172 $export = array();
173 $export['nom'] = _request('ieconfig_export_nom');
174 if (_request('ieconfig_export_description') != '')
175 $export['description'] = _request('ieconfig_export_description');
176
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)
181 switch ($choix) {
182 case 'articles':
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"];
193 break;
194 case 'rubriques':
195 $export['spip_contenu']["rubriques_descriptif"] = $GLOBALS['meta']["rubriques_descriptif"];
196 $export['spip_contenu']["rubriques_texte"] = $GLOBALS['meta']["rubriques_texte"];
197 break;
198 case 'breves':
199 $export['spip_contenu']["activer_breves"] = $GLOBALS['meta']["activer_breves"];
200 break;
201 case 'mots':
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"];
205 break;
206 case 'logos':
207 $export['spip_contenu']["activer_logos"] = $GLOBALS['meta']["activer_logos"];
208 $export['spip_contenu']["activer_logos_survol"] = $GLOBALS['meta']["activer_logos_survol"];
209 break;
210 case 'documents':
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"];
214 break;
215 case 'sites':
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"];
220 break;
221 }
222 }
223
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)
228 switch ($choix) {
229 case 'participants':
230 $export['spip_interactivite']['forums_publics'] = $GLOBALS['meta']["forums_publics"];
231 break;
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"];
237 break;
238 case 'redacteurs':
239 $export['spip_interactivite']['accepter_inscriptions'] = $GLOBALS['meta']["accepter_inscriptions"];
240 break;
241 case 'visiteurs':
242 $export['spip_interactivite']['accepter_visiteurs'] = $GLOBALS['meta']["accepter_visiteurs"];
243 break;
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"];
248 break;
249 case 'messagerie_agenda':
250 $export['spip_interactivite']['messagerie_agenda'] = $GLOBALS['meta']["messagerie_agenda"];
251 break;
252 case 'annonces':
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"];
260 break;
261 case 'notifications_forum':
262 $export['spip_interactivite']['prevenir_auteurs'] = $GLOBALS['meta']["prevenir_auteurs"];
263 break;
264 }
265 }
266
267 // On passe via le pipeline ieconfig
268 $export = pipeline('ieconfig',array(
269 'args' => array(
270 'action' => 'export'
271 ),
272 'data' => $export
273 ));
274
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;
289 }
290 }
291
292 // On encode en yaml
293 include_spip('inc/yaml');
294 $export = yaml_encode($export,array('inline'=>20));
295
296 // Nom du fichier
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,""))
300 : 'spip';
301 $filename = $site.'_'.date('Y-m-d_H-i').'.yaml';
302
303 // Si telechargement
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));
309 echo $export;
310 exit;
311 } else {
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)));
315 else
316 return array('message_erreur' => _T('ieconfig:message_erreur_export',array('filename'=>$filename)));
317 }
318 }
319
320 ?>