Changeset 96552 in spip-zone for _plugins_/csv2auteurs


Ignore:
Timestamp:
Apr 9, 2016, 6:29:59 PM (4 years ago)
Author:
spip.franck@…
Message:

des tabs à la place d'espaces pour être un peu plus conforme avec:
http://www.spip.net/fr_article3497.html#regles_codage

Location:
_plugins_/csv2auteurs/trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/csv2auteurs/trunk/csv2auteurs.css

    r81108 r96552  
    1 .csv2auteurs div.choix {
    2     margin-left:150px;
     1.csv2auteurs div.choix  {
     2        margin-left:150px;
    33}
    4 .csv2auteurs .formulaire_spip li label, .formulaire_spip li.gauche label{
    5 width : 280px;
     4.csv2auteurs .formulaire_spip li label, .formulaire_spip li.gauche label {
     5        width : 280px;
    66}
    7 input#champ_rubrique_defaut{
    8     width:200px;
     7input#champ_rubrique_defaut {
     8        width:200px;
    99}
    10 input#champ_nom_rubrique_archive{
    11     width:160px;
     10input#champ_nom_rubrique_archive {
     11        width:160px;
    1212}
    13 li.editer_nom_rubrique_archive{
    14     padding-left:180px;
     13li.editer_nom_rubrique_archive {
     14        padding-left:180px;
    1515}
    16 li.editer_nom_rubrique_archive,li.editer_rubrique_parent_archive{
    17     background-color:#E1F4F2;
     16li.editer_nom_rubrique_archive,li.editer_rubrique_parent_archive {
     17        background-color:#E1F4F2;
    1818}
  • _plugins_/csv2auteurs/trunk/csv2auteurs_options.php

    r96529 r96552  
    77        AND _request('formulaire_action') == 'csv2auteurs_importation')
    88        define('_PASS_LONGUEUR_MINI', '1');
    9 
  • _plugins_/csv2auteurs/trunk/csv2auteurs_pipelines.php

    r81108 r96552  
    33
    44
    5 function csv2auteurs_header_prive($flux){
    6     $css   = find_in_path('csv2auteurs.css');
    7     $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
     5function csv2auteurs_header_prive($flux) {
     6        $css   = find_in_path('csv2auteurs.css');
     7        $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
    88
    9     return $flux;
     9        return $flux;
    1010}
    11 
    12 
    1311?>
    14 
    15 
    16 
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.html

    r96477 r96552  
    55
    66[(#ENV{editable}|oui)
    7     <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
    8     #ACTION_FORMULAIRE{#ENV{action}}
    9         <ul>
    10                 <li class="fieldset">
    11                         <fieldset>
    12                                 <h3 class="legend"><:csv2auteurs:titre_choix_statuts:></h3>
    13                                 <ul>
    14                                 [(#SAISIE{checkbox, choix_statut}
    15                                         {label=<:csv2auteurs:choix_statut:>}
    16                                         {datas=#ARRAY{
    17                                                 0minirezo,<:csv2auteurs:administrateurs:>,
    18                                                 1comite,<:csv2auteurs:redacteurs:>,
    19                                                 6forum,<:csv2auteurs:visiteurs:>}}
    20                                 )]
    21                                 </ul>
    22                         </fieldset>
    23                 </li>
    24                 <li class="fieldset">
    25                         <fieldset>
    26                                 <h3 class="legend"><:csv2auteurs:titre_choix_formats:></h3>
    27                                 <ul>
    28                                 [(#SAISIE{radio, choix_format}
    29                                         {label=<:csv2auteurs:choix_format_rub_zones:>}
    30                                         {datas=#ARRAY{
    31                                                 titre,<:csv2auteurs:format_titres_rub_zone:>,
    32                                                 id,<:csv2auteurs:format_id_rub_zone:>}}
    33                                 )]
    34                                 </ul>
    35                         </fieldset>
    36                 </li>
    37                 <li class="fieldset">
    38                         <fieldset>
    39                                 <h3 class="legend"><:csv2auteurs:titre_choix_champs:></h3>
    40                                 <p><:csv2auteurs:nb_champ_passes:></p>
    41                                 <ul>
    42                                         <li><label><:csv2auteurs:export_fichier_compatible_import:></label>
    43                                         </li>
    44                                 </ul>
    45                         </fieldset>
    46                 </li>
    47         </ul>
    48         <p class="boutons"><input type="submit" id="config_import" class="submit" value="<:csv2auteurs:submit_format_import:>" /></p>
    49         <ul>
    50                 <li class="fieldset">
    51                         <fieldset>
    52                                 <ul>
    53                                 [(#SAISIE{checkbox, nom_champs}
    54                                         {label=<:csv2auteurs:nom_champs:>}
    55                                         {datas=#ENV{nom_champs}}
    56                                 )]
    57                                 </ul>
    58                         </fieldset>
    59                 </li>
    60         </ul>
    61         <p class="boutons"><input type="submit" class="submit" value="<:csv2auteurs:submit_export_:>" /></p>
    62     </div></form>
     7        <form name="formulaire_#FORM" action="#ENV{action}" method="post">
     8                <div>#ACTION_FORMULAIRE{#ENV{action}}
     9                        <ul>
     10                                <li class="fieldset">
     11                                        <fieldset>
     12                                                <h3 class="legend"><:csv2auteurs:titre_choix_statuts:></h3>
     13                                                <ul>
     14                                                        [(#SAISIE{checkbox, choix_statut}
     15                                                                {label=<:csv2auteurs:choix_statut:>}
     16                                                                {datas=#ARRAY{
     17                                                                        0minirezo,<:csv2auteurs:administrateurs:>,
     18                                                                        1comite,<:csv2auteurs:redacteurs:>,
     19                                                                        6forum,<:csv2auteurs:visiteurs:>
     20                                                                }}
     21                                                        )]
     22                                                </ul>
     23                                        </fieldset>
     24                                </li>
     25                                <li class="fieldset">
     26                                        <fieldset>
     27                                                <h3 class="legend"><:csv2auteurs:titre_choix_formats:></h3>
     28                                                <ul>
     29                                                        [(#SAISIE{radio, choix_format}
     30                                                                {label=<:csv2auteurs:choix_format_rub_zones:>}
     31                                                                {datas=#ARRAY{
     32                                                                        titre,<:csv2auteurs:format_titres_rub_zone:>,
     33                                                                        id,<:csv2auteurs:format_id_rub_zone:>
     34                                                                }}
     35                                                        )]
     36                                                </ul>
     37                                        </fieldset>
     38                                </li>
     39                                <li class="fieldset">
     40                                        <fieldset>
     41                                                <h3 class="legend"><:csv2auteurs:titre_choix_champs:></h3>
     42                                                <p><:csv2auteurs:nb_champ_passes:></p>
     43                                                <ul>
     44                                                        <li>
     45                                                                <label><:csv2auteurs:export_fichier_compatible_import:></label>
     46                                                        </li>
     47                                                </ul>
     48                                        </fieldset>
     49                                </li>
     50                        </ul>
     51                        <p class="boutons"><input type="submit" id="config_import" class="submit" value="<:csv2auteurs:submit_format_import:>" /></p>
     52                        <ul>
     53                                <li class="fieldset">
     54                                        <fieldset>
     55                                                <ul>
     56                                                        [(#SAISIE{checkbox, nom_champs}
     57                                                                {label=<:csv2auteurs:nom_champs:>}
     58                                                                {datas=#ENV{nom_champs}}
     59                                                        )]
     60                                                </ul>
     61                                        </fieldset>
     62                                </li>
     63                        </ul>
     64                        <p class="boutons"><input type="submit" class="submit" value="<:csv2auteurs:submit_export_:>" /></p>
     65                </div>
     66        </form>
    6367]
    6468</div>
    6569
    6670<script type="text/javascript" charset="utf-8">
    67     jQuery(document).ready(function() {
     71        jQuery(document).ready(function() {
    6872                jQuery("#config_import").on('click', function() {
    6973                        jQuery(".editer_nom_champs input").prop("checked", false);
    7074                        var Tchamp_import = ['nom', 'login', 'email', 'pass', 'statut'];
    7175                        for (i in Tchamp_import)
    72                                 jQuery(".choix_" + Tchamp_import[i] + " input").prop("checked", true);
     76                        jQuery(".choix_" + Tchamp_import[i] + " input").prop("checked", true);
    7377                });
    74     });
     78        });
    7579</script>
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.php

    r96477 r96552  
    33
    44function formulaires_csv2auteurs_exportation_charger_dist() {
    5     $nom_champs = csv2auteurs_exportation();
    6     $valeurs = array( "choix_statut" => "6forum",
     5        $nom_champs = csv2auteurs_exportation();
     6        $valeurs = array( "choix_statut" => "6forum",
    77                "nom_champs" => $nom_champs,
    88                "choix_format" => "id");
     
    1212
    1313function formulaires_csv2auteurs_exportation_verifier_dist() {
    14     $erreurs = array();
    15     // seuls les webmestres ont le droit d'utiliser cet outil!
    16     if ($GLOBALS['visiteur_session']['webmestre'] != 'oui')
     14        $erreurs = array();
     15        // seuls les webmestres ont le droit d'utiliser cet outil!
     16        if ($GLOBALS['visiteur_session']['webmestre'] != 'oui')
    1717                $erreurs['message_erreur'] = _T('csv2auteurs:non_autorise');
    1818
    19     return $erreurs;
     19        return $erreurs;
    2020}
    2121
    2222function formulaires_csv2auteurs_exportation_traiter_dist() {
    23     $nom_champs   = _request('nom_champs');
    24     $choix_statut = _request('choix_statut');
    25     $choix_format = _request('choix_format');
    26    
    27     $retour = $login_restreint = array();
    28     $correspondances_statuts = array( "0minirezo" => "administrateur", "1comite" => "redacteur", "6forum" => "visiteur");
    29    
    30     // creation du nom du fichier
    31     $date_du_jour=date(Y_m_d);
    32     $nom_fichier_csv = $date_du_jour.'_export_table_auteurs.csv';
    33    
    34     // récupération des données dans la tables spip_auteurs que l'on place dans le champ "ss_groupe"
    35     // Ecriture de la premiere ligne d'entete
    36     foreach ($nom_champs as $entete)
    37         $tableau_csv[0][$entete] = $entete;
     23        $nom_champs   = _request('nom_champs');
     24        $choix_statut = _request('choix_statut');
     25        $choix_format = _request('choix_format');
    3826
    39     // ajout de l'admin restreint
    40     $tableau_csv[0]["ss_groupe"] = "ss_groupe";
    41     // ajout de l'acces restreint s'il existe
    42     if (test_plugin_actif ("accesrestreint"))
    43                 $tableau_csv[0]["zone"] = "zone";
     27        $retour = $login_restreint = array();
     28        $correspondances_statuts = array( "0minirezo" => "administrateur", "1comite" => "redacteur", "6forum" => "visiteur");
    4429
    45     // création d'un array contenant tous les logins des admins restreints
    46     if (in_array("0minirezo", $choix_statut)) {
    47         $r = sql_select("DISTINCT auteur.login AS login",
     30        // creation du nom du fichier
     31        $date_du_jour=date(Y_m_d);
     32        $nom_fichier_csv = $date_du_jour.'_export_table_auteurs.csv';
     33
     34        // récupération des données dans la tables spip_auteurs que l'on place dans le champ "ss_groupe"
     35        // Ecriture de la premiere ligne d'entete
     36        foreach ($nom_champs as $entete)
     37        $tableau_csv[0][$entete] = $entete;
     38
     39        // ajout de l'admin restreint
     40        $tableau_csv[0]["ss_groupe"] = "ss_groupe";
     41        // ajout de l'acces restreint s'il existe
     42        if (test_plugin_actif ("accesrestreint"))
     43        $tableau_csv[0]["zone"] = "zone";
     44
     45        // création d'un array contenant tous les logins des admins restreints
     46        if (in_array("0minirezo", $choix_statut)) {
     47                $r = sql_select("DISTINCT auteur.login AS login",
    4848                        array("spip_auteurs AS auteur","spip_auteurs_liens AS liens"),
    4949                        array("auteur.statut='0minirezo'","liens.id_auteur=auteur.id_auteur","liens.objet='rubrique'")
    5050                );
    51         while ($row = sql_fetch($r))
    52             $login_restreint[] = $row['login'];
    53     }
    54        
     51                while ($row = sql_fetch($r))
     52                $login_restreint[] = $row['login'];
     53        }
     54
    5555        // boucler dans tous les auteurs sélectionnés en fonction de leur statut
    56     if ($res = sql_select('*', 'spip_auteurs')) {
     56        if ($res = sql_select('*', 'spip_auteurs')) {
    5757                $i = 1;
    58         while ($row = sql_fetch($res)) {
    59             // test les statuts demandés
    60             if (in_array($row['statut'], $choix_statut)) {
    61                 // si c'est un admin, on ne selectionne que les admins restreints !!!
    62                 if ((($row['statut'] == "0minirezo") AND (in_array($row['login'], $login_restreint)))
    63                                         OR $row['statut'] == "1comite"
    64                                         OR $row['statut'] == "6forum") {
    65                     // Prise en compte de tous les champs selectionnés
    66                     foreach ($nom_champs as $nom_champ) {
    67                         // Prise en compte du champ statut
    68                         if ($nom_champ == "statut") {
    69                             $tableau_csv[$i]["statut"] = $correspondances_statuts[$row['statut']];
    70                         }
    71                         elseif ($nom_champ == "pass") {
     58                while ($row = sql_fetch($res)) {
     59                        // test les statuts demandés
     60                        if (in_array($row['statut'], $choix_statut)) {
     61                                // si c'est un admin, on ne selectionne que les admins restreints !!!
     62                                if ((($row['statut'] == "0minirezo") AND (in_array($row['login'], $login_restreint)))
     63                                OR $row['statut'] == "1comite"
     64                                OR $row['statut'] == "6forum") {
     65                                        // Prise en compte de tous les champs selectionnés
     66                                        foreach ($nom_champs as $nom_champ) {
     67                                                // Prise en compte du champ statut
     68                                                if ($nom_champ == "statut") {
     69                                                        $tableau_csv[$i]["statut"] = $correspondances_statuts[$row['statut']];
     70                                                }
     71                                                elseif ($nom_champ == "pass") {
    7272                                                        $tableau_csv[$i][$nom_champ] = '';
    7373                                                }
    7474                                                else
    75                             $tableau_csv[$i][$nom_champ] = $row[$nom_champ];
    76                     }
    77                     // on selectionne les noms des rubriques ou les id_rubriques pour les admins restreints
    78                     if ($choix_format == 'titre')
    79                                                 $select1 = array("rub.titre AS id_titre");
    80                     else
    81                                                 $select1 = array("lien.id_objet AS id_titre");
    82                                                
     75                                                $tableau_csv[$i][$nom_champ] = $row[$nom_champ];
     76                                        }
     77                                        // on selectionne les noms des rubriques ou les id_rubriques pour les admins restreints
     78                                        if ($choix_format == 'titre')
     79                                        $select1 = array("rub.titre AS id_titre");
     80                                        else
     81                                        $select1 = array("lien.id_objet AS id_titre");
     82
    8383                                        $from1 = array("spip_rubriques AS rub",
    84                                                 "spip_auteurs_liens AS lien");
     84                                        "spip_auteurs_liens AS lien");
    8585                                        $where1 = array("rub.id_rubrique = lien.id_objet",
    86                                                 "lien.id_auteur  = ".$row['id_auteur'],
    87                                                 "lien.objet      = 'rubrique'");
    88                     if ($res2 = sql_select($select1, $from1, $where1)) {
    89                             $rubs = array();
    90                             while ($row2 = sql_fetch($res2))
    91                                 $rubs[] = $row2['id_titre'];
    92                             if (count($rubs)) {
    93                                 $tableau_csv[$i]["ss_groupe"] = implode('|', $rubs);
    94                             }
    95                                                 else
    96                                                         $tableau_csv[$i]["ss_groupe"] = "";
    97                     }
    98                     // Prise en compte des zones restreintes : si le plugin est installe
    99                     if (test_plugin_actif ("accesrestreint")) {
     86                                        "lien.id_auteur  = ".$row['id_auteur'],
     87                                        "lien.objet      = 'rubrique'");
     88                                        if ($res2 = sql_select($select1, $from1, $where1)) {
     89                                                $rubs = array();
     90                                                while ($row2 = sql_fetch($res2))
     91                                                $rubs[] = $row2['id_titre'];
     92                                                if (count($rubs)) {
     93                                                        $tableau_csv[$i]["ss_groupe"] = implode('|', $rubs);
     94                                                }
     95                                                else
     96                                                $tableau_csv[$i]["ss_groupe"] = "";
     97                                        }
     98                                        // Prise en compte des zones restreintes : si le plugin est installe
     99                                        if (test_plugin_actif ("accesrestreint")) {
    100100                                                if ($choix_format == 'titre')
    101                                                         $select2 = array("zones.titre AS id_titre");
     101                                                $select2 = array("zones.titre AS id_titre");
    102102                                                else
    103                                                         $select2 = array("zones.id_zone AS id_titre");
    104                                                        
     103                                                $select2 = array("zones.id_zone AS id_titre");
     104
    105105                                                $from2 = array("spip_zones_liens AS liens", "spip_zones AS zones");
    106106                                                $where2 = array("liens.objet = 'auteur'",
    107                                                         "liens.id_objet = ".$row['id_auteur'],
    108                                                         "liens.id_zone = zones.id_zone");
    109                         if ($res3 = sql_select($select2, $from2, $where2)) {
     107                                                "liens.id_objet = ".$row['id_auteur'],
     108                                                "liens.id_zone = zones.id_zone");
     109                                                if ($res3 = sql_select($select2, $from2, $where2)) {
    110110                                                        $zones = array();
    111111                                                        while ($row3 = sql_fetch($res3)) {
     
    114114                                                        }
    115115                                                }
    116                     }
    117                 }
    118             }
    119             // on passe à l'auteur suivant
    120             $i++;
    121         }
    122     }
    123     // création de la variable contenant l'intégralité des donnees
     116                                        }
     117                                }
     118                        }
     119                        // on passe à l'auteur suivant
     120                        $i++;
     121                }
     122        }
     123        // création de la variable contenant l'intégralité des donnees
    124124        $a_ecrire = '';
    125     include_spip('inc/config');
    126     $separateur = lire_config("csv2auteurs_separateur");
     125        include_spip('inc/config');
     126        $separateur = lire_config("csv2auteurs_separateur");
    127127        foreach ($tableau_csv as $ligne) {
    128128                $a_ecrire .= implode("$separateur", $ligne);
    129129                $a_ecrire .= "\r\n";
    130130        }
    131     // telechargement du fichier csv   
    132     header("Content-Type: application/download");
    133     header("Content-Disposition: attachment; filename=$nom_fichier_csv");
    134     header("Content-Length: ".strlen($a_ecrire));
     131        // telechargement du fichier csv       
     132        header("Content-Type: application/download");
     133        header("Content-Disposition: attachment; filename=$nom_fichier_csv");
     134        header("Content-Length: ".strlen($a_ecrire));
    135135        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    136136        header('Pragma: public');
    137137        echo $a_ecrire;
    138     exit;
     138        exit;
    139139
    140     return $retour;
     140        return $retour;
    141141}
    142142
    143143// fonction pour récupérer un array avec les noms de schamps de la table spip_auteurs
    144144function csv2auteurs_exportation() {
    145     //récupération des noms des champs
    146     $Tnom_champs= array();
    147     $Tchamps_exclus = array('id_auteur', 'low_sec', 'maj', 'htpass', 'en_ligne',
    148                 'alea_actuel', 'alea_futur', 'prefs', 'cookie_oubli', 'source', 'imessage', 'messagerie');
    149    
    150     $desc = sql_showtable('spip_auteurs', true);
    151     foreach ($desc['field'] as $cle => $valeur) {
     145        //récupération des noms des champs
     146        $Tnom_champs= array();
     147        $Tchamps_exclus = array('id_auteur', 'low_sec', 'maj', 'htpass', 'en_ligne',
     148        'alea_actuel', 'alea_futur', 'prefs', 'cookie_oubli', 'source', 'imessage', 'messagerie');
     149
     150        $desc = sql_showtable('spip_auteurs', true);
     151        foreach ($desc['field'] as $cle => $valeur) {
    152152                if (!in_array($cle, $Tchamps_exclus))
    153                         $Tnom_champs[$cle] = $cle;
     153                $Tnom_champs[$cle] = $cle;
    154154        }
    155    
    156     return $Tnom_champs;
     155
     156        return $Tnom_champs;
    157157}
    158158?>
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_importation.html

    r96477 r96552  
    55
    66[(#ENV{editable}|oui)
    7     <form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>
    8     #ACTION_FORMULAIRE{#ENV{action}}
    9         <ul>
    10             <li class="fieldset">
    11             <fieldset>
    12                 <h3 class="legend"><:csv2auteurs:parametres_fichier_csv:></h3>
     7        <form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data">
     8                <div>#ACTION_FORMULAIRE{#ENV{action}}
     9                        <ul>
     10                                <li class="fieldset">
     11                                        <fieldset>
     12                                                <h3 class="legend"><:csv2auteurs:parametres_fichier_csv:></h3>
    1313
    14                 #SET{erreurs,#ENV**{erreurs}|table_valeur{fichier_csv}}
    15                 <li class="editer_fichier_csv obligatoire[ (#ENV**{erreurs}|table_valeur{fichier_csv}|oui)erreur]"> 
    16                 <label for="champ_fichier_csv"><:csv2auteurs:fichier_uploader:></label>
    17                 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_csv})</span>]
    18                 <input type="file" id="champ_fichier_csv" name="fichier_csv" value="[(#ENV{fichier_csv})]" />
    19                 </li>
    20            </fieldset>
    21             </li>
    22             <li class="fieldset">
    23             <fieldset>
    24                 <h3 class="legend"><:csv2auteurs:mise_a_jour_utilisateur:></h3>
    25                 [(#SAISIE{oui_non,maj_utilisateur}
    26                 {label=<:csv2auteurs:mettre_a_jour_utilisateurs_existants:>})]
     14                                                #SET{erreurs,#ENV**{erreurs}|table_valeur{fichier_csv}}
     15                                                <li class="editer_fichier_csv obligatoire[ (#ENV**{erreurs}|table_valeur{fichier_csv}|oui)erreur]"> 
     16                                                        <label for="champ_fichier_csv"><:csv2auteurs:fichier_uploader:></label>
     17                                                        [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_csv})</span>]
     18                                                        <input type="file" id="champ_fichier_csv" name="fichier_csv" value="[(#ENV{fichier_csv})]" />
     19                                                </li>
     20                                        </fieldset>
     21                                </li>
     22                                <li class="fieldset">
     23                                        <fieldset>
     24                                                <h3 class="legend"><:csv2auteurs:mise_a_jour_utilisateur:></h3>
     25                                                [(#SAISIE{oui_non,maj_utilisateur}
     26                                                {label=<:csv2auteurs:mettre_a_jour_utilisateurs_existants:>})]
    2727
    28                  [(#SAISIE{radio,type_maj}
    29                     {label=<:csv2auteurs:type_maj_label:>}
    30                     {datas=#ARRAY{
    31                                                 ajouter,<:csv2auteurs:type_maj_ajouter:>,
    32                                                 remplacer,<:csv2auteurs:type_maj_remplacer:>
    33                                                 }
    34                                         })]
    35             </fieldset>
    36             </li>
    37             <li class="fieldset">
    38             <fieldset>
    39                 <h3 class="legend"><:csv2auteurs:suppression_absents:></h3>
    40                 [(#SAISIE{radio,abs_poubelle}
    41                 {label=<:csv2auteurs:abs_poubelle:>}
    42                                 {datas=#ARRAY{
    43                                         supprimer,<:csv2auteurs:supprimer_auteur:>,
    44                                         passage_poubelle,<:csv2auteurs:passage_poubelle:>}
    45                 })]                             
     28                                                [(#SAISIE{radio,type_maj}
     29                                                        {label=<:csv2auteurs:type_maj_label:>}
     30                                                        {datas=#ARRAY{
     31                                                                ajouter,<:csv2auteurs:type_maj_ajouter:>,
     32                                                                remplacer,<:csv2auteurs:type_maj_remplacer:>
     33                                                        }}
     34                                                )]
     35                                        </fieldset>
     36                                </li>
     37                                <li class="fieldset">
     38                                        <fieldset>
     39                                                <h3 class="legend"><:csv2auteurs:suppression_absents:></h3>
     40                                                [(#SAISIE{radio,abs_poubelle}
     41                                                        {label=<:csv2auteurs:abs_poubelle:>}
     42                                                        {datas=#ARRAY{
     43                                                                supprimer,<:csv2auteurs:supprimer_auteur:>,
     44                                                                passage_poubelle,<:csv2auteurs:passage_poubelle:>}
     45                                                        }
     46                                                )]                     
    4647
    47                 [(#SAISIE{oui_non,abs_redac}
    48                 {label=<:csv2auteurs:abs_redac:>})]
     48                                                [(#SAISIE{oui_non,abs_redac}
     49                                                {label=<:csv2auteurs:abs_redac:>})]
    4950
    50                 [(#SAISIE{oui_non,abs_admin}
    51                 {label=<:csv2auteurs:abs_admin:>})]
     51                                                [(#SAISIE{oui_non,abs_admin}
     52                                                {label=<:csv2auteurs:abs_admin:>})]
    5253
    53                 [(#SAISIE{oui_non,abs_visiteur}
    54                 {label=<:csv2auteurs:abs_visiteur:>})]
     54                                                [(#SAISIE{oui_non,abs_visiteur}
     55                                                {label=<:csv2auteurs:abs_visiteur:>})]
    5556
    56                     [(#SAISIE{radio,traitement_article_efface}
    57                     {label=<:csv2auteurs:suppression_article_efface:>}
    58                     {datas=#ARRAY{
    59                                                 rien_faire,<:csv2auteurs:rien_faire:>,
    60                                                 supprimer_articles,<:csv2auteurs:supprimer_articles:>,
    61                                                 transferer_articles,<:csv2auteurs:transferer_articles:>}
    62                                         })]
     57                                                [(#SAISIE{radio,traitement_article_efface}
     58                                                        {label=<:csv2auteurs:suppression_article_efface:>}
     59                                                        {datas=#ARRAY{
     60                                                                rien_faire,<:csv2auteurs:rien_faire:>,
     61                                                                supprimer_articles,<:csv2auteurs:supprimer_articles:>,
     62                                                                transferer_articles,<:csv2auteurs:transferer_articles:>}
     63                                                        }
     64                                                )]
    6365
    64                         [(#SAISIE{input,nom_rubrique_archive}
    65                         {label=<:csv2auteurs:nom_rubrique_archive:>})]
    66                                                
     66                                                [(#SAISIE{input,nom_rubrique_archive}
     67                                                {label=<:csv2auteurs:nom_rubrique_archive:>})]
     68
    6769                                                [(#SAISIE{selecteur_rubrique,rubrique_parent_archive}
    6870                                                {label=<:csv2auteurs:rubrique_parent_archive:>})]
    69             </fieldset>
    70             </li>
    71             <li class="fieldset">
    72             <fieldset>
    73                 <h3 class="legend"><:csv2auteurs:creation_rubrique:></h3>
    74                 [(#SAISIE{selecteur_rubrique,rubrique_parent}
    75                 {label=<:csv2auteurs:rubrique_parent:>})]
    76             </fieldset>
    77             </li>
    78         </ul>
    79     <p class="boutons"><input type="submit" class="submit" value="<:csv2auteurs:envoyer:>" /></p>
    80     </div></form>
     71                                        </fieldset>
     72                                </li>
     73                                <li class="fieldset">
     74                                        <fieldset>
     75                                                <h3 class="legend"><:csv2auteurs:creation_rubrique:></h3>
     76                                                [(#SAISIE{selecteur_rubrique,rubrique_parent}
     77                                                {label=<:csv2auteurs:rubrique_parent:>})]
     78                                        </fieldset>
     79                                </li>
     80                        </ul>
     81                        <p class="boutons"><input type="submit" class="submit" value="<:csv2auteurs:envoyer:>" /></p>
     82                </div>
     83        </form>
    8184]
    8285</div>
    8386
    8487<script type="text/javascript" charset="utf-8">
    85     jQuery(document).ready(function(){
    86             jQuery("li.editer_traitement_article_efface").css("display","none");
    87             jQuery("li.editer_nom_rubrique_archive").css("display","none");
    88             jQuery("li.editer_rubrique_parent_archive").css("display","none").css("background-color","#E1F4F2").css("padding-left","50px");
    89             var redac     = false;
    90             var  admin    = false;
    91             var  visiteur = false;
    92            
    93             jQuery("#champ_abs_redac_oui").click(function(event){
    94                 redac = true;
    95                 jQuery("li.editer_traitement_article_efface").css("display","block");
    96                 });
    97             jQuery("#champ_abs_admin_oui").click(function(event){
    98                 admin = true;
    99                 jQuery("li.editer_traitement_article_efface").css("display","block");
    100                 });
     88        jQuery(document).ready(function(){
     89                jQuery("li.editer_traitement_article_efface").css("display","none");
     90                jQuery("li.editer_nom_rubrique_archive").css("display","none");
     91                jQuery("li.editer_rubrique_parent_archive").css("display","none").css("background-color","#E1F4F2").css("padding-left","50px");
     92                var redac     = false;
     93                var  admin    = false;
     94                var  visiteur = false;
    10195
    102             jQuery("#champ_abs_visiteur_oui").click(function(event){
    103                 visiteur = true;
    104                 jQuery("li.editer_traitement_article_efface").css("display","block");
    105                 });
     96                jQuery("#champ_abs_redac_oui").click(function(event){
     97                        redac = true;
     98                        jQuery("li.editer_traitement_article_efface").css("display","block");
     99                });
     100                jQuery("#champ_abs_admin_oui").click(function(event){
     101                        admin = true;
     102                        jQuery("li.editer_traitement_article_efface").css("display","block");
     103                });
    106104
    107             jQuery("#champ_abs_redac_non").click(function(event){
    108                     if  (admin == false){
    109                         jQuery("li.editer_traitement_article_efface").css("display","none");
    110                         jQuery("#champ_traitement_article_efface_1").attr("checked",true);
    111                         jQuery("li.editer_nom_rubrique_archive").css("display","none");
    112                         jQuery("li.editer_rubrique_parent_archive").css("display","none");
    113                     }
    114                 redac = false;
    115                 });
    116             jQuery("#champ_abs_admin_non").click(function(event){
    117                     if (redac == false){
    118                         jQuery("li.editer_traitement_article_efface").css("display","none");
    119                         jQuery("#champ_traitement_article_efface_1").attr("checked",true);
    120                         jQuery("li.editer_nom_rubrique_archive").css("display","none");
    121                         jQuery("li.editer_rubrique_parent_archive").css("display","none");
    122                     }
    123                 admin= false;
    124                 });
     105                jQuery("#champ_abs_visiteur_oui").click(function(event){
     106                        visiteur = true;
     107                        jQuery("li.editer_traitement_article_efface").css("display","block");
     108                });
    125109
    126             jQuery("#champ_abs_visiteur_non").click(function(event){
    127                     if (redac == false){
    128                         jQuery("li.editer_traitement_article_efface").css("display","none");
    129                         jQuery("#champ_traitement_article_efface_1").attr("checked",true);
    130                         jQuery("li.editer_nom_rubrique_archive").css("display","none");
    131                         jQuery("li.editer_rubrique_parent_archive").css("display","none");
    132                     }
    133                 visiteur = false;
    134                 });
     110                jQuery("#champ_abs_redac_non").click(function(event){
     111                        if  (admin == false){
     112                                jQuery("li.editer_traitement_article_efface").css("display","none");
     113                                jQuery("#champ_traitement_article_efface_1").attr("checked",true);
     114                                jQuery("li.editer_nom_rubrique_archive").css("display","none");
     115                                jQuery("li.editer_rubrique_parent_archive").css("display","none");
     116                        }
     117                        redac = false;
     118                });
     119                jQuery("#champ_abs_admin_non").click(function(event){
     120                        if (redac == false){
     121                                jQuery("li.editer_traitement_article_efface").css("display","none");
     122                                jQuery("#champ_traitement_article_efface_1").attr("checked",true);
     123                                jQuery("li.editer_nom_rubrique_archive").css("display","none");
     124                                jQuery("li.editer_rubrique_parent_archive").css("display","none");
     125                        }
     126                        admin= false;
     127                });
    135128
    136             jQuery("#champ_traitement_article_efface_3").click(function(event){
    137                     jQuery("li.editer_nom_rubrique_archive").css("display","block");
    138                     jQuery("li.editer_rubrique_parent_archive").css("display","block");
    139                     jQuery("li.editer_rubrique_parent_archive .bind-ajax").trigger("click");
    140                     });
    141             jQuery("#champ_traitement_article_efface_2").click(function(event){
    142                     jQuery("li.editer_nom_rubrique_archive").css("display","none");
    143                     jQuery("li.editer_rubrique_parent_archive").css("display","none");
    144                     });
    145             jQuery("#champ_traitement_article_efface_1").click(function(event){
    146                     jQuery("li.editer_nom_rubrique_archive").css("display","none");
    147                     jQuery("li.editer_rubrique_parent_archive").css("display","none");
    148                     });
    149         });
     129                jQuery("#champ_abs_visiteur_non").click(function(event){
     130                        if (redac == false){
     131                                jQuery("li.editer_traitement_article_efface").css("display","none");
     132                                jQuery("#champ_traitement_article_efface_1").attr("checked",true);
     133                                jQuery("li.editer_nom_rubrique_archive").css("display","none");
     134                                jQuery("li.editer_rubrique_parent_archive").css("display","none");
     135                        }
     136                        visiteur = false;
     137                });
     138
     139                jQuery("#champ_traitement_article_efface_3").click(function(event){
     140                        jQuery("li.editer_nom_rubrique_archive").css("display","block");
     141                        jQuery("li.editer_rubrique_parent_archive").css("display","block");
     142                        jQuery("li.editer_rubrique_parent_archive .bind-ajax").trigger("click");
     143                });
     144                jQuery("#champ_traitement_article_efface_2").click(function(event){
     145                        jQuery("li.editer_nom_rubrique_archive").css("display","none");
     146                        jQuery("li.editer_rubrique_parent_archive").css("display","none");
     147                });
     148                jQuery("#champ_traitement_article_efface_1").click(function(event){
     149                        jQuery("li.editer_nom_rubrique_archive").css("display","none");
     150                        jQuery("li.editer_rubrique_parent_archive").css("display","none");
     151                });
     152        });
    150153</script>
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_importation.php

    r96512 r96552  
    22if (!defined('_ECRIRE_INC_VERSION')) return;
    33
    4 function formulaires_csv2auteurs_importation_charger_dist(){
    5     $annee=date("Y");
    6     $valeurs = array(
    7         "fichier_csv"                => "",
    8         "maj_utilisateur"            => "",
    9         "type_maj"                   => "ajouter",
    10         "abs_redac"                  => "",
    11         "abs_admin"                  => "",
    12         "abs_poubelle"               => "supprimer",
    13         "abs_visiteur"               => "",
    14         "traitement_article_efface"  => "rien_faire",
    15         "transfere_article"          => "",
    16         "id_rubrique_parent_archive"    => "0",
    17         "nom_rubrique_archive"       => "archive_$annee",
    18         "id_rubrique_parent"            => "0",
    19     );
    20        
     4function formulaires_csv2auteurs_importation_charger_dist() {
     5        $annee=date("Y");
     6        $valeurs = array(
     7                "fichier_csv"                => "",
     8                "maj_utilisateur"            => "",
     9                "type_maj"                   => "ajouter",
     10                "abs_redac"                  => "",
     11                "abs_admin"                  => "",
     12                "abs_poubelle"               => "supprimer",
     13                "abs_visiteur"               => "",
     14                "traitement_article_efface"  => "rien_faire",
     15                "transfere_article"          => "",
     16                "id_rubrique_parent_archive"    => "0",
     17                "nom_rubrique_archive"       => "archive_$annee",
     18                "id_rubrique_parent"            => "0",
     19        );
     20
    2121        return $valeurs;
    2222}
    2323
    24 function formulaires_csv2auteurs_importation_verifier_dist(){
    25     $erreurs = array();
    26     // seuls les webmestres ont le droit d'utiliser cet outil!
    27     if ($GLOBALS['visiteur_session']['webmestre'] != 'oui') {
    28         $erreurs['message_erreur'] = _T('csv2auteurs:non_autorise');
    29         return $erreurs;
    30     }
    31        
    32     //champs obligatoire
    33     if (!($_FILES['fichier_csv']['name'])) {
    34         $erreurs['fichier_csv'] = _T('csv2auteurs:obligatoire');
    35     } else {
    36     //Transfert réussi
    37         if ($_FILES['fichier_csv']['error'] > 0)
    38                         $erreurs['fichier_csv'] = _T('csv2auteurs:transfert');
    39     //Taille max du fichier csv < 2Mo
    40         $maxsize=1000000;
    41         if ($_FILES['fichier_csv']['size'] > $maxsize)
    42                         $erreurs['fichier_csv'] =_T('csv2auteurs:taille');
    43     //Extension csv
    44         $extensions_valides = array( 'csv','txt' );
    45         $extension_upload = strtolower(  substr(  strrchr($_FILES['fichier_csv']['name'], '.')  ,1)  );
    46         if (!in_array($extension_upload,$extensions_valides))
    47                         $erreurs['fichier_csv'] = _T('csv2auteurs:extension');
    48     }
    49     //Il y a des erreurs
    50     if (count($erreurs))
    51         $erreurs['message_erreur'] = _T('csv2auteurs:erreurs');
    52 
    53     return $erreurs;
     24function formulaires_csv2auteurs_importation_verifier_dist() {
     25        $erreurs = array();
     26        // seuls les webmestres ont le droit d'utiliser cet outil!
     27        if ($GLOBALS['visiteur_session']['webmestre'] != 'oui') {
     28                $erreurs['message_erreur'] = _T('csv2auteurs:non_autorise');
     29                return $erreurs;
     30        }
     31
     32        //champs obligatoire
     33        if (!($_FILES['fichier_csv']['name'])) {
     34                $erreurs['fichier_csv'] = _T('csv2auteurs:obligatoire');
     35        } else {
     36                //Transfert réussi
     37                if ($_FILES['fichier_csv']['error'] > 0)
     38                $erreurs['fichier_csv'] = _T('csv2auteurs:transfert');
     39                //Taille max du fichier csv < 2Mo
     40                $maxsize=1000000;
     41                if ($_FILES['fichier_csv']['size'] > $maxsize)
     42                $erreurs['fichier_csv'] =_T('csv2auteurs:taille');
     43                //Extension csv
     44                $extensions_valides = array( 'csv','txt' );
     45                $extension_upload = strtolower(  substr(  strrchr($_FILES['fichier_csv']['name'], '.')  ,1)  );
     46                if (!in_array($extension_upload,$extensions_valides))
     47                $erreurs['fichier_csv'] = _T('csv2auteurs:extension');
     48        }
     49        //Il y a des erreurs
     50        if (count($erreurs))
     51        $erreurs['message_erreur'] = _T('csv2auteurs:erreurs');
     52
     53        return $erreurs;
    5454}
    5555
    56 function formulaires_csv2auteurs_importation_traiter_dist(){
    57     $retour = array();
    58     $maj_utilisateur = _request('maj_utilisateur');
    59     $abs_redacs = _request('abs_redac');
    60     $abs_admins = _request('abs_admin');
    61     $abs_visiteurs = _request('abs_visiteur');
    62     $abs_poubelle = _request('abs_poubelle');
    63     $suppression_article_efface = _request('suppression_article_efface');
    64     $traitement_article_efface = _request('traitement_article_efface');
    65     $nom_rubrique_archive = _request('nom_rubrique_archive');
    66     $type_maj=_request('type_maj');
    67 
    68     // recuperation de l'id de la rubrique parent des rubriques admins
    69     // NB: le sélecteur de rubrique retourne un champ rubrique_parent[] avec une valeur du style "rubrique|17"
    70     if (is_array(_request('rubrique_parent'))) {
     56function formulaires_csv2auteurs_importation_traiter_dist() {
     57        $retour = array();
     58        $maj_utilisateur = _request('maj_utilisateur');
     59        $abs_redacs = _request('abs_redac');
     60        $abs_admins = _request('abs_admin');
     61        $abs_visiteurs = _request('abs_visiteur');
     62        $abs_poubelle = _request('abs_poubelle');
     63        $suppression_article_efface = _request('suppression_article_efface');
     64        $traitement_article_efface = _request('traitement_article_efface');
     65        $nom_rubrique_archive = _request('nom_rubrique_archive');
     66        $type_maj=_request('type_maj');
     67
     68        // recuperation de l'id de la rubrique parent des rubriques admins
     69        // NB: le sélecteur de rubrique retourne un champ rubrique_parent[] avec une valeur du style "rubrique|17"
     70        if (is_array(_request('rubrique_parent'))) {
    7171                $id_rubrique_parent_admin = _request('rubrique_parent');
    7272                $id_rubrique_parent_admin = explode('|',$id_rubrique_parent_admin[0]);
    7373                $id_rubrique_parent_admin = $id_rubrique_parent_admin[1];
    7474        }
    75         else 
    76                 $id_rubrique_parent_admin = 0;
    77 
    78     //récupération de l'id de la rubrique parent archive
    79     if (is_array(_request('rubrique_parent_archive'))) {
     75        else
     76        $id_rubrique_parent_admin = 0;
     77
     78        //récupération de l'id de la rubrique parent archive
     79        if (is_array(_request('rubrique_parent_archive'))) {
    8080                $id_rubrique_parent_archive = _request('rubrique_parent_archive');
    8181                $id_rubrique_parent_archive = explode('|',$id_rubrique_parent_archive[0]);
     
    8383        }
    8484        else
    85                 $id_rubrique_parent_archive = 0;
    86 
    87     include_spip('action/editer_rubrique');
    88     if (test_plugin_actif("accesrestreint"))
    89         include_spip('action/editer_zone');
    90     include_spip('action/editer_auteur');
    91    
    92     if ($abs_redacs OR $abs_admins OR $abs_visiteurs OR $abs_poubelle == 'supprimer'){
    93         include_spip('action/editer_objet');
    94         include_spip('action/editer_liens');
    95         include_spip('action/editer_zone');
    96     }
    97 
    98     // récupération du fichier csv
    99     include_spip('inc/config');
    100     $separateur  = lire_config("csv2auteurs_separateur");
    101     $tmp_name    = $_FILES['fichier_csv']['tmp_name'];
    102     $destination = _DIR_TMP.basename($tmp_name);
    103     $resultat    = move_uploaded_file($tmp_name,$destination);
    104     if (!$resultat)
    105         $retour['message_erreur'] = _T('csv2auteurs:transfert');
    106     else
    107         $retour['message_ok'] = _T('csv2auteurs:chargement_fichier_CSV_OK', array('nom_fichier' => $_FILES['fichier_csv']['name']));
    108        
    109 
    110     // transformation du fichier csv en 4 array :
    111     // $en_tete = ligne entete
    112     // pour les 3 tableaux suivant, la cle est soit le login et s'il n'existe pas on prend le mail
    113     // $tableau_csv_visiteurs
    114     // $tableau_csv_redacs
    115     // $tableau_csv_admins
    116     $tableau_csv_visiteurs = $tableau_csv_redacs = $tableau_csv_admins = array();
    117     $tableau_csv_rubriques_admins = array();
    118     $fichiercsv = fopen($destination, "r");
    119    
    120     // correspondance statut spip / statut csv (+ admettre les status spip ou les status abrégés dans le CSV)
    121     $Tcorrespondances = array('administrateur'=>'0minirezo', 'redacteur'=>'1comite', 'rédacteur'=>'1comite', 'visiteur'=>'6forum', 'poubelle' => '5poubelle',
    122                 '0minirezo'=>'0minirezo', '1comite'=>'1comite', '6forum'=>'6forum', '5poubelle' => '5poubelle',
    123                 'admin'=>'0minirezo', 'redac'=>'1comite', 'visit'=>'6forum', 'poub' => '5poubelle');
    124        
    125     // tableau de tous les admins
    126     $result = sql_select(array('login'), 'spip_auteurs', array('statut = "0minirezo"'));
    127     while ($r = sql_fetch($result)) {
    128         $Tadmin_tous[] = $r['login'];
    129     }
    130     // tableau des admins restreints
    131     $Tadmin_restreint=array();
    132     $from = array(
    133         "spip_auteurs AS auteurs",
    134         "spip_auteurs_liens AS liens");
    135     $where = array(
    136         "auteurs.statut = '0minirezo'",
    137         "liens.objet = 'rubrique'",
    138         "liens.id_auteur = auteurs.id_auteur",
    139         'login!=""');
    140     $result = sql_select(array('login'),$from, $where);
    141     while ($r = sql_fetch($result))
    142         $Tadmin_restreint[] = $r['login'];
    143    
    144     // tableau admins complets
    145     $Tadmin_complet = array_diff($Tadmin_tous, $Tadmin_restreint);
    146    
    147    
    148     // traiter le fichier CSV
    149     $i = 0;
    150     $num_statut = $num_login = -1;
    151     while (($data = fgetcsv($fichiercsv, "$separateur")) !== FALSE) {
    152        // petit hack car fgetcsv ne reconnait pas le ~ comme séparateur !!!
    153        $data           = implode("$separateur", $data);
    154        $data           = explode("$separateur", $data);
    155        $nombre_elements = count($data);
    156        
    157        // régler le problème des champs CSV avec des espaces qui trainent en début ou fin de chaine
    158        $data = array_map('trim', $data);
    159        
    160        // Récupération de la ligne d'entete
    161        if ($i == 0) {
    162             for ($j = 0; $j < $nombre_elements; $j++) {
    163                 $en_tete[$j] = strtolower($data[$j]);   
    164                 if ($en_tete[$j] == 'statut')
    165                     $num_statut = $j;
    166                 if ($en_tete[$j] == 'login')
    167                     $num_login = $j;
    168            }
    169             if ($num_statut < 0 OR $num_login < 0) {
    170                 $retour['message_erreur'] = _T('csv2auteurs:champ_manquant').' login:'.$num_login.' statut'.$num_statut;
    171                 return  $retour;
    172             }
    173        }
    174        else {
     85        $id_rubrique_parent_archive = 0;
     86
     87        include_spip('action/editer_rubrique');
     88        if (test_plugin_actif("accesrestreint"))
     89        include_spip('action/editer_zone');
     90        include_spip('action/editer_auteur');
     91
     92        if ($abs_redacs OR $abs_admins OR $abs_visiteurs OR $abs_poubelle == 'supprimer'){
     93                include_spip('action/editer_objet');
     94                include_spip('action/editer_liens');
     95                include_spip('action/editer_zone');
     96        }
     97
     98        // récupération du fichier csv
     99        include_spip('inc/config');
     100        $separateur  = lire_config("csv2auteurs_separateur");
     101        $tmp_name    = $_FILES['fichier_csv']['tmp_name'];
     102        $destination = _DIR_TMP.basename($tmp_name);
     103        $resultat    = move_uploaded_file($tmp_name,$destination);
     104        if (!$resultat)
     105        $retour['message_erreur'] = _T('csv2auteurs:transfert');
     106        else
     107        $retour['message_ok'] = _T('csv2auteurs:chargement_fichier_CSV_OK', array('nom_fichier' => $_FILES['fichier_csv']['name']));
     108
     109
     110        // transformation du fichier csv en 4 array :
     111        // $en_tete = ligne entete
     112        // pour les 3 tableaux suivant, la cle est soit le login et s'il n'existe pas on prend le mail
     113        // $tableau_csv_visiteurs
     114        // $tableau_csv_redacs
     115        // $tableau_csv_admins
     116        $tableau_csv_visiteurs = $tableau_csv_redacs = $tableau_csv_admins = array();
     117        $tableau_csv_rubriques_admins = array();
     118        $fichiercsv = fopen($destination, "r");
     119
     120        // correspondance statut spip / statut csv (+ admettre les status spip ou les status abrégés dans le CSV)
     121        $Tcorrespondances = array('administrateur'=>'0minirezo', 'redacteur'=>'1comite', 'rédacteur'=>'1comite', 'visiteur'=>'6forum', 'poubelle' => '5poubelle',
     122        '0minirezo'=>'0minirezo', '1comite'=>'1comite', '6forum'=>'6forum', '5poubelle' => '5poubelle',
     123        'admin'=>'0minirezo', 'redac'=>'1comite', 'visit'=>'6forum', 'poub' => '5poubelle');
     124
     125        // tableau de tous les admins
     126        $result = sql_select(array('login'), 'spip_auteurs', array('statut = "0minirezo"'));
     127        while ($r = sql_fetch($result)) {
     128                $Tadmin_tous[] = $r['login'];
     129        }
     130        // tableau des admins restreints
     131        $Tadmin_restreint=array();
     132        $from = array(
     133                "spip_auteurs AS auteurs",
     134                "spip_auteurs_liens AS liens"
     135        );
     136        $where = array(
     137                "auteurs.statut = '0minirezo'",
     138                "liens.objet = 'rubrique'",
     139                "liens.id_auteur = auteurs.id_auteur",
     140                'login!=""'
     141        );
     142        $result = sql_select(array('login'),$from, $where);
     143        while ($r = sql_fetch($result))
     144        $Tadmin_restreint[] = $r['login'];
     145
     146        // tableau admins complets
     147        $Tadmin_complet = array_diff($Tadmin_tous, $Tadmin_restreint);
     148
     149
     150        // traiter le fichier CSV
     151        $i = 0;
     152        $num_statut = $num_login = -1;
     153        while (($data = fgetcsv($fichiercsv, "$separateur")) !== FALSE) {
     154                // petit hack car fgetcsv ne reconnait pas le ~ comme séparateur !!!
     155                $data           = implode("$separateur", $data);
     156                $data           = explode("$separateur", $data);
     157                $nombre_elements = count($data);
     158
     159                // régler le problème des champs CSV avec des espaces qui trainent en début ou fin de chaine
     160                $data = array_map('trim', $data);
     161
     162                // Récupération de la ligne d'entete
     163                if ($i == 0) {
     164                        for ($j = 0; $j < $nombre_elements; $j++) {
     165                                $en_tete[$j] = strtolower($data[$j]);   
     166                                if ($en_tete[$j] == 'statut')
     167                                $num_statut = $j;
     168                                if ($en_tete[$j] == 'login')
     169                                $num_login = $j;
     170                        }
     171                        if ($num_statut < 0 OR $num_login < 0) {
     172                                $retour['message_erreur'] = _T('csv2auteurs:champ_manquant').' login:'.$num_login.' statut'.$num_statut;
     173                                return  $retour;
     174                        }
     175                }
     176                else {
    175177                        // on ne veut pas les auteurs du CSV ayant un login égal à celui d'un admin complet
    176178                        if (in_array($data[$num_login], $Tadmin_complet)) {
     
    178180                                continue;
    179181                        }
    180             for ($j = 0; $j < $nombre_elements; $j++) {
    181                 if (($data[$num_login] AND !in_array($data[$num_login], $Tadmin_complet))) {
    182                     // creation du tableau contenant l'ensemble des données à importer
    183                    if ($Tcorrespondances[strtolower($data[$num_statut])] == '6forum')
    184                         $tableau_csv_visiteurs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "6forum" : $data[$j];
    185                        
    186                    elseif ($Tcorrespondances[strtolower($data[$num_statut])] == '1comite')
    187                         $tableau_csv_redacs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "1comite" : $data[$j];
    188                        
    189                    elseif ($Tcorrespondances[strtolower($data[$num_statut])] == '0minirezo') {
    190                         $tableau_csv_admins[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "0minirezo" : $data[$j];
    191                         // récup des rubriques pour les admins restreints
    192                         if ($en_tete[$j] == 'ss_groupe' AND $data[$j]) {
    193                             $Trub = explode('|', $data[$j]);
    194                             foreach ($Trub as $rub)
    195                                 if (!in_array($rub, $tableau_csv_rubriques_admins))
    196                                     $tableau_csv_rubriques_admins[] = $rub;
    197                         }
    198                     }
     182                        for ($j = 0; $j < $nombre_elements; $j++) {
     183                                if (($data[$num_login] AND !in_array($data[$num_login], $Tadmin_complet))) {
     184                                        // creation du tableau contenant l'ensemble des données à importer
     185                                        if ($Tcorrespondances[strtolower($data[$num_statut])] == '6forum')
     186                                        $tableau_csv_visiteurs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "6forum" : $data[$j];
     187
     188                                        elseif ($Tcorrespondances[strtolower($data[$num_statut])] == '1comite')
     189                                        $tableau_csv_redacs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "1comite" : $data[$j];
     190
     191                                        elseif ($Tcorrespondances[strtolower($data[$num_statut])] == '0minirezo') {
     192                                                $tableau_csv_admins[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "0minirezo" : $data[$j];
     193                                                // récup des rubriques pour les admins restreints
     194                                                if ($en_tete[$j] == 'ss_groupe' AND $data[$j]) {
     195                                                        $Trub = explode('|', $data[$j]);
     196                                                        foreach ($Trub as $rub)
     197                                                        if (!in_array($rub, $tableau_csv_rubriques_admins))
     198                                                        $tableau_csv_rubriques_admins[] = $rub;
     199                                                }
     200                                        }
    199201                                        // si pas de statut reconnu on passe en visiteur
    200                     else {
     202                                        else {
    201203                                                $tableau_csv_visiteurs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "6forum" : $data[$j];
    202204                                                if ($en_tete[$j] == "login")
    203                                                         $retour['message_ok'] .= '<br />'._T('csv2auteurs:statut_absent', array('login_auteur' => $data[$j]));
     205                                                $retour['message_ok'] .= '<br />'._T('csv2auteurs:statut_absent', array('login_auteur' => $data[$j]));
    204206                                        }
    205                    
    206                 }
    207             }
    208         }
    209         $i++;
    210     }
    211     fclose($fichiercsv);
    212     unlink($destination);
    213     $retour['message_ok'] .= '<br />'._T('csv2auteurs:nbe_auteurs_a_traiter', array('nb_auteurs' => $i - 1));
    214 
    215     // tableau CSV total
    216     $tableau_csv_total = $tableau_csv_visiteurs + $tableau_csv_redacs + $tableau_csv_admins;
    217 
    218 //spip_log("tableau csv total","csvspip");
    219 //spip_log($tableau_csv_total,"csvspip");
    220 
    221     //récupération des auteurs de la bdd en 4 array
    222     // on ne prend pas les auteurs sans login
    223     // $poubelle_bdd = les auteurs à la poubelle
    224     // $visiteur_bdd = les visiteurs
    225     // $redacteur_bdd
    226     // $admin_restreint_bdd
    227     // la cle de chaque tableau est le login
    228     $poubelle_bdd = $visiteur_bdd = $redacteur_bdd = $admin_restreint_bdd = array();
    229     $visiteur_bdd_req = sql_allfetsel('*', 'spip_auteurs', array('statut="6forum"','(login!="")'));
    230     foreach ($visiteur_bdd_req as $key) {
    231         $visiteur_bdd[$key['login']] = $key;
    232     }
    233     $redacteur_bdd_req = sql_allfetsel('*', 'spip_auteurs', array('statut="1comite"','(login!="")'));
    234     foreach ($redacteur_bdd_req as $key) {
    235         $redacteur_bdd[$key['login']] = $key;
    236     }
    237     //on récupère seulement les admins restreints !!!
    238     $from = array(
    239         "spip_auteurs AS auteurs",
    240         "spip_auteurs_liens AS liens");
    241     $where = array(
    242         "auteurs.statut = '0minirezo'",
    243         "liens.objet = 'rubrique'",
    244         "liens.id_auteur = auteurs.id_auteur",
    245         '(login!="")');
    246     $admin_restreint_bdd_req = sql_allfetsel("DISTINCT auteurs.*" ,$from, $where);
    247     foreach ($admin_restreint_bdd_req as $key) {
    248         $admin_restreint_bdd[$key['login']] = $key;
    249     }
    250 
    251     // tableau BDD total
    252     $tableau_bdd_total = $poubelle_bdd + $visiteur_bdd +  $redacteur_bdd + $admin_restreint_bdd;
    253 
    254     // traitement rubriques admin
    255     // construction du tableau de correspondance nom_rubrique avec leur id
    256     // création des rubriques n'existant pas
    257     $tableau_bdd_rubriques_admins = array();
    258     $result = sql_select(array('id_rubrique', 'titre'), 'spip_rubriques');
    259     while ($row = sql_fetch($result)) {
    260         $tableau_bdd_rubriques_admins[$row['id_rubrique']] = strtolower($row['titre']);
    261     }
    262 
    263     // traitement zones
    264     // construction du tableau de correspondance nom_zone avec leur id
    265     $tableau_bdd_zones_admins = array();
    266     if (test_plugin_actif("accesrestreint")) {
    267         $result = sql_select(array('id_zone', 'titre'), 'spip_zones');
    268         while ($row = sql_fetch($result)) {
    269             $tableau_bdd_zones_admins[$row['id_zone']] = strtolower($row['titre']);
    270         }
    271     }
    272 //    spip_log($tableau_bdd_zones_admins,"csvspip");
    273    
    274     // créer les rubriques admins du csv n'existant pas et les indexer
    275     // le champ ss_groupe du fichier CSV peut contenir le titre ou  l'id de la rubrique
    276     // pour la création il faut un titre
    277     $nb_rub_crees = 0;
    278     foreach ($tableau_csv_rubriques_admins as $num_rub => $rub) {
    279         if (!in_array(strtolower($rub), $tableau_bdd_rubriques_admins) AND !is_numeric($rub)) {
    280             $set = array('titre' => $rub);
    281             $id_rub = rubrique_inserer($id_rubrique_parent_admin);
    282             rubrique_modifier($id_rub, $set);
    283             $tableau_bdd_rubriques_admins[$id_rub] = strtolower($rub);
    284             $nb_rub_crees++;
    285         }
    286     }
    287     if ($nb_rub_crees > 0)
    288                 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nbe_rubriques_admin_crees', array('nb_rubriques' => $nb_rub_crees));
    289 
    290     //Récuperer les champs de la table auteurs
    291     $Tnom_champs_bdd = array();
    292     $desc = sql_showtable('spip_auteurs',true);
    293     foreach ($desc['field'] as $cle => $valeur)
    294         $Tnom_champs_bdd[] = $cle;
    295 
    296    
    297     // PARTIE I : maj ou ajout des auteurs
    298     $tableau_nouveaux_auteurs = array_diff_key($tableau_csv_total, $tableau_bdd_total);
    299     // si maj demandée
    300     if ($maj_utilisateur) {
    301         // construire le tableau des utilisateurs à mettre à jour, indexé sur le login
    302         $tableau_maj_auteurs = array_diff_key($tableau_csv_total, $tableau_nouveaux_auteurs);
    303        
    304         // construire le tableau de correspondance login csv => id_auteur bdd
    305         $tableau_maj_auteurs_id = array();
    306         $Tlogins = array_keys($tableau_maj_auteurs);
    307         $chaine_in = implode('","', $Tlogins);
    308         $chaine_in = '"'.$chaine_in.'"';
    309         $res = sql_select('id_auteur, login', 'spip_auteurs', array('login IN ('.$chaine_in.')'));
    310         while ($row = sql_fetch($res)) {
    311             $tableau_maj_auteurs_id[$row['login']] = $row['id_auteur'];
    312         }
    313 
    314         // si remplacer les données zones et rubriques administrées: supprimer les liens existant
    315         if ($type_maj == 'remplacer' AND test_plugin_actif("accesrestreint")) {
    316             // suppression des liens des rubriques administrées
    317             objet_dissocier(array("auteur" => array_values($tableau_maj_auteurs_id)), array("rubrique" => "*"));   
    318             // suppression des zones des auteurs
    319             zone_lier('',"auteur",array_values($tableau_maj_auteurs_id),'del');
    320             $retour['message_ok'] .= '<br />'._T('csv2auteurs:raz_rubriques_admins_zones');
    321         }
    322 
    323         // maj des données des auteurs
    324         $ret = '';
    325         foreach ($tableau_maj_auteurs as $login => $Tauteur) {
    326             $ret = csv2auteurs_ajout_utilisateur($login, $Tauteur, $Tnom_champs_bdd, $Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins, $tableau_maj_auteurs_id[$login]);
    327             if ($ret != '')
     207                                }
     208                        }
     209                }
     210                $i++;
     211        }
     212        fclose($fichiercsv);
     213        unlink($destination);
     214        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nbe_auteurs_a_traiter', array('nb_auteurs' => $i - 1));
     215
     216        // tableau CSV total
     217        $tableau_csv_total = $tableau_csv_visiteurs + $tableau_csv_redacs + $tableau_csv_admins;
     218
     219        //spip_log("tableau csv total","csvspip");
     220        //spip_log($tableau_csv_total,"csvspip");
     221
     222        //récupération des auteurs de la bdd en 4 array
     223        // on ne prend pas les auteurs sans login
     224        // $poubelle_bdd = les auteurs à la poubelle
     225        // $visiteur_bdd = les visiteurs
     226        // $redacteur_bdd
     227        // $admin_restreint_bdd
     228        // la cle de chaque tableau est le login
     229        $poubelle_bdd = $visiteur_bdd = $redacteur_bdd = $admin_restreint_bdd = array();
     230        $visiteur_bdd_req = sql_allfetsel('*', 'spip_auteurs', array('statut="6forum"','(login!="")'));
     231        foreach ($visiteur_bdd_req as $key) {
     232                $visiteur_bdd[$key['login']] = $key;
     233        }
     234        $redacteur_bdd_req = sql_allfetsel('*', 'spip_auteurs', array('statut="1comite"','(login!="")'));
     235        foreach ($redacteur_bdd_req as $key) {
     236                $redacteur_bdd[$key['login']] = $key;
     237        }
     238        //on récupère seulement les admins restreints !!!
     239        $from = array(
     240                "spip_auteurs AS auteurs",
     241                "spip_auteurs_liens AS liens"
     242        );
     243        $where = array(
     244                "auteurs.statut = '0minirezo'",
     245                "liens.objet = 'rubrique'",
     246                "liens.id_auteur = auteurs.id_auteur",
     247                '(login!="")'
     248        );
     249        $admin_restreint_bdd_req = sql_allfetsel("DISTINCT auteurs.*" ,$from, $where);
     250        foreach ($admin_restreint_bdd_req as $key) {
     251                $admin_restreint_bdd[$key['login']] = $key;
     252        }
     253
     254        // tableau BDD total
     255        $tableau_bdd_total = $poubelle_bdd + $visiteur_bdd +  $redacteur_bdd + $admin_restreint_bdd;
     256
     257        // traitement rubriques admin
     258        // construction du tableau de correspondance nom_rubrique avec leur id
     259        // création des rubriques n'existant pas
     260        $tableau_bdd_rubriques_admins = array();
     261        $result = sql_select(array('id_rubrique', 'titre'), 'spip_rubriques');
     262        while ($row = sql_fetch($result)) {
     263                $tableau_bdd_rubriques_admins[$row['id_rubrique']] = strtolower($row['titre']);
     264        }
     265
     266        // traitement zones
     267        // construction du tableau de correspondance nom_zone avec leur id
     268        $tableau_bdd_zones_admins = array();
     269        if (test_plugin_actif("accesrestreint")) {
     270                $result = sql_select(array('id_zone', 'titre'), 'spip_zones');
     271                while ($row = sql_fetch($result)) {
     272                        $tableau_bdd_zones_admins[$row['id_zone']] = strtolower($row['titre']);
     273                }
     274        }
     275        //    spip_log($tableau_bdd_zones_admins,"csvspip");
     276
     277        // créer les rubriques admins du csv n'existant pas et les indexer
     278        // le champ ss_groupe du fichier CSV peut contenir le titre ou  l'id de la rubrique
     279        // pour la création il faut un titre
     280        $nb_rub_crees = 0;
     281        foreach ($tableau_csv_rubriques_admins as $num_rub => $rub) {
     282                if (!in_array(strtolower($rub), $tableau_bdd_rubriques_admins) AND !is_numeric($rub)) {
     283                        $set = array('titre' => $rub);
     284                        $id_rub = rubrique_inserer($id_rubrique_parent_admin);
     285                        rubrique_modifier($id_rub, $set);
     286                        $tableau_bdd_rubriques_admins[$id_rub] = strtolower($rub);
     287                        $nb_rub_crees++;
     288                }
     289        }
     290        if ($nb_rub_crees > 0)
     291        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nbe_rubriques_admin_crees', array('nb_rubriques' => $nb_rub_crees));
     292
     293        //Récuperer les champs de la table auteurs
     294        $Tnom_champs_bdd = array();
     295        $desc = sql_showtable('spip_auteurs',true);
     296        foreach ($desc['field'] as $cle => $valeur)
     297        $Tnom_champs_bdd[] = $cle;
     298
     299
     300        // PARTIE I : maj ou ajout des auteurs
     301        $tableau_nouveaux_auteurs = array_diff_key($tableau_csv_total, $tableau_bdd_total);
     302        // si maj demandée
     303        if ($maj_utilisateur) {
     304                // construire le tableau des utilisateurs à mettre à jour, indexé sur le login
     305                $tableau_maj_auteurs = array_diff_key($tableau_csv_total, $tableau_nouveaux_auteurs);
     306
     307                // construire le tableau de correspondance login csv => id_auteur bdd
     308                $tableau_maj_auteurs_id = array();
     309                $Tlogins = array_keys($tableau_maj_auteurs);
     310                $chaine_in = implode('","', $Tlogins);
     311                $chaine_in = '"'.$chaine_in.'"';
     312                $res = sql_select('id_auteur, login', 'spip_auteurs', array('login IN ('.$chaine_in.')'));
     313                while ($row = sql_fetch($res)) {
     314                        $tableau_maj_auteurs_id[$row['login']] = $row['id_auteur'];
     315                }
     316
     317                // si remplacer les données zones et rubriques administrées: supprimer les liens existant
     318                if ($type_maj == 'remplacer' AND test_plugin_actif("accesrestreint")) {
     319                        // suppression des liens des rubriques administrées
     320                        objet_dissocier(array("auteur" => array_values($tableau_maj_auteurs_id)), array("rubrique" => "*"));   
     321                        // suppression des zones des auteurs
     322                        zone_lier('',"auteur",array_values($tableau_maj_auteurs_id),'del');
     323                        $retour['message_ok'] .= '<br />'._T('csv2auteurs:raz_rubriques_admins_zones');
     324                }
     325
     326                // maj des données des auteurs
     327                $ret = '';
     328                foreach ($tableau_maj_auteurs as $login => $Tauteur) {
     329                        $ret = csv2auteurs_ajout_utilisateur($login, $Tauteur, $Tnom_champs_bdd, $Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins, $tableau_maj_auteurs_id[$login]);
     330                        if ($ret != '')
    328331                                $retour['message_ok'] .= $ret;
    329332                }
    330333                $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_maj', array('nb_auteurs_maj' => count($tableau_maj_auteurs)));
    331     }
    332    
    333     // dans tous les cas ajout des nouveaux
    334     $ret = '';
    335     foreach ($tableau_nouveaux_auteurs as $login => $Tauteur) {
    336         $ret = csv2auteurs_ajout_utilisateur($login,$Tauteur,$Tnom_champs_bdd,$Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins);
    337         if ($ret != '')
    338                                 $retour['message_ok'] .= $ret;
     334        }
     335
     336        // dans tous les cas ajout des nouveaux
     337        $ret = '';
     338        foreach ($tableau_nouveaux_auteurs as $login => $Tauteur) {
     339                $ret = csv2auteurs_ajout_utilisateur($login,$Tauteur,$Tnom_champs_bdd,$Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins);
     340                if ($ret != '')
     341                $retour['message_ok'] .= $ret;
    339342        }
    340343        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_crees', array('nb_auteurs_crees' => count($tableau_nouveaux_auteurs)));
    341344
    342345
    343     // PARTIE II : Suppressions des absents (changer le statut des auteurs en 5poubelle)  avec 3 choix pour la gestion des articles associés
    344     // 1. ras
    345     // 2. supprimer les articles
    346     // 3. transferer les articles dans une rubrique d'archivage
    347 
    348     // Si choix3 : transferer les articles , création de la rubrique d'archive (en tenant compte d'une rubrique parent)
    349     if ($traitement_article_efface == "transferer_articles") {
    350         if (!$id_rubrique_archive = sql_fetsel('id_rubrique','spip_rubriques',array('titre ="'.$nom_rubrique_archive.'"',"id_parent=$id_rubrique_parent_archive"))) {
    351             $objet = 'rubrique';
    352             $set = array('titre' => $nom_rubrique_archive);
    353             $id_rubrique_archive = objet_inserer($objet, $id_rubrique_parent_archive);
    354             objet_modifier($objet, $id_rubrique_archive, $set);
    355             $retour['message_ok'] .= '<br />'._T('csv2auteurs:rubrique_archive_cree', array('titre_rubrique_archive' => $nom_rubrique_archive));
    356         }
    357     }   
    358    
    359     // si l'option auteurs sans articles = suppression complète
    360     // alors on supprime aussi tous les auteurs à la poubelle (sans articles)
    361     if ($abs_poubelle == 'supprimer') {
     346        // PARTIE II : Suppressions des absents (changer le statut des auteurs en 5poubelle)  avec 3 choix pour la gestion des articles associés
     347        // 1. ras
     348        // 2. supprimer les articles
     349        // 3. transferer les articles dans une rubrique d'archivage
     350
     351        // Si choix3 : transferer les articles , création de la rubrique d'archive (en tenant compte d'une rubrique parent)
     352        if ($traitement_article_efface == "transferer_articles") {
     353                if (!$id_rubrique_archive = sql_fetsel('id_rubrique','spip_rubriques',array('titre ="'.$nom_rubrique_archive.'"',"id_parent=$id_rubrique_parent_archive"))) {
     354                        $objet = 'rubrique';
     355                        $set = array('titre' => $nom_rubrique_archive);
     356                        $id_rubrique_archive = objet_inserer($objet, $id_rubrique_parent_archive);
     357                        objet_modifier($objet, $id_rubrique_archive, $set);
     358                        $retour['message_ok'] .= '<br />'._T('csv2auteurs:rubrique_archive_cree', array('titre_rubrique_archive' => $nom_rubrique_archive));
     359                }
     360        }
     361
     362        // si l'option auteurs sans articles = suppression complète
     363        // alors on supprime aussi tous les auteurs à la poubelle (sans articles)
     364        if ($abs_poubelle == 'supprimer') {
    362365                // récupérer les auteurs à la poubelle avec articles
    363                 $not_in = sql_allfetsel('auteurs.id_auteur', 
    364                         array('spip_auteurs_liens AS liens','spip_auteurs AS auteurs'), 
     366                $not_in = sql_allfetsel('auteurs.id_auteur',
     367                        array('spip_auteurs_liens AS liens','spip_auteurs AS auteurs'),
    365368                        array('liens.id_auteur = auteurs.id_auteur', 'liens.objet="article"', 'auteurs.statut="5poubelle"'),
    366                         array('liens.id_auteur'));             
     369                        array('liens.id_auteur')
     370                );
    367371                $Tnot_in =      array();
    368372                foreach ($not_in as $index => $Tid_auteur)
    369                         $Tnot_in[] = $Tid_auteur['id_auteur'];
     373                $Tnot_in[] = $Tid_auteur['id_auteur'];
    370374                $not_in = sql_in('id_auteur', $Tnot_in, 'NOT');
    371                
     375
    372376                // récupérer les auteurs à la poubelle sans articles
    373377                $Tabs_poubelle = sql_allfetsel('id_auteur', 'spip_auteurs',array('statut="5poubelle"', $not_in));
    374378                $Ta_suppr = array();
    375379                foreach ($Tabs_poubelle as $index => $Tid_auteur)
    376                         $Ta_suppr[] = $Tid_auteur['id_auteur'];
     380                $Ta_suppr[] = $Tid_auteur['id_auteur'];
    377381                // effacer définitevement ces auteurs
    378382                $in = sql_in('id_auteur', $Ta_suppr);
    379383                sql_delete('spip_auteurs', $in);
    380384                if (count($Tabs_poubelle) > 0)
    381                         $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_poubelle_effaces', array('nb_auteurs_poubelle_effaces' => count($Tabs_poubelle)));
    382         }               
     385                $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_poubelle_effaces', array('nb_auteurs_poubelle_effaces' => count($Tabs_poubelle)));
     386        }
    383387
    384388        // utilitaire pour récupérer un array simple avec les id_auteurs à partir du résultat du sql_allfetsel('id_auteur'...)
    385389        function recup_id($Tid_obj) { return $Tid_obj['id_auteur']; }
    386        
    387     if ($abs_visiteurs) {
    388         $Tid_visiteurs = csv2auteurs_diff_absents($visiteur_bdd, $tableau_csv_visiteurs);
    389         // faire le ménage: pour la suppression on récupère aussi les visiteurs sans login
    390         $Tid_visiteurs_nologin = sql_allfetsel('id_auteur', 'spip_auteurs', array('statut="6forum"', 'login = ""'));
    391         $Tid_visiteurs = $Tid_visiteurs + array_map('recup_id', $Tid_visiteurs_nologin);
    392         csv2auteurs_supprimer_auteurs($Tid_visiteurs, '6forum', $traitement_article_efface, $id_rubrique_parent_archive);
    393         if (count($Tid_visiteurs) > 0)
     390
     391        if ($abs_visiteurs) {
     392                $Tid_visiteurs = csv2auteurs_diff_absents($visiteur_bdd, $tableau_csv_visiteurs);
     393                // faire le ménage: pour la suppression on récupère aussi les visiteurs sans login
     394                $Tid_visiteurs_nologin = sql_allfetsel('id_auteur', 'spip_auteurs', array('statut="6forum"', 'login = ""'));
     395                $Tid_visiteurs = $Tid_visiteurs + array_map('recup_id', $Tid_visiteurs_nologin);
     396                csv2auteurs_supprimer_auteurs($Tid_visiteurs, '6forum', $traitement_article_efface, $id_rubrique_parent_archive);
     397                if (count($Tid_visiteurs) > 0)
    394398                        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_visiteurs_effaces', array('nb_visiteurs_effaces' => count($Tid_visiteurs)));
    395     }
    396     if ($abs_redacs) {
    397         $Tid_redacs = csv2auteurs_diff_absents($redacteur_bdd, $tableau_csv_redacs);
    398         // faire le ménage: pour la suppression on récupère aussi les redacteurs sans login
    399         $Tid_redacs_nologin = sql_allfetsel('id_auteur', 'spip_auteurs', array('statut="1comite"', 'login = ""'));
    400         $Tid_redacs = $Tid_redacs + array_map('recup_id', $Tid_redacs_nologin);
    401         csv2auteurs_supprimer_auteurs($Tid_redacs, '1comite',$traitement_article_efface,$id_rubrique_parent_archive);
    402         if (count($Tid_redacs) > 0)
     399        }
     400        if ($abs_redacs) {
     401                $Tid_redacs = csv2auteurs_diff_absents($redacteur_bdd, $tableau_csv_redacs);
     402                // faire le ménage: pour la suppression on récupère aussi les redacteurs sans login
     403                $Tid_redacs_nologin = sql_allfetsel('id_auteur', 'spip_auteurs', array('statut="1comite"', 'login = ""'));
     404                $Tid_redacs = $Tid_redacs + array_map('recup_id', $Tid_redacs_nologin);
     405                csv2auteurs_supprimer_auteurs($Tid_redacs, '1comite',$traitement_article_efface,$id_rubrique_parent_archive);
     406                if (count($Tid_redacs) > 0)
    403407                        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_effaces', array('nb_auteurs_effaces' => count($Tid_redacs)));
    404     }
    405     if ($abs_admins) {
    406         $Tid_admins = csv2auteurs_diff_absents($admin_restreint_bdd, $tableau_csv_admins);
    407         csv2auteurs_supprimer_auteurs($Tid_admins, '0minirezo',$traitement_article_efface,$id_rubrique_parent_archive);
    408         if (count($Tid_admins) > 0)
     408        }
     409        if ($abs_admins) {
     410                $Tid_admins = csv2auteurs_diff_absents($admin_restreint_bdd, $tableau_csv_admins);
     411                csv2auteurs_supprimer_auteurs($Tid_admins, '0minirezo',$traitement_article_efface,$id_rubrique_parent_archive);
     412                if (count($Tid_admins) > 0)
    409413                        $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_admins_restreints_effaces', array('nb_admins_restreints_effaces' => count($Tid_admins)));
    410     }
    411 
    412     return $retour;
     414        }
     415
     416        return $retour;
    413417}
    414418
     
    420424 */
    421425function csv2auteurs_diff_absents($Tbdd, $Tcsv=array()) {
    422     $Tid = array();
    423     $T = array_diff_key($Tbdd, $Tcsv);
    424     foreach ($T as $val)
    425         $Tid[] = $val['id_auteur'];
    426 
    427     return $Tid;
     426        $Tid = array();
     427        $T = array_diff_key($Tbdd, $Tcsv);
     428        foreach ($T as $val)
     429        $Tid[] = $val['id_auteur'];
     430
     431        return $Tid;
    428432}
    429433
     
    435439 */
    436440function csv2auteurs_ajout_utilisateur($login, $Tauteur_csv, $Tnom_champs_bdd, $Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins, $id_auteur=0) {
    437     $set = $Tzones = $Trubadmin = array();
    438     $retour = '';
    439    
    440     foreach ($Tauteur_csv as $champ => $valeur) {
     441        $set = $Tzones = $Trubadmin = array();
     442        $retour = '';
     443
     444        foreach ($Tauteur_csv as $champ => $valeur) {
    441445                // gestion des rubriques administrées par l'utilisateur
    442446                // la rubrique peut être désignée par son titre ou son id_rubrique
    443         if ($champ == "ss_groupe") {
    444             $T = explode('|',$valeur);
    445             foreach ($T as $rub) {
     447                if ($champ == "ss_groupe") {
     448                        $T = explode('|',$valeur);
     449                        foreach ($T as $rub) {
    446450                                if (is_numeric($rub) AND array_key_exists($rub, $tableau_bdd_rubriques_admins))
    447                                         $Trubadmin[] = $rub;
     451                                $Trubadmin[] = $rub;
    448452                                elseif ($id_r = array_search(strtolower($rub), $tableau_bdd_rubriques_admins))
    449                                         $Trubadmin[] = $id_r;
     453                                $Trubadmin[] = $id_r;
    450454                                // à priori on ne passe ici que si la rubrique est sous forme numérique mais ne correspondant pas à un id_rubrique existant
    451455                                elseif ($rub != '')
    452                                         $retour .= '<br />'._T('csv2auteurs:rubrique_admin_pas_trouvee', array('rub_pas_trouvee' => $rub, 'login_auteur' => $login));
    453             }
    454         }
    455        
    456         // gestion des zones de l'utilisateur
    457         if ($champ == "zone") {
    458             $T = explode('|',$valeur);
    459             foreach ($T as $zone) {
     456                                $retour .= '<br />'._T('csv2auteurs:rubrique_admin_pas_trouvee', array('rub_pas_trouvee' => $rub, 'login_auteur' => $login));
     457                        }
     458                }
     459
     460                // gestion des zones de l'utilisateur
     461                if ($champ == "zone") {
     462                        $T = explode('|',$valeur);
     463                        foreach ($T as $zone) {
    460464                                // pour la liste des zones on accepte soit le titre de la zone soit son id_zone
    461465                                if (intval($zone) == $zone AND array_key_exists($zone, $tableau_bdd_zones_admins))
    462                                         $Tzones[] = $zone;
     466                                $Tzones[] = $zone;
    463467                                elseif ($id_z = array_search(trim(rtrim(strtolower($zone))), $tableau_bdd_zones_admins))
    464                                         $Tzones[] = $id_z;
     468                                $Tzones[] = $id_z;
    465469                                elseif ($zone != '')
    466                                         $retour .= '<br />'._T('csv2auteurs:zone_pas_trouvee', array('zone_pas_trouvee' => $zone, 'login_auteur' => $login));
    467             }
    468         }
    469        
    470         // gestion de tous autres champs (y compris extras).
    471         // On ne modifie pas la valeur du passe si son champ est vide (comportement idem l'interface d'admin des utilisateurs)
    472         // en revanche si nouvel auteur et pas de passe: ne pas créer
    473         if (in_array($champ, $Tnom_champs_bdd)) {
     470                                $retour .= '<br />'._T('csv2auteurs:zone_pas_trouvee', array('zone_pas_trouvee' => $zone, 'login_auteur' => $login));
     471                        }
     472                }
     473
     474                // gestion de tous autres champs (y compris extras).
     475                // On ne modifie pas la valeur du passe si son champ est vide (comportement idem l'interface d'admin des utilisateurs)
     476                // en revanche si nouvel auteur et pas de passe: ne pas créer
     477                if (in_array($champ, $Tnom_champs_bdd)) {
    474478                        if ($champ == 'pass' AND $valeur == '') {
    475479                                if (!$id_auteur) {
     
    477481                                }
    478482                                else
    479                                         continue;
    480                         }
    481             $set[$champ] = ($champ == "statut" AND array_key_exists($valeur, $Tcorrespondances)) ? $Tcorrespondances[$valeur] : $valeur;
    482         }
    483        
    484        
    485     }
    486     // si l'utilisateur est 0minirezo mais qu'il n'a pas de rubrique à administrer, le dégrader en redacteur
    487     if ($set['statut'] == '0minirezo' AND count($Trubadmin) == 0) {
     483                                continue;
     484                        }
     485                        $set[$champ] = ($champ == "statut" AND array_key_exists($valeur, $Tcorrespondances)) ? $Tcorrespondances[$valeur] : $valeur;
     486                }
     487
     488        }
     489        // si l'utilisateur est 0minirezo mais qu'il n'a pas de rubrique à administrer, le dégrader en redacteur
     490        if ($set['statut'] == '0minirezo' AND count($Trubadmin) == 0) {
    488491                $set['statut'] = '1comite';
    489492                $retour .= '<br />'._T('csv2auteurs:admin_sans_rub', array('login_auteur' => $login));
    490493        }
    491494
    492     //créer l'auteur si il n'y a pas d'id_auteur transmis
    493     if (!$id_auteur)
    494         $id_auteur = auteur_inserer();
    495    
    496     // remplir les champs ou les maj
    497     $ret = auteur_modifier($id_auteur, $set);
    498     if ($ret != '')
    499                 $retour .= '<br />'._T('csv2auteurs:probleme_creation_maj_compte', array('login_auteur' => $login)).$ret;
    500 
    501     //liaison des rubriques
    502     if (count($Trubadmin) AND $set["statut"] == "0minirezo")
    503         objet_associer(array("auteur" => $id_auteur), array("rubrique" => $Trubadmin));
    504        
    505     //liaison des zones
    506     if (count($Tzones) AND test_plugin_actif("accesrestreint") AND test_plugin_actif("accesrestreint"))
    507                 zone_lier($Tzones, 'auteur', $id_auteur, 'add');
    508        
    509     return $retour;
     495        //créer l'auteur si il n'y a pas d'id_auteur transmis
     496        if (!$id_auteur)
     497        $id_auteur = auteur_inserer();
     498
     499        // remplir les champs ou les maj
     500        $ret = auteur_modifier($id_auteur, $set);
     501        if ($ret != '')
     502        $retour .= '<br />'._T('csv2auteurs:probleme_creation_maj_compte', array('login_auteur' => $login)).$ret;
     503
     504        //liaison des rubriques
     505        if (count($Trubadmin) AND $set["statut"] == "0minirezo")
     506        objet_associer(array("auteur" => $id_auteur), array("rubrique" => $Trubadmin));
     507
     508        //liaison des zones
     509        if (count($Tzones) AND test_plugin_actif("accesrestreint") AND test_plugin_actif("accesrestreint"))
     510        zone_lier($Tzones, 'auteur', $id_auteur, 'add');
     511
     512        return $retour;
    510513}
    511514
     
    522525 */
    523526function csv2auteurs_supprimer_auteurs($Tid, $statut,$traitement="supprimer_articles",$id_rubrique_archive=1) {
    524     // passage à la poubelle
    525     $objet = 'auteur';
    526     $set = array('statut'=>'5poubelle');
    527     foreach ($Tid as $id) {
    528         $Tarticles = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur='.$id, 'objet="article"'));
    529 
    530         // auteur sans article et demande de suppression: suppression complète
    531         if (count($Tarticles) == 0 AND _request('abs_poubelle') == 'supprimer')
    532             sql_delete('spip_auteurs', "id_auteur=$id");
    533         // passage à la poubelle
    534         else
    535             objet_modifier($objet, $id, $set);
    536 
    537         // traitement des articles de l'auteur
    538         if (count($Tarticles) != 0) {
    539 
    540             // supprimer les articles
    541             $table_idarticle = array();
    542             if ($traitement == 'supprimer_articles') {
    543                 objet_dissocier(array('id_auteur'=>$id), array('article'=>$Tarticles));
    544                 foreach ($Tarticles as $idarticle) {
    545                     $table_idarticle[]=$idarticle['id_objet'];
    546                 }
    547                 $inarticle = join(',',$table_idarticle);
    548                 sql_delete('spip_articles', "id_article IN ($inarticle)");
    549             }
    550             // deplacer les articles dans la rubrique d'archivage
    551             if ($traitement == 'transferer_articles') {
    552                 foreach ($Tarticles as $idarticle)
    553                     objet_modifier('article', $idarticle['id_objet'], array('id_parent'=>$id_rubrique_archive));
    554             }
    555         }
    556            
    557         if (test_plugin_actif("accesrestreint")) {
    558             // suppression des zones de l'auteur
    559             $Tzones = sql_allfetsel('id_zone', 'spip_zones_liens', array('id_objet='.$id, 'objet="auteur"'));
    560             foreach ($Tzones as $id_zone)
    561                 zone_lier($id_zone, 'auteur', $id, 'del');
    562         }   
    563         // suppression des rubriques des admins restreints
    564         if ($statut == '0minirezo') {
    565             $Trubriques = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur='.$id, 'objet="rubrique"'));
    566             objet_dissocier(array('id_auteur'=>$id), array('rubrique'=>$Trubriques));
    567         }
    568     }
     527        // passage à la poubelle
     528        $objet = 'auteur';
     529        $set = array('statut'=>'5poubelle');
     530        foreach ($Tid as $id) {
     531                $Tarticles = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur='.$id, 'objet="article"'));
     532
     533                // auteur sans article et demande de suppression: suppression complète
     534                if (count($Tarticles) == 0 AND _request('abs_poubelle') == 'supprimer')
     535                sql_delete('spip_auteurs', "id_auteur=$id");
     536                // passage à la poubelle
     537                else
     538                objet_modifier($objet, $id, $set);
     539
     540                // traitement des articles de l'auteur
     541                if (count($Tarticles) != 0) {
     542
     543                        // supprimer les articles
     544                        $table_idarticle = array();
     545                        if ($traitement == 'supprimer_articles') {
     546                                objet_dissocier(array('id_auteur'=>$id), array('article'=>$Tarticles));
     547                                foreach ($Tarticles as $idarticle) {
     548                                        $table_idarticle[]=$idarticle['id_objet'];
     549                                }
     550                                $inarticle = join(',',$table_idarticle);
     551                                sql_delete('spip_articles', "id_article IN ($inarticle)");
     552                        }
     553                        // deplacer les articles dans la rubrique d'archivage
     554                        if ($traitement == 'transferer_articles') {
     555                                foreach ($Tarticles as $idarticle)
     556                                objet_modifier('article', $idarticle['id_objet'], array('id_parent'=>$id_rubrique_archive));
     557                        }
     558                }
     559
     560                if (test_plugin_actif("accesrestreint")) {
     561                        // suppression des zones de l'auteur
     562                        $Tzones = sql_allfetsel('id_zone', 'spip_zones_liens', array('id_objet='.$id, 'objet="auteur"'));
     563                        foreach ($Tzones as $id_zone)
     564                        zone_lier($id_zone, 'auteur', $id, 'del');
     565                }
     566                // suppression des rubriques des admins restreints
     567                if ($statut == '0minirezo') {
     568                        $Trubriques = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur='.$id, 'objet="rubrique"'));
     569                        objet_dissocier(array('id_auteur'=>$id), array('rubrique'=>$Trubriques));
     570                }
     571        }
    569572}
    570573
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_separateur.html

    r81108 r96552  
    55
    66[(#ENV{editable}|oui)
    7     <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
    8     #ACTION_FORMULAIRE{#ENV{action}}
    9         <ul>
    10             <li class="fieldset">
    11                 <fieldset>
    12                     <h3 class="legend"><:csv2auteurs:separateur:></h3>
    13                         [(#SAISIE{input,separateur,obligatoire}
    14                         )]
    15                 </fieldset>
    16            </li>
    17         </ul>
    18     <p class="boutons"><input type="submit" class="submit" value="Envoyer" /></p>
    19     </div></form>
     7        <form name="formulaire_#FORM" action="#ENV{action}" method="post">
     8                <div>#ACTION_FORMULAIRE{#ENV{action}}
     9                        <ul>
     10                                <li class="fieldset">
     11                                        <fieldset>
     12                                                <h3 class="legend"><:csv2auteurs:separateur:></h3>
     13                                                [(#SAISIE{input,separateur,obligatoire}
     14                                                )]
     15                                        </fieldset>
     16                                </li>
     17                        </ul>
     18                        <p class="boutons"><input type="submit" class="submit" value="Envoyer" /></p>
     19                </div>
     20        </form>
    2021]
    2122</div>
    22 
  • _plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_separateur.php

    r81108 r96552  
    22if (!defined('_ECRIRE_INC_VERSION')) return;
    33
    4 function formulaires_csv2auteurs_separateur_charger_dist(){
    5     $valeurs = array(
    6         "separateur"  => lire_config("csv2auteurs_separateur"),
    7     );
    8 return $valeurs;
     4function formulaires_csv2auteurs_separateur_charger_dist() {
     5        $valeurs = array(
     6                "separateur"  => lire_config("csv2auteurs_separateur"),
     7        );
     8        return $valeurs;
    99}
    1010
    11 function formulaires_csv2auteurs_separateur_verifier_dist(){
    12        
    13     $erreurs = array();
    14     //champs obligatoire
    15     if (!_request(separateur)) $erreurs['separateur'] = _T('csv2auteurs:obligatoire');
    16     return $erreurs;
     11function formulaires_csv2auteurs_separateur_verifier_dist() {
     12        $erreurs = array();
     13        //champs obligatoire
     14        if (!_request(separateur)) $erreurs['separateur'] = _T('csv2auteurs:obligatoire');
     15        return $erreurs;
    1716}
    1817
    19 function formulaires_csv2auteurs_separateur_traiter_dist(){
    20     $separateur   = _request('separateur');
    21    
    22     ecrire_meta("csv2auteurs_separateur",_request('separateur'));
    23     $retour = array();
    24     $retour['message_ok'] = _T('csv2auteurs:nouveau_separateur',array("separateur"=>$separateur));
    25     //$retour['redirect'] = "ecrire/?exec=csv2auteurs";
     18function formulaires_csv2auteurs_separateur_traiter_dist() {
     19        $separateur   = _request('separateur');
     20        ecrire_meta("csv2auteurs_separateur",_request('separateur'));
     21        $retour = array();
     22        $retour['message_ok'] = _T('csv2auteurs:nouveau_separateur',array("separateur"=>$separateur));
     23        //$retour['redirect'] = "ecrire/?exec=csv2auteurs";
    2624
    27     return $retour;
     25        return $retour;
    2826}
    2927?>
  • _plugins_/csv2auteurs/trunk/lang/csv2auteurs_fr.php

    r96512 r96552  
    22$GLOBALS[$GLOBALS['idx_lang']] = array(
    33        // A
    4     'abs_redac' => 'Rédacteurs absents',
    5     'abs_admin' => 'Administrateurs restreints absents',
    6     'abs_visiteur' => 'Visiteurs absents',
    7     'abs_poubelle' => 'Traitement des auteurs absents sans articles',
    8     'administrateurs' => 'Administrateurs',
    9     'admin_a_zero' => 'Réinitialisation des rubriques administrées :',
    10     'auteur_poubelle'=>'mettre les auteurs "à la poubelle" sans les supprimer complètement',
    11     'auteur_nouveau'=>'supprimer les auteurs et attribuer leurs articles à l\'auteur',
    12     'avenir_auteurs'=>'Traitement des comptes supprimés pour les auteurs d\'articles :',
    13     'admin_sans_rub' => '<strong class="erreur">Attention !</strong> l\'administrateur restreint <strong>@login_auteur@</strong> n\'a pas de rubrique associée: son compte est rétrogradé en rédacteur.',
    14        
     4        'abs_redac' => 'Rédacteurs absents',
     5        'abs_admin' => 'Administrateurs restreints absents',
     6        'abs_visiteur' => 'Visiteurs absents',
     7        'abs_poubelle' => 'Traitement des auteurs absents sans articles',
     8        'administrateurs' => 'Administrateurs',
     9        'admin_a_zero' => 'Réinitialisation des rubriques administrées :',
     10        'auteur_poubelle'=>'mettre les auteurs "à la poubelle" sans les supprimer complètement',
     11        'auteur_nouveau'=>'supprimer les auteurs et attribuer leurs articles à l\'auteur',
     12        'avenir_auteurs'=>'Traitement des comptes supprimés pour les auteurs d\'articles :',
     13        'admin_sans_rub' => '<strong class="erreur">Attention !</strong> l\'administrateur restreint <strong>@login_auteur@</strong> n\'a pas de rubrique associée: son compte est rétrogradé en rédacteur.',
     14
    1515        // B
    16     'bravo' => 'Bravo !!',
     16        'bravo' => 'Bravo !!',
    1717
    1818        // C
    19     'creation_rubrique' => 'Création de rubriques pour les sous-groupes administrateurs:',
    20     'creer_rubrique' => 'Créer une rubrique par sous-groupe d\'admins:',
    21     'creer_article'=> 'Créer un article dans chaque rubrique admin:',
     19        'creation_rubrique' => 'Création de rubriques pour les sous-groupes administrateurs:',
     20        'creer_rubrique' => 'Créer une rubrique par sous-groupe d\'admins:',
     21        'creer_article'=> 'Créer un article dans chaque rubrique admin:',
    2222        'csv2auteurs_titre' => 'csv2auteurs',
    23     'choix_statut'=> 'Choisissez les types de statut que vous désirez exporter',
    24     'champ_manquant' => 'Les champs : login, statut et email sont obligatoires !!',
    25     'chargement_fichier_CSV_OK' => 'Chargement du fichier <strong>@nom_fichier@</strong>: OK',
    26     'choix_format_rub_zones' => 'Format pour les rubriques des admins (champ <strong>ss_groupe</strong>) et les zones d\'accés restreint (champ <strong>zone</strong>)',
    27     'choix_manip' => 'Choix de l\'opération',
     23        'choix_statut'=> 'Choisissez les types de statut que vous désirez exporter',
     24        'champ_manquant' => 'Les champs : login, statut et email sont obligatoires !!',
     25        'chargement_fichier_CSV_OK' => 'Chargement du fichier <strong>@nom_fichier@</strong>: OK',
     26        'choix_format_rub_zones' => 'Format pour les rubriques des admins (champ <strong>ss_groupe</strong>) et les zones d\'accés restreint (champ <strong>zone</strong>)',
     27        'choix_manip' => 'Choix de l\'opération',
    2828
    2929        // D
    30     'delimiteur'=>'Choisissez le type de délimiteur que vous désirer pour créer votre fichier csv',
     30        'delimiteur'=>'Choisissez le type de délimiteur que vous désirer pour créer votre fichier csv',
    3131
    3232        // E
    33     'envoyer'=>'Lancer la moulinette',
    34     'erreurs' => 'Votre saisie contient des erreurs !',
    35     'extension' => 'Extension incorrect !',
    36     'exporter'=>'Exportation de comptes utilisateurs',
    37     'export_fichier_compatible_import' => 'Exporter un fichier directement réutilisable pour une importation ultérieure (= modèle)',
     33        'envoyer'=>'Lancer la moulinette',
     34        'erreurs' => 'Votre saisie contient des erreurs !',
     35        'extension' => 'Extension incorrect !',
     36        'exporter'=>'Exportation de comptes utilisateurs',
     37        'export_fichier_compatible_import' => 'Exporter un fichier directement réutilisable pour une importation ultérieure (= modèle)',
    3838
    3939        // F
    40     'fichier_uploader' => 'Fichier à téléverser',
    41     'format_titres_rub_zone' => 'Titres complets',
    42     'format_id_rub_zone' => 'Identifiants numériques',
     40        'fichier_uploader' => 'Fichier à téléverser',
     41        'format_titres_rub_zone' => 'Titres complets',
     42        'format_id_rub_zone' => 'Identifiants numériques',
    4343
    4444        // I
    45     'importer'=>'Importation de comptes utilisateurs',
    46    
    47     // L
    48     'login_idem_admin_non_traite' => '<strong class="erreur">Attention!</strong> Le compte ayant pour login <strong>@login_refuse@</strong> n\'a pas été traité car cet identifiant est celui d\'un administrateur complet',
     45        'importer'=>'Importation de comptes utilisateurs',
     46
     47        // L
     48        'login_idem_admin_non_traite' => '<strong class="erreur">Attention!</strong> Le compte ayant pour login <strong>@login_refuse@</strong> n\'a pas été traité car cet identifiant est celui d\'un administrateur complet',
    4949
    5050        // M
    51     'mettre_a_jour_utilisateurs_existants' => 'Mettre à jour les utilisateurs existants :',
    52     'mise_a_jour_utilisateur' => 'Mise à jour des utilisateurs existant déja dans SPIP :',
    53     'maj_infoperso' => 'Mise à jour des infos personnelles (mail, pseudo, pass):',
    54     'type_maj_remplacer'=>'Remplacer',
    55     'type_maj_ajouter'=>'Ajouter',
    56     'type_maj_label'=>'Gestion des rubriques administrées et des zones d\'accès des utilisateurs existants',
     51        'mettre_a_jour_utilisateurs_existants' => 'Mettre à jour les utilisateurs existants :',
     52        'mise_a_jour_utilisateur' => 'Mise à jour des utilisateurs existant déja dans SPIP :',
     53        'maj_infoperso' => 'Mise à jour des infos personnelles (mail, pseudo, pass):',
     54        'type_maj_remplacer'=>'Remplacer',
     55        'type_maj_ajouter'=>'Ajouter',
     56        'type_maj_label'=>'Gestion des rubriques administrées et des zones d\'accès des utilisateurs existants',
    5757
    5858        // N
    59     'nom_champs'=>'Sélectionnez les champs que vous souhaitez exporter',
    60     'nom_rubrique_archive'=>'Nom de la rubrique d\'archives :',
    61     'nom_nouvel_auteur'=>'(mot de passe idem login)',
    62     'non_autorise' => 'Seuls les webmestres ont le droit d\'utiliser csv2auteurs: veuillez vous reconnecter avec un compte adapté',
    63     'nouveau_separateur' => 'Le nouveau séparateur de champs est : @separateur@',
    64     'nbe_auteurs_a_traiter' => 'Nombre de comptes utilisateurs à traiter: @nb_auteurs@',
    65     'nbe_rubriques_admin_crees' => 'Nombre de rubriques créées pour les admins restreints: @nb_rubriques@',
    66     'nb_auteurs_maj' => 'Nombre de comptes utilisateurs mis à jour: @nb_auteurs_maj@',
    67     'nb_auteurs_crees' => 'Nombre de nouveaux utilisateurs  créés: @nb_auteurs_crees@',
    68     'nb_auteurs_poubelle_effaces' => 'Nombre d\'utilisateurs à la poubelle supprimés: @nb_auteurs_poubelle_effaces@',
    69     'nb_visiteurs_effaces' => 'Nombre de visiteurs supprimés: @nb_visiteurs_effaces@',
    70     'nb_auteurs_effaces' => 'Nombre de rédacteurs supprimés: @nb_auteurs_effaces@',
    71     'nb_admins_restreints_effaces' => 'Nombre d\'admins restreints supprimés: @nb_admins_restreints_effaces@',
    72     'nb_champ_passes' => '<strong>NB</strong>: les mots de passes n\'étant pas récupérables en clair, le champ <strong>pass</strong> sera toujours vide',
     59        'nom_champs'=>'Sélectionnez les champs que vous souhaitez exporter',
     60        'nom_rubrique_archive'=>'Nom de la rubrique d\'archives :',
     61        'nom_nouvel_auteur'=>'(mot de passe idem login)',
     62        'non_autorise' => 'Seuls les webmestres ont le droit d\'utiliser csv2auteurs: veuillez vous reconnecter avec un compte adapté',
     63        'nouveau_separateur' => 'Le nouveau séparateur de champs est : @separateur@',
     64        'nbe_auteurs_a_traiter' => 'Nombre de comptes utilisateurs à traiter: @nb_auteurs@',
     65        'nbe_rubriques_admin_crees' => 'Nombre de rubriques créées pour les admins restreints: @nb_rubriques@',
     66        'nb_auteurs_maj' => 'Nombre de comptes utilisateurs mis à jour: @nb_auteurs_maj@',
     67        'nb_auteurs_crees' => 'Nombre de nouveaux utilisateurs  créés: @nb_auteurs_crees@',
     68        'nb_auteurs_poubelle_effaces' => 'Nombre d\'utilisateurs à la poubelle supprimés: @nb_auteurs_poubelle_effaces@',
     69        'nb_visiteurs_effaces' => 'Nombre de visiteurs supprimés: @nb_visiteurs_effaces@',
     70        'nb_auteurs_effaces' => 'Nombre de rédacteurs supprimés: @nb_auteurs_effaces@',
     71        'nb_admins_restreints_effaces' => 'Nombre d\'admins restreints supprimés: @nb_admins_restreints_effaces@',
     72        'nb_champ_passes' => '<strong>NB</strong>: les mots de passes n\'étant pas récupérables en clair, le champ <strong>pass</strong> sera toujours vide',
    7373
    74         // O 
    75     'obligatoire' => 'Ce champs est obligatoire !',
     74        // O
     75        'obligatoire' => 'Ce champs est obligatoire !',
    7676
    7777        // P
    78     'parametres_fichier_csv' => 'Paramètres du fichier CSV',
    79     'presentation_formulaire' => 'CSV2AUTEURS : gestion des utilisateurs de SPIP à partir de fichiers CSV',
    80     'point_virgule'=>'Point-virgule ";"',
    81     'passage_poubelle' => 'passer à la poubelle',
    82     'probleme_creation_maj_compte' => '<strong class="erreur">Erreur !</strong> La création/modification du compte <strong>@login_auteur@</strong> retourne l\'erreur: ',
    83     'pas_nouveau_compte_sans_mdp' => '<strong class="erreur">Erreur !</strong> La création du compte <strong>@login_auteur@</strong> est annulée: il manque le mot de passe.',
     78        'parametres_fichier_csv' => 'Paramètres du fichier CSV',
     79        'presentation_formulaire' => 'CSV2AUTEURS : gestion des utilisateurs de SPIP à partir de fichiers CSV',
     80        'point_virgule'=>'Point-virgule ";"',
     81        'passage_poubelle' => 'passer à la poubelle',
     82        'probleme_creation_maj_compte' => '<strong class="erreur">Erreur !</strong> La création/modification du compte <strong>@login_auteur@</strong> retourne l\'erreur: ',
     83        'pas_nouveau_compte_sans_mdp' => '<strong class="erreur">Erreur !</strong> La création du compte <strong>@login_auteur@</strong> est annulée: il manque le mot de passe.',
    8484
    8585        // R
    86     'redacteurs' => 'Rédacteurs',
    87     'rubrique_defaut' => 'Rubrique par défaut des admins restreints:',
    88     'rubrique_parent_archive'=>'Choisissez la rubrique parente pour votre répertoire d\'archive',
    89     'rubrique_parent'=>'Choisissez la rubrique parente',
    90     'rien_faire' => 'Ne rien faire',
    91     'rubrique_archive_cree' => 'La rubrique <strong>@titre_rubrique_archive@</strong> a été créée pour archiver les articles auteurs supprimés',
    92     'raz_rubriques_admins_zones' => 'Remise à zéro des rubriques administrées et des zones d\'accès restreint pour les utilisateurs existant',
    93     'rubrique_admin_pas_trouvee' => '<strong class="erreur">Attention !</strong> auteur admin restreint <strong>@login_auteur@</strong>: la rubrique <strong>@rub_pas_trouvee@</strong> n\'existe pas.',
     86        'redacteurs' => 'Rédacteurs',
     87        'rubrique_defaut' => 'Rubrique par défaut des admins restreints:',
     88        'rubrique_parent_archive'=>'Choisissez la rubrique parente pour votre répertoire d\'archive',
     89        'rubrique_parent'=>'Choisissez la rubrique parente',
     90        'rien_faire' => 'Ne rien faire',
     91        'rubrique_archive_cree' => 'La rubrique <strong>@titre_rubrique_archive@</strong> a été créée pour archiver les articles auteurs supprimés',
     92        'raz_rubriques_admins_zones' => 'Remise à zéro des rubriques administrées et des zones d\'accès restreint pour les utilisateurs existant',
     93        'rubrique_admin_pas_trouvee' => '<strong class="erreur">Attention !</strong> auteur admin restreint <strong>@login_auteur@</strong>: la rubrique <strong>@rub_pas_trouvee@</strong> n\'existe pas.',
    9494
    9595        // S
    96     'suppression_absents' => 'Suppression des absents:',
    97     'suppression_article_efface' => 'Traitement des articles des auteurs effacés :',
    98     'supprimer_articles' =>'Supprimer les articles des auteurs effacés',
    99     'supprimer_auteur' => 'suppression complète (y compris ceux à la poubelle)',
    100     'separateur' => 'Choix du caractère de séparation de champs',
    101     'submit_format_import' => 'Exporter au format d\'importation',
    102     'submit_export_' => 'Exporter les champs sélectionnés',
    103     'statut_absent' => '<strong class="erreur">Attention !</strong> Le compte <strong>@login_auteur@</strong> n\'a pas de statut défini: il est intégré comme visiteur.',
    104    
     96        'suppression_absents' => 'Suppression des absents:',
     97        'suppression_article_efface' => 'Traitement des articles des auteurs effacés :',
     98        'supprimer_articles' =>'Supprimer les articles des auteurs effacés',
     99        'supprimer_auteur' => 'suppression complète (y compris ceux à la poubelle)',
     100        'separateur' => 'Choix du caractère de séparation de champs',
     101        'submit_format_import' => 'Exporter au format d\'importation',
     102        'submit_export_' => 'Exporter les champs sélectionnés',
     103        'statut_absent' => '<strong class="erreur">Attention !</strong> Le compte <strong>@login_auteur@</strong> n\'a pas de statut défini: il est intégré comme visiteur.',
     104
    105105        // T
    106     'transfert' => 'Erreur lors du transfert !',
    107     'transferer_articles' => 'Transférer les articles dans une rubrique d\'archives: ',
    108     'taille' => 'Le fichier est trop gros !',
    109     'titre_choix_statuts' => 'Choix des catégories d\'utilisateurs à exporter',
    110     'titre_choix_formats' => 'Choix de la forme des champs supplémentaires',
    111     'titre_choix_champs' => 'Choix du type d\'exportation',
     106        'transfert' => 'Erreur lors du transfert !',
     107        'transferer_articles' => 'Transférer les articles dans une rubrique d\'archives: ',
     108        'taille' => 'Le fichier est trop gros !',
     109        'titre_choix_statuts' => 'Choix des catégories d\'utilisateurs à exporter',
     110        'titre_choix_formats' => 'Choix de la forme des champs supplémentaires',
     111        'titre_choix_champs' => 'Choix du type d\'exportation',
    112112
    113113        // V
    114     'visiteurs' => 'Visiteurs',
    115     'virgule'=>'virgule ","',
    116     'vidage_poubelle' => 'Vider la poubelle',
    117    
    118     // Z
    119     'zone_pas_trouvee' => '<strong class="erreur">Attention !</strong> auteur @login_auteur@: la zone <strong>@zone_pas_trouvee@</strong> n\'existe pas.',
     114        'visiteurs' => 'Visiteurs',
     115        'virgule'=>'virgule ","',
     116        'vidage_poubelle' => 'Vider la poubelle',
     117
     118        // Z
     119        'zone_pas_trouvee' => '<strong class="erreur">Attention !</strong> auteur @login_auteur@: la zone <strong>@zone_pas_trouvee@</strong> n\'existe pas.',
    120120);
    121121?>
  • _plugins_/csv2auteurs/trunk/paquet.xml

    r96530 r96552  
    22        prefix="csv2auteurs"
    33        categorie="outil"
    4         version="1.1.4"
     4        version="1.1.5"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
     
    1616        <licence>GNU/GPL</licence>
    1717
    18     <necessite nom="saisies" compatibilite="[2.0.3;]" />
     18        <necessite nom="saisies" compatibilite="[2.0.3;]" />
    1919
    20     <pipeline nom="header_prive" inclure="csv2auteurs_pipelines.php" />
    21 
     20        <pipeline nom="header_prive" inclure="csv2auteurs_pipelines.php" />
    2221
    2322        <menu nom="csv2auteurs" titre="csv2auteurs:csv2auteurs_titre" parent="menu_administration"  icone="images/csv2auteurs-16.png" />
    2423
    25 
    26 
    2724</paquet>
  • _plugins_/csv2auteurs/trunk/prive/squelettes/contenu/csv2auteurs.html

    r96477 r96552  
    22
    33[(#SESSION{webmestre}|=={oui}|oui)
    4     <div id="separteur" class="ajax">
    5         #FORMULAIRE_CSV2AUTEURS_SEPARATEUR
    6     </div>
     4        <div id="separteur" class="ajax">
     5                #FORMULAIRE_CSV2AUTEURS_SEPARATEUR
     6        </div>
    77
    8 
    9     <div id="choix_manip" class="formulaire_spip">
     8        <div id="choix_manip" class="formulaire_spip">
    109                <h3 class="legend"><:csv2auteurs:choix_manip:></h3>
    1110                <ul>
     
    1514        </div>
    1615
    17     <div id="exporter" class="aaa">
    18         #FORMULAIRE_CSV2AUTEURS_EXPORTATION
    19     </div>
     16        <div id="exporter" class="aaa">
     17                #FORMULAIRE_CSV2AUTEURS_EXPORTATION
     18        </div>
    2019
    21     <div id="importer" class="ajax">
    22         #FORMULAIRE_CSV2AUTEURS_IMPORTATION
    23     </div>
     20        <div id="importer" class="ajax">
     21                #FORMULAIRE_CSV2AUTEURS_IMPORTATION
     22        </div>
    2423]
    2524[(#SESSION{webmestre}|=={oui}|non)
     
    3130
    3231<script type="text/javascript" charset="utf-8">
    33     jQuery(document).ready(function(){
     32        jQuery(document).ready(function(){
    3433                export_import();
    3534                jQuery("input[type=radio][name=choix]").on("change", export_import);
    36     });
    37     function export_import() {
     35        });
     36        function export_import() {
    3837                if (jQuery('input[value=importer]').attr('checked')){
    3938                        jQuery("#importer").show();
Note: See TracChangeset for help on using the changeset viewer.