Changeset 96552 in spip-zone
- Timestamp:
- Apr 9, 2016, 6:29:59 PM (5 years ago)
- Location:
- _plugins_/csv2auteurs/trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/csv2auteurs/trunk/csv2auteurs.css
r81108 r96552 1 .csv2auteurs div.choix {2 1 .csv2auteurs div.choix { 2 margin-left:150px; 3 3 } 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; 6 6 } 7 input#champ_rubrique_defaut {8 7 input#champ_rubrique_defaut { 8 width:200px; 9 9 } 10 input#champ_nom_rubrique_archive {11 10 input#champ_nom_rubrique_archive { 11 width:160px; 12 12 } 13 li.editer_nom_rubrique_archive {14 13 li.editer_nom_rubrique_archive { 14 padding-left:180px; 15 15 } 16 li.editer_nom_rubrique_archive,li.editer_rubrique_parent_archive {17 16 li.editer_nom_rubrique_archive,li.editer_rubrique_parent_archive { 17 background-color:#E1F4F2; 18 18 } -
_plugins_/csv2auteurs/trunk/csv2auteurs_options.php
r96529 r96552 7 7 AND _request('formulaire_action') == 'csv2auteurs_importation') 8 8 define('_PASS_LONGUEUR_MINI', '1'); 9 -
_plugins_/csv2auteurs/trunk/csv2auteurs_pipelines.php
r81108 r96552 3 3 4 4 5 function csv2auteurs_header_prive($flux) {6 7 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"; 8 8 9 9 return $flux; 10 10 } 11 12 13 11 ?> 14 15 16 -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.html
r96477 r96552 5 5 6 6 [(#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> 63 67 ] 64 68 </div> 65 69 66 70 <script type="text/javascript" charset="utf-8"> 67 71 jQuery(document).ready(function() { 68 72 jQuery("#config_import").on('click', function() { 69 73 jQuery(".editer_nom_champs input").prop("checked", false); 70 74 var Tchamp_import = ['nom', 'login', 'email', 'pass', 'statut']; 71 75 for (i in Tchamp_import) 72 76 jQuery(".choix_" + Tchamp_import[i] + " input").prop("checked", true); 73 77 }); 74 78 }); 75 79 </script> -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_exportation.php
r96477 r96552 3 3 4 4 function formulaires_csv2auteurs_exportation_charger_dist() { 5 6 5 $nom_champs = csv2auteurs_exportation(); 6 $valeurs = array( "choix_statut" => "6forum", 7 7 "nom_champs" => $nom_champs, 8 8 "choix_format" => "id"); … … 12 12 13 13 function formulaires_csv2auteurs_exportation_verifier_dist() { 14 15 16 14 $erreurs = array(); 15 // seuls les webmestres ont le droit d'utiliser cet outil! 16 if ($GLOBALS['visiteur_session']['webmestre'] != 'oui') 17 17 $erreurs['message_erreur'] = _T('csv2auteurs:non_autorise'); 18 18 19 19 return $erreurs; 20 20 } 21 21 22 22 function 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'); 38 26 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"); 44 29 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", 48 48 array("spip_auteurs AS auteur","spip_auteurs_liens AS liens"), 49 49 array("auteur.statut='0minirezo'","liens.id_auteur=auteur.id_auteur","liens.objet='rubrique'") 50 50 ); 51 52 53 54 51 while ($row = sql_fetch($r)) 52 $login_restreint[] = $row['login']; 53 } 54 55 55 // boucler dans tous les auteurs sélectionnés en fonction de leur statut 56 56 if ($res = sql_select('*', 'spip_auteurs')) { 57 57 $i = 1; 58 59 60 61 62 63 64 65 66 67 68 69 70 71 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") { 72 72 $tableau_csv[$i][$nom_champ] = ''; 73 73 } 74 74 else 75 76 77 78 79 80 81 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 83 83 $from1 = array("spip_rubriques AS rub", 84 84 "spip_auteurs_liens AS lien"); 85 85 $where1 = array("rub.id_rubrique = lien.id_objet", 86 87 88 89 90 91 92 93 94 95 96 97 98 99 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")) { 100 100 if ($choix_format == 'titre') 101 101 $select2 = array("zones.titre AS id_titre"); 102 102 else 103 104 103 $select2 = array("zones.id_zone AS id_titre"); 104 105 105 $from2 = array("spip_zones_liens AS liens", "spip_zones AS zones"); 106 106 $where2 = array("liens.objet = 'auteur'", 107 108 109 107 "liens.id_objet = ".$row['id_auteur'], 108 "liens.id_zone = zones.id_zone"); 109 if ($res3 = sql_select($select2, $from2, $where2)) { 110 110 $zones = array(); 111 111 while ($row3 = sql_fetch($res3)) { … … 114 114 } 115 115 } 116 117 118 119 120 121 122 123 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 124 124 $a_ecrire = ''; 125 126 125 include_spip('inc/config'); 126 $separateur = lire_config("csv2auteurs_separateur"); 127 127 foreach ($tableau_csv as $ligne) { 128 128 $a_ecrire .= implode("$separateur", $ligne); 129 129 $a_ecrire .= "\r\n"; 130 130 } 131 132 133 134 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)); 135 135 header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 136 136 header('Pragma: public'); 137 137 echo $a_ecrire; 138 138 exit; 139 139 140 140 return $retour; 141 141 } 142 142 143 143 // fonction pour récupérer un array avec les noms de schamps de la table spip_auteurs 144 144 function csv2auteurs_exportation() { 145 146 147 148 149 150 151 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) { 152 152 if (!in_array($cle, $Tchamps_exclus)) 153 153 $Tnom_champs[$cle] = $cle; 154 154 } 155 156 155 156 return $Tnom_champs; 157 157 } 158 158 ?> -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_importation.html
r96477 r96552 5 5 6 6 [(#ENV{editable}|oui) 7 <form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>8 9 10 11 12 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> 13 13 14 15 16 17 18 19 20 21 22 23 24 25 26 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:>})] 27 27 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 )] 46 47 47 48 48 [(#SAISIE{oui_non,abs_redac} 49 {label=<:csv2auteurs:abs_redac:>})] 49 50 50 51 51 [(#SAISIE{oui_non,abs_admin} 52 {label=<:csv2auteurs:abs_admin:>})] 52 53 53 54 54 [(#SAISIE{oui_non,abs_visiteur} 55 {label=<:csv2auteurs:abs_visiteur:>})] 55 56 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 )] 63 65 64 65 66 66 [(#SAISIE{input,nom_rubrique_archive} 67 {label=<:csv2auteurs:nom_rubrique_archive:>})] 68 67 69 [(#SAISIE{selecteur_rubrique,rubrique_parent_archive} 68 70 {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> 81 84 ] 82 85 </div> 83 86 84 87 <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; 101 95 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 }); 106 104 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 }); 125 109 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 }); 135 128 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 }); 150 153 </script> -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_importation.php
r96512 r96552 2 2 if (!defined('_ECRIRE_INC_VERSION')) return; 3 3 4 function formulaires_csv2auteurs_importation_charger_dist() {5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 21 21 return $valeurs; 22 22 } 23 23 24 function formulaires_csv2auteurs_importation_verifier_dist() {25 26 27 28 29 30 31 32 33 34 35 36 //Transfert réussi 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 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; 54 54 } 55 55 56 function formulaires_csv2auteurs_importation_traiter_dist() {57 58 59 60 61 62 63 64 65 66 67 68 69 70 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'))) { 71 71 $id_rubrique_parent_admin = _request('rubrique_parent'); 72 72 $id_rubrique_parent_admin = explode('|',$id_rubrique_parent_admin[0]); 73 73 $id_rubrique_parent_admin = $id_rubrique_parent_admin[1]; 74 74 } 75 else 76 77 78 79 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'))) { 80 80 $id_rubrique_parent_archive = _request('rubrique_parent_archive'); 81 81 $id_rubrique_parent_archive = explode('|',$id_rubrique_parent_archive[0]); … … 83 83 } 84 84 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 { 175 177 // on ne veut pas les auteurs du CSV ayant un login égal à celui d'un admin complet 176 178 if (in_array($data[$num_login], $Tadmin_complet)) { … … 178 180 continue; 179 181 } 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 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 } 199 201 // si pas de statut reconnu on passe en visiteur 200 202 else { 201 203 $tableau_csv_visiteurs[$data[$num_login]][$en_tete[$j]] = $en_tete[$j] == "statut" ? "6forum" : $data[$j]; 202 204 if ($en_tete[$j] == "login") 203 205 $retour['message_ok'] .= '<br />'._T('csv2auteurs:statut_absent', array('login_auteur' => $data[$j])); 204 206 } 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 != '') 328 331 $retour['message_ok'] .= $ret; 329 332 } 330 333 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_maj', array('nb_auteurs_maj' => count($tableau_maj_auteurs))); 331 332 333 334 335 336 337 338 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; 339 342 } 340 343 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_crees', array('nb_auteurs_crees' => count($tableau_nouveaux_auteurs))); 341 344 342 345 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 } 358 359 360 361 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') { 362 365 // 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'), 365 368 array('liens.id_auteur = auteurs.id_auteur', 'liens.objet="article"', 'auteurs.statut="5poubelle"'), 366 array('liens.id_auteur')); 369 array('liens.id_auteur') 370 ); 367 371 $Tnot_in = array(); 368 372 foreach ($not_in as $index => $Tid_auteur) 369 373 $Tnot_in[] = $Tid_auteur['id_auteur']; 370 374 $not_in = sql_in('id_auteur', $Tnot_in, 'NOT'); 371 375 372 376 // récupérer les auteurs à la poubelle sans articles 373 377 $Tabs_poubelle = sql_allfetsel('id_auteur', 'spip_auteurs',array('statut="5poubelle"', $not_in)); 374 378 $Ta_suppr = array(); 375 379 foreach ($Tabs_poubelle as $index => $Tid_auteur) 376 380 $Ta_suppr[] = $Tid_auteur['id_auteur']; 377 381 // effacer définitevement ces auteurs 378 382 $in = sql_in('id_auteur', $Ta_suppr); 379 383 sql_delete('spip_auteurs', $in); 380 384 if (count($Tabs_poubelle) > 0) 381 382 } 385 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_poubelle_effaces', array('nb_auteurs_poubelle_effaces' => count($Tabs_poubelle))); 386 } 383 387 384 388 // utilitaire pour récupérer un array simple avec les id_auteurs à partir du résultat du sql_allfetsel('id_auteur'...) 385 389 function recup_id($Tid_obj) { return $Tid_obj['id_auteur']; } 386 387 388 389 390 391 392 393 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) 394 398 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_visiteurs_effaces', array('nb_visiteurs_effaces' => count($Tid_visiteurs))); 395 396 397 398 399 400 401 402 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) 403 407 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_auteurs_effaces', array('nb_auteurs_effaces' => count($Tid_redacs))); 404 405 406 407 408 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) 409 413 $retour['message_ok'] .= '<br />'._T('csv2auteurs:nb_admins_restreints_effaces', array('nb_admins_restreints_effaces' => count($Tid_admins))); 410 411 412 414 } 415 416 return $retour; 413 417 } 414 418 … … 420 424 */ 421 425 function csv2auteurs_diff_absents($Tbdd, $Tcsv=array()) { 422 423 424 425 426 427 426 $Tid = array(); 427 $T = array_diff_key($Tbdd, $Tcsv); 428 foreach ($T as $val) 429 $Tid[] = $val['id_auteur']; 430 431 return $Tid; 428 432 } 429 433 … … 435 439 */ 436 440 function csv2auteurs_ajout_utilisateur($login, $Tauteur_csv, $Tnom_champs_bdd, $Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins, $id_auteur=0) { 437 438 439 440 441 $set = $Tzones = $Trubadmin = array(); 442 $retour = ''; 443 444 foreach ($Tauteur_csv as $champ => $valeur) { 441 445 // gestion des rubriques administrées par l'utilisateur 442 446 // la rubrique peut être désignée par son titre ou son id_rubrique 443 444 445 447 if ($champ == "ss_groupe") { 448 $T = explode('|',$valeur); 449 foreach ($T as $rub) { 446 450 if (is_numeric($rub) AND array_key_exists($rub, $tableau_bdd_rubriques_admins)) 447 451 $Trubadmin[] = $rub; 448 452 elseif ($id_r = array_search(strtolower($rub), $tableau_bdd_rubriques_admins)) 449 453 $Trubadmin[] = $id_r; 450 454 // à priori on ne passe ici que si la rubrique est sous forme numérique mais ne correspondant pas à un id_rubrique existant 451 455 elseif ($rub != '') 452 453 454 455 456 457 458 459 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) { 460 464 // pour la liste des zones on accepte soit le titre de la zone soit son id_zone 461 465 if (intval($zone) == $zone AND array_key_exists($zone, $tableau_bdd_zones_admins)) 462 466 $Tzones[] = $zone; 463 467 elseif ($id_z = array_search(trim(rtrim(strtolower($zone))), $tableau_bdd_zones_admins)) 464 468 $Tzones[] = $id_z; 465 469 elseif ($zone != '') 466 467 468 469 470 471 472 473 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)) { 474 478 if ($champ == 'pass' AND $valeur == '') { 475 479 if (!$id_auteur) { … … 477 481 } 478 482 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) { 488 491 $set['statut'] = '1comite'; 489 492 $retour .= '<br />'._T('csv2auteurs:admin_sans_rub', array('login_auteur' => $login)); 490 493 } 491 494 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 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; 510 513 } 511 514 … … 522 525 */ 523 526 function csv2auteurs_supprimer_auteurs($Tid, $statut,$traitement="supprimer_articles",$id_rubrique_archive=1) { 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 } 563 564 565 566 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 } 569 572 } 570 573 -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_separateur.html
r81108 r96552 5 5 6 6 [(#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> 20 21 ] 21 22 </div> 22 -
_plugins_/csv2auteurs/trunk/formulaires/csv2auteurs_separateur.php
r81108 r96552 2 2 if (!defined('_ECRIRE_INC_VERSION')) return; 3 3 4 function formulaires_csv2auteurs_separateur_charger_dist() {5 6 7 8 return $valeurs;4 function formulaires_csv2auteurs_separateur_charger_dist() { 5 $valeurs = array( 6 "separateur" => lire_config("csv2auteurs_separateur"), 7 ); 8 return $valeurs; 9 9 } 10 10 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; 11 function formulaires_csv2auteurs_separateur_verifier_dist() { 12 $erreurs = array(); 13 //champs obligatoire 14 if (!_request(separateur)) $erreurs['separateur'] = _T('csv2auteurs:obligatoire'); 15 return $erreurs; 17 16 } 18 17 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"; 18 function 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"; 26 24 27 25 return $retour; 28 26 } 29 27 ?> -
_plugins_/csv2auteurs/trunk/lang/csv2auteurs_fr.php
r96512 r96552 2 2 $GLOBALS[$GLOBALS['idx_lang']] = array( 3 3 // A 4 5 6 7 8 9 10 11 12 13 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 15 15 // B 16 16 'bravo' => 'Bravo !!', 17 17 18 18 // C 19 20 21 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:', 22 22 'csv2auteurs_titre' => 'csv2auteurs', 23 24 25 26 27 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', 28 28 29 29 // D 30 30 'delimiteur'=>'Choisissez le type de délimiteur que vous désirer pour créer votre fichier csv', 31 31 32 32 // E 33 34 35 36 37 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)', 38 38 39 39 // F 40 41 42 40 'fichier_uploader' => 'Fichier à téléverser', 41 'format_titres_rub_zone' => 'Titres complets', 42 'format_id_rub_zone' => 'Identifiants numériques', 43 43 44 44 // I 45 46 47 48 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', 49 49 50 50 // M 51 52 53 54 55 56 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', 57 57 58 58 // N 59 60 61 62 63 64 65 66 67 68 69 70 71 72 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', 73 73 74 // O 75 74 // O 75 'obligatoire' => 'Ce champs est obligatoire !', 76 76 77 77 // P 78 79 80 81 82 83 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.', 84 84 85 85 // R 86 87 88 89 90 91 92 93 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.', 94 94 95 95 // S 96 97 98 99 100 101 102 103 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 105 105 // T 106 107 108 109 110 111 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', 112 112 113 113 // V 114 115 116 117 118 119 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.', 120 120 ); 121 121 ?> -
_plugins_/csv2auteurs/trunk/paquet.xml
r96530 r96552 2 2 prefix="csv2auteurs" 3 3 categorie="outil" 4 version="1.1. 4"4 version="1.1.5" 5 5 etat="test" 6 6 compatibilite="[3.0.0;3.1.*]" … … 16 16 <licence>GNU/GPL</licence> 17 17 18 18 <necessite nom="saisies" compatibilite="[2.0.3;]" /> 19 19 20 <pipeline nom="header_prive" inclure="csv2auteurs_pipelines.php" /> 21 20 <pipeline nom="header_prive" inclure="csv2auteurs_pipelines.php" /> 22 21 23 22 <menu nom="csv2auteurs" titre="csv2auteurs:csv2auteurs_titre" parent="menu_administration" icone="images/csv2auteurs-16.png" /> 24 23 25 26 27 24 </paquet> -
_plugins_/csv2auteurs/trunk/prive/squelettes/contenu/csv2auteurs.html
r96477 r96552 2 2 3 3 [(#SESSION{webmestre}|=={oui}|oui) 4 5 6 4 <div id="separteur" class="ajax"> 5 #FORMULAIRE_CSV2AUTEURS_SEPARATEUR 6 </div> 7 7 8 9 <div id="choix_manip" class="formulaire_spip"> 8 <div id="choix_manip" class="formulaire_spip"> 10 9 <h3 class="legend"><:csv2auteurs:choix_manip:></h3> 11 10 <ul> … … 15 14 </div> 16 15 17 18 19 16 <div id="exporter" class="aaa"> 17 #FORMULAIRE_CSV2AUTEURS_EXPORTATION 18 </div> 20 19 21 22 23 20 <div id="importer" class="ajax"> 21 #FORMULAIRE_CSV2AUTEURS_IMPORTATION 22 </div> 24 23 ] 25 24 [(#SESSION{webmestre}|=={oui}|non) … … 31 30 32 31 <script type="text/javascript" charset="utf-8"> 33 32 jQuery(document).ready(function(){ 34 33 export_import(); 35 34 jQuery("input[type=radio][name=choix]").on("change", export_import); 36 37 35 }); 36 function export_import() { 38 37 if (jQuery('input[value=importer]').attr('checked')){ 39 38 jQuery("#importer").show();
Note: See TracChangeset
for help on using the changeset viewer.