source: spip-zone/_plugins_/_stable_/couteau_suisse/outils/pack_action_rapide.php @ 24646

Last change on this file since 24646 was 24646, checked in by patfr@…, 11 years ago

<?php et non <? !

File size: 2.5 KB
Line 
1<?php
2
3// module inclu dans la description de la "Configuration Actuelle" en page de configuration
4// ici, un bouton : "sauver la configuration actuelle"
5
6include_spip('inc/actions');
7
8// Compatibilite SPIP < 2.0
9if(!defined('_SPIP19300')) {
10        function redirige_action_post($action, $arg, $ret, $gra, $corps, $att='') {
11                $r = _DIR_RESTREINT_ABS . generer_url_ecrire($ret, $gra, true, true);
12                return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
13        }
14}
15
16function pack_action_rapide() {
17        include_spip('inc/texte'); // pour attribut_html()
18        switch($n = count($GLOBALS['cs_installer'])) {
19                case 0 : $info = _T('couteauprive:pack_nb_zero'); break;
20                case 1 : $info = _T('couteauprive:pack_nb_un'); break;
21                default : $info = _T('couteauprive:pack_nb_plrs', array('nb' => $n));
22        }
23        // pour la constante _CS_FILE_OPTIONS
24        cout_define('cs_comportement');
25        // appel direct, sans ajax, histoire de mettre a jour le menu :
26        return redirige_action_post('action_rapide', 'sauve_pack', 'admin_couteau_suisse', "cmd=pack#cs_infos",
27                        "\n<div style='padding:0.4em;'><p>$info</p><p>"._T('couteauprive:pack_sauver_descrip', array('file' => _CS_FILE_OPTIONS))
28                        ."</p><div style='text-align: center;'><input class='fondo' type='submit' value=\""
29                        .attribut_html(_T('couteauprive:pack_sauver')) . "\" /></div></div>"); 
30}
31
32// clic "Sauver la configuration actuelle"
33function action_rapide_sauve_pack() {
34        $titre0 = $titre = _T('couteauprive:pack_actuel', array('date'=>cs_date())); $n=0;
35        if(isset($GLOBALS['cs_installer'][$titre]))
36                while(isset($GLOBALS['cs_installer']["$titre (".++$n.')']));
37        if($n) $titre = "$titre ($n)";
38        include_spip(_DIR_CS_TMP.'config');
39        $pack = "\n# Le Couteau Suisse : pack de configuration du ".date("d M Y, H:i:s")."\n\$GLOBALS['cs_installer']['$titre'] = " . var_export($GLOBALS['cs_installer'][$titre0], true) . ";\n";
40        $fo = strlen(_FILE_OPTIONS)? _FILE_OPTIONS:false;
41        $t='';
42        if ($fo) {
43                if (lire_fichier($fo, $t) && strlen($t)) {
44                        $t = preg_replace(',\?'.'>\s*$,m', $pack.'?'.'>', $t, 1);
45                        if(ecrire_fichier($fo, $t)) return;
46                        else cs_log("ERREUR : l'ecriture du fichier $fo a echoue !");
47                } else cs_log(" -- fichier $fo illisible. Inclusion non permise");
48                if(strlen($t)) return;
49        }
50        // creation
51        $fo = defined('_SPIP19100')?_DIR_RESTREINT.'mes_options.php':_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php';
52        $ok = ecrire_fichier($fo, '<?'."php\n".$pack."\n?".'>');
53cs_log(" -- fichier $fo absent ".($ok?'mais cree avec l\'inclusion':' et impossible a creer'));
54}
55
56?>
Note: See TracBrowser for help on using the repository browser.