Changeset 79027 in spip-zone


Ignore:
Timestamp:
Dec 1, 2013, 5:15:22 PM (6 years ago)
Author:
eric@…
Message:

Remise en état de la fonction de sauvegarde/restauration des configurations qui ne fonctionnait plus du tout.
Prise en compte aussi du commit 69837

Location:
_squelettes_/sarkaspip/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/sarkaspip/trunk/formulaires/restauration_cfg.html

    r65861 r79027  
    1111                        <p class="explication"><:sarkaspip:cfg_inf_fond_restauration:></p>
    1212                        <ul>
    13                                 #SET{name,fond_a_sauvegarder}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    14                                 <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]" id="bloc_fonds">
     13                                #SET{name,config_a_restaurer}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     14                                <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    1515                                        <label for="#GET{name}"><:sarkaspip:cfg_lbl_fond_restauration:></label>[
    16                                         <span class='erreur_message'>(#GET{erreurs})</span>
     16                                        <span class="erreur_message">(#GET{erreurs})</span>
     17                                        ][<span class="erreur_message">(#ENV{_erreur_sauvegarde})</span>
    1718                                        ][<select name="#GET{name}" class="select" id="#GET{name}">
    1819                                        (#ENV*{_fichiers_sauvegardes})
     
    2223                </fieldset>
    2324
    24                 <INCLURE{fond=formulaires/inc/cfg_boutons}{choix=valider_seul}>
     25                <INCLURE{fond=formulaires/inc/cfg_boutons,
     26                        choix=valider_seul}>
    2527        </div></form>
    2628</div>
  • _squelettes_/sarkaspip/trunk/formulaires/restauration_cfg.php

    r67685 r79027  
    11<?php
    22function formulaires_restauration_cfg_charger_dist(){
    3         $fonds = array();
     3        $configs = array();
    44
    55        $pages_cfg = array();
    66        $sections = explode('|',_SARKASPIP_PAGES_CONFIG);
    7         foreach ($sections as $section){
    8                 $section = explode("!",$section);
    9                 $section = end($section);
    10                 $pages_cfg = $pages_cfg + array_map('trim',explode(":",$section));
     7        foreach ($sections as $_section){
     8                $_section = explode("!",$_section);
     9                $_section = end($_section);
     10                $pages_cfg = array_merge($pages_cfg, array_map('trim',explode(":",$_section)));
    1111        }
    1212
    13         foreach ($pages_cfg as $_page) {
    14                 if ($_page != 'maintenance') {
    15                         $fond = "sarkaspip_{$_page}";
    16                         $fonds[$fond] = _T("sarkaspip:$fond");
     13        foreach ($pages_cfg as $_config) {
     14                if ($_config != 'maintenance') {
     15                        $item = "sarkaspip_{$_config}";
     16                        $configs[$_config] = _T("sarkaspip:$item");
    1717                }
    1818        }
    1919
    20         $dir = sous_repertoire(_DIR_TMP,"cfg");
    21         $saves = preg_files($dir, implode('|', array_flip($fonds)));
     20        $dir_cfg = sous_repertoire(_DIR_TMP,"sarkaspip");
     21        $dir_cfg = sous_repertoire($dir_cfg,"config");
     22        $sauvegardes = preg_files($dir_cfg, implode('|', array_flip($configs)));
    2223        $options = '';
    23         $groupe = '';
    24         foreach ($saves as $_fichier) {
    25                 $nom = basename($_fichier);
    26                 $_dir = end(explode('/', dirname($_fichier)));
    27                 if ($_dir != $groupe) {
    28                         if ($options) $options .= '</optgroup>';
    29                         $options .= '<optgroup style="font-weight: strong;" label="'.$fonds[$_dir].'">';
    30                         $groupe = $_dir;
     24        $erreur = '';
     25        if (!$sauvegardes) {
     26                $erreur = _T('sarkaspip:cfg_msg_aucune_sauvegarde');
     27        }
     28        else {
     29                $groupe = '';
     30                foreach ($sauvegardes as $_fichier) {
     31                        $nom = basename($_fichier);
     32                        $dirs = explode('/', dirname($_fichier));
     33                        $dir = end($dirs);
     34                        if ($dir != $groupe) {
     35                                if ($options) $options .= '</optgroup>';
     36                                $options .= '<optgroup style="font-weight: strong;" label="'.$configs[$dir].'">';
     37                                $groupe = $dir;
     38                        }
     39                        $options .= '<option value="' . $_fichier . '">' . $nom . '</option>';
    3140                }
    32                 $options .= '<option value="' . $_fichier . '">' . $nom . '</option>';
     41                if ($options) $options .= '</optgroup>';
    3342        }
    34         if ($options) $options .= '</optgroup>';
    35         $valeurs = array('_fichiers_sauvegardes' => $options);
     43
     44        $valeurs = array('_fichiers_sauvegardes' => $options, '_erreur_sauvegarde' => $erreur);
    3645
    3746        return $valeurs;
    3847}
    3948
    40 function formulaires_restauration_cfg_verifier_dist(){
    41         return array();
    42 }
    4349
    4450function formulaires_restauration_cfg_traiter_dist(){
    45         $message=array();
     51        $retour=array();
    4652       
    47         $fichier = _request('fichier_a_restaurer');
    48         lire_fichier($fichier,$tableau);
     53        $fichier = _request('config_a_restaurer');
     54        lire_fichier($fichier, $contenu);
    4955
    5056        include_spip('inc/config');
    51         $fond = end(explode('/', dirname($fichier)));
    52         $fond = str_replace("sarkaspip_","sarkaspip/",$fond);
    53         $ok = ecrire_config($fond, $tableau);
     57        $dirs = explode('/', dirname($fichier));
     58        $config = end($dirs);
     59        $ok = ecrire_config("sarkaspip/$config", unserialize($contenu));
    5460       
    55         if (!$ok) $message['message_nok'] = _T('sarkaspip:cfg_msg_fichier_restauration_nok');
    56         if ($ok) $message['message_ok'] = _T('sarkaspip:cfg_msg_fichier_restauration_ok', array('nom_fichier' => $fichier));
    57         return $message;
     61        if (!$ok)
     62                $retour['message_nok'] = _T('sarkaspip:cfg_msg_fichier_restauration_nok');
     63        else
     64                $retour['message_ok'] = _T('sarkaspip:cfg_msg_fichier_restauration_ok', array('nom_fichier' => $fichier));
     65
     66        return $retour;
    5867}
    5968
  • _squelettes_/sarkaspip/trunk/formulaires/sauvegarde_cfg.html

    r67685 r79027  
    1111                        <p class="explication"><:sarkaspip:cfg_inf_fond_sauvegarde:></p>
    1212                        <ul>
    13                                 #SET{name,fond_a_sauvegarder}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     13                                #SET{name,config_a_sauvegarder}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    1414                                <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]" id="bloc_fonds">
    1515                                        <label for="#GET{name}"><:sarkaspip:cfg_lbl_fond_sauvegarde:></label>[
    1616                                        <span class='erreur_message'>(#GET{erreurs})</span>
    1717                                        ]<select name="#GET{name}" class="select" id="#GET{name}">
    18                                                 <option value="--">Toutes les configurations</option>
    19                                                 #ENV*{_fonds}
     18                                                <option value="--"><:sarkaspip:cfg_option_tout_sauvegarder:></option>
     19                                                #ENV*{_configurations}
    2020                                        </select>
    2121                                </li>
     
    2323                </fieldset>
    2424
    25                 <INCLURE{fond=formulaires/inc/cfg_boutons}{choix=valider_seul}>
     25                <INCLURE{fond=formulaires/inc/cfg_boutons,
     26                        choix=valider_seul}>
    2627        </div></form>
    2728</div>
    28 <script type="text/javascript">
    29 /*<![CDATA[*/
    30         jQuery(document).ready(function() {
    31                 [(#ENV{mode, page}|=={tout}|oui)
    32                         jQuery("#bloc_fonds").hide();
    33                 ]
    34                 jQuery("input[name='mode']").change(function() {
    35                         if (jQuery("input[name='mode']:checked").val() == 'page') {
    36                                 jQuery("#bloc_fonds").show('fast');
    37                         }
    38                         else {
    39                                 jQuery("#bloc_fonds").hide('fast');
    40                         }
    41                         jQuery(this).blur();
    42                 });
    43         });
    44 /*]]>*/
    45 </script>
  • _squelettes_/sarkaspip/trunk/formulaires/sauvegarde_cfg.php

    r67685 r79027  
    66        $pages_cfg = array();
    77        $sections = explode('|',_SARKASPIP_PAGES_CONFIG);
    8         foreach ($sections as $section){
    9                 $section = explode("!",$section);
    10                 $section = end($section);
    11                 $pages_cfg = $pages_cfg + array_map('trim',explode(":",$section));
     8        foreach ($sections as $_section){
     9                $_section = explode("!",$_section);
     10                $_section = end($_section);
     11                $pages_cfg = array_merge($pages_cfg, array_map('trim',explode(":",$_section)));
    1212        }
    1313
    14 
    15         foreach ($pages_cfg as $_page) {
    16                 if ($_page != 'maintenance') {
    17                         $fond = "sarkaspip_{$_page}";
    18                         $options .= '<option value="' . $fond . '">' . _T("sarkaspip:$fond") . '</option>';
     14        foreach ($pages_cfg as $_config) {
     15                if ($_config != 'maintenance') {
     16                        $item = "sarkaspip_{$_config}";
     17                        $options .= '<option value="' . $_config . '">' . _T("sarkaspip:$item") . '</option>';
    1918                }
    2019        }
    2120
    22         $valeurs = array('_fonds' => $options);
     21        $valeurs = array('_configurations' => $options);
    2322
    2423        return $valeurs;
    2524}
    2625
    27 function formulaires_sauvegarde_cfg_verifier_dist() {
    28         return array();
    29 }
    3026
    3127function formulaires_sauvegarde_cfg_traiter_dist() {
    32         $message=array();
     28        $retour=array();
    3329       
    34         $fonds = null;
    35         $mode = _request('fond_a_sauvegarder');
     30        $configs = array();
     31        $mode = _request('config_a_sauvegarder');
    3632        if ($mode !== '--')
    37                 $fonds = array($mode);
     33                $configs = array($mode);
    3834
    39         $dir_cfg = sous_repertoire(_DIR_TMP,"cfg");
    40         $ok = sauvegarder_fonds($fonds, $dir_cfg, 'maintenance');
     35        $dir_cfg = sous_repertoire(_DIR_TMP,"sarkaspip");
     36        $dir_cfg = sous_repertoire($dir_cfg,"config");
     37        $ok = sauvegarder_configuration($configs, $dir_cfg);
    4138       
    42         if (!$ok) $message['message_nok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_nok');
    43         if ($ok)
    44                 if ($mode == 'page')
    45                         $message['message_ok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_ok', array('nom_fichier' => $nom));
    46                 else
    47                         $message['message_ok'] = _T('sarkaspip:cfg_msg_fichiers_sauvegardes_ok');
    48         return $message;
     39        if (!$ok)
     40                $retour['message_nok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_nok');
     41        elseif ($mode !== '--')
     42                $retour['message_ok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_ok');
     43        else
     44                $retour['message_ok'] = _T('sarkaspip:cfg_msg_fichiers_sauvegardes_ok');
     45        return $retour;
    4946}
    5047
    5148
    52 // =======================================================================================================================================
    53 // Filtre : sauvegarder_fonds
    54 // =======================================================================================================================================
    55 // Auteur: Smellup
    56 // Fonction : Cree les sauvegardes d'une liste de fonds suivant un format et dans un repertoire donne
    57 // =======================================================================================================================================
    58 //
    59 function sauvegarder_fonds($fonds, $ou) {
     49/**
     50 * Cree les sauvegardes d'une liste de fonds dans le repertoire temporaire tmp/cfg/
     51 *
     52 * @param $configs
     53 * @param $ou
     54 * @return bool
     55 */
     56function sauvegarder_configuration($configs, $ou) {
    6057        include_spip('inc/config');
    6158
    6259        // si pas de fond precise, on prend toutes les configs de la meta
    63         if (is_null($fonds))
    64                 $fonds = array_keys(lire_config("sarkaspip"));
     60        if (!$configs)
     61                $configs = array_keys(lire_config("sarkaspip"));
    6562
    6663        $dir = $ou;
    67         foreach ($fonds as $fond) {
    68                 $dir = sous_repertoire($ou, $fond);
    69                 $nom = $fond . "_" . date("Ymd_Hi") . ".txt";
    70                 $f = $dir . $nom;
    71                 $ok = ecrire_fichier($f, serialize(lire_config("sarkaspip/$fond")));
     64        foreach ($configs as $_config) {
     65                $dir = sous_repertoire($ou, $_config);
     66                $nom = $_config . "_" . date("Ymd_Hi") . ".txt";
     67                $fichier = $dir . $nom;
     68                $ok = ecrire_fichier($fichier, serialize(lire_config("sarkaspip/$_config")));
    7269        }
    7370
    7471        return $ok;
    7572}
    76 // FIN du Filtre : sauvegarder_fonds
    7773
    7874?>
  • _squelettes_/sarkaspip/trunk/lang/sarkaspip_fr.php

    r78996 r79027  
    752752        'cfg_msg_fichier_restauration_ok' => 'Le fichier de sauvegarde <strong>@nom_fichier@</strong> a bien été restauré.',
    753753        'cfg_msg_fichier_sauvegarde_nok' => 'Erreur lors de la création du fichier de sauvegarde.',
    754         'cfg_msg_fichier_sauvegarde_ok' => 'Le fichier de sauvegarde <strong>@nom_fichier@</strong> a bien été créé.',
     754        'cfg_msg_fichier_sauvegarde_ok' => 'Le fichier de sauvegarde a bien été créé.',
    755755        'cfg_msg_fichiers_sauvegardes_ok' => 'Tous les fichiers de sauvegarde ont bien été créés.',
     756        'cfg_msg_aucune_sauvegarde' => 'Aucune sauvegarde disponible actuellement',
    756757        'cfg_msg_webmestre_nok' => 'Seuls les webmestres du site sont autorisés à modifier ces paramètres.',
     758        'cfg_option_tout_sauvegarder' => 'Toutes les configurations',
    757759        'cfg_titre_accueil' => 'Sarka-SPIP - Configuration du squelette',
    758760        'cfg_titre_agenda' => 'Sarka-SPIP - Configuration de l\'agenda',
  • _squelettes_/sarkaspip/trunk/paquet.xml

    r79005 r79027  
    22        prefix="SarkaSpipr"
    33        categorie="squelette"
    4         version="4.3.11"
     4        version="4.3.12"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
     
    5151        <utilise nom="menus" />
    5252        <utilise nom="albums" compatibilite="[;]" />
    53         <utilise nom="ticket" compatibilite="[2.5.9]" />
     53        <utilise nom="ticket" compatibilite="[2.5.9;]" />
    5454
    5555        <menu nom="sarkaspip_cfg" titre="sarkaspip:bouton_configurer" parent="menu_squelette" icone="images/sarka-spip-24.png" action="configurer_sarkaspip" parametres="cfg=accueil" />
  • _squelettes_/sarkaspip/trunk/prive/squelettes/contenu/configurer_sarkaspip-maintenance.html

    r67641 r79027  
    1 [<div class='ajax'>(#FORMULAIRE_SAUVEGARDE_CFG)</div>]
    2 [<div class='ajax'>(#FORMULAIRE_RESTAURATION_CFG)</div>]
     1[<div class="noajax">(#FORMULAIRE_SAUVEGARDE_CFG)</div>]
     2[<div class="ajax">(#FORMULAIRE_RESTAURATION_CFG)</div>]
    33
    44[(#PLUGIN{agenda}|oui)
Note: See TracChangeset for help on using the changeset viewer.