source: spip-zone/_plugins_/ieconfig/formulaires/ieconfig_export.php @ 53429

Last change on this file since 53429 was 53429, checked in by yffic@…, 8 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 11.8 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3
4function 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
157function 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
166function formulaires_ieconfig_export_verifier_dist() {
167        include_spip('inc/saisies');
168        return saisies_verifier(ieconfig_saisies_export());
169}
170
171function 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?>
Note: See TracBrowser for help on using the repository browser.