source: spip-zone/_plugins_/spip_proprietaire/spip_3/prive/squelettes/contenu/spip_proprio_tech_fonctions.php @ 93035

Last change on this file since 93035 was 93035, checked in by teddy.spip@…, 4 years ago

Sur la zone, on est en tabulation et non en espace pour l'indentation (nicod_)

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6//ini_set('display_errors', 1);error_reporting(E_ALL);
7
8function spip_proprio_exporter()
9{
10        $ok_export = _request('do_proprio_export');
11        if (empty($ok_export) || $ok_export != 'oui') {
12                return false;
13        }
14
15        $data = array(
16                'configuration' => _request('configuration'),
17                'languages' => _request('languages'),
18        );
19
20        $code = '';
21        if (isset($data['configuration']) && $data['configuration'] == 'oui') {
22                $conf = spip_proprio_recuperer_config();
23                $code .= "\n".'$proprio_config = '.var_export($conf, true).";\n";
24        }
25        if (isset($data['languages']) && $data['languages'] == 'oui') {
26                $langues_du_site = array('fr');
27                foreach (array('langues_utilisees', 'langues_multilingue', 'langue_site') as $ln_meta) {
28                        if (isset($GLOBALS['meta'][$ln_meta])) {
29                                $langues_du_site = array_merge($langues_du_site, explode(',', $GLOBALS['meta'][$ln_meta]));
30                        }
31                }
32                $langues_du_site = array_unique($langues_du_site);
33                foreach ($langues_du_site as $ln) {
34                        spip_proprio_proprietaire_texte('', '', $ln);
35                        $code .= "\n".'$proprio_i18n_proprietaire_'.$ln.' = '.var_export($GLOBALS['i18n_proprietaire_'.$ln], true).";\n";
36                }
37        }
38
39        $code = "// Exportation config SPIP Proprio\n// Site d'origine : ".$GLOBALS['meta']['nom_site']."\n// Cree le : ".date('Y-m-d H:i:s')."\n".$code;
40        $fichier_dump = 'spiproprio_export_'.date('Ymd').'.php.gz';
41        $log = ecrire_fichier(_DIR_DUMP.$fichier_dump, '<'."?php\n$code\n?".'>', true);
42
43        if ($log) {
44                return _T('spipproprio:ok_export', array('fichier' => _DIR_DUMP.$fichier_dump));
45        }
46
47        return _T('spipproprio:erreur_export');
48}
49
50function spip_proprio_importer()
51{
52        $ok_import = _request('do_proprio_import');
53        if (empty($ok_import) || $ok_import != 'oui') {
54                return false;
55        }
56
57        $file = _request('import_archive');
58        if (is_null($file)) {
59                return;
60        }
61        $ok = false;
62
63        $archive = _DIR_DUMP.$file;
64        if (@file_exists($archive) and $gz = gzopen($archive, 'rb')) {
65                $php = '';
66                while (!gzeof($gz)) {
67                        $text = gzgets($gz, 1024);
68                        if (!substr_count($text, '<?php') && !substr_count($text, '?>')) {
69                                $php .= $text;
70                        }
71                }
72//          var_export($php); exit;
73                eval("$php");
74                if (isset($proprio_config)) {
75                        include_spip('inc/meta');
76                        $ok = ecrire_meta(_META_SPIP_PROPRIO, serialize($proprio_config), 'non');
77                        ecrire_metas();
78                }
79                foreach (explode(',', $GLOBALS['meta']['langues_proposees']) as $ln_spip) {
80                        $ln_glb = "proprio_i18n_proprietaire_$ln_spip";
81                        if (isset($$ln_glb)) {
82                                $ok = creer_fichier_textes_proprietaire($ln_glb, $ln_spip);
83                        }
84                }
85        }
86
87        if ($ok) {
88                return _T('spipproprio:ok_import');
89        } else {
90                return _T('spipproprio:erreur_import');
91        }
92}
93
94function liste_proprio_dump()
95{
96        $str = '';
97        $liste_dump = preg_files(_DIR_DUMP, '\.php\.gz?$', 50, false);
98        if ($liste_dump && count($liste_dump)) {
99                foreach ($liste_dump as $i => $file) {
100                        $filename = substr($file, strrpos($file, '/') + 1);
101                        $filename_short = str_replace('.php.gz', '', $filename);
102                        $str .= "<option value='$filename'>$filename_short</option>";
103                }
104        }
105
106        return strlen($str) ? $str : 0;
107}
Note: See TracBrowser for help on using the repository browser.