Advertisement
Guest User

Untitled

a guest
Sep 12th, 2011
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 46.50 KB | None | 0 0
  1. <?php
  2. /* csv2spip est un plugin pour créer/modifier les visiteurs, rédacteurs et administrateurs restreints d'un SPIP à partir de fichiers CSV
  3. *                       VERSION : 3.1 => plugin pour spip 2.*
  4. *
  5. * Auteur : cy_altern
  6. *  
  7. * Ce programme est un logiciel libre distribue sous licence GNU/GPL.
  8. *  
  9. **/
  10. if (!defined("_ECRIRE_INC_VERSION")) return;
  11.  
  12. define('_LOGO_CSV2SPIP', _DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif");
  13.  
  14. include_spip('auth/sha256.inc');
  15. include_spip('inc/csv2spip_import');
  16.  
  17. // a partir de SPIP 2.1 il faut crypter les pass en sha256 a l place du md5 des version précedentes
  18. // commit de creation de la version 2.1: 14864 cf
  19. // http://core.spip.org/projects/spip/repository/revisions/14864
  20.  
  21. function csv2spip_crypt_pass($input) {         
  22.     global $spip_version_code;
  23.     if ($spip_version_code < 14864)
  24.         return md5($input);
  25.     else return sha256($input);
  26. }
  27.  
  28.  
  29. function exec_csv2spip() {
  30.     global $spip_version_code;
  31.  
  32. // on assure la variable au cas oé...
  33.     $plugin_accesgroupes = 0;
  34.  
  35.     include_spip('inc/autoriser');
  36.     if(!autoriser('webmestre')) {
  37.       include_spip('inc/minipres');
  38.       echo minipres();
  39.     } else {
  40.    
  41.     $commencer_page = charger_fonction('commencer_page', 'inc');
  42.         echo $commencer_page(_T('csvspip:titre_page'));
  43.     echo "\r\n<style type=\"text/css\">              
  44.         \r\n.Cerreur { background-color: #f33; display: block; padding: 10px; }
  45.         \r\n.Cok { width: 47%; background-color: #ddd; display: block; padding: 10px; }
  46.        \r\n.Tpetit { font-size: 75%; }
  47.        \r\n.ss_cadre { background-color: #eee; margin: 5px; padding: 5px; }
  48.        \r\n</style>";
  49.          
  50.     echo gros_titre(_T('csvspip:titre_page'), '',false);
  51.     echo debut_grand_cadre(true);
  52.  
  53.     echo debut_gauche('',true);
  54.     echo debut_boite_info(true);
  55.     echo "<strong>"._T('csvspip:titre_info')."</strong><br /><br />";
  56.     echo "\r\n"._T('csvspip:help_info');
  57.     $version_script = lire_meta('csv2spip_version');
  58.     echo "<br /><br /><strong>"._T('csvspip:version')."</strong>".$version_script;
  59.     if ($_FILES['userfile']['name'] != '') {  
  60.         echo "<br /><br /><a href=\"".$PHP_SELF."?exec=csv2spip\"><img src=\"".find_in_path('images/cal-today.gif')."\"> "._T('csvspip:retour_saisie')."</a>";
  61.     }                
  62.     echo fin_boite_info(true);
  63.     echo debut_droite('',true);
  64.                  
  65.     if (empty($_FILES['userfile']['name']))
  66.         csv2spip_formulaire();
  67.     elseif ($_FILES['userfile']['error'] != 0) {
  68.         echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape1'));
  69.             echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape1.1_debut').$_FILES['userfile']['tmp_name']._T('csvspip:err_etape1.1_fin').$_FILES['userfile']['error']."</span>";
  70.         echo fin_cadre_couleur(true);
  71.     } else {
  72.     // Etape 1 : analyser le fichier
  73.  
  74.         echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape1'));
  75.         echo "<br />"._T('csvspip:ok_etape1'). $_FILES['userfile']['name']."<br />";
  76.         echo fin_cadre_couleur(true);
  77.         $f = $_FILES['userfile']['tmp_name'];
  78.         $res = csv2spip_analyse(csv2spip_normalise($f));
  79.  
  80.         // Etape 2 : transfert des données vers une table SQL temporaire
  81.  
  82.         if (is_string($res))
  83.             echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape2')), "<br /><span class=\"Cerreur\">", $res, "</span>", fin_cadre_couleur(true);
  84.         else {
  85.             $spip_tmp_csv2spip = array(
  86.                 "id"          => "INT(11) NOT NULL",
  87.                 "id_spip"     => "INT(11) NOT NULL",
  88.                 "pseudo_spip" => "TEXT NOT NULL",
  89.                 "groupe"      => "TEXT NOT NULL",
  90.                 "ss_groupe"   => "TEXT NOT NULL",
  91.                 "prenom"      => "TEXT NOT NULL",
  92.  
  93.                 // champs homonymes a la table auteur
  94.                 // a terme, prendre la declaration de celle-ci
  95.                 "nom"         => "TEXT NOT NULL",
  96.                 "pass"        => "TEXT NOT NULL",
  97.                 "email"       => "TEXT NOT NULL",
  98.                 "bio"         => "TEXT NOT NULL",
  99.                          );
  100.  
  101.             $spip_tmp_csv2spip_key = array(
  102.                          "PRIMARY KEY"  => "id"
  103.                          );
  104.             $create = sql_create('spip_tmp_csv2spip', $spip_tmp_csv2spip, $spip_tmp_csv2spip_key, true, true);
  105.              
  106.             echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape2')), "<br />", _T('info_auteurs_nombre'), ' ', count($res) , fin_cadre_couleur(true);
  107.             if (!$create) {echo _T('csvspip:err_etape2.2');exit;}
  108.  
  109.             foreach($res as $insert)
  110.               // ignorer les lignes vides rencontrees
  111.               if (is_array($insert))
  112.                 sql_insertq('spip_tmp_csv2spip', $insert);
  113.  
  114.     // Passer aux etapes suivantes
  115.             csv2spip_etapes();
  116.  
  117.     // Fin: suppresion de la table temporaire
  118.             sql_drop_table('spip_tmp_csv2spip');
  119.         }
  120.     }
  121.  
  122.     echo fin_grand_cadre(true),fin_page();
  123.     }
  124. }
  125.  
  126. // Formulaire de saisie du fichier CSV et des options de config    
  127. function csv2spip_formulaire()
  128. {
  129.       echo "<script language=\"JavaScript\"> ";
  130.       echo "     function aff_masq(id_elem, vis) { ";
  131.       echo "        vis == 0 ? s_vis = 'none' : s_vis = 'block'; ";
  132.       echo "        document.getElementById(id_elem).style.display = s_vis; ";
  133.       echo "        this.checked = 'checked'; ";
  134.       echo "    }";
  135.       echo "</script>";
  136.  
  137.           // debut_cadre_formulaire();
  138.       echo "\r\n<form name=\"csv2spip\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."?exec=csv2spip\" method=\"post\" onsubmit=\"return (verifSaisie());\">";
  139.             echo debut_cadre_couleur("cal-today.gif", true, "", _T('csvspip:titre_choix_fichier'));
  140.             echo "<strong>"._T('csvspip:choix_fichier')."</strong><input name=\"userfile\" type=\"file\">";
  141.                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_redac')."</strong><input type=\"text\" name=\"groupe_redacs\" value=\"REDACTEURS\">";
  142.                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_admin')."</strong><input type=\"text\" name=\"groupe_admins\" value=\"ADMINS\">";
  143.                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_visit')."</strong><input type=\"text\" name=\"groupe_visits\" value=\"VISITEURS\">";
  144.             echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_nom_groupe_admin')."</span>";    
  145.                 echo fin_cadre_couleur(true);
  146.              
  147.                 echo debut_cadre_couleur("mot-cle-24.gif", true, "", _T('csvspip:options_maj'));
  148.                 echo "<strong>"._T('csvspip:maj_utils')."</strong>";
  149.             echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_gene\" value=\"1\"  checked=\"checked\" onClick=\"aff_masq('maj_avance', 1);\">";
  150.             echo "<input type=\"radio\" name=\"maj_gene\" value=\"0\" onClick=\"aff_masq('maj_avance', 0);\">"._T('csvspip:non');
  151.             echo "<div id=\"maj_avance\" class=\"ss_cadre\">";
  152.             echo "<br /><strong>"._T('csvspip:maj_mdp')."</strong>";
  153.             echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_mdp\" value=\"1\"  checked=\"checked\">";
  154.             echo "<input type=\"radio\" name=\"maj_mdp\" value=\"0\">"._T('csvspip:non');
  155.            
  156.             echo "<br /><br /><img src=\"".find_in_path('images/admin-12.gif')."\" alt=\"admins uniquement\"> <strong>"._T('csvspip:maj_rub_adm')."</strong>";
  157.             echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"1\" checked=\"checked\">"._T('csvspip:oui');  
  158.             echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"0\">"._T('csvspip:non');
  159.                 echo "<br /><span style=\"font-size: 10px;\">"._T('csvspip:help_maj_rub_adm')."</span><br>";
  160.                 echo "</div>";               
  161.                 echo fin_cadre_couleur(true);
  162.              
  163.                 echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/supprimer_utilisateurs-24.gif", true, "", _T('csvspip:suppr_absents'));
  164.             echo "<strong>"._T('csvspip:suppr_utilis')."</strong><ul style=\"padding: 0px; margin: 0px 0px 0px 30px;\">";
  165.                 echo "<li style=\"list-style-image: url('".find_in_path('images/redac-12.gif')."');\">"._T('csvspip:suppr_redac')."";
  166.                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_redac\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
  167.                 echo "<input type=\"radio\" name=\"eff_redac\" value=\"0\" checked=\"checked\" onClick=\"if (document.csv2spip.eff_admin[1].checked == true) { aff_masq('archi', 0) };\">"._T('csvspip:non');
  168.                 echo "</li>";
  169.                 echo "<li style=\"list-style-image: url('".find_in_path('images/admin-12.gif')."');\">"._T('csvspip:suppr_admin');
  170.                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_admin\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
  171.                 echo "<input type=\"radio\" name=\"eff_admin\" value=\"0\" checked=\"checked\" onClick=\"if (document.csv2spip.eff_redac[1].checked == true) { aff_masq('archi', 0) };\">"._T('csvspip:non');
  172.                 echo "</li>";
  173.                 echo "<li style=\"list-style-image: url('".find_in_path('images/visit-12.gif')."');\">"._T('csvspip:suppr_visit')."";
  174.                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_visit\" value=\"1\" >";
  175.                 echo "<input type=\"radio\" name=\"eff_visit\" value=\"0\" checked=\"checked\" >"._T('csvspip:non');
  176.                 echo "</li>";                
  177.             echo "</ul><span style=\"font-size: 10px;\">"._T('csvspip:help_suppr_redac')."</span><br>";
  178.             echo "<div style=\"display: none\" id=\"archi\" class=\"ss_cadre\"><br /><strong>"._T('csvspip:suprr_articles')."</strong>";
  179.             echo _T('csvspip:oui')."<input type=\"radio\" name=\"supprimer_articles\" value=\"1\" onClick=\"aff_masq('transfert', 0);\">";  
  180.             echo "<input type=\"radio\" name=\"supprimer_articles\" value=\"0\" checked=\"checked\" onClick=\"aff_masq('transfert', 1);\">"._T('csvspip:non');
  181.             echo "<div id=\"transfert\" class=\"ss_cadre\"><br><strong>"._T('csvspip:transfert_archive')."</strong>";
  182.             echo "<input type=\"radio\" name=\"archivage\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_transfert', 1);\">"._T('csvspip:oui');  
  183.             echo "<input type=\"radio\" name=\"archivage\" value=\"0\" onClick=\"aff_masq('rub_transfert', 0);\">"._T('csvspip:non');
  184.             echo "<div id=\"rub_transfert\" class=\"ss_cadre\"><br>";
  185.             $sql9 = sql_query("SELECT COUNT(*) AS nb_rubriques FROM spip_rubriques");
  186.             $data9 = sql_fetch($sql9);
  187.             $nb_rubriques = $data9['nb_rubriques'];
  188.             $annee = date("Y");
  189.             echo "<strong>"._T('csvspip:nom_rubrique_archives')."</strong>";
  190.             echo "<input type=\"text\" name=\"rub_archivage\" value=\"Archives annee ".($annee - 1).'-'.$annee."\" style=\"width: 200px;\">";
  191.             echo "";
  192.             if ($nb_rubriques > 0) {       
  193.                 echo"<br><br><strong>"._T('csvspip:choix_parent_archive')."</strong>";
  194.                 $sql10 = sql_query("SELECT id_rubrique, titre, id_secteur FROM spip_rubriques ORDER BY titre");
  195.                 echo "<select name=\"rub_parent_archivage\">";
  196.                 echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
  197.                    
  198.                 while ($data10 = sql_fetch($sql10)) {
  199.                     echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
  200.                 }                                      
  201.                 echo "</select><br>";
  202.             }
  203.             else {
  204.                 echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
  205.             }      
  206.             echo "</div></div>";
  207.             echo "<br><br><strong>"._T('csvspip:traitement_supprimes')."</strong><br>";
  208.             echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"1\">"._T('csvspip:auteurs_poubelle')."  <br>";
  209.             echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"0\" checked=\"checked\">"._T('csvspip:attribuer_articles');
  210.             echo "<input type=\"text\" name=\"nom_auteur_archives\" value=\"archives".($annee - 1)."-".$annee."\">"._T('csvspip:passe_egale_login');
  211.             echo "</div>";
  212.             echo fin_cadre_couleur(true);
  213.            
  214.             echo debut_cadre_couleur("rubrique-24.gif", true, "", _T('csvspip:creation_rubriques'));
  215.             //           echo "<h3>"._T('csvspip:creation_rubriques')."</h3>";
  216.             echo "<strong>"._T('csvspip:rubrique_ss_groupes')."</strong>";
  217.             echo _T('csvspip:oui')."<input type=\"radio\" name=\"rub_prof\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_adm', 1);\">";  
  218.             echo "<input type=\"radio\" name=\"rub_prof\" value=\"0\" onClick=\"aff_masq('rub_adm', 0);\">"._T('csvspip:non');
  219.             echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:profs_admins')."</span>";
  220.             echo "<br /><div id=\"rub_adm\" class=\"ss_cadre\">";
  221.             if ($nb_rubriques > 0) {       
  222.                 echo "<br /><strong>"._T('csvspip:choix_parent_rubriques')."</strong>";
  223.                 echo "<select name=\"rub_parent\">";
  224.                 echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
  225.                 $sql10 = sql_query("SELECT id_rubrique, titre, id_secteur FROM spip_rubriques ORDER BY titre");
  226.                 while ($data10 = sql_fetch($sql10)) {
  227.                     echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
  228.                 }  
  229.                 echo "</select>";
  230.             }
  231.             else {  
  232.                 echo "<br>"._T('csvspip:pas_de_rubriques');
  233.             }      
  234.             echo "<br /><br /><strong>"._T('csvspip:article_rubrique')."</strong>";
  235.             echo _T('csvspip:oui')."<input type=\"radio\" name=\"art_rub\" value=\"1\">";  
  236.             echo "<input type=\"radio\" name=\"art_rub\" value=\"0\" checked=\"checked\">"._T('csvspip:non');
  237.             echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_articles')."</span>";
  238.             echo "<br /></div>";
  239.             echo "<br /><div id=\"rub_adm_defaut\">";
  240.             echo "<strong>"._T('csvspip:choix_rub_admin_defaut')."</strong>";
  241.             echo "<input type=\"text\" name=\"rub_admin_defaut\" value=\""._T('csvspip:nom_rub_admin_defaut')."\" style=\"width: 200px;\">";
  242.             echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_rub_admin_defaut')."</span>";
  243.             if ($nb_rubriques > 0) {       
  244.                 echo "<br/><br/><strong>"._T('csvspip:choix_parent_rub_admin_defaut')."</strong>";
  245.                 echo "<select name=\"rub_parent_admin_defaut\">";
  246.                 echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
  247.                 $sql108 = sql_query("SELECT id_rubrique, titre, id_secteur FROM spip_rubriques ORDER BY titre");
  248.                 while ($data108 = sql_fetch($sql108)) {
  249.                     echo "<option value=\"".$data108['id_rubrique'].",".$data108['id_secteur']."\">".$data108['titre']."</option>";
  250.                 }  
  251.                 echo "</select><br />";
  252.             }
  253.             else {  
  254.                 echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
  255.             }      
  256.             echo "</div>";
  257.             echo fin_cadre_couleur(true);
  258.            
  259.             echo "<input type=\"submit\" value=\""._T('csvspip:lancer')."\" style=\"background-color: #FF8000; font-weight: bold; font-size: 14px;\">";
  260.             echo "</form><br><br />";
  261.            
  262.             echo debut_cadre_trait_couleur("fiche-perso-24.gif", true, "", _T('csvspip:titre_help'));
  263.           // inclure le fichier help de la langue
  264.             $code_langue = (!$GLOBALS['spip_lang'] ? lire_meta("langue_site") : $GLOBALS['spip_lang']);
  265.             if (!find_in_path(_DIR_PLUGIN_CSV2SPIP.'lang/csvspip_help_'.$code_langue.'.php')) $code_langue = 'fr';
  266.             include(_DIR_PLUGIN_CSV2SPIP.'lang/csvspip_help_'.$code_langue.'.php');
  267.             echo "<a href=\""._DIR_PLUGIN_CSV2SPIP."tests_csv2spip/csv2spip_modele.csv\">csv2spip_modele.csv</a>";
  268.             echo fin_cadre_trait_couleur(true);
  269.            
  270. }
  271.          
  272.  
  273. // TRAITEMENT DES DONNEES ENVOYEES PAR LE FORMULAIRE DE SAISIE
  274.  
  275. function csv2spip_etapes()
  276. {
  277.    
  278.     $groupe_admins = strtolower($_POST["groupe_admins"]);
  279.     $groupe_visits = strtolower($_POST["groupe_visits"]);
  280.        
  281.     $Tauteurs_rubriques = 'spip_auteurs_rubriques';
  282.     $Tarticles =  'spip_articles';
  283.     $Tauteurs_articles = 'spip_auteurs_articles';
  284.     $Taccesgroupes_groupes = 'spip_accesgroupes_groupes';
  285.     $Taccesgroupes_auteurs = 'spip_accesgroupes_auteurs';
  286.        
  287.     $err_total = 0;
  288.        
  289.         // étape 4 : intégration des rédacteurs, des visiteurs et des administrateurs                           
  290.         // redacteurs
  291.         $Tres_nvx = array();
  292.         $Terr_nvx = array();
  293.         $Tres_maj = array();
  294.         $Terr_maj = array();
  295.         $Tres_eff = array();
  296.         $Terr_eff = array();
  297.         $Tres_poub = array();
  298.         $Terr_poub = array();
  299.         $TresR_ss_grpe = array();
  300.         $TerrR_ss_grpe = array();
  301.         $TerrR_eff_accesgroupes = array();
  302.        
  303.         // admins
  304.         $TresA_nvx = array();
  305.         $TerrA_nvx = array();
  306.         $TresA_maj = array();
  307.         $TerrA_maj = array();
  308.         $TresA_eff = array();
  309.         $TerrA_eff = array();
  310.         $TresA_ss_grpe = array();
  311.         $TerrA_ss_grpe = array();
  312.         $TerrA_eff_accesgroupes = array();
  313.         $TerrA_eff_rub_admins = array();
  314.        
  315.         // visiteurs
  316.         $TresV_nvx = array();
  317.         $TerrV_nvx = array();
  318.         $TresV_maj = array();
  319.         $TerrV_maj = array();
  320.         $TresV_eff = array();
  321.         $TerrV_eff = array();
  322.         $TresV_ss_grpe = array();
  323.         $TerrV_ss_grpe = array();
  324.         $TerrV_eff_accesgroupes = array();
  325.        
  326.         // communs
  327.         $Tres_maj_grpacces = array();
  328.         $Terr_maj_grpacces = array();
  329.         $Tres_maj_rub_admin = array();
  330.         $Terr_maj_rub_admin = array();
  331.        
  332.     include_spip('action/editer_auteur');
  333.         // LA boucle : gére 1 à 1 les utilisateurs de spip_tmp_csv2spip en fonction des options => TOUS !
  334.         $sql157 = sql_select('*', "spip_tmp_csv2spip");
  335.  
  336.     while ($data157 = sql_fetch($sql157)) {
  337.         $champs = $data157;
  338.  
  339.             $groupe = strtolower($data157['groupe']);
  340.             $ss_groupe = $data157['ss_groupe'];
  341.             $login = $data157['nom'];
  342.         unset($champs['id']);
  343.         unset($champs['id_spip']);
  344.         unset($champs['pseudo_spip']);
  345.         unset($champs['ss_groupe']);
  346.         unset($champs['groupe']);
  347.         unset($champs['prenom']);
  348.         $champs['pass'] = csv2spip_crypt_pass($data157['pass']);
  349.             $champs['login'] = $data157['nom'];
  350.         $champs['nom'] = $data157['pseudo_spip'] ?
  351.           ucwords($data157['pseudo_spip'])
  352.           : (strtoupper($data157['nom']).' '.ucfirst($data157['prenom']));
  353.         $champs['statut'] = ($groupe == $groupe_admins)  ?'0minirezo' : (($groupe != $groupe_visits) ?  '1comite' : '6forum');
  354.         $champs['alea_actuel'] = '';
  355.  
  356.         $id_spip = sql_getfetsel('id_auteur', 'spip_auteurs', "LOWER(login) = " . sql_quote(strtolower($login)));
  357.         // 4.1 : l'utilisateur n'est pas inscrit dans la base spip_auteurs
  358.         if (!$id_spip) {
  359.             $id_spip = insert_auteur('spip');
  360.             if ($id_spip) {
  361.                 auteurs_set($id_spip, $champs);
  362.                 instituer_auteur($id_spip, array("login"=>$champs['login'], "pass"=>$champs['pass']));
  363.               // insertion de l'id_spip dans la base tmp
  364.                 sql_updateq('spip_tmp_csv2spip', array('id_spip' => $id_spip), "id=" . $data157['id']);
  365.                     $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_nvx[] = $login: $TresV_nvx[] = $login) : $TresA_nvx[] = $login;
  366.               // ajouter dans la table acces restreints : spip_zones_auteurs
  367.                 sql_insertq('spip_zones_auteurs', array('id_zone' => $ss_groupe, 'id_auteur' => $id_spip));
  368.             } else {
  369.                     $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Terr_nvx[] = array('login' => $login, 'erreur' => mysql_error()) : $TerrV_nvx[] = array('login' => $login, 'erreur' => mysql_error()) ) :  $TerrA_nvx[] = array('login' => $login, 'erreur' => mysql_error());
  370.             }
  371.         } else {
  372.         // 4.2 : l'utilisateur est déja inscrit dans la base spip_auteurs
  373.             sql_updateq('spip_tmp_csv2spip', array('id_spip' => $id_spip), "id=" . $data157['id']);
  374.  
  375.           // faut il faire la maj des existants ?
  376.                 if ($_POST['maj_gene'] == 1) {
  377.                   // 4.2.1 faire la maj des infos perso si nécessaire
  378.                     if ($_POST['maj_mdp'] == 1) {
  379.                 sql_updateq('spip_auteurs', $champs, "id_auteur = $id_spip");
  380.                         if (mysql_error() == '') {
  381.                             $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_maj[] = $login : $TresV_maj[] = $login) : $TresA_maj[] = $login;
  382.                         }
  383.                         else {
  384.                             $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Terr_maj[] = array('login' => $login, 'erreur' => mysql_error()) : $TerrV_maj[] = array('login' => $login, 'erreur' => mysql_error())) : $TerrA_maj[] = array('login' => $login, 'erreur' => mysql_error());
  385.                         }
  386.                 }
  387.                    
  388.               // 4.2.3 suppression des droits sur les rubriques administrées si nécessaire
  389.                     if ($_POST['maj_rub_adm'] == 1 AND $statut == '0minirezo') {
  390.                         sql_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_spip");
  391.                         if (mysql_error() == '') {
  392.                             $Tres_maj_rub_admin[] = $login;
  393.                         }
  394.                         else {
  395.                             $Terr_maj_rub_admin[] = array('login' => $login, 'erreur' => mysql_error());
  396.                         }
  397.                     }
  398.                 }
  399.             }
  400.        
  401.         }  // fin du while traitant les comptes 1 à 1
  402.  
  403.     // Mettre a jour les fichiers .htpasswd et .htpasswd-admin
  404.     include_spip("inc/acces");
  405.     ecrire_acces();
  406.  
  407.     // 4.4 : gestion des suppressions
  408.     // VERSION 2.3 de effacer les absents
  409.         $ch_maj = 0;
  410.         $eff_absv = 0;
  411.         $eff_absr = 0;
  412.         $eff_absa = 0;
  413.         if ($_POST['eff_visit'] == 1) {
  414.     //                   $ch_maj = 1;
  415.             $eff_absv = 1;
  416.         }
  417.         if ($_POST['eff_redac'] == 1) {
  418.             $ch_maj = 1;
  419.             $eff_absr = 1;
  420.         }
  421.         if ($_POST['eff_admin'] == 1) {
  422.             $ch_maj = 1;
  423.             $eff_absa = 1;
  424.         }
  425.  
  426.     // paramétrage auteur et dossier d'archive
  427.         if ($ch_maj !== 0) {
  428.               // si auteurs supprimés (pas de poubelle), récupérer l'id du rédacteur affecté aux archives + si nécessaire, créer cet auteur (groupe = poubelle)
  429.             if ($_POST['auteurs_poubelle'] != 1) {
  430.                 $nom_auteur_archives = $_POST['nom_auteur_archives'];
  431.                 $sql615 = sql_query("SELECT id_auteur FROM spip_auteurs WHERE login = '$nom_auteur_archives' LIMIT 1");
  432.                 if (sql_count($sql615) > 0) {
  433.                     $data615 = sql_fetch($sql615);
  434.                     $id_auteur_archives = $data615['id_auteur'];
  435.                 }
  436.                 else {
  437.                     sql_query("INSERT INTO spip_auteurs (id_auteur, nom, login, pass, statut) VALUES ('', '$nom_auteur_archives', '$nom_auteur_archives', '$nom_auteur_archives', '5poubelle')");
  438.                     $id_auteur_archives = mysql_insert_id();
  439.                 }
  440.                 $nom_rub_archivesR = $nom_auteur_archives;
  441.                 $id_rub_parent_archivesA = $nom_auteur_archives;
  442.                 $id_rub_parent_archivesR = $id_auteur_archives;
  443.                 $nom_rub_archivesA = $nom_auteur_archives;
  444.                 $id_auteur_archivesA = $id_auteur_archives;
  445.                 $nom_auteur_archivesR = $nom_auteur_archives;
  446.                 $id_auteur_archivesR = $id_auteur_archives;
  447.                    
  448.             // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                    
  449.                 if ($_POST['supprimer_articles'] != 1 AND $_POST['archivage'] != 0) {
  450.                     $supprimer_articlesr = 0;
  451.                     $supprimer_articlesa = 0;
  452.                     $archivager =1;
  453.                     $archivagea = 1;
  454.                          
  455.                     $nom_rub_archives = $_POST['rub_archivage'];
  456.                 // $_POST['rub_parent_archivage'] de la forme : "id_rubrique,id_secteur"
  457.                     $Tids_parent_rub_archives = explode(',', $_POST['rub_parent_archivage']);
  458.                     $id_rub_parent_archives = $Tids_parent_rub_archives[0];
  459.                     $id_sect_parent_archives = $Tids_parent_rub_archives[1];
  460.                     $date_rub_archives = date("Y-m-j H:i:s");
  461.                     $sql613 = sql_query("SELECT id_rubrique, id_secteur FROM spip_rubriques WHERE titre = '$nom_rub_archives' AND id_parent = '$id_rub_parent_archives' LIMIT 1");
  462.                     if (sql_count($sql613) > 0) {
  463.                         $data613 = sql_fetch($sql613);
  464.                         $id_rub_archives = $data613['id_rubrique'];
  465.                     }
  466.                     else {
  467.                         sql_query("INSERT INTO spip_rubriques (id_rubrique, id_parent, titre, id_secteur, statut, date) VALUES ('', '$id_rub_parent_archives', '$nom_rub_archives', '$id_sect_parent_archives', 'publie', '$date_rub_archives')" );
  468.                         $id_rub_archives = mysql_insert_id();
  469.                     }
  470.                 }
  471.             }
  472.         }
  473.                                                
  474.       // 4.4.1 : traitement des visiteurs actuels de la base spip_auteurs => si effacer les absV = OK
  475.         if ($eff_absv == 1) {
  476.             $sql1471 = sql_query("SELECT COUNT(*) AS nb_redacsV FROM spip_auteurs WHERE statut = '6forum'");
  477.             $data1471 = sql_fetch($sql1471);
  478.             if ($data1471['nb_redacsV'] > 0) {
  479.               // pas de poubelle pour les visiteurs => suppression puisque pas d'articles
  480.                 $sql1591 = sql_query("SELECT id_auteur, login FROM spip_auteurs WHERE statut = '6forum'");
  481.                 while ($data1591 = sql_fetch($sql1591)) {
  482.                     $login_sp = strtolower($data1591['login']);
  483.                     $id_auteur_ec = $data1591['id_auteur'];
  484.                     if (!sql_countsel('spip_tmp_csv2spip',"LOWER(nom) = '$login_sp'")) {
  485.          // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
  486.                         sql_query("DELETE FROM spip_auteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '6forum' LIMIT 1");
  487.                         if (mysql_error() == 0) {
  488.                             $TresV_eff[] = $login;
  489.                         }
  490.                         else {
  491.                             $TerrV_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  492.                         }
  493.                     }
  494.                 }
  495.               // optimisation de la table après les effacements
  496.                 sql_query("OPTIMIZE TABLE spip_auteurs, $Taccesgroupes_auteurs");
  497.             }  
  498.         }
  499.        
  500.       // 4.4.2 : traitement des rédacteurs actuels de la base spip_auteurs => si effacer les absents redac = OK
  501.         if ($eff_absr == 1) {
  502.             $sql147 = sql_query("SELECT COUNT(*) AS nb_redacsR FROM spip_auteurs WHERE statut = '1comite'");
  503.             $data147 = sql_fetch($sql147);
  504.             if ($data147['nb_redacsR'] > 0) {
  505.               // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                      
  506.                 if ($supprimer_articlesr != 1 AND $archivager != 0) {
  507.                     $nom_rub_archivesR = $rub_archivager;
  508.                     $sql613 = sql_query("SELECT id_rubrique, id_secteur FROM spip_rubriques WHERE titre = '$nom_rub_archivesR' AND id_parent = '$id_rub_parent_archivesR' LIMIT 1");
  509.                     if (sql_count($sql613) > 0) {
  510.                         $data613 = sql_fetch($sql613);
  511.                         $id_rub_archivesR = $data613['id_rubrique'];
  512.                     }
  513.                     else {
  514.                         sql_query("INSERT INTO spip_rubriques (id_rubrique, id_parent, titre, id_secteur, statut, date) VALUES ('', '$id_rub_parent_archivesR', '$nom_rub_archivesR', '$id_sect_parent_archivesR', 'publie', '$date_rub_archivesR')" );
  515.                         $id_rub_archivesR = mysql_insert_id();
  516.                     }
  517.                 }
  518.                 $sql159 = sql_query("SELECT id_auteur, login FROM spip_auteurs WHERE statut = '1comite' AND bio != 'archive'");
  519.                 $cteur_articles_deplacesR = 0;
  520.                 $cteur_articles_supprimesR = 0;
  521.                 $cteur_articles_modif_auteurR = 0;
  522.                 while ($data159 = sql_fetch($sql159)) {
  523.                 $login_sp = strtolower($data159['login']);
  524.                     $id_auteur_ec = $data159['id_auteur'];
  525.                   // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
  526.                 if (sql_countsel('spip_tmp_csv2spip', "nom = '$login_sp'")) {
  527.                       // traitement éventuel des articles de l'auteur à supprimer
  528.                         $sql757 = sql_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  529.                         $data757 = sql_fetch($sql757);
  530.     //print '<br><br>id_auteur = '.$id_auteur_ec;
  531.     //print '<br>nb_articles_auteur = '.$data757['nb_articles_auteur'];
  532.     //print '<br>$supprimer_articlesr = '.$supprimer_articlesr;
  533.     //print '<br>$archivager = '.$archivager;
  534.                         if ($data757['nb_articles_auteur'] > 0) {
  535.                             if ($supprimer_articlesr != 1) {
  536.                                 if ($archivager != 0) {
  537.                                     $sql612 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = $id_auteur_ec");
  538.                                     if (sql_count($sql612) > 0) {
  539.     //print '<br>départ UPDATE';
  540.                                         while ($data612 = sql_fetch($sql612)) {
  541.                                             $id_article_ec = $data612['id_article'];
  542.                                             sql_updateq("$Tarticles", array("id_rubrique" => '$id_rub_archivesR', "id_secteur" => '$id_sect_parent_archivesR'), "id_article = '$id_article_ec' LIMIT 1");
  543.                                             $cteur_articles_deplacesR ++;
  544.                                         }
  545.                                     }
  546.                                     if ($auteurs_poubeller != 1) {
  547.                                         sql_updateq("$Tauteurs_articles", array("id_auteur" => '$id_auteur_archivesR'), "id_auteur = '$id_auteur_ec'");
  548.                                     }                                                          
  549.                                 }
  550.                             }
  551.                             else {
  552.                                 $sql756 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  553.     //print '<br>départ DELETE';
  554.                                 while ($data756 = sql_fetch($sql756)) {
  555.                                     $id_article_a_effac = $data756['id_article'];
  556.                                     sql_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
  557.                                     $cteur_articles_supprimesR ++;
  558.                                 }
  559.                                 sql_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  560.                             }
  561.                         }
  562.                       // traitement des auteurs à effacer                                             
  563.                         if ($auteurs_poubeller != 1) {
  564.                             sql_query("DELETE FROM spip_auteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '1comite' LIMIT 1");
  565.                             if (mysql_error() == 0) {
  566.                                 $TresR_eff[] = $login;
  567.                             }
  568.                             else {
  569.                                 $TerrR_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  570.                             }
  571.                         }
  572.                         else {
  573.                             sql_updateq("spip_auteurs", array("statut" => '5poubelle'), "id_auteur = '$id_auteur_ec' LIMIT 1");
  574.                             if (mysql_error() == 0) {
  575.                                 $TresR_poub[] = $id_auteur_ec;
  576.                             }
  577.                             else {
  578.                                 $TerrR_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  579.                             }
  580.                         }
  581.                     }
  582.                 }
  583.               // optimisation de la table aprés les effacements
  584.                 sql_query("OPTIMIZE TABLE spip_auteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
  585.             }      
  586.         }
  587.      // 4.4.3 : traitement des administrateurs restreints actuels de la base spip_auteurs => si effacer les absA = OK
  588.         if ($eff_absa == 1) {
  589.             $sql1473 = sql_query("SELECT COUNT(*) AS nb_redacsA FROM spip_auteurs
  590.                                      LEFT JOIN $Tauteurs_rubriques
  591.                                      ON $Tauteurs_rubriques.id_auteur = spip_auteurs.id_auteur
  592.                                      WHERE statut = '0minirezo'");
  593.     //echo '<br>mysql_error 1473 = '.mysql_error();
  594.             $data1473 = sql_fetch($sql1473);
  595.             if ($data1473['nb_redacsA'] > 0) {
  596.                 $sql1593 = sql_query("SELECT Tauteurs.id_auteur, Tauteurs.login FROM spip_auteurs AS Tauteurs, $Tauteurs_rubriques AS Tauteurs_rubriques WHERE statut = '0minirezo' AND Tauteurs.id_auteur = Tauteurs_rubriques.id_auteur");
  597.                 $cteur_articles_deplacesA = 0;
  598.                 $cteur_articles_supprimesA = 0;
  599.                 $cteur_articles_modif_auteurA = 0;
  600.                 while ($data1593 = sql_fetch($sql1593)) {
  601.                     $login_sp = strtolower($data1593['login']);
  602.                     $id_auteur_ec = $data1593['id_auteur'];
  603.                    
  604. // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
  605.                     if (!sql_countsel('spip_tmp_csv2spip', "nom = '$login_sp'")) {
  606.                       // traitement éventuel des articles de l'admin à supprimer
  607.                         $sql7573 = sql_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  608.                         $data7573 = sql_fetch($sql7573);
  609.                         if ($data7573['nb_articles_auteur'] > 0) {
  610.                             if ($supprimer_articlesa != 1) {
  611.                                 if ($archivagea != 0) {
  612.                                     $sql6123 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  613.                                         if (sql_count($sql6123) > 0) {
  614.                                             while ($data6123 = sql_fetch($sql6123)) {
  615.                                                 $id_article_ec = $data6123['id_article'];
  616.                                                 sql_updateq("$Tarticles", array("id_rubrique" => '$id_rub_archivesA', "id_secteur" => '$id_sect_parent_archivesA'), "id_article = '$id_article_ec' LIMIT 1");
  617.                                                 $cteur_articles_deplacesA ++;
  618.                                             }
  619.                                         }
  620.                                         if ($auteurs_poubellea != 1) {
  621.                                             sql_updateq("$Tauteurs_articles", array("id_auteur" => '$id_auteur_archivesA'), "id_auteur = '$id_auteur_ec'");
  622.                                         }                                                          
  623.                                     }
  624.                                 }
  625.                                 else {
  626.                                     $sql7563 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  627.                                     while ($data7563 = sql_fetch($sql7563)) {
  628.                                         $id_article_a_effac = $data7563['id_article'];
  629.                                         sql_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
  630.                                         $cteur_articles_supprimesA ++;
  631.                                     }
  632.                                     sql_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
  633.                                 }
  634.                             }
  635.                           // traitement des admins à effacer                                              
  636.                             if ($auteurs_poubellea != 1) {
  637.                                 sql_query("DELETE FROM spip_auteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '0minirezo' LIMIT 1");
  638.                                 if (mysql_error() == 0) {
  639.                                     $TresA_eff[] = $login;
  640.                                    
  641.                                   // virer l'administation de toutes les rubriques pour cet admin
  642.                                     sql_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_auteur_ec");
  643.                                     if (mysql_error() != '') {
  644.                                         $TerrA_eff_rub_admins[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  645.                                     }
  646.                                 }
  647.                                 else {
  648.                                     $TerrA_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  649.                                 }
  650.                             }
  651.                             else {
  652.                                 sql_updateq("spip_auteurs", array("statut" => '5poubelle'), "id_auteur = '$id_auteur_ec' LIMIT 1");
  653.                                 if (mysql_error() == 0) {
  654.                                     $TresA_poub[] = $id_auteur_ec;
  655.                                 }
  656.                                 else {
  657.                                     $TerrA_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
  658.                                 }
  659.                             }
  660.                         }
  661.                     }
  662.                   // optimisation de la table après les effacements
  663.                     sql_query("OPTIMIZE TABLE spip_auteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
  664.                 }
  665.             }   //   fin effacer les abs (4.4)  V 2.3
  666.        
  667.           // résultats étape 4
  668.             echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape4'));
  669.             echo "<br>"._T('csvspip:etape4.1')."<br>";
  670.             if (count($TerrV_nvx) > 0) {       
  671.                 echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
  672.                 foreach ($TerrV_nvx as $Ven) {
  673.                     echo _T('csvspip:utilisateur').$Ven['login']._T('csvspip: erreur').$Ven['erreur']."<br>";
  674.                 }
  675.                 echo "</span>";
  676.                 $err_total ++;
  677.             }
  678.             else {
  679.                 echo "<br>"._T('csvspip:creation').count($TresV_nvx)._T('csvspip:comptes_visit_ok')."<br>";                            
  680.             }
  681.             if (count($Terr_nvx) > 0) {    
  682.                 echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
  683.                 foreach ($Terr_nvx as $en) {
  684.                     echo _T('csvspip:utilisateur').$en['login']._T('csvspip:erreur').$en['erreur']."<br>";
  685.                 }                  
  686.                 echo "</span>";
  687.                 $err_total ++;
  688.             }
  689.             else {
  690.                 echo "<br>"._T('csvspip:creation').count($Tres_nvx)._T('csvspip:comptes_redac_ok')."<br>";                   
  691.             }
  692.        
  693.             if (count($TerrA_nvx) > 0) {       
  694.                 echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
  695.                 foreach ($TerrA_nvx as $Pen) {
  696.                     echo _T('csvspip:utilisateur').$Pen['login']._T('csvspip: erreur').$Pen['erreur']."<br>";
  697.                 }
  698.                 echo "</span>";
  699.                 $err_total ++;
  700.             }
  701.             else {
  702.                 echo "<br>"._T('csvspip:creation').count($TresA_nvx)._T('csvspip:comptes_admin_ok')."<br>";                            
  703.             }
  704.        
  705.           // 4.2 résultats maj des existants
  706.             if ($_POST['maj_gene'] == 1) {
  707.                 echo "<br>"._T('csvspip:etape4.2')."<br>";
  708.                 if ($_POST['maj_mdp'] == 1) {                  
  709.                     echo "<br>"._T('csvspip:etape4.2.1')."<br>";
  710.                     if (count($TerrV_maj) > 0) {
  711.                         echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
  712.                         foreach ($TerrV_maj as $Vem) {
  713.                             echo _T('csvspip:visit').$Vem['login']._T('csvspip: erreur').$Vem['erreur']."<br>";
  714.                         }      
  715.                         echo "</span>";
  716.                         $err_total ++;
  717.                     }
  718.                     else {
  719.                         echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_visit_ok')."<br>";
  720.                     }                  
  721.                     if (count($Terr_maj) > 0) {    
  722.                         echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
  723.                         foreach ($Terr_maj as $em) {
  724.                             echo _T('csvspip:redac').$em['login']._T('csvspip: erreur').$em['erreur']."<br>";
  725.                         }        
  726.                         echo "</span>";
  727.                         $err_total ++;
  728.                     }
  729.                     else {
  730.                         echo "<br>"._T('csvspip:ok_etape4.2.1').count($Tres_maj)._T('csvspip:comptes_redac_ok')."<br>";                        
  731.                     }
  732.                     if (count($TerrA_maj) > 0) {
  733.                         echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
  734.                         foreach ($TerrA_maj as $Pem) {
  735.                             echo _T('csvspip:admin').$Pem['login']._T('csvspip: erreur').$Pem['erreur']."<br>";
  736.                         }      
  737.                         echo "</span>";
  738.                         $err_total ++;
  739.                     }
  740.                     else {
  741.                         echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_admin_ok')."<br>";
  742.                     }                  
  743.                 }
  744.                 if ($_POST['maj_grpes_redac'] == 1 OR $_POST['maj_grpes_admin'] == 1 OR $_POST['maj_grpes_visit'] == 1) {
  745.                     echo "<br>"._T('csvspip:etape4.2.2')."<br>";
  746.                     if (count($Terr_maj_grpacces) > 0) {
  747.                         echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_grpacces');
  748.                         foreach ($Terr_maj_grpacces as $Peg) {
  749.                             echo _T('csvspip:utilisateur').$Peg['login']._T('csvspip: erreur').$Peg['erreur']."<br>";
  750.                         }      
  751.                         echo "</span>";
  752.                         $err_total ++;
  753.                     }
  754.                     else {
  755.                         echo "<br />"._T('csvspip:ok_maj_grpacces').count($Tres_maj_grpacces)._T('csvspip:utilisateurs')."<br>";
  756.                     }
  757.                 }
  758.                 if ($_POST['maj_rub_adm'] == 1) {
  759.                     echo "<br>"._T('csvspip:etape4.2.3')."<br>";
  760.                     if (count($Terr_maj_rub_admin) > 0) {
  761.                         echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_rub_adm');
  762.                         foreach ($Terr_maj_rub_admin as $Pera) {
  763.                             echo _T('csvspip:utilisateur').$Pera['login']._T('csvspip: erreur').$Pera['erreur']."<br>";
  764.                         }      
  765.                         echo "</span>";
  766.                         $err_total ++;
  767.                     }
  768.                     else {
  769.                         echo "<br />"._T('csvspip:ok_maj_rub_adm').count($Tres_maj_rub_admin)._T('csvspip:utilisateurs')."<br>";
  770.                     }
  771.                 }
  772.             }
  773.        
  774.           // 4.4 résultats effacer les absents
  775.             if ($eff_absv == 1 OR $eff_absr == 1 OR $eff_absa == 1) {
  776.                 echo "<br />"._T('csvspip:etape4.4')."<br>";
  777.             }
  778.          
  779.           // résultats effacer les visiteurs
  780.             if ($eff_absv == 1) {                  
  781.                 echo "<br />"._T('csvspip:etape4.4.1')."<br>";
  782.                 if (count($TerrV_eff) > 0 OR count($TerrV_poub) > 0) { 
  783.                     echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
  784.                     foreach ($TerrV_eff as $Vee) {
  785.                         echo _T('csvspip:visit').$Vee['login']._T('csvspip: erreur').$Vee['erreur'];
  786.                     }  
  787.                     $err_total ++;
  788.                 }
  789.                 else {
  790.                     echo "<br />"._T('csvspip:suppression_debut').count($TresV_eff)._T('csvspip:comptes_visit_ok')."<br>";
  791.                 }
  792.             }                  
  793.        
  794.           // résultats effacer les redacteurs
  795.             if ($eff_absr == 1) {
  796.                 echo "<br />"._T('csvspip:etape4.4.2')."<br>";
  797.                 if (count($TerrR_eff) > 0 OR count($TerrR_poub) >0) {
  798.                     echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
  799.                     foreach ($TerrR_eff as $ee) {
  800.                         echo '<br/>'._T('csvspip:redac').$ee['login']._T('csvspip: erreur').' '.$ee['erreur'];
  801.                     }
  802.                     echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
  803.                     foreach ($TerrR_poub as $ep) {
  804.                         echo '<br/>'._T('csvspip:redac').$ep['login']._T('csvspip: erreur').' '.$ep['erreur'];
  805.                     }
  806.                     $err_total ++;
  807.                 }
  808.                 else {
  809.                     echo "<br />"._T('csvspip:suppression_debut').count($TresR_eff)._T('csvspip:comptes_redac_ok')."<br>";
  810.                     echo "<br />"._T('csvspip:poubelle_debut').count($TresR_poub)._T('csvspip:comptes_redac_ok')."<br>";
  811.                 }
  812.                 if ($archivager != 0) {
  813.                     echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesR._T('csvspip:archivage_fin').$nom_rub_archivesR;
  814.                 }  
  815.                 if ($supprimer_articlesr == 1) {
  816.                     echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesR._T('csvspip:suppression_fin')."<br>";
  817.                 }
  818.             }                  
  819.        
  820.           // résultats effacer les admins
  821.             if ($eff_absa == 1) {          
  822.                 echo "<br />"._T('csvspip:etape4.4.3')."<br>";
  823.                 if (count($TerrA_eff) > 0 OR count($TerrA_poub) >0) {
  824.                     echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
  825.                     foreach ($TerrA_eff as $Aee) {
  826.                         echo "<br />"._T('csvspip:admin').$Aee['login']._T('csvspip: erreur').' '.$Aee['erreur'];
  827.                     }
  828.                     echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
  829.                     foreach ($TerrA_poub as $Aep) {
  830.                         echo "<br />"._T('csvspip:admin').$Aep['login']._T('csvspip: erreur').' '.$Aep['erreur'];
  831.                     }
  832.                     $err_total ++;
  833.                 }
  834.                 else {
  835.                     echo "<br />"._T('csvspip:suppression_debut').count($TresA_eff)._T('csvspip:comptes_admin_ok')."<br>";
  836.                     echo "<br />"._T('csvspip:poubelle_debut').count($TresA_poub)._T('csvspip:comptes_admin_ok')."<br>";
  837.                 }
  838.                 if ($archivagea != 0) {
  839.                     echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesA._T('csvspip:archivage_fin').$nom_rub_archivesA;
  840.                 }  
  841.                 if ($supprimer_articlesa == 1) {
  842.                     echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesA._T('csvspip:suppression_fin')."<br>";
  843.                 }
  844.                
  845.                 if (count ($TerrA_eff_rub_admins) > 0) {
  846.                     echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
  847.                     foreach ($TerrA_eff_rub_admins as $Aer) {
  848.                         echo _T('csvspip:err_eff_adm_rub').$Aer['login']._T('csvspip: erreur').$Aer['erreur'];
  849.                     }
  850.                     echo "</span>";
  851.                     $err_total ++;                         
  852.                 }
  853.             }   // fin effacer les absents V 2.3
  854.             echo fin_cadre_couleur(true);          
  855.        
  856.         // étape 5 : si nécessaire intégration des admins comme administrateurs restreints de la rubrique de leur sous-groupe
  857.         //$id_rub_admin_defaut
  858.             if ($groupe_admins != '-1') {
  859.                 $Terr_adm_rub = array();
  860.                 $Tres_adm_rub = array();
  861.             $sql54 = sql_select("ss_groupe, nom, id_spip", "spip_tmp_csv2spip", "LOWER(groupe) = '$groupe_admins'");
  862.             while ($data54 = sql_fetch($sql54)) {
  863.                 $login_adm_ec = strtolower($data54['nom']);
  864.                 $id_adm_ec = $data54['id_spip'];
  865.                 if ($_POST['rub_prof'] == 1) {
  866.                         if ($data54['ss_groupe'] != '') {
  867.                             $ss_grpe_ec = $data54['ss_groupe'];
  868.                             $sql55 = sql_query("SELECT id_rubrique FROM spip_rubriques WHERE titre = '$ss_grpe_ec' LIMIT 1");
  869.                             $data55 = sql_fetch($sql55);
  870.                             $id_rubrique_adm_ec = $data55['id_rubrique'];                                          
  871.                         }
  872.                         else {
  873.                             $id_rubrique_adm_ec = $id_rub_admin_defaut;
  874.                             $ss_grpe_ec = '';
  875.                         }
  876.                     }
  877.                     $sql57 = sql_query("SELECT COUNT(*) AS existe_adm_rub FROM $Tauteurs_rubriques WHERE id_auteur = '$id_adm_ec' AND id_rubrique = '$id_rubrique_adm_ec' LIMIT 1");
  878.                     $data57 = sql_fetch($sql57);
  879.                     if ($data57['existe_adm_rub'] == 0) {
  880.         //print '<br>rubrique $ss_grpe_ec = '.$ss_grpe_ec.' $id_rubrique_adm_ec = '.$id_rubrique_adm_ec.'$id_adm_ec = '.$id_adm_ec;                              
  881.                         sql_query("INSERT INTO $Tauteurs_rubriques (id_auteur, id_rubrique) VALUES ('$id_adm_ec', '$id_rubrique_adm_ec')");
  882.                         if (mysql_error() != '') {
  883.                             $Terr_adm_rub[] = array('login' => $login_adm_ec, 'rubrique' => $ss_grpe_ec, 'erreur' => mysql_error());
  884.                         }
  885.                         else {
  886.                             $Tres_adm_rub[] = $login_adm_ec;
  887.                         }
  888.                     }
  889.                 }
  890.                 echo debut_cadre_couleur(_LOGO_CSV2SPIP, true, "", _T('csvspip:titre_etape5'));
  891.         //                       echo "<h2>"._T('csvspip:titre_etape5')."</h2>";
  892.                 if (count($Terr_adm_rub) > 0) {
  893.                     echo "<span class=\"Cerreur\">"._T('csvspip:err_admin_rubrique');
  894.                     foreach ($Terr_adm_rub as $ear) {
  895.                         echo _T('csvspip:admin').$ear['login']._T('csvspip:rubrique_').$ear['rubrique']._T('csvspip: erreur').$ear['erreur']."<br>";
  896.                     }  
  897.                     echo "</span>";
  898.                     $err_total ++;
  899.                 }
  900.                 else {
  901.                     echo 'Attribution d\'une sous-rubrique pour '.count($Tres_adm_rub).' administrateurs restreints = OK<br>';
  902.                 }
  903.                 echo fin_cadre_couleur(true);
  904.             }
  905.            
  906. }
  907.  
  908. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement