source: spip-zone/_plugins_/csv2spip/2_0/exec/csv2spip.php @ 31356

Last change on this file since 31356 was 31356, checked in by cy_altern@…, 10 years ago

initialisation de la version pour SPIP 2.*: rien de fonctionnel pour l'instant!!!

File size: 74.0 KB
Line 
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**/
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12include_spip('inc/headers');
13
14//include_spip('base/db_mysql');
15//include_spip('base/abstract_sql');
16
17
18function csv2spip_crypt_md5($input) {                   
19                                        $hash = md5($input);
20                                        $md5_pass = $hash;             
21          return ($md5_pass);
22}
23
24
25function exec_csv2spip() {
26/*                               include_spip("inc/presentation");
27                                                 
28                        // définir comme constante le chemin du répertoire du plugin
29         $p = explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
30         $pp = explode("/", end($p));
31         define('_DIR_PLUGIN_CSV2SPIP',(_DIR_PLUGINS.$pp[0]));
32
33      // vérifier les droits
34         global $connect_statut;
35         global $connect_toutes_rubriques;
36         if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {   
37                  debut_page(_T('titre'), "csv2spip", "plugin");
38                  echo _T('avis_non_acces_page');
39                  fin_page();
40                  exit;
41         }
42                                 
43                        // le plugin acces_groupes est il installé/activé ?
44                                         $plugin_accesgroupes = 0;
45                // version compatible >= 1.9.2... nettement plus sure : on teste la présence de la constante chemin_du_plugin
46                                // et non pas le nom du dossier de plugin stocké dans spip_meta
47                                         if (defined('_DIR_PLUGIN_ACCESGROUPES')) {                                                     
48                                                         $plugin_accesgroupes = 1;
49                                         }                     
50
51                        // début affichage
52         debut_page(_T('csvspip:csv2spip'));
53         
54         
55         
56*/
57    $commencer_page = charger_fonction('commencer_page', 'inc');
58          echo $commencer_page(_T('csvspip:titre_page'));
59
60    include_spip('inc/autoriser');
61    if(!autoriser('webmestre')) {
62        include_spip('inc/minipres');
63        echo minipres();
64        die(_T('csvspip:reserve_webmestres'));
65    }
66   
67    include_spip('base/abstract_sql');
68
69     echo "\r\n<style type=\"text/css\">                                 
70                        \r\n.Cerreur {
71                                        background-color: #f33;
72                                        display: block;
73                                        padding: 10px;
74                        }
75                        \r\n.Cok {
76                            width: 47%;
77                                        background-color: #ddd;
78                                        display: block;
79                                        padding: 10px;
80                        }
81        \r\n.Tpetit {
82        font-size: 75%;
83    }
84     \r\n</style>";
85         
86    echo gros_titre(_T('csvspip:titre_page'), '',false);
87    echo debut_grand_cadre(true);
88         
89    echo debut_gauche('',true);
90    echo debut_boite_info(true);
91    echo "<strong>"._T('csvspip:titre_info')."</strong><br /><br />";
92    echo "\r\n"._T('csvspip:help_info');
93  // trouver la version en cours à partir de plugin.xml
94     $Tlecture_fich_plugin = file(_DIR_PLUGIN_CSV2SPIP.'/plugin.xml');
95     $stop_prochain = 0;
96     foreach ($Tlecture_fich_plugin as $ligne) {
97                                 if ($stop_prochain == 1) {
98                                          $version_script = $ligne;
99                                          break;
100                                 }
101                                 if (substr_count($ligne, '<version>') > 0) {
102                                          $stop_prochain = 1;
103                                 }
104     }
105   
106    echo "<br /><br /><strong>"._T('csvspip:version')."</strong>".$version_script;
107    echo $GLOBALS['plugins'];
108    echo fin_boite_info(true);
109
110
111                                 
112                                 
113// TRAITEMENT DES DONNEES ENVOYEES PAR LE FORMULAIRE DE SAISIE
114
115// Etape 0 : définition des noms de tables SPIP
116                $Trubriques = 'spip_rubriques';
117                $Tauteurs = 'spip_auteurs';
118                $Tauteurs_rubriques = 'spip_auteurs_rubriques';
119                $Tarticles =  'spip_articles';
120                $Tauteurs_articles = 'spip_auteurs_articles';
121                $Taccesgroupes_groupes = 'spip_accesgroupes_groupes';
122                $Taccesgroupes_auteurs = 'spip_accesgroupes_auteurs';
123               
124                $err_total = 0;
125
126// étape 1 : téléchargement du fichier sur le serveur           
127    if ($_FILES['userfile']['name'] != '') { 
128                                debut_raccourcis();                     
129                                echo "<a href=\"".$PHP_SELF."?exec=csv2spip\"><img src=\"img_pack/cal-today.gif\"> "._T('csvspip:retour_saisie')."</a>";
130                                fin_raccourcis();
131                }                               
132                echo debut_droite('',true);
133   
134   
135    if ($_FILES['userfile']['name'] != '') { 
136//        debut_cadre_trait_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:resultat_fichier').$_FILES['userfile']['name']);       
137                                                               
138                                debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape1'));
139//                              echo "<h2>"._T('csvspip:titre_etape1')."</h2>";
140                                if ($_FILES['userfile']['error'] != 0) { 
141                                                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>";                                                                                     
142                                        fin_cadre_couleur();
143                                                exit();
144                                } 
145                $nom_fich = "../"._NOM_TEMPORAIRES_INACCESSIBLES."tmp_fich.csv";       
146                if (!move_uploaded_file($_FILES['userfile']['tmp_name'], "$nom_fich")) { 
147                                         echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape1.2_debut').$_FILES['userfile']['tmp_name']._T('csvspip:err_etape1.2_fin').$nom_fich."</span>";
148                         exit();
149                        }
150                $tmp_csv_slh = addslashes($nom_fich);   
151                                echo "<br>"._T('csvspip:ok_etape1').$_FILES['userfile']['name']."<br>";
152                                fin_cadre_couleur();
153                               
154
155// étape 2 : passage des données du fichier dans la base temporaire                     
156                debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape2'));
157//                              echo "<h2>"._T('csvspip:titre_etape2')."</h2>";
158                                spip_query("DROP TABLE IF EXISTS tmp_auteurs");
159                if (!spip_query("CREATE TABLE tmp_auteurs (
160                                                                                                                                id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
161                                                                                                                                nom TEXT NOT NULL,
162                                                                                                                                prenom TEXT NOT NULL,
163                                                                                                                                groupe TEXT NOT NULL,
164                                                                                                                                ss_groupe TEXT NOT NULL,
165                                                                                                                                mdp TEXT NOT NULL,
166                                                                                                                                pseudo_spip TEXT NOT NULL,
167                                                                                                                                mel TEXT NOT NULL,
168                                                                                                                                id_spip INT(11) NOT NULL)"
169                                                                                                ) ) { 
170                                         echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.1')."</span>";
171                                         fin_cadre_couleur();
172                         exit();
173                                }
174                else {
175                                        echo "<br>"._T('csvspip:ok_etape2.1')."<br>";
176                }
177                               
178                        $ok = 0;
179                        $Tlignes = file($nom_fich);
180//print '<br>Tlignes départ = ';
181//print_r($Tlignes);                           
182                        $Terr_sql_temp = array();
183                                $ligne1 = 0;
184                        foreach ($Tlignes as $l) {
185                                                                 $l = str_replace('"', '', $l);
186                                                         $Tuser_ec = explode(';', $l);
187                                                        // traiter la première ligne pour récupérer les noms des champs dc la position des colonnes
188                                                                 if ($ligne1 == 0) {
189                                                                                $Tchamps = array();
190                                                                                $Tref_champs = array('login', 'prenom', 'pass', 'groupe', 'ss_groupe', 'pseudo_spip', 'email');
191                                                                                foreach ($Tuser_ec as $champ_ec) {
192                                                                                                                $champ_ec = strtolower(trim($champ_ec));
193                                                                                                                if (in_array($champ_ec, $Tref_champs)) {
194                                                                                                                         $Tchamps[] = $champ_ec;
195                                                                                                                }
196                                                                                }
197//echo '<br><br>$Tchamps = ';
198//print_r($Tchamps);                                   
199                                                                                if (count($Tchamps) < 7) {
200                                                                                         $Tvides = array();
201                                                                                         foreach ($Tref_champs as $cref) {
202                                                                                                                         if (!in_array($cref, $Tchamps)) {
203                                                                                                                                        $Tvides[] = $cref;
204                                                                                                                         }
205                                                                                         } 
206                                                                                         echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.1');
207                                                                             foreach ($Tvides as $cec) {
208                                                                                                                   echo " $cec ";
209                                                                                   } 
210                                                                                         echo "</span>";
211                                                                                   exit;
212                                                                                }
213                                                                 }                                                               
214                                                                 for ($i = 0; $i < 7; $i ++) {
215                                                                                 $var = $Tchamps[$i].'_ec';
216                                                                                 $$var = trim($Tuser_ec[$i]);
217//echo "<br>$$Tchamps[$i].'_ec' = $Tuser_ec[$i]";
218                                                                 } 
219                                                                 if ($pass_ec == '') {
220                                                                                $pass_ec = $login_ec;
221                                                                 }
222                                                        // ne pas intégrer la première ligne comme un utilisateur
223                                                                 if ($ligne1 == 0) {
224                                                                                $ligne1 = 1;
225                                                                 }
226                                                                 else {
227                                                 // passage des lignes du fichier dans la table tmp_auteurs
228                                                                 spip_query("INSERT INTO tmp_auteurs (id, nom, prenom, groupe, ss_groupe, mdp, mel, pseudo_spip)
229                                                                                                                        VALUES ('', '$login_ec', '$prenom_ec', '$groupe_ec', '$ss_groupe_ec', '$pass_ec', '$email_ec', '$pseudo_spip_ec')");
230                                                                 }
231                                         if (mysql_error() != '') {
232                                                        $Terr_sql_temp[] = array('nom' => $nom_ec, 'erreur' => mysql_error());
233                                         }
234                        }
235                        if (count($Terr_sql_tmp) > 0) { 
236                                         echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.2');
237                                         foreach ($Terr_sql_temp as $e) {
238                                                                                echo "<br>"._T('csvspip:utilisateur').$e['nom']._T('csvspip:erreur').$e['erreur'];
239                                         } 
240                                         echo "</span>";
241                                         $err_total ++;
242                                }                       
243                                else {
244                                                 echo "<br>"._T('csvspip:ok_etape2.2')."<br>";
245                                }
246                                fin_cadre_couleur();
247                       
248// étape 3 : si nécessaire création des rubriques pour les admins restreints et des groupes pour accesgroupes
249                                $_POST['groupe_admins'] != '' ? $groupe_admins = strtolower($_POST['groupe_admins']) : $groupe_admins = '-1';
250                        $_POST['groupe_visits'] != '' ? $groupe_visits = strtolower($_POST['groupe_visits']) : $groupe_visits = '-1';
251                                $_POST['groupe_redacs'] != '' ? $groupe_redacs = strtolower($_POST['groupe_redacs']) : $groupe_redacs = '-1';
252                                debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape3'));
253                               
254         // étape 3.1 : création des rubriques pour les admins restreints
255                                if ($_POST['rub_prof'] == 1 AND $groupe_admins != '-1') {
256                                         $Terr_rub = array();
257                                         $Tres_rub = array();
258                                         $date_rub_ec = date("Y-m-j H:i:s");
259                                         $Tch_rub = explode(',', $_POST['rub_parent']);
260                                         $rubrique_parent = $Tch_rub[0];
261                                         $secteur = $Tch_rub[1];
262                                         $sql8 = spip_query("SELECT ss_groupe FROM tmp_auteurs WHERE LOWER(groupe) = '$groupe_admins' AND ss_groupe != '' GROUP BY ss_groupe");
263                                         if (isset($sql8)) {
264                                         while ($data8 = spip_fetch_array($sql8)) {
265                                                                 $rubrique_ec = $data8['ss_groupe']; 
266//                                                                               if (trim($rubrique_ec) != '') {
267                                                                         $sql7 = spip_query("SELECT COUNT(*) AS rub_existe FROM $Trubriques WHERE titre = '$rubrique_ec' LIMIT 1");
268                                                                         $data7 = spip_fetch_array($sql7);
269                                                                         if ($data7['rub_existe'] > 0) {
270//print '<br>etape3 : rubrique '.$rubrique_ec.' existe';
271                                                                                        continue;
272                                                                         }
273                                                                         spip_query("INSERT INTO $Trubriques (id_rubrique, id_parent, titre, id_secteur, statut, date) VALUES ('', '$rubrique_parent', '$rubrique_ec', '$secteur', 'publie', '$date_rub_ec')" );
274                                                                 if (mysql_error() != '') {
275                                                                                $Terr_rub[] = array('ss_groupe' => $rubrique_ec, 'erreur' => mysql_error());
276                                                                 }
277                                                                                 else {
278                                                                                                        $Tres_rub[] = $rubrique_ec;
279                                                                                 }
280//                                                                               }
281                                         }
282                                         }             
283                                 if (count($Terr_rub) > 0) { 
284                                                echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape3.1');
285                                          foreach ($Terr_rub as $er) {
286                                                                                echo "<br>"._T('csvspip:rubrique').$er['ss_groupe']._T('csvspip:erreur').$er['erreur'];
287                                                }
288                                                echo "</span>";
289                        $err_total ++;
290                                         }                     
291                                 else {
292                                                        echo "<br>"._T('csvspip:ok_etape3.1_debut').count($Tres_rub)._T('csvspip:ok_etape3.1_fin')."<br>";
293                           }
294                                }
295                // gestion de la rubrique par défaut des admins restreints
296                                if ($groupe_admins != '-1') {
297                                        // faut-il créer la rubrique par défaut?
298                                          $cree_rub_adm_defaut = 0;
299                                                if ($_POST['rub_prof'] == 0) {
300                                                         $sql20 = spip_query("SELECT COUNT(*) AS nb_admins FROM tmp_auteurs WHERE LOWER(groupe) = '$groupe_admins'");
301                                                         $rows20 = spip_fetch_array($sql20);
302                                                         if ($rows20['nb_admins'] > 0) {
303                                                                        $cree_rub_adm_defaut = 1;
304                                                         }                                                       
305                                                }
306                                                else {
307                                                $sql19 = spip_query("SELECT COUNT(*) AS nb_sans_ssgrpe FROM tmp_auteurs WHERE LOWER(groupe) = '$groupe_admins' AND ss_groupe = ''");
308                                                $rows19 = spip_fetch_array($sql19);
309                                                if ($rows19['nb_sans_ssgrpe'] > 0) {
310                                                         $cree_rub_adm_defaut = 1;
311                                                }
312                                                }
313//print '<br>$cree_rub_adm_defaut       = '.$cree_rub_adm_defaut;
314                                        // création de la rubrique par défaut
315                                                if ($cree_rub_adm_defaut == 1) {
316                                         $date_rub_defaut = date("Y-m-j H:i:s");
317                                         $Tch_rub_defaut = explode(',', $_POST['rub_parent_admin_defaut']);
318                                         $rubrique_parent_defaut = $Tch_rub_defaut[0];
319                                         $secteur_defaut = $Tch_rub_defaut[1];
320                                                 $rubrique_defaut = ($_POST['rub_admin_defaut'] != '' ? $_POST['rub_admin_defaut'] : _T('csvspip:nom_rub_admin_defaut') );
321                                                 $sq21 = spip_query("SELECT COUNT(*) AS rub_existe FROM $Trubriques WHERE titre = '$rubrique_defaut' LIMIT 1");
322                                                 $rows21 = spip_fetch_array($sq21);
323                                                 if ($rows21['rub_existe'] < 1) {
324                                                                spip_query("INSERT INTO $Trubriques (id_rubrique, id_parent, titre, id_secteur, statut, date)
325                                                                                                                  VALUES ('', '$rubrique_parent_defaut', '$rubrique_defaut', '$secteur_defaut', 'prive', '$date_rub_defaut')" );
326                                                          if (mysql_error() != '') {
327                                                                         echo "<br><span class=\"Cerreur\">"._T('csvspip:err_cree_rub_defaut').mysql_error()."</span>";
328                                                                                 $err_total ++;
329                                                          }
330                                          else {
331                                                                 echo "<br>"._T('csvspip:ok_cree_rub_defaut').$rubrique_defaut."<br />";
332                                                                                         $id_rub_admin_defaut = mysql_insert_id();
333                                          }
334                                                         }
335                                                         else {
336                                                                                $sql1001 = spip_query("SELECT id_rubrique FROM $Trubriques WHERE titre = '$rubrique_defaut' LIMIT 1");
337                                                                                $rows1001 = spip_fetch_array($sql1001);
338                                                                                $id_rub_admin_defaut = $rows1001['id_rubrique'];
339                                                         }
340                                                }
341                                }
342
343         // étape 3.2 : création des groupes pour le plugin acces_groupes                               
344                                $_POST['ss_groupes_redac'] == 1 ? $ss_groupes_redac = 1 : $ss_groupes_redac = 0;
345                                $_POST['ss_groupes_admin'] == 1 ? $ss_groupes_admin = 1 : $ss_groupes_admin = 0;
346                                $_POST['ss_groupes_visit'] == 1 ? $ss_groupes_visit = 1 : $ss_groupes_visit = 0;
347                                if ($ss_groupes_redac == 1 OR $ss_groupes_admin == 1 OR $ss_groupes_visit == 1) {
348                // si le plugin acces_groupes est activé
349                                         if ($plugin_accesgroupes == 1) {                                                       
350                                                         $Terr_acces_groupes = array();
351                                                         $Tres_acces_groupes = array();
352                                                         $Tgroupes_accesgroupes = array();
353                                                         $Tres_vider_aceesgroupes = array();
354                                                         $Terr_vider_aceesgroupes = array();
355                                         $date_grpe_ec = date("Y-m-j H:i:s");                                                   
356                                                         $sql_sup = '';
357                                                         $sql_liaison = " WHERE ";
358                                                         $ss_groupes_admin != 1 ? $sql_sup .= $sql_liaison." LOWER(groupe) != '$groupe_admins'" : $sql_sup .= "";
359                                                         $sql_sup != '' ? $sql_liaison = " AND " : $sql_liaison = " WHERE ";
360                                                         $ss_groupes_visit != 1 ? $sql_sup .= $sql_liaison." LOWER(groupe) != '$groupe_visits'" : $sql_sup .= "";
361                                                         $sql_sup != '' ? $sql_liaison = " AND " : $sql_liaison = " WHERE ";
362                                                         $ss_groupes_redac != 1 ? $sql_sup .= $sql_liaison." LOWER(groupe) != '$groupe_redacs'" : $sql_sup .= "";
363//echo '<br>$ch_sql = '."SELECT ss_groupe FROM tmp_auteurs ".$sql_sup." GROUP BY ss_groupe";                                                     
364                                         $sql18= spip_query("SELECT ss_groupe FROM tmp_auteurs ".$sql_sup." GROUP BY ss_groupe");
365//echo '<br>mysql_error $sql18 = '.mysql_error();                                                       
366                                         while ($data18 = spip_fetch_array($sql18)) {
367                                                        // créer les sous-groupes
368                                                                                 if ($data18['ss_groupe'] != '') {
369                                                                                 $grpe_ec = $data18['ss_groupe'];                               
370//echo '<br>$grpe_ec = _'.$grpe_ec.'_';
371                                                                         $sql17 = spip_query("SELECT id_grpacces FROM $Taccesgroupes_groupes WHERE nom = '$grpe_ec' LIMIT 1");
372    //echo '<br>mysql_error $sql17 = '.mysql_error();                                                                                   
373                                                                // le groupe existe déja
374                                                                                 if (spip_num_rows($sql17) > 0) {
375                                                                                // stocker l'id_grpacces du groupe dans $Tgrpes_accesgroupes[$nom_ss-grpe]
376                                                                                                $data17 = spip_fetch_array($sql17);
377                                                                                                $Tgroupes_accesgroupes[$grpe_ec] = $data17['id_grpacces'];
378                                                                                 // si nécessaire vider le groupe de ses utilisateurs
379                                                                                    if ($_POST['ss_grpes_reinitialiser'] == 1) {
380                                                                                                         $id_grpacces_asupr = $data17['id_grpacces'];
381                                                                                                         spip_query("DELETE FROM $Taccesgroupes_auteurs WHERE id_grpacces = $id_grpacces_asupr");
382                                                                                                         if (mysql_error() != '') {
383                                                                                                                        $Terr_vider_accesgroupes[] = array('ss_groupe' => $grpe_ec, 'erreur' => mysql_error());
384                                                                                                         }
385                                                                                                         else {
386                                                                                                                                $Tres_vider_accesgroupes[] = $id_grpacces_asupr;
387                                                                                                         }
388                                                                                                }
389                                                                                                continue;
390                                                                         }
391                                                                                 $desc_grpe_csv2spip = _T('csvspip:grpe_csv2spip');
392                                                                         spip_query("INSERT INTO $Taccesgroupes_groupes (id_grpacces, nom, description, actif, proprio, demande_acces)
393                                                                                                                                 VALUES ('', '$grpe_ec', '$desc_grpe_csv2spip', 1, 0, 0)" );
394                                                                 $id_grpacces_new = mysql_insert_id();
395                                                                                 if (mysql_error() != '') {
396                                                                                $Terr_acces_groupes[] = array('ss_groupe' => $grpe_ec, 'erreur' => mysql_error());
397                                                                                                $err_total ++;
398                                                                 }
399                                                                                 else {
400                                                                                         // stocker l'id_grpacces du groupe dans $Tgrpes_accesgroupes[$nom_ss-grpe]
401                                                                                                        $Tgroupes_accesgroupes[$grpe_ec] = $id_grpacces_new;
402                                                                                                        $Tres_acces_groupes[] = $grpe_ec;
403                                                                                 }
404                                                                                 }
405                                         }
406                                                         echo "<br />"._T('csvspip:etape3.2')."<br />";
407                                                         if (count($Terr_vider_accesgroupes) > 0 OR count($Terr_acces_groupes) > 0) {
408                                                echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape3.2');
409                                                         }
410                                 if (count($Terr_vider_accesgroupes) > 0) {
411                                          foreach ($Terr_vider_accesgroupes as $Ver) {
412                                                                                                        echo "<br />"._T('csvspip:err_vider_accesgroupes').$Ver['ss_groupe']._T('csvspip:erreur').$Ver['erreur'];
413                                                                        }
414                                                         }
415                                                         else {
416                                                                                echo "<br />"._T('csvspip:ok_vider_accesgroupes').count($Tres_vider_accesgroupes)._T('csvspip:groupe')."<br />";
417                                                         }
418                                                         if (count($Terr_acces_groupes) > 0) { 
419                                                                        echo "<br />";
420                                                                        foreach ($Terr_acces_groupes as $Ger) {
421                                                                                echo "<br />"._T('csvspip:groupe_').$Ger['ss_groupe']._T('csvspip:erreur').$Ger['erreur'];
422                                                }
423                                                echo "</span>";
424                        $err_total ++;
425                                         }                     
426                                 else {
427                                                        echo "<br />"._T('csvspip:ok_etape3.2_debut').count($Tres_acces_groupes)._T('csvspip:ok_etape3.2_fin')."<br>";
428                           }
429                                                         if (count($Terr_vider_accesgroupes) > 0 OR count($Terr_acces_groupes) > 0) {
430                                                echo "</span>";
431                                                         }
432                                         }
433                                         else {   // plugin acces_groupes inactif et $_POST['acces_groupes'] == 1 (en principe pas possible...)
434                                                        echo "<br /><span class=\"Cerreur\">"._T('csvspip:abs_acces_groupes')."</span><br />"; 
435                                                        $err_total ++;
436                                         }
437                                }
438                                fin_cadre_couleur();
439                               
440// étape 4 : intégration des rédacteurs, des visiteurs et des administrateurs                                                   
441                // redacteurs
442                                $Tres_nvx = array();
443                        $Terr_nvx = array();
444                        $Tres_maj = array();
445                        $Terr_maj = array();
446                        $Tres_eff = array();
447                        $Terr_eff = array();
448                                $Tres_poub = array();
449                                $Terr_poub = array();
450                                $TresR_ss_grpe = array();
451                                $TerrR_ss_grpe = array();
452                                $TerrR_eff_accesgroupes = array();
453                               
454                // admins
455                                $TresA_nvx = array();
456                        $TerrA_nvx = array();
457                        $TresA_maj = array();
458                        $TerrA_maj = array();
459                        $TresA_eff = array();
460                        $TerrA_eff = array();
461                                $TresA_ss_grpe = array();
462                                $TerrA_ss_grpe = array();
463                                $TerrA_eff_accesgroupes = array();
464                                $TerrA_eff_rub_admins = array();
465                               
466                // visiteurs
467                                $TresV_nvx = array();
468                        $TerrV_nvx = array();
469                        $TresV_maj = array();
470                        $TerrV_maj = array();
471                        $TresV_eff = array();
472                        $TerrV_eff = array();
473                                $TresV_ss_grpe = array();
474                                $TerrV_ss_grpe = array();
475                                $TerrV_eff_accesgroupes = array();
476                               
477                // communs
478                          $Tres_maj_grpacces = array();
479                                $Terr_maj_grpacces = array();
480                                $Tres_maj_rub_admin = array();
481                                $Terr_maj_rub_admin = array();
482                               
483        // LA boucle : gère 1 à 1 les utilisateurs de tmp_auteurs en fonction des options => TOUS !
484                                $sql157 = spip_query("SELECT * FROM tmp_auteurs");
485                        while ($data157 = spip_fetch_array($sql157)) {
486                                                 if ($data157['pseudo_spip'] != '') {
487                                                                        $nom = ucwords($data157['pseudo_spip']);
488//print '<br>pseudo_spip existe : $data157[pseudo_spip] = '.$data157['pseudo_spip'].' $nom = '.$nom;                                                                   
489                                                         }
490                                                         else {
491                                                                                $nom = strtoupper($data157['nom']).' '.ucfirst($data157['prenom']);
492                                                         }
493//print '<br>$nom = '.$nom.' $data157[nom] = '.$data157['nom'].' $data157[pseudo_spip] = _'.$data157['pseudo_spip'].'_';                                                         
494                                                         $groupe = strtolower($data157['groupe']);
495                                                         $ss_groupe = $data157['ss_groupe'];
496                                                 $pass = $data157['mdp'];
497                                                         $mel = $data157['mel'];
498                                                 $login = $data157['nom'];
499                                                         $login_minuscules = strtolower($login);
500                                                         $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $statut = '1comite' : $statut = '6forum') : $statut = '0minirezo';
501                                                         
502                                                 $sql423 = spip_query("SELECT COUNT(*) AS nb_user FROM $Tauteurs WHERE LOWER(login) = '$login_minuscules' LIMIT 1");
503                                                 $data423 = spip_fetch_array($sql423);                                                   
504                                                 $nb_user = $data423['nb_user'];       
505// 4.1 : l'utilisateur n'est pas inscrit dans la base spip_auteurs
506                                                         if ($nb_user < 1) {
507                                                                                $pass = csv2spip_crypt_md5($pass);
508                                                                                spip_query("INSERT INTO $Tauteurs (id_auteur, nom, email, login, pass, statut) VALUES ('', '$nom', '$mel', '$login', '$pass', '$statut')");
509                                                                                $id_spip = mysql_insert_id();
510                                                                                if (mysql_error() == '') {
511                                                                                                 include_spip("inc/indexation");
512                                                                                                 marquer_indexer('spip_auteurs', $id_auteur);
513                        // Mettre a jour les fichiers .htpasswd et .htpasswd-admin
514                             ecrire_acces();
515                                                                                // insertion de l'id_spip dans la base tmp
516                                                                                                 spip_query("UPDATE tmp_auteurs SET id_spip = '$id_spip' WHERE LOWER(nom) = '$login_minuscules' LIMIT 1");
517                                                                                                 $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_nvx[] = $login: $TresV_nvx[] = $login) : $TresA_nvx[] = $login;
518                                                                                }
519                                                                                else {
520                                                                                                         $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());
521                                                                                        }
522                                                         }
523                                                         else {
524// 4.2 : l'utilisateur est déja inscrit dans la base spip_auteurs
525                                                                // trouver l'id_auteur spip
526                                                                                $sql44 = spip_query("SELECT id_auteur FROM $Tauteurs WHERE LOWER(login) = '$login_minuscules' LIMIT 1");
527                                                                          if (spip_num_rows($sql44) > 0) {
528                                                                                         $result44 = spip_fetch_array($sql44);
529                                                                                         $id_spip = $result44['id_auteur'];
530                                                                                 spip_query("UPDATE tmp_auteurs SET id_spip = '$id_spip' WHERE LOWER(nom) = '$login_minuscules' LIMIT 1");                                                                                       
531                                                                          } 
532                                                                // faut il faire la maj des existants ?
533                                                                        if ($_POST['maj_gene'] == 1) {
534                                                                // 4.2.1 faire la maj des infos perso si nécessaire
535                                                                                                if ($_POST['maj_mdp'] == 1) {
536                                                                                 $pass = csv2spip_crypt_md5($pass);
537                                                                                 spip_query("UPDATE $Tauteurs SET nom = '$nom', email = '$mel', statut = '$statut', pass = '$pass', alea_actuel = '' WHERE id_auteur = $id_spip LIMIT 1");
538                                                                                 if (mysql_error() == '') {
539                                                                                                 $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_maj[] = $login : $TresV_maj[] = $login) : $TresA_maj[] = $login;
540                                                                         }
541                                                                         else {
542                                                                                                 $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());
543                                                                         }
544                                                                        }
545                                                                                // 4.2.2 réinitialisation des groupes acces_groupes si nécessaire
546                                                                                          if ( ($_POST['maj_grpes_redac'] == 1 AND $statut == '1comite') 
547                                                                                                                  OR ($_POST['maj_grpes_admin'] == 1 AND $statut == '0minirezo')
548                                                                                                                        OR ($_POST['maj_grpes_visit'] == 1 AND $statut == '6forum')
549                                                                                                                ) {
550                                                                                                                spip_query("DELETE FROM $Taccesgroupes_auteurs WHERE id_auteur = $id_spip");
551                                                                                                                if (mysql_error() == '') {
552                                                                                                 $Tres_maj_grpacces[] = $login;
553                                                                          }
554                                                                          else {
555                                                                                                 $Terr_maj_grpacces[] = array('login' => $login, 'erreur' => mysql_error());
556                                                                          }
557                                                                                                }
558                                                                                // 4.2.3 suppression des droits sur les rubriques administrées si nécessaire
559                                                                                          if ($_POST['maj_rub_adm'] == 1 AND $statut == '0minirezo') {
560                                                                                                         spip_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_spip");
561                                                                                                         if (mysql_error() == '') {
562                                                                                                 $Tres_maj_rub_admin[] = $login;
563                                                                          }
564                                                                          else {
565                                                                                                 $Terr_maj_rub_admin[] = array('login' => $login, 'erreur' => mysql_error());
566                                                                          }
567                                                                                                }
568                                                                                }
569                                                         }
570
571                                                                                                 
572// 4.3 : intégrer l'auteur dans son ss-groupe acces_groupes si nécessaire
573                                                 if (($ss_groupes_redac == 1 AND $statut == '1comite') OR ($ss_groupes_admin == 1 AND $statut == '0minirezo') OR ($ss_groupes_visit == 1 AND $statut == '6forum')) {
574                                                                if ($id_grpacces_ec = $Tgroupes_accesgroupes[$ss_groupe]) {
575                                                                          $sql55 = spip_query("SELECT COUNT(*) AS existe_auteur FROM $Taccesgroupes_auteurs WHERE id_grpacces = $id_grpacces_ec AND id_auteur = $id_spip LIMIT 1");
576                                                                                  $result55 = spip_fetch_array($sql55);
577                                                                                // l'utilisateur n'existe pas dans la table _accesgroupes_auteurs
578                                                                                        if ($result55['existe_auteur'] == 0) {
579                                                                                                        spip_query("INSERT INTO $Taccesgroupes_auteurs (id_grpacces, id_auteur, dde_acces, proprio)
580                                                                                                                                                VALUES ($id_grpacces_ec, $id_spip, 0, 0)");
581                                                                                                if (mysql_error() == '') {
582                                                                                                         $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $TresR_ss_grpe[] = $login : $TresV_ss_grpe[] = $login) : $TresA_ss_grpe[] = $login;
583                                                                                                }
584                                                                                                else {
585                                                                                                                 $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $TerrR_ss_grpe[] = array('login' => $login, 'erreur' => mysql_error()) : $TerrV_ss_grpe[] = array('login' => $login, 'erreur' => mysql_error()) ) :  $TerrA_ss_grpe[] = array('login' => $login, 'erreur' => mysql_error());
586                                                                                                }
587                                                                                  }
588                                                                }
589                                                                else {
590                                                                                 $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Terr_ss_grpe[] = array('login' => $login, 'erreur' => _T('csvspip:err_integ_accesgroupes').$ss_groupe) : $TerrV_ss_grpe[] = array('login' => $login, 'erreur' => _T('csvspip:err_integ_accesgroupes').$ss_groupe) ) :  $TerrA_ss_grpe[] = array('login' => $login, 'erreur' => _T('csvspip:err_integ_accesgroupes').$ss_groupe);
591                                                                }
592                                                 }
593                                } 
594
595// 4.4 : gestion des suppressions
596                               
597// VERSION 2.3 de effacer les absents
598                                $ch_maj = 0;
599                                $eff_absv = 0;
600                                $eff_absr = 0;
601                                $eff_absa = 0;
602                                if ($_POST['eff_visit'] == 1) {
603//                                       $ch_maj = 1;
604                                         $eff_absv = 1;
605                                }
606                                if ($_POST['eff_redac'] == 1) {
607                                         $ch_maj = 1;
608                                         $eff_absr = 1;
609                                }
610                                if ($_POST['eff_admin'] == 1) {
611                                         $ch_maj = 1;
612                                         $eff_absa = 1;
613                                }
614
615    // paramétrage auteur et dossier d'archive
616                                if ($ch_maj !== 0) {
617                        // 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)
618                        if ($_POST['auteurs_poubelle'] != 1) {
619                                        $nom_auteur_archives = $_POST['nom_auteur_archives'];
620                                        $sql615 = spip_query("SELECT id_auteur FROM $Tauteurs WHERE login = '$nom_auteur_archives' LIMIT 1");
621                                        if (spip_num_rows($sql615) > 0) {
622                                                 $data615 = spip_fetch_array($sql615);
623                                                 $id_auteur_archives = $data615['id_auteur'];
624                                        }
625                                        else {
626                                                         spip_query("INSERT INTO $Tauteurs (id_auteur, nom, login, pass, statut) VALUES ('', '$nom_auteur_archives', '$nom_auteur_archives', '$nom_auteur_archives', '5poubelle')");
627                                                   $id_auteur_archives = mysql_insert_id();
628                                        }
629                                        $nom_rub_archivesR = $nom_auteur_archives;
630                                        $id_rub_parent_archivesA = $nom_auteur_archives;
631                                        $id_rub_parent_archivesR = $id_auteur_archives;
632                                        $nom_rub_archivesA = $nom_auteur_archives;
633                                        $id_auteur_archivesA = $id_auteur_archives;
634                                        $nom_auteur_archivesR = $nom_auteur_archives;
635                                        $id_auteur_archivesR = $id_auteur_archives;
636                               
637                // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                                               
638                                                if ($_POST['supprimer_articles'] != 1 AND $_POST['archivage'] != 0) {
639                                                         $supprimer_articlesr = 0;
640                                                         $supprimer_articlesa = 0;
641                                                         $archivager =1;
642                                                         $archivagea = 1;
643                                                         
644                                                         $nom_rub_archives = $_POST['rub_archivage'];
645                                                                // $_POST['rub_parent_archivage'] de la forme : "id_rubrique,id_secteur"
646                                                         $Tids_parent_rub_archives = explode(',', $_POST['rub_parent_archivage']);
647                                                         $id_rub_parent_archives = $Tids_parent_rub_archives[0];
648                                                         $id_sect_parent_archives = $Tids_parent_rub_archives[1];
649                                                         $date_rub_archives = date("Y-m-j H:i:s");
650                                                         $sql613 = spip_query("SELECT id_rubrique, id_secteur FROM $Trubriques WHERE titre = '$nom_rub_archives' AND id_parent = '$id_rub_parent_archives' LIMIT 1");
651                                                         if (spip_num_rows($sql613) > 0) {
652                                                                         $data613 = spip_fetch_array($sql613);
653                                                                         $id_rub_archives = $data613['id_rubrique'];
654                                                         }
655                                                         else {
656                                                                                 spip_query("INSERT INTO $Trubriques (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')" );
657                                                                                 $id_rub_archives = mysql_insert_id();
658                                                         }
659                            }
660                        }
661                                }
662                                                                                                               
663      // 4.4.1 : traitement des visiteurs actuels de la base spip_auteurs => si effacer les absV = OK
664        if ($eff_absv == 1) {
665                                          $sql1471 = spip_query("SELECT COUNT(*) AS nb_redacsV FROM $Tauteurs WHERE statut = '6forum'");
666                                $data1471 = spip_fetch_array($sql1471);
667                                if ($data1471['nb_redacsV'] > 0) {
668                                // pas de poubelle pour les visiteurs => suppression puisque pas d'articles
669                                                $sql1591 = spip_query("SELECT id_auteur, login FROM $Tauteurs WHERE statut = '6forum'");
670                                                while ($data1591 = spip_fetch_array($sql1591)) {
671                                                                   $login_sp = strtolower($data1591['login']);
672                                                                         $id_auteur_ec = $data1591['id_auteur'];
673                                                                   $sql4561 = spip_query("SELECT COUNT(*) AS nb FROM tmp_auteurs WHERE LOWER(nom) = '$login_sp' LIMIT 1");
674                                                                   $data4561 = spip_fetch_array($sql4561);
675             // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
676                                                                 if ($data4561['nb'] == 0) {
677                                                        // traitement des visiteurs à effacer                                                                                           
678                                                                                        spip_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '6forum' LIMIT 1");
679                                                                                                if (mysql_error() == 0) {
680                                                                                                  $TresV_eff[] = $login;
681                                                                                                                                // effacer toutes les références à ce visiteur dans acces_groupes
682                                                                                                                                  spip_query("DELETE FROM $Taccesgroupes_auteurs WHERE id_auteur = $id_auteur_ec");
683                                                                                                                                        if (mysql_error() != '') {
684                                                                                                                                                 $TerrV_eff_accesgroupes[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
685                                                                                                                                        }
686                                                                                }
687                                                                                else {
688                                                                                                         $TerrV_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
689                                                                                }
690                                                                         }
691                                                }
692      // optimisation de la table après les effacements
693                                                spip_query("OPTIMIZE TABLE $Tauteurs, $Taccesgroupes_auteurs");
694
695/*                                                      if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $intitule_ss_grpe !== 0) {
696                                                         spip_query("OPTIMIZE TABLE $textra");
697                                                }
698*/                                                                     
699                                }       
700                                }
701       
702      // 4.4.2 : traitement des rédacteurs actuels de la base spip_auteurs => si effacer les absents redac = OK
703        if ($eff_absr == 1) {
704                                                        $sql147 = spip_query("SELECT COUNT(*) AS nb_redacsR FROM $Tauteurs WHERE statut = '1comite'");
705                                $data147 = spip_fetch_array($sql147);
706                                if ($data147['nb_redacsR'] > 0) {
707                        // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                                               
708                                                        if ($supprimer_articlesr != 1 AND $archivager != 0) {
709                                                                 $nom_rub_archivesR = $rub_archivager;
710                                                                 $sql613 = spip_query("SELECT id_rubrique, id_secteur FROM $Trubriques WHERE titre = '$nom_rub_archivesR' AND id_parent = '$id_rub_parent_archivesR' LIMIT 1");
711                                                                 if (spip_num_rows($sql613) > 0) {
712                                                                                 $data613 = spip_fetch_array($sql613);
713                                                                                 $id_rub_archivesR = $data613['id_rubrique'];
714                                                                 }
715                                                                 else {
716                                                                                         spip_query("INSERT INTO $Trubriques (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')" );
717                                                                                                                 $id_rub_archivesR = mysql_insert_id();
718                                                                 }
719                                                        }
720                                                $sql159 = spip_query("SELECT id_auteur, login FROM $Tauteurs WHERE statut = '1comite' AND bio != 'archive'");
721                                                $cteur_articles_deplacesR = 0;
722                                                        $cteur_articles_supprimesR = 0;
723                                                        $cteur_articles_modif_auteurR = 0;
724                                                        while ($data159 = spip_fetch_array($sql159)) {
725                                                                   $login_sp = strtolower($data159['login']);
726                                                                                 $id_auteur_ec = $data159['id_auteur'];
727                                                                   $sql456 = spip_query("SELECT COUNT(*) AS nb FROM tmp_auteurs WHERE nom = '$login_sp' LIMIT 1");
728                                                                   $data456 = spip_fetch_array($sql456);
729          // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
730                                                                 if ($data456['nb'] == 0) {
731                                                        // traitement éventuel des articles de l'auteur à supprimer
732                                                                                                        $sql757 = spip_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
733                                                                                                        $data757 = spip_fetch_array($sql757);
734//print '<br><br>id_auteur = '.$id_auteur_ec;
735//print '<br>nb_articles_auteur = '.$data757['nb_articles_auteur'];
736//print '<br>$supprimer_articlesr = '.$supprimer_articlesr;
737//print '<br>$archivager = '.$archivager;
738                                                                                                        if ($data757['nb_articles_auteur'] > 0) {
739                                                                                                        if ($supprimer_articlesr != 1) {
740                                                                                                                if ($archivager != 0) {
741                                                                                                                                                 $sql612 = spip_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = $id_auteur_ec");
742                                                                                                                         if (spip_num_rows($sql612) > 0) {
743//print '<br>départ UPDATE';
744                                                                                                                                        while ($data612 = spip_fetch_array($sql612)) {
745                                                                                                                                                                $id_article_ec = $data612['id_article'];
746                                                                                                                                                                                        spip_query("UPDATE $Tarticles SET id_rubrique = '$id_rub_archivesR', id_secteur = '$id_sect_parent_archivesR' WHERE id_article = '$id_article_ec' LIMIT 1");
747                                                                                                                                                                                        $cteur_articles_deplacesR ++;
748                                                                                                                                        }
749                                                                                                                         } 
750                                                                                                                 if ($auteurs_poubeller != 1) {
751                                                                                                                                 spip_query("UPDATE $Tauteurs_articles SET id_auteur = '$id_auteur_archivesR' WHERE id_auteur = '$id_auteur_ec'");
752                                                                                                                 }                                                                                                                     
753                                                                                                                }
754                                                                                                        }
755                                                                                                        else {
756                                                                                                                         $sql756 = spip_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
757//print '<br>départ DELETE';
758                                                                                                                         while ($data756 = spip_fetch_array($sql756)) {
759                                                                                                                                                 $id_article_a_effac = $data756['id_article'];
760                                                                                                                                                 spip_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
761                                                                                                                                                                 $cteur_articles_supprimesR ++;
762                                                                                                                         }
763                                                                                                                         spip_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
764                                                                                                        }
765                                                                                                        }
766                                                                // traitement des auteurs à effacer                                                                                             
767                                                                                                        if ($auteurs_poubeller != 1) {
768                                                                                                                  spip_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '1comite' LIMIT 1");
769                                                                                                        if (mysql_error() == 0) {
770                                                                                                         $TresR_eff[] = $login;
771                                                                                                                                // effacer toutes les références à ce visiteur dans acces_groupes
772                                                                                                                                   spip_query("DELETE FROM $Taccesgroupes_auteurs WHERE id_auteur = $id_auteur_ec");
773                                                                                                                                         if (mysql_error() != '') {
774                                                                                                                                                 $TerrR_eff_accesgroupes[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
775                                                                                                                                         }
776                                                                                        }
777                                                                                                                                else {
778                                                                                                         $TerrR_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
779                                                                                        }
780                                                                                                        }
781                                                                                                        else {
782                                                                                                                          spip_query("UPDATE $Tauteurs SET statut = '5poubelle' WHERE id_auteur = '$id_auteur_ec' LIMIT 1");
783                                                                                                        if (mysql_error() == 0) {
784                                                                                                         $TresR_poub[] = $id_auteur_ec;
785                                                                                         }
786                                                                                         else {
787                                                                                                                 $TerrR_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
788                                                                                         }
789                                                                                                        }
790                                                                                 }
791                                                        }
792        // optimisation de la table après les effacements
793                                                        spip_query("OPTIMIZE TABLE $Tauteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
794/*                                                                             
795                                                        if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $intitule_ss_grpe !== 0) {
796                                                                 spip_query("OPTIMIZE TABLE $textra");
797                                                        }
798                                                        if ($extra_supCSV == 1) {
799                                                                 spip_query("OPTIMIZE TABLE $textracsv");
800                                                        }                                               
801*/                                                                             
802                                        }               
803        }
804      // 4.4.3 : traitement des administrateurs restreints actuels de la base spip_auteurs => si effacer les absA = OK
805        if ($eff_absa == 1) {
806                                                $sql1473 = spip_query("SELECT COUNT(*) AS nb_redacsA FROM $Tauteurs
807                                                                                                                                         LEFT JOIN $Tauteurs_rubriques
808                                                                                                                                         ON $Tauteurs_rubriques.id_auteur = $Tauteurs.id_auteur
809                                                                                                                                         WHERE statut = '0minirezo'");
810//echo '<br>mysql_error 1473 = '.mysql_error();
811                        $data1473 = spip_fetch_array($sql1473);
812                        if ($data1473['nb_redacsA'] > 0) {
813                                        $sql1593 = spip_query("SELECT Tauteurs.id_auteur, Tauteurs.login FROM $Tauteurs AS Tauteurs, $Tauteurs_rubriques AS Tauteurs_rubriques WHERE statut = '0minirezo' AND Tauteurs.id_auteur = Tauteurs_rubriques.id_auteur");
814                                        $cteur_articles_deplacesA = 0;
815                                                $cteur_articles_supprimesA = 0;
816                                                $cteur_articles_modif_auteurA = 0;
817                                                while ($data1593 = spip_fetch_array($sql1593)) {
818                                                           $login_sp = strtolower($data1593['login']);
819                                                                         $id_auteur_ec = $data1593['id_auteur'];
820                                                           $sql4563 = spip_query("SELECT COUNT(*) AS nbA FROM tmp_auteurs WHERE nom = '$login_sp' LIMIT 1");
821                                                           $data4563 = spip_fetch_array($sql4563);
822      // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
823                                                                 if ($data4563['nbA'] == 0) {
824                                                // traitement éventuel des articles de l'admin à supprimer
825                                                                                                $sql7573 = spip_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
826                                                                                                $data7573 = spip_fetch_array($sql7573);
827                                                                                                if ($data7573['nb_articles_auteur'] > 0) {
828                                                                                                        if ($supprimer_articlesa != 1) {
829                                                                                                        if ($archivagea != 0) {
830                                                                                                                                         $sql6123 = spip_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
831                                                                                                                 if (spip_num_rows($sql6123) > 0) {
832                                                                                                                                while ($data6123 = spip_fetch_array($sql6123)) {
833                                                                                                                                                        $id_article_ec = $data6123['id_article'];
834                                                                                                                                                                                spip_query("UPDATE $Tarticles SET id_rubrique = '$id_rub_archivesA', id_secteur = '$id_sect_parent_archivesA' WHERE id_article = '$id_article_ec' LIMIT 1");
835                                                                                                                                                                                $cteur_articles_deplacesA ++;
836                                                                                                                                }
837                                                                                                                 } 
838                                                                                                         if ($auteurs_poubellea != 1) {
839                                                                                                                         spip_query("UPDATE $Tauteurs_articles SET id_auteur = '$id_auteur_archivesA' WHERE id_auteur = '$id_auteur_ec'");
840                                                                                                         }                                                                                                                     
841                                                                                                        }
842                                                                                                        }
843                                                                                                        else {
844                                                                                                                         $sql7563 = spip_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
845                                                                                                                         while ($data7563 = spip_fetch_array($sql7563)) {
846                                                                                                                                                 $id_article_a_effac = $data7563['id_article'];
847                                                                                                                                                 spip_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
848                                                                                                                                                         $cteur_articles_supprimesA ++;
849                                                                                                                         }
850                                                                                                                         spip_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
851                                                                                                        }
852                                                                                                }
853                                                        // traitement des admins à effacer                                                                                             
854                                                                                                if ($auteurs_poubellea != 1) {
855                                                                                                          spip_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '0minirezo' LIMIT 1");
856                                                                                                        if (mysql_error() == 0) {
857                                                                                                 $TresA_eff[] = $login;
858                                                                                                                                // effacer toutes les références à ce visiteur dans acces_groupes
859                                                                                                                                   spip_query("DELETE FROM $Taccesgroupes_auteurs WHERE id_auteur = $id_auteur_ec");
860                                                                                                                                         if (mysql_error() != '') {
861                                                                                                                                                 $TerrA_eff_accesgroupes[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
862                                                                                                                                         }
863                                                                         // virer l'administation de toutes les rubriques pour cet admin
864                                                                                                                                         spip_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_auteur_ec");
865                                                                                                                                         if (mysql_error() != '') {
866                                                                                                                                                 $TerrA_eff_rub_admins[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
867                                                                                                                                         }
868                                                                                 }
869                                                                                 else {
870                                                                                                                                                  $TerrA_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
871                                                                                 }
872                                                                                                }
873                                                                                                else {
874                                                                                                                  spip_query("UPDATE $Tauteurs SET statut = '5poubelle' WHERE id_auteur = '$id_auteur_ec' LIMIT 1");
875                                                                                                        if (mysql_error() == 0) {
876                                                                                                 $TresA_poub[] = $id_auteur_ec;
877                                                                                         }
878                                                                                         else {
879                                                                                                                 $TerrA_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
880                                                                                         }
881                                                                                                }
882                                                                         }
883                                                }
884    // optimisation de la table après les effacements
885                                                spip_query("OPTIMIZE TABLE $Tauteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
886/*                                                             
887                                                if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $intitule_ss_grpe !== 0) {
888                                                         spip_query("OPTIMIZE TABLE $textra");
889                                                }
890                                                if ($extra_supCSV == 1) {
891                                                         spip_query("OPTIMIZE TABLE $textracsv");
892                                                }
893*/                                                                                                             
894                                }
895                                }   
896//                              }
897    //   fin effacer les abs (4.4)  V 2.3       
898
899                // résultats étape 4
900                                debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape4'));
901                          echo "<br>"._T('csvspip:etape4.1')."<br>";
902                          if (count($TerrV_nvx) > 0) {         
903                                        echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
904                                        foreach ($TerrV_nvx as $Ven) { 
905                                                                        echo _T('csvspip:utilisateur').$Ven['login']._T('csvspip: erreur').$Ven['erreur']."<br>";
906                                        }
907                                        echo "</span>";
908                                  $err_total ++;
909                          }
910                          else {
911                                                echo "<br>"._T('csvspip:creation').count($TresV_nvx)._T('csvspip:comptes_visit_ok')."<br>";                                                             
912                          }
913                                if (count($Terr_nvx) > 0) {             
914                                         echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
915                                         foreach ($Terr_nvx as $en) { 
916                                                                                echo _T('csvspip:utilisateur').$en['login']._T('csvspip:erreur').$en['erreur']."<br>";
917                                         }                                     
918                                         echo "</span>";
919                                   $err_total ++;
920                          }
921                          else {
922                                                echo "<br>"._T('csvspip:creation').count($Tres_nvx)._T('csvspip:comptes_redac_ok')."<br>";                                       
923                          }
924
925                          if (count($TerrA_nvx) > 0) {         
926                                        echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
927                                        foreach ($TerrA_nvx as $Pen) { 
928                                                                        echo _T('csvspip:utilisateur').$Pen['login']._T('csvspip: erreur').$Pen['erreur']."<br>";
929                                        }
930                                        echo "</span>";
931                                  $err_total ++;
932                          }
933                          else {
934                                                echo "<br>"._T('csvspip:creation').count($TresA_nvx)._T('csvspip:comptes_admin_ok')."<br>";                                                             
935                          }
936
937                // 4.2 résultats maj des existants
938                                if ($_POST['maj_gene'] == 1) {
939                          echo "<br>"._T('csvspip:etape4.2')."<br>";
940                                                if ($_POST['maj_mdp'] == 1) {                                   
941                        echo "<br>"._T('csvspip:etape4.2.1')."<br>";
942                                                        if (count($TerrV_maj) > 0) {
943                                                echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
944                                  foreach ($TerrV_maj as $Vem) { 
945                                                                                echo _T('csvspip:visit').$Vem['login']._T('csvspip: erreur').$Vem['erreur']."<br>";
946                                          }             
947                                                echo "</span>";
948                                          $err_total ++;
949                                }
950                                else {
951                                                         echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_visit_ok')."<br>";
952                                }                                       
953                                        if (count($Terr_maj) > 0) {             
954                                                 echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
955                                                 foreach ($Terr_maj as $em) { 
956                                                                                 echo _T('csvspip:redac').$em['login']._T('csvspip: erreur').$em['erreur']."<br>";
957                                                 }               
958                                                 echo "</span>";
959                                                 $err_total ++;
960                                }
961                                else {
962                                                 echo "<br>"._T('csvspip:ok_etape4.2.1').count($Tres_maj)._T('csvspip:comptes_redac_ok')."<br>";                                                       
963                                } 
964                        if (count($TerrA_maj) > 0) {
965                                                echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
966                                  foreach ($TerrA_maj as $Pem) { 
967                                                                                echo _T('csvspip:admin').$Pem['login']._T('csvspip: erreur').$Pem['erreur']."<br>";
968                                          }             
969                                                echo "</span>";
970                                          $err_total ++;
971                                }
972                                else {
973                                                         echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_admin_ok')."<br>";
974                                }                                       
975                          }
976                                                if ($_POST['maj_grpes_redac'] == 1 OR $_POST['maj_grpes_admin'] == 1 OR $_POST['maj_grpes_visit'] == 1) {
977                                                         echo "<br>"._T('csvspip:etape4.2.2')."<br>";
978                                                         if (count($Terr_maj_grpacces) > 0) {
979                                                                        echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_grpacces');
980                                  foreach ($Terr_maj_grpacces as $Peg) { 
981                                                                                echo _T('csvspip:utilisateur').$Peg['login']._T('csvspip: erreur').$Peg['erreur']."<br>";
982                                          }             
983                                                echo "</span>";
984                                          $err_total ++;
985                                                         }
986                                                         else {
987                                                                                echo "<br />"._T('csvspip:ok_maj_grpacces').count($Tres_maj_grpacces)._T('csvspip:utilisateurs')."<br>";
988                                                         }
989                                                }
990                                                if ($_POST['maj_rub_adm'] == 1) {
991                                                         echo "<br>"._T('csvspip:etape4.2.3')."<br>";
992                                                         if (count($Terr_maj_rub_admin) > 0) {
993                                                                        echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_rub_adm');
994                                  foreach ($Terr_maj_rub_admin as $Pera) { 
995                                                                                echo _T('csvspip:utilisateur').$Pera['login']._T('csvspip: erreur').$Pera['erreur']."<br>";
996                                          }             
997                                                echo "</span>";
998                                          $err_total ++;
999                                                         }
1000                                                         else {
1001                                                                                echo "<br />"._T('csvspip:ok_maj_rub_adm').count($Tres_maj_rub_admin)._T('csvspip:utilisateurs')."<br>";
1002                                                         }
1003                                                }
1004                                }
1005                               
1006                // 4.3 résultats intégration des utilisateurs dans les groupes acces_groupes
1007                    if ($_POST['ss_groupes_redac'] == 1 OR $_POST['ss_groupes_admin'] == 1 OR $_POST['ss_groupes_visit'] == 1) {
1008                                         echo "<br />"._T('csvspip:etape4.3')."<br>";
1009                                         
1010                                }
1011                               
1012                // 4.4 résultats effacer les absents
1013                    if ($eff_absv == 1 OR $eff_absr == 1 OR $eff_absa == 1) {
1014                                         echo "<br />"._T('csvspip:etape4.4')."<br>";
1015                                }
1016                // résultats effacer les visiteurs
1017                                if ($eff_absv == 1) {                                   
1018                                         echo "<br />"._T('csvspip:etape4.4.1')."<br>";
1019                                         if (count($TerrV_eff) > 0 OR count($TerrV_poub) > 0) { 
1020                                                        echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
1021                                                        foreach ($TerrV_eff as $Vee) {
1022                                                                                        echo _T('csvspip:visit').$Vee['login']._T('csvspip: erreur').$Vee['erreur'];
1023                                                        }       
1024                                                        $err_total ++;
1025                                         }
1026                                         else { 
1027                                                                echo "<br />"._T('csvspip:suppression_debut').count($TresV_eff)._T('csvspip:comptes_visit_ok')."<br>";
1028                                         }
1029/*
1030                                                        if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $extrav != 0) {  ?>                                 
1031                        <h3>Etape 4.3.1.1 : suppression des références aux visiteurs supprimés dans la table supplémentaire :</h3>
1032<?                                                       if (count($TerrV_eff_extra) >0) {              ?>
1033                        <span class="Cerreur">
1034                                        <h4>suppressions des références dans la table supplémentaire : visiteurs en erreur :</h4>
1035<?                                                          foreach ($TerrV_eff_extra as $Vefx) { ?>
1036<?                                                                                       print 'rédacteur = '.$Vefx['login'].' => erreur = '.$Vefx['erreur']; ?><br>
1037<?                                                          }            ?>
1038                        </span>
1039<?                                                          $err_total ++;
1040                                                                 }
1041                                                                 else {  ?>
1042                                                                         <br>Suppression des références dans la table supplémentaire pour <? print count($TresV_eff_extra); ?> visiteurs = OK<br>
1043<?                                                       }
1044                                                        }                                       
1045*/
1046                                }                                       
1047               
1048                // résultats effacer les redacteurs
1049                                if ($eff_absr == 1) { 
1050                                         echo "<br />"._T('csvspip:etape4.4.2')."<br>";
1051                                         if (count($TerrR_eff) > 0 OR count($TerrR_poub) >0) {
1052                                                        echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
1053                                                        foreach ($TerrR_eff as $ee) { 
1054                                                                                        echo _T('csvspip:redac').$ee['login']._T('csvspip: erreur').$ee['erreur'];
1055                                                        }
1056                                                        echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
1057                                                        foreach ($TerrR_poub as $ep) { 
1058                                                                                        echo _T('csvspip:redac').$ep['login']._T('csvspip: erreur').$ep['erreur'];
1059                                                        }
1060                                                  $err_total ++;
1061                                   }
1062                                         else { 
1063                                                                echo "<br />"._T('csvspip:suppression_debut').count($TresR_eff)._T('csvspip:comptes_redac_ok')."<br>";
1064                                                                echo "<br />"._T('csvspip:poubelle_debut').count($TresR_poub)._T('csvspip:comptes_redac_ok')."<br>";
1065                                         }
1066                                         if ($archivager != 0) {
1067                                                        echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesR._T('csvspip:archivage_fin').$nom_rub_archivesR;
1068                                         } 
1069                                         if ($supprimer_articlesr == 1) {
1070                                                        echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesR._T('csvspip:suppression_fin')."<br>";
1071                                         }
1072/*
1073                                         if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $extrar != 0) {  ?>                                       
1074                        <h3>Etape 4.3.2.1 : suppression des références aux rédacteurs supprimés dans la table supplémentaire :</h3>
1075<?                                                       if (count($TerrR_eff_extra) >0) {              ?>
1076                        <span class="Cerreur">
1077                                        <h4>suppressions des références dans la table supplémentaire : rédacteurs en erreur :</h4>
1078<?                                                          foreach ($TerrR_eff_extra as $Refx) { ?>
1079<?                                                                                       print 'rédacteur = '.$Refx['login'].' => erreur = '.$Rex['erreur']; ?><br>
1080<?                                                          }            ?>
1081                        </span>
1082<?                                                          $err_total ++;
1083                                                                 }
1084                                                                 else {  ?>
1085                                                                         <br>Suppression des références dans la table supplémentaire pour <? print count($TresR_eff_extra); ?> rédacteurs = OK<br>
1086<?                                                       }
1087                                                        }                                       
1088*/
1089                                }                                       
1090
1091                // résultats effacer les admins
1092                                if ($eff_absa == 1) {                   
1093                                         echo "<br />"._T('csvspip:etape4.4.3')."<br>";
1094                                         if (count($TerrA_eff) > 0 OR count($TerrA_poub) >0) {
1095                                                        echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
1096                                                        foreach ($TerrA_eff as $Aee) { 
1097                                                                                        echo _T('csvspip:admin').$Aee['login']._T('csvspip: erreur').$Aee['erreur'];
1098                                                        }
1099                                                        echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
1100                                                        foreach ($TerrA_poub as $Aep) { 
1101                                                                                        echo _T('csvspip:admin').$Aep['login']._T('csvspip: erreur').$Aep['erreur'];
1102                                                        }
1103                                                  $err_total ++;
1104                                   }
1105                                         else { 
1106                                                                echo "<br />"._T('csvspip:suppression_debut').count($TresA_eff)._T('csvspip:comptes_admin_ok')."<br>";
1107                                                                echo "<br />"._T('csvspip:poubelle_debut').count($TresA_poub)._T('csvspip:comptes_admin_ok')."<br>";
1108                                         }
1109                                         if ($archivagea != 0) {
1110                                                        echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesA._T('csvspip:archivage_fin').$nom_rub_archivesA;
1111                                         } 
1112                                         if ($supprimer_articlesa == 1) {
1113                                                        echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesA._T('csvspip:suppression_fin')."<br>";
1114                                         }
1115                                         if (count ($TerrA_eff_accesgroupes) > 0) {
1116                                                        echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
1117                                                        foreach ($TerrA_eff_accesgroupes as $Aec) { 
1118                                                                                        echo _T('csvspip:err_eff_adm_accesgroupes').$Aec['login']._T('csvspip: erreur').$Aec['erreur'];
1119                                                        }
1120                                                        echo "</span>";
1121                                                        $err_total ++;
1122                                         }
1123                                         if (count ($TerrA_eff_rub_admins) > 0) {
1124                                                        echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
1125                                                        foreach ($TerrA_eff_rub_admins as $Aer) { 
1126                                                                                        echo _T('csvspip:err_eff_adm_rub').$Aer['login']._T('csvspip: erreur').$Aer['erreur'];
1127                                                        }
1128                                                        echo "</span>";
1129                                                        $err_total ++;                                                 
1130                                         }
1131/*
1132                                                        if ($ch_ssgrpe == 3 AND $extra_sup != 0 AND $extraa != 0) {  ?>                                 
1133                        <h3>Etape 4.3.3.1 : suppression des références aux administrateurs supprimés dans la table supplémentaire :</h3>
1134<?                                                       if (count($TerrA_eff_extra) >0) {              ?>
1135                        <span class="Cerreur">
1136                                        <h4>suppressions des références dans la table supplémentaire : administrateurs en erreur :</h4>
1137<?                                                          foreach ($TerrA_eff_extra as $Aefx) { ?>
1138<?                                                                                       print 'rédacteur = '.$Aefx['login'].' => erreur = '.$Aex['erreur']; ?><br>
1139<?                                                          }            ?>
1140                        </span>
1141<?                                                          $err_total ++;
1142                                                                 }
1143                                                                 else {  ?>
1144                                                                         <br>Suppression des références dans la table supplémentaire pour <? print count($TresA_eff_extra); ?> administrateurs = OK<br>
1145<?                                                       }
1146                                                        }                                       
1147*/
1148                                }
1149                               
1150// fin effacer les absents V 2.3
1151                                fin_cadre_couleur();                   
1152               
1153// étape 5 : si nécessaire intégration des admins comme administrateurs restreints de la rubrique de leur sous-groupe
1154//$id_rub_admin_defaut
1155                                if ($groupe_admins != '-1') {
1156                                         $Terr_adm_rub = array();
1157                                         $Tres_adm_rub = array();
1158                                                 $sql54 = spip_query("SELECT ss_groupe, nom, id_spip FROM tmp_auteurs WHERE LOWER(groupe) = '$groupe_admins'");
1159                                                 while ($data54 = spip_fetch_array($sql54)) {
1160                                                                         $login_adm_ec = strtolower($data54['nom']);
1161                                                                         $id_adm_ec = $data54['id_spip'];
1162                                                                         if ($_POST['rub_prof'] == 1) {
1163                                                                         if ($data54['ss_groupe'] != '') {
1164                                                                                                        $ss_grpe_ec = $data54['ss_groupe'];
1165                                                                          $sql55 = spip_query("SELECT id_rubrique FROM $Trubriques WHERE titre = '$ss_grpe_ec' LIMIT 1");
1166                                                                          $data55 = spip_fetch_array($sql55);
1167                                                                          $id_rubrique_adm_ec = $data55['id_rubrique'];                                                                                 
1168                                                                                         }
1169                                                                                         else {
1170                                                                                                                $id_rubrique_adm_ec = $id_rub_admin_defaut;
1171                                                                                                                $ss_grpe_ec = '';
1172                                                                                         }
1173                                                                         }
1174                                                                         $sql57 = spip_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");
1175                                                                         $data57 = spip_fetch_array($sql57);
1176                                                                         if ($data57['existe_adm_rub'] == 0) {
1177//print '<br>rubrique $ss_grpe_ec = '.$ss_grpe_ec.' $id_rubrique_adm_ec = '.$id_rubrique_adm_ec.'$id_adm_ec = '.$id_adm_ec;                                                             
1178                                                                                        spip_query("INSERT INTO $Tauteurs_rubriques (id_auteur, id_rubrique) VALUES ('$id_adm_ec', '$id_rubrique_adm_ec')");
1179                                                                                        if (mysql_error() != '') {
1180                                                                                         $Terr_adm_rub[] = array('login' => $login_adm_ec, 'rubrique' => $ss_grpe_ec, 'erreur' => mysql_error());
1181                                                                                }
1182                                                                                else {
1183                                                                                                 $Tres_adm_rub[] = $login_adm_ec;
1184                                                                                        }
1185                                                                         }
1186                                                 }
1187                                                 debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape5'));
1188//                                               echo "<h2>"._T('csvspip:titre_etape5')."</h2>";
1189                                           if (count($Terr_adm_rub) > 0) {
1190                                                                echo "<span class=\"Cerreur\">"._T('csvspip:err_admin_rubrique');
1191                                                          foreach ($Terr_adm_rub as $ear) { 
1192                                                                                                echo _T('csvspip:admin').$ear['login']._T('csvspip:rubrique_').$ear['rubrique']._T('csvspip: erreur').$ear['erreur']."<br>";
1193                                                                }       
1194                                                                echo "</span>";
1195                                                          $err_total ++;
1196                                                        }
1197                                                        else {
1198                                                                         print 'Attribution d\'une sous-rubrique pour '.count($Tres_adm_rub).' administrateurs restreints = OK<br>';
1199                                                        }
1200                                                        fin_cadre_couleur();
1201                                }
1202                                       
1203// Etape 6 : si nécessaire création d'un article par rubrique                                   
1204                                        if ($_POST['art_rub'] == 1 AND $_POST['rub_prof'] == 1) {
1205                                                 $Terr_art_rub = array();
1206                                                 $Tres_art_rub = array();
1207                                                 $sql57 = spip_query("SELECT ss_groupe, nom FROM tmp_auteurs WHERE groupe = '$groupe_admins' AND ss_groupe != '' GROUP BY ss_groupe");
1208                                                 while ($data57 = spip_fetch_array($sql57)) {
1209                                                                         $titre_rub_ec = $data57['ss_groupe'];
1210                                                                         $sql58 = spip_query("SELECT id_rubrique, id_parent, id_secteur FROM $Trubriques WHERE titre = '$titre_rub_ec' AND id_parent = '$rubrique_parent' LIMIT 1");
1211                                                                         $data58 = spip_fetch_array($sql58);
1212                                                                         $id_rub_ec = $data58['id_rubrique'];
1213                                                                         $id_parent_ec = $data58['id_parent'];
1214                                                                         $id_sect_ec = $data58['id_secteur'];
1215                                                                         $date_ec = date("Y-m-d H:i:s");
1216                                                                         $titre_ec = 'Bienvenue dans la rubrique '.$titre_rub_ec;
1217                                                                         $sql432 = spip_query("SELECT id_article FROM $Tarticles WHERE id_rubrique = '$id_rub_ec' AND titre = '$titre_ec' LIMIT 1");
1218                                                                         if (spip_num_rows($sql432) < 1) {
1219                                                                                         $data432 = spip_fetch_array($sql432);
1220                                                                                         spip_query("INSERT INTO $Tarticles (id_article, id_rubrique, id_secteur, titre, date, statut ) VALUES ('', '$id_rub_ec', '$id_sect_ec', '$titre_ec', '$date_ec', 'publie')");
1221                                                                         if (mysql_error() != '') {
1222                                                                                         $Terr_art_rub[] = array('rubrique' => $titre_rub_ec, 'erreur' => mysql_error());
1223                                                                         }
1224                                                                         else {
1225                                                                                                 $Tres_art_rub[] = $titre_rub_ec;
1226                                                                         }
1227                                                                         }
1228                                                 }
1229                                                 debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", false, "", _T('csvspip:titre_etape6'));
1230//                                               echo "<h3>"._T('csvspip:titre_etape6')."</h3>";
1231                                           if (count($Terr_art_rub) > 0) {
1232                                                                echo "<span class=\"Cerreur\">"._T('csvspip:err_article');
1233                                                          foreach ($Terr_art_rub as $eart) { 
1234                                                                                          echo _T('csvspip:rubrique_').$eart['rubrique']._T('csvspip:erreur').$eart['erreur']."<br>";
1235                                                          }     
1236                                                                echo "</span>";
1237                                                          $err_total ++;
1238                                                        }
1239                                                        else {
1240                                                                         echo _T('csvspip:ok_etape6_debut').count($Tres_art_rub)._T('csvspip:ok_etape6_fin')."<br>";
1241                                                        }
1242                                                        fin_cadre_couleur();
1243                                }
1244                                       
1245                                       
1246                                       
1247                                       
1248// suppression de la table temporaire
1249                                        if ($err_total == 0) { 
1250//                                               spip_query("DROP TABLE tmp_auteurs");
1251                                        }
1252                                       
1253//                                      fin_cadre_trait_couleur();
1254    }
1255// FIN TRAITEMENT DES DONNEES
1256
1257
1258// Formulaire de saisie du fichier CSV et des options de config         
1259                else {
1260echo "<script language=\"JavaScript\"> ";
1261echo "                          function aff_masq(id_elem, vis) { ";
1262echo "                                                           vis == 0 ? s_vis = 'none' : s_vis = 'block'; ";
1263echo "                                                           document.getElementById(id_elem).style.display = s_vis; ";
1264//echo "                                                                 document.getElementById(id_elem).style.display = s_vis; ";
1265echo "                                                           this.checked = 'checked'; ";                   
1266echo "                          }";
1267echo "</script>";
1268
1269//         debut_cadre_formulaire();
1270         echo "\r\n<form name=\"csv2spip\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."?exec=csv2spip\" method=\"post\" onsubmit=\"return (verifSaisie());\">";
1271                 debut_cadre_couleur("cal-today.gif", false, "", _T('csvspip:titre_choix_fichier'));
1272         echo "<strong>"._T('csvspip:choix_fichier')."</strong><input name=\"userfile\" type=\"file\">";
1273                                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_redac')."</strong><input type=\"text\" name=\"groupe_redacs\" value=\"REDACTEURS\">";
1274                                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_admin')."</strong><input type=\"text\" name=\"groupe_admins\" value=\"ADMINS\">";
1275                                 echo "<br><br /><strong>"._T('csvspip:nom_groupe_visit')."</strong><input type=\"text\" name=\"groupe_visits\" value=\"VISITEURS\">";
1276         echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_nom_groupe_admin')."</span>";           
1277                                 
1278                                 fin_cadre_couleur();
1279                                 debut_cadre_couleur("mot-cle-24.gif", false, "", _T('csvspip:options_maj'));
1280                                 echo "<strong>"._T('csvspip:maj_utils')."</strong>";
1281                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_gene\" value=\"1\"  checked=\"checked\" onClick=\"aff_masq('maj_avance', 1);\">"; 
1282                 echo "<input type=\"radio\" name=\"maj_gene\" value=\"0\" onClick=\"aff_masq('maj_avance', 0);\">"._T('csvspip:non');
1283         echo "<div id=\"maj_avance\" class=\"cadre\">";
1284                 echo "<br /><strong>"._T('csvspip:maj_mdp')."</strong>"; 
1285                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_mdp\" value=\"1\"  checked=\"checked\">"; 
1286                 echo "<input type=\"radio\" name=\"maj_mdp\" value=\"0\">"._T('csvspip:non');
1287                                 echo "<br /><br /><strong>"._T('csvspip:maj_grpes')."</strong>";
1288                                 echo "<ul style=\"padding: 0px; margin: 0px 0px 0px 30px;\">";
1289                                 echo "<li style=\"list-style-image: url('img_pack/redac-12.gif');\"><strong>"._T('csvspip:redacs').":</strong> ";
1290                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_grpes_redac\" value=\"1\" checked=\"checked\">";
1291                                 echo "<input type=\"radio\" name=\"maj_grpes_redac\" value=\"0\">"._T('csvspip:non');
1292                                 echo "</li>";
1293                                 echo "<li style=\"list-style-image: url('img_pack/admin-12.gif');\"><strong>"._T('csvspip:admins').":</strong> ";
1294                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_grpes_admin\" value=\"1\" checked=\"checked\">";
1295                                 echo "<input type=\"radio\" name=\"maj_grpes_admin\" value=\"0\">"._T('csvspip:non'); 
1296                                 echo "</li>";
1297                                 echo "<li style=\"list-style-image: url('img_pack/visit-12.gif');\"><strong>"._T('csvspip:visits').":</strong> ";
1298                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_grpes_visit\" value=\"1\" checked=\"checked\" >";
1299                                 echo "<input type=\"radio\" name=\"maj_grpes_visit\" value=\"0\">"._T('csvspip:non');
1300                                 echo "</li>";                           
1301                 echo "</ul>";
1302                                 echo "<span style=\"font-size: 10px;\">"._T('csvspip:help_maj_grpes')."</span><br>"; 
1303                                 echo "<br /><img src=\"img_pack/admin-12.gif\" alt=\"admins uniquement\"> <strong>"._T('csvspip:maj_rub_adm')."</strong>";
1304         echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"1\" checked=\"checked\">"._T('csvspip:oui');   
1305         echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"0\">"._T('csvspip:non'); 
1306                                 echo "<br /><span style=\"font-size: 10px;\">"._T('csvspip:help_maj_rub_adm')."</span><br>"; 
1307                                 echo "</div>";                         
1308                                 
1309                                 fin_cadre_couleur();
1310                                 debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/supprimer_utilisateurs-24.gif", false, "", _T('csvspip:suppr_absents'));
1311                 echo "<strong>"._T('csvspip:suppr_utilis')."</strong><ul style=\"padding: 0px; margin: 0px 0px 0px 30px;\">";
1312                                 echo "<li style=\"list-style-image: url('img_pack/redac-12.gif');\">"._T('csvspip:suppr_redac')."";
1313                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_redac\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
1314                                 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');
1315                                 echo "</li>";
1316                                 echo "<li style=\"list-style-image: url('img_pack/admin-12.gif');\">"._T('csvspip:suppr_admin');
1317                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_admin\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
1318                                 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'); 
1319                                 echo "</li>";
1320                                 echo "<li style=\"list-style-image: url('img_pack/visit-12.gif');\">"._T('csvspip:suppr_visit')."";
1321                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_visit\" value=\"1\" >";
1322                                 echo "<input type=\"radio\" name=\"eff_visit\" value=\"0\" checked=\"checked\" >"._T('csvspip:non');
1323                                 echo "</li>";                           
1324                 echo "</ul><span style=\"font-size: 10px;\">"._T('csvspip:help_suppr_redac')."</span><br>"; 
1325                 echo "<div style=\"display: none\" id=\"archi\" class=\"cadre\"><br /><strong>"._T('csvspip:suprr_articles')."</strong>";
1326         echo _T('csvspip:oui')."<input type=\"radio\" name=\"supprimer_articles\" value=\"1\" onClick=\"aff_masq('transfert', 0);\">";   
1327         echo "<input type=\"radio\" name=\"supprimer_articles\" value=\"0\" checked=\"checked\" onClick=\"aff_masq('transfert', 1);\">"._T('csvspip:non'); 
1328         echo "<div id=\"transfert\" class=\"cadre\"><br><strong>"._T('csvspip:transfert_archive')."</strong>";
1329         echo "<input type=\"radio\" name=\"archivage\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_transfert', 1);\">"._T('csvspip:oui');   
1330         echo "<input type=\"radio\" name=\"archivage\" value=\"0\" onClick=\"aff_masq('rub_transfert', 0);\">"._T('csvspip:non'); 
1331         echo "<div id=\"rub_transfert\" class=\"cadre\"><br>";
1332         $sql9 = spip_query("SELECT COUNT(*) AS nb_rubriques FROM $Trubriques");
1333                                 $data9 = spip_fetch_array($sql9);
1334                                 $nb_rubriques = $data9['nb_rubriques'];
1335                                 $annee = date("Y"); 
1336                     echo "<strong>"._T('csvspip:nom_rubrique_archives')."</strong>";
1337                                 echo "<input type=\"text\" name=\"rub_archivage\" value=\"Archives année ".($annee - 1).'-'.$annee."\" style=\"width: 200px;\">";
1338                         echo "";
1339                           if ($nb_rubriques > 0) {             
1340                            echo"<br><br><strong>"._T('csvspip:choix_parent_archive')."</strong>"; 
1341                                    $sql10 = spip_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1342                        echo "<select name=\"rub_parent_archivage\">";
1343                        echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1344                                               
1345                                                while ($data10 = spip_fetch_array($sql10)) { 
1346                                                             echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
1347                                          }                                                                             
1348                          echo "</select><br>";
1349                         }
1350                         else { 
1351                        echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
1352                         }             
1353                         echo "</div></div>";
1354         echo "<br><br><strong>"._T('csvspip:traitement_supprimes')."</strong><br>";
1355         echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"1\">"._T('csvspip:auteurs_poubelle')."  <br>"; 
1356         echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"0\" checked=\"checked\">"._T('csvspip:attribuer_articles'); 
1357         echo "<input type=\"text\" name=\"nom_auteur_archives\" value=\"archives".($annee - 1)."-".$annee."\">"._T('csvspip:passe_egale_login');
1358                         echo "</div>";
1359                         fin_cadre_couleur();
1360                         debut_cadre_couleur("rubrique-24.gif", false, "", _T('csvspip:creation_rubriques'));
1361//                       echo "<h3>"._T('csvspip:creation_rubriques')."</h3>";
1362                         echo "<strong>"._T('csvspip:rubrique_ss_groupes')."</strong>"; 
1363                         echo _T('csvspip:oui')."<input type=\"radio\" name=\"rub_prof\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_adm', 1);\">";   
1364                         echo "<input type=\"radio\" name=\"rub_prof\" value=\"0\" onClick=\"aff_masq('rub_adm', 0);\">"._T('csvspip:non');
1365                         echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:profs_admins')."</span>";
1366                         echo "<br /><div id=\"rub_adm\" class=\"cadre\">";
1367                         if ($nb_rubriques > 0) {               
1368                                  echo "<br /><strong>"._T('csvspip:choix_parent_rubriques')."</strong>"; 
1369                echo "<select name=\"rub_parent\">";
1370                echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1371                                  $sql10 = spip_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1372                                        while ($data10 = spip_fetch_array($sql10)) { 
1373                                                          echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
1374                                        }       
1375                      echo "</select>";
1376                         }
1377                         else { 
1378                                        echo "<br>"._T('csvspip:pas_de_rubriques');
1379                         }             
1380                         echo "<br /><br /><strong>"._T('csvspip:article_rubrique')."</strong>"; 
1381       echo _T('csvspip:oui')."<input type=\"radio\" name=\"art_rub\" value=\"1\">";   
1382       echo "<input type=\"radio\" name=\"art_rub\" value=\"0\" checked=\"checked\">"._T('csvspip:non');
1383                         echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_articles')."</span>";
1384                         echo "<br /></div>";
1385                         echo "<br /><div id=\"rub_adm_defaut\">";
1386                         echo "<strong>"._T('csvspip:choix_rub_admin_defaut')."</strong>";
1387                         echo "<input type=\"text\" name=\"rub_admin_defaut\" value=\""._T('csvspip:nom_rub_admin_defaut')."\" style=\"width: 200px;\">";
1388                         echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_rub_admin_defaut')."</span>";
1389                         if ($nb_rubriques > 0) {               
1390                                  echo "<br/><br/><strong>"._T('csvspip:choix_parent_rub_admin_defaut')."</strong>"; 
1391                echo "<select name=\"rub_parent_admin_defaut\">";
1392                echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1393                                  $sql108 = spip_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1394                                        while ($data108 = spip_fetch_array($sql108)) { 
1395                                                          echo "<option value=\"".$data108['id_rubrique'].",".$data108['id_secteur']."\">".$data108['titre']."</option>";
1396                                        }       
1397                      echo "</select><br />";
1398                         }
1399                         else { 
1400                                        echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
1401                         }             
1402                         echo "</div>"; 
1403                         fin_cadre_couleur();
1404                 debut_cadre_couleur("../"._DIR_PLUGIN_CSV2SPIP."/img_pack/groupe-24.png", false, "", _T('csvspip:acces_groupes'));
1405         echo "<strong>"._T('csvspip:option_acces_groupes')."</strong>"; 
1406/*
1407                         $sql11 = spip_query("SELECT valeur FROM spip_meta WHERE nom = 'plugin' LIMIT 1");
1408                         $result11 = spip_fetch_array($sql11);
1409                         $ch_meta = $result11['valeur'];
1410                         $Tch_meta = explode(',', $ch_meta);
1411                // si le plugin acces_groupes est activé
1412                         if (in_array('acces_groupes', $Tch_meta)) {
1413*/                       
1414                         if ($plugin_accesgroupes == 1) {
1415                 echo "<ul style=\"padding: 0px; margin: 0px 0px 0px 30px;\">";
1416                                 echo "<li style=\"list-style-image: url('img_pack/redac-12.gif');\">"._T('csvspip:ss_groupes_redac')." ";
1417                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"ss_groupes_redac\" value=\"1\">";
1418                                 echo "<input type=\"radio\" name=\"ss_groupes_redac\" value=\"0\" checked=\"checked\">"._T('csvspip:non')."</li>";
1419                                 echo "<li style=\"list-style-image: url('img_pack/admin-12.gif');\">"._T('csvspip:ss_groupes_admin')." ";
1420                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"ss_groupes_admin\" value=\"1\">";
1421                                 echo "<input type=\"radio\" name=\"ss_groupes_admin\" value=\"0\" checked=\"checked\">"._T('csvspip:non')."</li>"; 
1422                                 echo "<li style=\"list-style-image: url('img_pack/visit-12.gif');\">"._T('csvspip:ss_groupes_visit')." ";
1423                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"ss_groupes_visit\" value=\"1\" >";
1424                                 echo "<input type=\"radio\" name=\"ss_groupes_visit\" value=\"0\" checked=\"checked\" >"._T('csvspip:non')."</li>";
1425                 echo "</ul>";
1426                                         echo "<span style=\"font-size: 10px;\">"._T('csvspip:help_acces_groupes')."</span>";
1427                                         echo "<br /><br /><strong>"._T('csvspip:ss_grpes_reinitialiser')."</strong>";
1428                                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"ss_grpes_reinitialiser\" value=\"1\" checked=\"checked\">";
1429                                 echo "<input type=\"radio\" name=\"ss_grpes_reinitialiser\" value=\"0\">"._T('csvspip:non')."<br />";
1430                                          echo "<span style=\"font-size: 10px;\">"._T('csvspip:help_reinitialiser')."</span>";
1431/*                       
1432                 echo _T('csvspip:oui')."<input type=\"radio\" name=\"acces_groupes\" value=\"1\"  checked=\"checked\">";
1433                 echo "<input type=\"radio\" name=\"acces_groupes\" value=\"0\">"._T('csvspip:non');
1434*/                                       
1435                         }
1436                         else {
1437                                                echo "<br /><span class=\"Cerreur\">"._T('csvspip:abs_acces_groupes')."</span><br />";
1438                         }
1439                 fin_cadre_couleur();
1440                         
1441         echo "<input type=\"submit\" value=\""._T('csvspip:lancer')."\" style=\"background-color: #FF8000; font-weight: bold; font-size: 14px;\">";
1442                 echo "</form><br><br />";
1443
1444//                       fin_cadre_trait_couleur();
1445                         
1446                         debut_cadre_trait_couleur("fiche-perso-24.gif", false, "", _T('csvspip:titre_help')); 
1447                // inclure le fichier help de la langue
1448                         include(_DIR_PLUGIN_CSV2SPIP.'lang/csvspip_help_'.$GLOBALS['langue_site'].'.php');
1449                         echo "<a href=\""._DIR_PLUGIN_CSV2SPIP."csv2spip_modele.csv\">csv2spip_modele.csv</a>";
1450//                       print '<br>globals renvoie :<br>';
1451//                       print $GLOBALS['langue_site'];
1452                         fin_cadre_trait_couleur();
1453
1454                } 
1455               
1456//              fin_cadre_formulaire();
1457               
1458//              fin_droite();
1459                               
1460        echo fin_grand_cadre(true),fin_page();
1461}
1462                 
1463                 
1464
1465?>
Note: See TracBrowser for help on using the repository browser.