Changeset 96461 in spip-zone


Ignore:
Timestamp:
Apr 4, 2016, 9:18:16 PM (3 years ago)
Author:
cy_altern@…
Message:

refactorisation de l'exportation: choix du format titres ou id_objets pour les rubriques des admins et les zones d'acces restreints + proposer un export au format compatible importation.

Location:
_plugins_/csv2auteurs/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.html

    r81108 r96461  
    88    #ACTION_FORMULAIRE{#ENV{action}}
    99           
    10     [(#SAISIE{checkbox,choix_statut}
    11     {label=<:csv2auteurs:choix_statut:>}
    12     {datas=#ARRAY{
    13         0minirezo,<:csv2auteurs:administrateurs:>,
    14         1comite,<:csv2auteurs:redacteurs:>,
    15         6forum,<:csv2auteurs:visiteurs:>}}
     10    [(#SAISIE{checkbox, choix_statut}
     11                {label=<:csv2auteurs:choix_statut:>}
     12                {datas=#ARRAY{
     13                        0minirezo,<:csv2auteurs:administrateurs:>,
     14                        1comite,<:csv2auteurs:redacteurs:>,
     15                        6forum,<:csv2auteurs:visiteurs:>}}
    1616    )]
    1717
    18     [(#SAISIE{checkbox,nom_champs}
    19     {label=<:csv2auteurs:nom_champs:>}
    20     {datas=#ENV{nom_champs}}
     18    [(#SAISIE{checkbox, nom_champs}
     19                {label=<:csv2auteurs:nom_champs:>}
     20                {datas=#ENV{nom_champs}}
    2121    )]
    22 
    23 
    24     <p class="boutons"><input type="submit" class="submit" value="<:csv2auteurs:envoyer:>" /></p>
     22   
     23    [(#SAISIE{radio, choix_format}
     24                {label=<:csv2auteurs:choix_format_rub_zones:>}
     25                {datas=#ARRAY{
     26                        titre,<:csv2auteurs:format_titres_rub_zone:>,
     27                        id,<:csv2auteurs:format_id_rub_zone:>}}
     28    )]
     29   
     30        <p class="boutons">
     31                <input type="submit" id="config_import" class="submit" value="<:csv2auteurs:submit_format_import:>" style="float:left" />
     32                <input type="submit" class="submit" value="<:csv2auteurs:submit_export_:>" />
     33        </p>
    2534    </div></form>
    2635]
     
    2837
    2938<script type="text/javascript" charset="utf-8">
    30     jQuery(document).ready(function(){
    31             var deactivator = function(event){ event.preventDefault(); };
    32             jQuery("#champ_nom_champs_2").attr('checked',true).click(deactivator);
    33             jQuery("#champ_nom_champs_4").attr('checked',true).click(deactivator);
    34             jQuery("#champ_nom_champs_7").attr('checked',true).click(deactivator);
    35             jQuery("#champ_nom_champs_10").attr('checked',true).click(deactivator);
    36             jQuery("#champ_nom_champs_8").attr('disabled',true).click(deactivator);
    37             jQuery("#champ_nom_champs_16").attr('disabled',true).click(deactivator);
    38             jQuery("#champ_nom_champs_17").attr('disabled',true).click(deactivator);
    39 
     39    jQuery(document).ready(function() {
     40                jQuery("#config_import").on('click', function() {
     41                        jQuery(".editer_nom_champs input").prop("checked", false);
     42                        var Tchamp_import = ['nom', 'login', 'email', 'pass', 'statut'];
     43                        for (i in Tchamp_import)
     44                                jQuery(".choix_" + Tchamp_import[i] + " input").prop("checked", true);
     45                });
    4046    });
    4147</script>
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.php

    r96446 r96461  
    44function formulaires_csv2auteurs_exportation_charger_dist() {
    55    $nom_champs = csv2auteurs_exportation();
    6     $valeurs = array( "choix_statut" => "6forum", "nom_champs" => $nom_champs );
    7     //var_dump($nom_champs);
    8    
     6    $valeurs = array( "choix_statut" => "6forum",
     7                "nom_champs" => $nom_champs,
     8                "choix_format" => "id");
     9
    910        return $valeurs;
    1011}
     
    2223    $nom_champs   = _request('nom_champs');
    2324    $choix_statut = _request('choix_statut');
     25    $choix_format = _request('choix_format');
     26   
    2427    $retour = $login_restreint = array();
    2528    $correspondances_statuts = array( "0minirezo" => "administrateur", "1comite" => "redacteur", "6forum" => "visiteur");
     
    4144
    4245    // création d'un array contenant tous les logins des admins restreints
    43     $i = 1;
    4446    if (in_array("0minirezo", $choix_statut)) {
    4547        $r = sql_select("DISTINCT auteur.login AS login",
     
    5052            $login_restreint[] = $row['login'];
    5153    }
    52 
    53     if ($res = sql_select('*', 'spip_auteurs AS auteur')) {
     54       
     55        // boucler dans tous les auteurs sélectionnés en fonction de leur statut
     56    if ($res = sql_select('*', 'spip_auteurs')) {
     57                $i = 1;
    5458        while ($row = sql_fetch($res)) {
    5559            // test les statuts demandés
    56             if (in_array($row[statut], $choix_statut)) {
     60            if (in_array($row['statut'], $choix_statut)) {
    5761                // si c'est un admin, on ne selectionne que les admins restreints !!!
    5862                if ((($row['statut'] == "0minirezo") AND (in_array($row['login'], $login_restreint)))
     
    6670                        }
    6771                        else {
    68                             $tableau_csv[$i][$nom_champ]=$row[$nom_champ];
     72                            $tableau_csv[$i][$nom_champ] = $row[$nom_champ];
    6973                        }
    7074                    }
    71                     // on selectionne les noms des rubriques pour les admins restreints
    72                     if ($res2 = sql_select(
    73                         array("rub.titre AS titre"),
    74                         array("spip_rubriques AS rub",
    75                             "spip_auteurs_liens AS lien"),
    76                         array("rub.id_rubrique = lien.id_objet",
    77                             "lien.id_auteur  = ".$row['id_auteur'],
    78                             "lien.objet      = 'rubrique'")
    79                         )) {
    80                             $j=0;
    81                             while ($row2 = sql_fetch($res2)) {
    82                                 $input[$row['nom']][$j] = $row2['titre'];
    83                                 $j++;
    84                             }
    85                             if ($input[$row['nom']]) {
    86                                 $tableau_csv[$i]["ss_groupe"] =implode('|',$input[$row['nom']]);
     75                    // on selectionne les noms des rubriques ou les id_rubriques pour les admins restreints
     76                    if ($choix_format == 'titre')
     77                                                $select1 = array("rub.titre AS id_titre");
     78                    else
     79                                                $select1 = array("lien.id_objet AS id_titre");
     80                                               
     81                                        $from1 = array("spip_rubriques AS rub",
     82                                                "spip_auteurs_liens AS lien");
     83                                        $where1 = array("rub.id_rubrique = lien.id_objet",
     84                                                "lien.id_auteur  = ".$row['id_auteur'],
     85                                                "lien.objet      = 'rubrique'");
     86                    if ($res2 = sql_select($select1, $from1, $where1)) {
     87                            $rubs = array();
     88                            while ($row2 = sql_fetch($res2))
     89                                $rubs[] = $row2['id_titre'];
     90                            if (count($rubs)) {
     91                                $tableau_csv[$i]["ss_groupe"] = implode('|', $rubs);
    8792                            }
    8893                                                else
     
    9196                    // Prise en compte des zones restreintes : si le plugin est installe
    9297                    if (test_plugin_actif ("accesrestreint")) {
    93                         if ($res3 = sql_select(
    94                             array("zones.titre AS titre"),
    95                             array("spip_zones_liens AS liens", "spip_zones AS zones"),
    96                             array("liens.objet = 'auteur'",
    97                                                                 "liens.id_objet = ".$row['id_auteur'],
    98                                                                 "liens.id_zone = zones.id_zone")
    99                           )) {
    100                                                                 while ($row3 = sql_fetch($res3)) {
    101                                                                         $zones[$row['nom']][] = $row3['titre'];
    102                                                                         $tableau_csv[$i]['zone'] = implode('|',$zones[$row['nom']]);
    103                                                                 }
     98                                                if ($choix_format == 'titre')
     99                                                        $select2 = array("zones.titre AS id_titre");
     100                                                else
     101                                                        $select2 = array("zones.id_zone AS id_titre");
     102                                                       
     103                                                $from2 = array("spip_zones_liens AS liens", "spip_zones AS zones");
     104                                                $where2 = array("liens.objet = 'auteur'",
     105                                                        "liens.id_objet = ".$row['id_auteur'],
     106                                                        "liens.id_zone = zones.id_zone");
     107                        if ($res3 = sql_select($select2, $from2, $where2)) {
     108                                                        $zones = array();
     109                                                        while ($row3 = sql_fetch($res3)) {
     110                                                                $zones[] = $row3['id_titre'];
     111                                                                $tableau_csv[$i]['zone'] = implode('|', $zones);
    104112                                                        }
     113                                                }
    105114                    }
    106 
    107115                }
    108116            }
     117            // on passe à l'auteur suivant
    109118            $i++;
    110119        }
     
    133142function csv2auteurs_exportation() {
    134143    //récupération des noms des champs
    135     $nom_champs= array();
    136     $champ_supprimer = array(0,8,15,16,17,18,19);
    137     $desc = sql_showtable('spip_auteurs',true);
    138     foreach ($desc[field] as $cle => $valeur)
    139                 $nom_champs[$cle] = "-> $cle";
    140     foreach ($champ_supprimer as $cle) {
    141         unset($nom_champs[$cle]);
    142     }
    143     return $nom_champs;
     144    $Tnom_champs= array();
     145    $Tchamps_exclus = array('id_auteur', 'low_sec', 'maj', 'htpass', 'en_ligne',
     146                'alea_actuel', 'alea_futur', 'prefs', 'cookie_oubli', 'source', 'imessage', 'messagerie');
     147   
     148    $desc = sql_showtable('spip_auteurs', true);
     149    foreach ($desc['field'] as $cle => $valeur) {
     150                if (!in_array($cle, $Tchamps_exclus))
     151                        $Tnom_champs[$cle] = $cle;
     152        }
     153   
     154    return $Tnom_champs;
    144155}
    145156?>
  • _plugins_/csv2auteurs/trunk/lang/csv2auteurs_fr.php

    r96446 r96461  
    2424    'champ_manquant' => 'Les champs : login, statut et email sont obligatoires !!',
    2525    'chargement_fichier_CSV_OK' => 'Chargement du fichier <strong>@nom_fichier@</strong>: OK',
     26    'choix_format_rub_zones' => 'Format pour les rubriques des admins et les zones d\'accés restreint',
    2627
    2728        // D
     
    3637        // F
    3738    'fichier_uploader' => 'Fichier à téléverser',
     39    'format_titres_rub_zone' => 'Titres complets',
     40    'format_id_rub_zone' => 'Identifiants numériques',
    3841
    3942        // I
     
    9194    'supprimer_auteur' => 'suppression complète (y compris ceux à la poubelle)',
    9295    'separateur' => 'Choix du caractère de séparation de champs',
     96    'submit_format_import' => 'Exporter au format d\'importation',
     97    'submit_export_' => 'Exporter les champs sélectionnés',
    9398   
    9499        // T
  • _plugins_/csv2auteurs/trunk/paquet.xml

    r96448 r96461  
    22        prefix="csv2auteurs"
    33        categorie="outil"
    4         version="1.1.0"
     4        version="1.1.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/csv2auteurs/trunk/prive/squelettes/contenu/csv2auteurs.html

    r81108 r96461  
    55        #FORMULAIRE_CSV2AUTEURS_SEPARATEUR
    66    </div>
    7 ]
    87
    9 <input type="radio"  name="choix" value="importer" checked> <:csv2auteurs:importer:><br>
    10 <input type="radio"  name="choix" value="exporter"> <:csv2auteurs:exporter:> <br>
    118
    12 [(#SESSION{webmestre}|=={oui}|oui)
     9        <input type="radio"  name="choix" value="importer" checked> <:csv2auteurs:importer:><br>
     10        <input type="radio"  name="choix" value="exporter"> <:csv2auteurs:exporter:> <br>
     11
    1312    <div id="exporter" class="aaa">
    1413        #FORMULAIRE_CSV2AUTEURS_EXPORTATION
     
    2827<script type="text/javascript" charset="utf-8">
    2928    jQuery(document).ready(function(){
    30                 jQuery("#exporter").css("display","none");
    31                 jQuery("input[type=radio][name=choix]").change(function(event){
    32                         if ($('input[value=importer]').attr('checked')){
    33                         jQuery("#importer").css("display","block");
    34                         jQuery("#exporter").css("display","none");
    35                         };
    36                         if ($('input[value=exporter]').attr('checked')){
    37                         jQuery("#importer").css("display","none");
    38                         jQuery("#exporter").css("display","block");
    39                         };
    40 
    41                 });
     29                export_import();
     30                jQuery("input[type=radio][name=choix]").on("change", export_import);
    4231    });
     32    function export_import() {
     33                if (jQuery('input[value=importer]').attr('checked')){
     34                        jQuery("#importer").show();
     35                        jQuery("#exporter").hide();
     36                }
     37                else {
     38                        jQuery("#importer").hide();
     39                        jQuery("#exporter").show();
     40                }
     41        }
    4342</script>
Note: See TracChangeset for help on using the changeset viewer.