source: spip-zone/_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/formulaires/export_soyezcreateurs.php @ 111021

Last change on this file since 111021 was 111021, checked in by riedel.nobuyuki@…, 2 years ago

Implémentation de la possibilité d'importer des configurations ieconfig propre au site (sauvegardé dans ../ieconfig) dans la section squelette->Configurations rapides de SoyezCréateurs?

Possibilité d'importer des configuration relative :

  • aux jeux de couleurs sans les polices
  • aux jeux de polices sans les couleurs
  • à l'aspect général du site (onglet principal et Positionnement)

NB : les fichiers doivent suivre un nommage bien précis pour être proposé à l'import.
Ils doivent commencer par :

  • soyezcreateurs_couleurs pour les jeux de couleurs
  • soyezcreateurs_police pour les jeux de polices
  • soyezcreateurs_layout pour l'apparence du site

Ils doivent être dans le fichier ieconfig de SoyezCréateurs?

NNB La phase de test n'est pas complète, des beug peuvent existés et seront corrigés dès que détectés

File size: 5.3 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7function soyezcreateurs_saisies_export() {
8        include_spip('soyezcreateurs_fonctions_ieconfig');
9        $url = getURI();
10        if (strpos($url, '&cfg=soyezcreateurs_layout')) {
11                $nom = array(
12                                        'saisie' => 'input',
13                                        'options' => array(
14                                                'nom' => 'ieconfig_export_nom',
15                                                'label' => '<:ieconfig:label_ieconfig_export_nom:>',
16                                                'obligatoire' => 'oui',
17                                                'defaut' => 'soyezcreateurs_layout_' . date('Y/m/d'),
18                                        ),
19                                );
20        }
21        elseif (strpos($url, '&cfg=soyezcreateurs_couleurs')) {
22                $nom = array(
23                                        'saisie' => 'input',
24                                        'options' => array(
25                                                'nom' => 'ieconfig_export_nom',
26                                                'label' => '<:ieconfig:label_ieconfig_export_nom:>',
27                                                'obligatoire' => 'oui',
28                                                'defaut' => 'soyezcreateurs_couleurs_' . date('Y/m/d'),
29                                        ),
30                                );
31        }
32        elseif (strpos($url, '&cfg=soyezcreateurs_google')) {
33                $nom = array(
34                                        'saisie' => 'input',
35                                        'options' => array(
36                                                'nom' => 'ieconfig_export_nom',
37                                                'label' => '<:ieconfig:label_ieconfig_export_nom:>',
38                                                'obligatoire' => 'oui',
39                                                'defaut' => 'soyezcreateurs_google_' . date('Y/m/d'),
40                                        ),
41                                );
42        }
43        elseif (strpos($url, '&cfg=soyezcreateurs')) {
44                $nom = array(
45                                        'saisie' => 'input',
46                                        'options' => array(
47                                                'nom' => 'ieconfig_export_nom',
48                                                'label' => '<:ieconfig:label_ieconfig_export_nom:>',
49                                                'obligatoire' => 'oui',
50                                                'defaut' => 'soyezcreateurs_' . date('Y/m/d'),
51                                        ),
52                                );
53        }
54        $saisies = array(
55                // Options d'export
56                array(
57                        'saisie' => 'fieldset',
58                        'options' => array(
59                                'nom' => 'ieconfig_export',
60                                'label' => '<:ieconfig:label_ieconfig_export:>',
61                                'icone' => 'img/ieconfig-export.png',
62                        ),
63                        'saisies' => array(
64                                $nom,
65                                array(
66                                        'saisie' => 'textarea',
67                                        'options' => array(
68                                                'nom' => 'ieconfig_export_description',
69                                                'label' => '<:ieconfig:label_ieconfig_export_description:>',
70                                                'rows' => 4,
71                                        ),
72                                ),
73                                array(
74                                        'saisie' => 'explication',
75                                        'options' => array(
76                                                'nom' => 'ieconfig_export_explication',
77                                                'texte' => '<:ieconfig:texte_ieconfig_export_explication:>',
78                                        ),
79                                ),
80                                array(
81                                        'saisie' => 'selection',
82                                        'options' => array(
83                                                'nom' => 'ieconfig_export_choix',
84                                                'label' => '<:ieconfig:label_ieconfig_export_choix:>',
85                                                'cacher_option_intro' => 'oui',
86                                                'defaut' => 'telecharger',
87                                                'datas' => array(
88                                                        'sauvegarder' => '<:ieconfig:item_sauvegarder:>',
89                                                        'telecharger' => '<:ieconfig:item_telecharger:>',
90                                                ),
91                                        ),
92                                ),
93                        ),
94                ),
95        );
96        return $saisies;
97}
98
99function formulaires_export_soyezcreateurs_charger_dist() {
100        $saisies = soyezcreateurs_saisies_export();
101        $contexte = array(
102                '_saisies' => $saisies,
103        );
104       
105        $export = array_merge(saisies_charger_champs($saisies), $contexte);
106       
107        return $export;
108}
109
110function formulaires_export_soyezcreateurs_verifier_dist() {
111        include_spip('inc/saisies');
112
113        return saisies_verifier(soyezcreateurs_saisies_export());
114}
115
116function formulaires_export_soyezcreateurs_traiter_dist() {
117       
118        include_spip('soyezcreateurs_fonctions_ieconfig');
119        $export = array();
120        $export['nom'] = _request('ieconfig_export_nom');
121        $nom = $export['nom'];
122        if (_request('ieconfig_export_description') != '') {
123                $export['description'] = _request('ieconfig_export_description');
124        }
125
126        // On créé le tableau en fonction de l'entête de la page
127        $url = getURI();
128        if (strpos($url, '&cfg=soyezcreateurs_layout')) {
129                $export['soyezcreateurs']['soyezcreateurs_layout'] = soyezcreateurs_tableau_export_spe('soyezcreateurs_layout')['soyezcreateurs_layout'];
130                $site = 'soyezcreateurs_layout';
131        }
132        elseif (strpos($url, '&cfg=soyezcreateurs_couleurs')) {
133                $export['soyezcreateurs']['soyezcreateurs_couleurs'] = soyezcreateurs_tableau_export_spe('soyezcreateurs_couleurs')['soyezcreateurs_couleurs'];
134                if (strpos($nom, 'police')) {
135                        $site = 'soyezcreateurs_police';
136                }
137                else {
138                        $site = 'soyezcreateurs_couleurs';
139                }
140               
141        }
142        elseif (strpos($url, '&cfg=soyezcreateurs_google')) {
143                $export['soyezcreateurs']['soyezcreateurs_google'] = soyezcreateurs_tableau_export_spe('soyezcreateurs_google')['soyezcreateurs_google'];
144                $site = 'soyezcreateurs_google';
145        }
146        elseif (strpos($url, '&cfg=soyezcreateurs')) {
147                $export['soyezcreateurs']['soyezcreateurs'] = soyezcreateurs_tableau_export_spe('soyezcreateurs')['soyezcreateurs'];
148                $site = 'soyezcreateurs_layout';
149        }
150
151       
152       
153        // On encode en yaml
154        include_spip('inc/yaml');
155        $export = yaml_encode($export, array('inline' => 20));
156
157        // Nom du fichier
158        include_spip('inc/texte');
159        $filename = $site . '_' . date('Y-m-d_H-i') . '.yaml';
160
161        // Si telechargement
162        if (_request('ieconfig_export_choix') == 'telecharger') {
163                refuser_traiter_formulaire_ajax();
164                set_request('action', 'courcircuiter_affichage_usage_memoire'); // Pour empêcher l'extension dev d'ajouter un div avec l'usage mémoire.
165                header('Content-Type: text/x-yaml;');
166                header("Content-Disposition: attachment; filename=$filename");
167                header('Content-Length: ' . strlen($export));
168                echo $export;
169                exit;
170        } else {
171                sous_repertoire(_DIR_TMP, 'ieconfig');
172                if (ecrire_fichier(_DIR_TMP . 'ieconfig/' . $filename, $export)) {
173                        return array('message_ok' => _T('ieconfig:message_ok_export', array('filename' => $filename)));
174                } else {
175                        return array('message_erreur' => _T('ieconfig:message_erreur_export', array('filename' => $filename)));
176                }
177        }
178}
Note: See TracBrowser for help on using the repository browser.