source: spip-zone/_plugins_/csv2spip/branches/2_1/exec/csv2spip.php @ 55426

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

depot initial version 2_1 stable

File size: 56.8 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 => 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('auth/sha256.inc');
13
14// a partir de SPIP 2.1 il faut crypter les pass en sha256 a l place du md5 des version precedentes
15// commit de creation de la version 2.1: 14864 cf http://core.spip.org/projects/spip/repository/revisions/14864
16function csv2spip_crypt_pass($input) {                 
17        global $spip_version_code;
18    if ($spip_version_code < 14864)
19                return md5($input);
20        else return sha256($input);
21}
22
23
24function exec_csv2spip() {
25        global $spip_version_code;
26
27    $commencer_page = charger_fonction('commencer_page', 'inc');
28          echo $commencer_page(_T('csvspip:titre_page'));
29
30    include_spip('inc/autoriser');
31    if(!autoriser('webmestre')) {
32        include_spip('inc/minipres');
33        echo minipres();
34        die(_T('csvspip:reserve_webmestres'));
35    }
36   
37    include_spip('base/abstract_sql');
38   
39     echo "\r\n<style type=\"text/css\">                                 
40        \r\n.Cerreur { background-color: #f33; display: block; padding: 10px; }
41        \r\n.Cok { width: 47%; background-color: #ddd; display: block; padding: 10px; }
42        \r\n.Tpetit { font-size: 75%; }
43        \r\n.ss_cadre { background-color: #eee; margin: 5px; padding: 5px; }
44        \r\n</style>";
45         
46    echo gros_titre(_T('csvspip:titre_page'), '',false);
47    echo debut_grand_cadre(true);
48
49    echo debut_gauche('',true);
50    echo debut_boite_info(true);
51    echo "<strong>"._T('csvspip:titre_info')."</strong><br /><br />";
52    echo "\r\n"._T('csvspip:help_info');
53    if (preg_match('/,csv2spip\(([\d\.]+?)\),/', $GLOBALS['meta']['plugin_header'], $match) > 0)
54    $version_script = $match[1];
55    echo "<br /><br /><strong>"._T('csvspip:version')."</strong>".$version_script;
56    if ($_FILES['userfile']['name'] != '') { 
57                                echo "<br /><br /><a href=\"".$PHP_SELF."?exec=csv2spip\"><img src=\"".find_in_path('images/cal-today.gif')."\"> "._T('csvspip:retour_saisie')."</a>";
58                }                               
59    echo fin_boite_info(true);
60
61                echo debut_droite('',true);
62                                 
63// TRAITEMENT DES DONNEES ENVOYEES PAR LE FORMULAIRE DE SAISIE
64
65// Etape 0 : définition des noms de tables SPIP
66        $Trubriques = 'spip_rubriques';
67        $Tauteurs = 'spip_auteurs';
68        $Tauteurs_rubriques = 'spip_auteurs_rubriques';
69        $Tarticles =  'spip_articles';
70        $Tauteurs_articles = 'spip_auteurs_articles';
71        $Taccesgroupes_groupes = 'spip_accesgroupes_groupes';
72        $Taccesgroupes_auteurs = 'spip_accesgroupes_auteurs';
73       
74        $err_total = 0;
75
76// étape 1 : téléchargement du fichier sur le serveur           
77  // si $_POST d'un fichier on lance le traitement => if maxi long!!!
78    if ($_FILES['userfile']['name'] != '') { 
79                    echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape1'));
80        if ($_FILES['userfile']['error'] != 0) { 
81                        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>";                                                                                     
82                        echo fin_cadre_couleur(true);
83                        exit();
84        } 
85        $nom_fich = _DIR_TMP."tmp_fich.csv";   
86        if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $nom_fich)) { 
87            echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape1.2_debut').$_FILES['userfile']['tmp_name']._T('csvspip:err_etape1.2_fin').$nom_fich."</span>";
88            exit();
89        }
90        $tmp_csv_slh = addslashes($nom_fich);   
91        echo "<br>"._T('csvspip:ok_etape1').$_FILES['userfile']['name']."<br>";
92        echo fin_cadre_couleur(true);
93       
94       
95        // étape 2 : passage des données du fichier dans la base temporaire                     
96        echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape2'));
97        if (!sql_query("TRUNCATE TABLE spip_tmp_csv2spip")) { 
98                 echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.1')."</span>";
99                 echo fin_cadre_couleur(true);
100                 exit();
101        }
102        else {
103            echo "<br>"._T('csvspip:ok_etape2.1')."<br>";
104        }
105       
106        $ok = 0;
107        $Tlignes = file($nom_fich);
108        //print '<br>Tlignes départ = ';
109        //print_r($Tlignes);                           
110        $Terr_sql_temp = array();
111        $ligne1 = 0;
112        foreach ($Tlignes as $l) {
113            $l = str_replace('"', '', $l);
114            $Tuser_ec = explode(';', $l);
115          // traiter la première ligne pour récupérer les noms des champs dc la position des colonnes
116            if ($ligne1 == 0) {
117                $Tchamps = array();
118                $Tref_champs = array('login', 'prenom', 'pass', 'groupe', 'ss_groupe', 'pseudo_spip', 'email');
119                foreach ($Tuser_ec as $champ_ec) {
120                    $champ_ec = strtolower(trim($champ_ec));
121                    if (in_array($champ_ec, $Tref_champs)) {
122                        $Tchamps[] = $champ_ec;
123                    }
124                }
125                        //echo '<br><br>$Tchamps = ';
126                        //print_r($Tchamps);                                   
127                if (count($Tchamps) < 7) {
128                    $Tvides = array();
129                    foreach ($Tref_champs as $cref) {
130                        if (!in_array($cref, $Tchamps)) {
131                            $Tvides[] = $cref;
132                        }
133                    } 
134                    echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.1');
135                    foreach ($Tvides as $cec) {
136                        echo " $cec ";
137                    } 
138                    echo "</span>";
139                    exit;
140                }
141            }                                                           
142            for ($i = 0; $i < 7; $i ++) {
143                $var = $Tchamps[$i].'_ec';
144                $$var = trim($Tuser_ec[$i]);
145                 //echo "<br>$$Tchamps[$i].'_ec' = $Tuser_ec[$i]";
146            } 
147            if ($pass_ec == '') {
148                $pass_ec = $login_ec;
149            }
150          // ne pas intégrer la première ligne comme un utilisateur
151            if ($ligne1 == 0) {
152                $ligne1 = 1;
153            }
154            else {
155              // passage des lignes du fichier dans la table $tmp_csv2spip
156                sql_query("INSERT INTO spip_tmp_csv2spip (id, nom, prenom, groupe, ss_groupe, mdp, mel, pseudo_spip)
157                                VALUES ('', '$login_ec', '$prenom_ec', '$groupe_ec', '$ss_groupe_ec', '$pass_ec', '$email_ec', '$pseudo_spip_ec')");
158            }
159            if (mysql_error() != '') {
160                $Terr_sql_temp[] = array('nom' => $nom_ec, 'erreur' => mysql_error());
161            }
162        }
163        if (count($Terr_sql_tmp) > 0) { 
164                echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape2.2');
165                foreach ($Terr_sql_temp as $e) {
166                    echo "<br>"._T('csvspip:utilisateur').$e['nom']._T('csvspip:erreur').$e['erreur'];
167            } 
168            echo "</span>";
169            $err_total ++;
170        }                       
171        else {
172            echo "<br>"._T('csvspip:ok_etape2.2')."<br>";
173        }
174        echo fin_cadre_couleur(true);
175       
176        // étape 3 : si nécessaire création des rubriques pour les admins restreints et des groupes pour accesgroupes
177        $_POST['groupe_admins'] != '' ? $groupe_admins = strtolower($_POST['groupe_admins']) : $groupe_admins = '-1';
178        $_POST['groupe_visits'] != '' ? $groupe_visits = strtolower($_POST['groupe_visits']) : $groupe_visits = '-1';
179        $_POST['groupe_redacs'] != '' ? $groupe_redacs = strtolower($_POST['groupe_redacs']) : $groupe_redacs = '-1';
180        echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape3'));
181       
182        // étape 3.1 : création des rubriques pour les admins restreints
183        if ($_POST['rub_prof'] == 1 AND $groupe_admins != '-1') {
184            $Terr_rub = array();
185                $Tres_rub = array();
186                $date_rub_ec = date("Y-m-j H:i:s");
187                $Tch_rub = explode(',', $_POST['rub_parent']);
188                $rubrique_parent = $Tch_rub[0];
189                $secteur = $Tch_rub[1];
190                $sql8 = sql_query("SELECT ss_groupe FROM spip_tmp_csv2spip WHERE LOWER(groupe) = '$groupe_admins' AND ss_groupe != '' GROUP BY ss_groupe");
191                if (isset($sql8)) {
192                while ($data8 = mysql_fetch_array($sql8)) {
193                            $rubrique_ec = $data8['ss_groupe']; 
194                        $sql7 = sql_query("SELECT COUNT(*) AS rub_existe FROM $Trubriques WHERE titre = '$rubrique_ec' LIMIT 1");
195                        $data7 = mysql_fetch_array($sql7);
196                        if ($data7['rub_existe'] > 0) {
197        //print '<br>etape3 : rubrique '.$rubrique_ec.' existe';
198                            continue;
199                        }
200                        sql_query("INSERT INTO $Trubriques (id_rubrique, id_parent, titre, id_secteur, statut, date) VALUES ('', '$rubrique_parent', '$rubrique_ec', '$secteur', 'publie', '$date_rub_ec')" );
201                        if (mysql_error() != '') {
202                            $Terr_rub[] = array('ss_groupe' => $rubrique_ec, 'erreur' => mysql_error());
203                        }
204                                else {
205                                    $Tres_rub[] = $rubrique_ec;
206                                }
207                        }
208                }               
209                if (count($Terr_rub) > 0) { 
210                    echo "<br><span class=\"Cerreur\">"._T('csvspip:err_etape3.1');
211                        foreach ($Terr_rub as $er) {
212                            echo "<br>"._T('csvspip:rubrique').$er['ss_groupe']._T('csvspip:erreur').$er['erreur'];
213                        }
214                        echo "</span>";
215                $err_total ++;
216                }                       
217                else {
218                    echo "<br>"._T('csvspip:ok_etape3.1_debut').count($Tres_rub)._T('csvspip:ok_etape3.1_fin')."<br>";
219                }
220        }
221        // gestion de la rubrique par défaut des admins restreints
222        if ($groupe_admins != '-1') {
223          // faut-il créer la rubrique par défaut?
224                $cree_rub_adm_defaut = 0;
225                if ($_POST['rub_prof'] == 0) {
226                    $sql20 = sql_query("SELECT COUNT(*) AS nb_admins FROM spip_tmp_csv2spip WHERE LOWER(groupe) = '$groupe_admins'");
227                        $rows20 = mysql_fetch_array($sql20);
228                        if ($rows20['nb_admins'] > 0) {
229                            $cree_rub_adm_defaut = 1;
230                        }                                                       
231                }
232                else {
233                    $sql19 = sql_query("SELECT COUNT(*) AS nb_sans_ssgrpe FROM spip_tmp_csv2spip WHERE LOWER(groupe) = '$groupe_admins' AND ss_groupe = ''");
234                        $rows19 = mysql_fetch_array($sql19);
235                        if ($rows19['nb_sans_ssgrpe'] > 0) {
236                            $cree_rub_adm_defaut = 1;
237                        }
238                }
239        //print '<br>$cree_rub_adm_defaut       = '.$cree_rub_adm_defaut;
240             // création de la rubrique par défaut
241                if ($cree_rub_adm_defaut == 1) {
242                    $date_rub_defaut = date("Y-m-j H:i:s");
243                        $Tch_rub_defaut = explode(',', $_POST['rub_parent_admin_defaut']);
244                        $rubrique_parent_defaut = $Tch_rub_defaut[0];
245                        $secteur_defaut = $Tch_rub_defaut[1];
246                        $rubrique_defaut = ($_POST['rub_admin_defaut'] != '' ? $_POST['rub_admin_defaut'] : _T('csvspip:nom_rub_admin_defaut') );
247                        $sq21 = sql_query("SELECT COUNT(*) AS rub_existe FROM $Trubriques WHERE titre = '$rubrique_defaut' LIMIT 1");
248                        $rows21 = mysql_fetch_array($sq21);
249                        if ($rows21['rub_existe'] < 1) {
250                            sql_query("INSERT INTO $Trubriques (id_rubrique, id_parent, titre, id_secteur, statut, date)
251                                                    VALUES ('', '$rubrique_parent_defaut', '$rubrique_defaut', '$secteur_defaut', 'prive', '$date_rub_defaut')" );
252                                if (mysql_error() != '') {
253                                    echo "<br><span class=\"Cerreur\">"._T('csvspip:err_cree_rub_defaut').mysql_error()."</span>";
254                                        $err_total ++;
255                                }
256                        else {
257                            echo "<br>"._T('csvspip:ok_cree_rub_defaut').$rubrique_defaut."<br />";
258                                        $id_rub_admin_defaut = mysql_insert_id();
259                        }
260                        }
261                        else {
262                            $sql1001 = sql_query("SELECT id_rubrique FROM $Trubriques WHERE titre = '$rubrique_defaut' LIMIT 1");
263                                $rows1001 = mysql_fetch_array($sql1001);
264                                $id_rub_admin_defaut = $rows1001['id_rubrique'];
265                        }
266                }
267        }
268        echo fin_cadre_couleur(true);
269       
270        // étape 4 : intégration des rédacteurs, des visiteurs et des administrateurs                                                   
271        // redacteurs
272        $Tres_nvx = array();
273        $Terr_nvx = array();
274        $Tres_maj = array();
275        $Terr_maj = array();
276        $Tres_eff = array();
277        $Terr_eff = array();
278        $Tres_poub = array();
279        $Terr_poub = array();
280        $TresR_ss_grpe = array();
281        $TerrR_ss_grpe = array();
282        $TerrR_eff_accesgroupes = array();
283       
284        // admins
285        $TresA_nvx = array();
286        $TerrA_nvx = array();
287        $TresA_maj = array();
288        $TerrA_maj = array();
289        $TresA_eff = array();
290        $TerrA_eff = array();
291        $TresA_ss_grpe = array();
292        $TerrA_ss_grpe = array();
293        $TerrA_eff_accesgroupes = array();
294        $TerrA_eff_rub_admins = array();
295       
296        // visiteurs
297        $TresV_nvx = array();
298        $TerrV_nvx = array();
299        $TresV_maj = array();
300        $TerrV_maj = array();
301        $TresV_eff = array();
302        $TerrV_eff = array();
303        $TresV_ss_grpe = array();
304        $TerrV_ss_grpe = array();
305        $TerrV_eff_accesgroupes = array();
306       
307        // communs
308        $Tres_maj_grpacces = array();
309        $Terr_maj_grpacces = array();
310        $Tres_maj_rub_admin = array();
311        $Terr_maj_rub_admin = array();
312       
313        // LA boucle : gère 1 à 1 les utilisateurs de spip_tmp_csv2spip en fonction des options => TOUS !
314        $sql157 = sql_query("SELECT * FROM spip_tmp_csv2spip");
315        while ($data157 = mysql_fetch_array($sql157)) {
316            if ($data157['pseudo_spip'] != '') {
317                    $nom = ucwords($data157['pseudo_spip']);
318        //print '<br>pseudo_spip existe : $data157[pseudo_spip] = '.$data157['pseudo_spip'].' $nom = '.$nom;                                                                   
319                }
320                else {
321                    $nom = strtoupper($data157['nom']).' '.ucfirst($data157['prenom']);
322                }
323        //print '<br>$nom = '.$nom.' $data157[nom] = '.$data157['nom'].' $data157[pseudo_spip] = _'.$data157['pseudo_spip'].'_';                                                         
324                $groupe = strtolower($data157['groupe']);
325                $ss_groupe = $data157['ss_groupe'];
326                $pass = $data157['mdp'];
327                $mel = $data157['mel'];
328                $login = $data157['nom'];
329                $login_minuscules = strtolower($login);
330                $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $statut = '1comite' : $statut = '6forum') : $statut = '0minirezo';
331                                 
332                $sql423 = sql_query("SELECT COUNT(*) AS nb_user FROM $Tauteurs WHERE LOWER(login) = '$login_minuscules' LIMIT 1");
333                $data423 = mysql_fetch_array($sql423);                                                   
334                $nb_user = $data423['nb_user']; 
335        // 4.1 : l'utilisateur n'est pas inscrit dans la base spip_auteurs
336                if ($nb_user < 1) {
337                    $pass = csv2spip_crypt_pass($pass);
338                        sql_query("INSERT INTO $Tauteurs (id_auteur, nom, email, login, pass, statut) VALUES ('', '$nom', '$mel', '$login', '$pass', '$statut')");
339                        $id_spip = mysql_insert_id();
340                        if (mysql_error() == '') {
341                  // Mettre a jour les fichiers .htpasswd et .htpasswd-admin
342                    include_spip("inc/acces");
343                    ecrire_acces();
344                  // insertion de l'id_spip dans la base tmp
345                            sql_query("UPDATE spip_tmp_csv2spip SET id_spip = '$id_spip' WHERE LOWER(nom) = '$login_minuscules' LIMIT 1");
346                            $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_nvx[] = $login: $TresV_nvx[] = $login) : $TresA_nvx[] = $login;
347                        }
348                        else {
349                        $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());
350                    }
351            }
352            else {
353        // 4.2 : l'utilisateur est déja inscrit dans la base spip_auteurs
354             // trouver l'id_auteur spip
355                    $sql44 = sql_query("SELECT id_auteur FROM $Tauteurs WHERE LOWER(login) = '$login_minuscules' LIMIT 1");
356                    if (mysql_num_rows($sql44) > 0) {
357                        $result44 = mysql_fetch_array($sql44);
358                            $id_spip = $result44['id_auteur'];
359                                sql_query("UPDATE spip_tmp_csv2spip SET id_spip = '$id_spip' WHERE LOWER(nom) = '$login_minuscules' LIMIT 1");                                                                                   
360                    } 
361          // faut il faire la maj des existants ?
362                        if ($_POST['maj_gene'] == 1) {
363                                  // 4.2.1 faire la maj des infos perso si nécessaire
364                            if ($_POST['maj_mdp'] == 1) {
365                                $pass = csv2spip_crypt_pass($pass);
366                                        sql_query("UPDATE $Tauteurs SET nom = '$nom', email = '$mel', statut = '$statut', pass = '$pass', alea_actuel = '' WHERE id_auteur = $id_spip LIMIT 1");
367                                        if (mysql_error() == '') {
368                                    $groupe != $groupe_admins ? ($groupe != $groupe_visits ? $Tres_maj[] = $login : $TresV_maj[] = $login) : $TresA_maj[] = $login;
369                                }
370                                else {
371                                    $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());
372                                }
373                                }
374
375                  // 4.2.3 suppression des droits sur les rubriques administrées si nécessaire
376                            if ($_POST['maj_rub_adm'] == 1 AND $statut == '0minirezo') {
377                                sql_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_spip");
378                                    if (mysql_error() == '') {
379                                    $Tres_maj_rub_admin[] = $login;
380                                }
381                                else {
382                                    $Terr_maj_rub_admin[] = array('login' => $login, 'erreur' => mysql_error());
383                                }
384                            }
385                    }
386            }
387       
388        }  // fin du while traitant les comptes 1 à 1
389       
390    // 4.4 : gestion des suppressions
391    // VERSION 2.3 de effacer les absents
392        $ch_maj = 0;
393        $eff_absv = 0;
394        $eff_absr = 0;
395        $eff_absa = 0;
396        if ($_POST['eff_visit'] == 1) {
397    //                                   $ch_maj = 1;
398            $eff_absv = 1;
399        }
400        if ($_POST['eff_redac'] == 1) {
401            $ch_maj = 1;
402            $eff_absr = 1;
403        }
404        if ($_POST['eff_admin'] == 1) {
405            $ch_maj = 1;
406            $eff_absa = 1;
407        }
408
409    // paramétrage auteur et dossier d'archive
410        if ($ch_maj !== 0) {
411                  // 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)
412            if ($_POST['auteurs_poubelle'] != 1) {
413                    $nom_auteur_archives = $_POST['nom_auteur_archives'];
414                        $sql615 = sql_query("SELECT id_auteur FROM $Tauteurs WHERE login = '$nom_auteur_archives' LIMIT 1");
415                        if (mysql_num_rows($sql615) > 0) {
416                            $data615 = mysql_fetch_array($sql615);
417                                $id_auteur_archives = $data615['id_auteur'];
418                        }
419                        else {
420                            sql_query("INSERT INTO $Tauteurs (id_auteur, nom, login, pass, statut) VALUES ('', '$nom_auteur_archives', '$nom_auteur_archives', '$nom_auteur_archives', '5poubelle')");
421                                $id_auteur_archives = mysql_insert_id();
422                        }
423                        $nom_rub_archivesR = $nom_auteur_archives;
424                        $id_rub_parent_archivesA = $nom_auteur_archives;
425                        $id_rub_parent_archivesR = $id_auteur_archives;
426                        $nom_rub_archivesA = $nom_auteur_archives;
427                        $id_auteur_archivesA = $id_auteur_archives;
428                        $nom_auteur_archivesR = $nom_auteur_archives;
429                        $id_auteur_archivesR = $id_auteur_archives;
430                               
431                // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                                               
432                        if ($_POST['supprimer_articles'] != 1 AND $_POST['archivage'] != 0) {
433                            $supprimer_articlesr = 0;
434                                $supprimer_articlesa = 0;
435                                $archivager =1;
436                                $archivagea = 1;
437                                         
438                                $nom_rub_archives = $_POST['rub_archivage'];
439                        // $_POST['rub_parent_archivage'] de la forme : "id_rubrique,id_secteur"
440                                $Tids_parent_rub_archives = explode(',', $_POST['rub_parent_archivage']);
441                                $id_rub_parent_archives = $Tids_parent_rub_archives[0];
442                                $id_sect_parent_archives = $Tids_parent_rub_archives[1];
443                                $date_rub_archives = date("Y-m-j H:i:s");
444                                $sql613 = sql_query("SELECT id_rubrique, id_secteur FROM $Trubriques WHERE titre = '$nom_rub_archives' AND id_parent = '$id_rub_parent_archives' LIMIT 1");
445                                if (mysql_num_rows($sql613) > 0) {
446                                    $data613 = mysql_fetch_array($sql613);
447                                        $id_rub_archives = $data613['id_rubrique'];
448                                }
449                                else {
450                                    sql_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')" );
451                                        $id_rub_archives = mysql_insert_id();
452                                }
453                        }
454                }
455        }
456                                                                               
457      // 4.4.1 : traitement des visiteurs actuels de la base spip_auteurs => si effacer les absV = OK
458        if ($eff_absv == 1) {
459            $sql1471 = sql_query("SELECT COUNT(*) AS nb_redacsV FROM $Tauteurs WHERE statut = '6forum'");
460                $data1471 = mysql_fetch_array($sql1471);
461                if ($data1471['nb_redacsV'] > 0) {
462                  // pas de poubelle pour les visiteurs => suppression puisque pas d'articles
463                        $sql1591 = sql_query("SELECT id_auteur, login FROM $Tauteurs WHERE statut = '6forum'");
464                        while ($data1591 = mysql_fetch_array($sql1591)) {
465                            $login_sp = strtolower($data1591['login']);
466                                $id_auteur_ec = $data1591['id_auteur'];
467                                $sql4561 = sql_query("SELECT COUNT(*) AS nb FROM spip_tmp_csv2spip WHERE LOWER(nom) = '$login_sp' LIMIT 1");
468                                $data4561 = mysql_fetch_array($sql4561);
469             // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
470                                if ($data4561['nb'] == 0) {
471                                  // traitement des visiteurs à effacer                                                                                         
472                                        sql_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '6forum' LIMIT 1");
473                                        if (mysql_error() == 0) {
474                                            $TresV_eff[] = $login;
475                                }
476                                else {
477                                    $TerrV_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
478                                }
479                                }
480                        }
481              // optimisation de la table après les effacements
482                        sql_query("OPTIMIZE TABLE $Tauteurs, $Taccesgroupes_auteurs");
483                }       
484        }
485       
486      // 4.4.2 : traitement des rédacteurs actuels de la base spip_auteurs => si effacer les absents redac = OK
487        if ($eff_absr == 1) {
488            $sql147 = sql_query("SELECT COUNT(*) AS nb_redacsR FROM $Tauteurs WHERE statut = '1comite'");
489                $data147 = mysql_fetch_array($sql147);
490                if ($data147['nb_redacsR'] > 0) {
491                  // si archivage, récup de l'id de la rubrique archive + si nécessaire, créer la rubrique                                             
492                        if ($supprimer_articlesr != 1 AND $archivager != 0) {
493                            $nom_rub_archivesR = $rub_archivager;
494                                $sql613 = sql_query("SELECT id_rubrique, id_secteur FROM $Trubriques WHERE titre = '$nom_rub_archivesR' AND id_parent = '$id_rub_parent_archivesR' LIMIT 1");
495                                if (mysql_num_rows($sql613) > 0) {
496                                    $data613 = mysql_fetch_array($sql613);
497                                        $id_rub_archivesR = $data613['id_rubrique'];
498                                }
499                                else {
500                                    sql_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')" );
501                                    $id_rub_archivesR = mysql_insert_id();
502                                }
503                        }
504                        $sql159 = sql_query("SELECT id_auteur, login FROM $Tauteurs WHERE statut = '1comite' AND bio != 'archive'");
505                        $cteur_articles_deplacesR = 0;
506                        $cteur_articles_supprimesR = 0;
507                        $cteur_articles_modif_auteurR = 0;
508                        while ($data159 = mysql_fetch_array($sql159)) {
509                            $login_sp = strtolower($data159['login']);
510                                $id_auteur_ec = $data159['id_auteur'];
511                                $sql456 = sql_query("SELECT COUNT(*) AS nb FROM spip_tmp_csv2spip WHERE nom = '$login_sp' LIMIT 1");
512                                $data456 = mysql_fetch_array($sql456);
513                  // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
514                        if ($data456['nb'] == 0) {
515                                  // traitement éventuel des articles de l'auteur à supprimer
516                                    $sql757 = sql_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
517                                        $data757 = mysql_fetch_array($sql757);
518    //print '<br><br>id_auteur = '.$id_auteur_ec;
519    //print '<br>nb_articles_auteur = '.$data757['nb_articles_auteur'];
520    //print '<br>$supprimer_articlesr = '.$supprimer_articlesr;
521    //print '<br>$archivager = '.$archivager;
522                                        if ($data757['nb_articles_auteur'] > 0) {
523                                    if ($supprimer_articlesr != 1) {
524                                            if ($archivager != 0) {
525                                                            $sql612 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = $id_auteur_ec");
526                                                        if (mysql_num_rows($sql612) > 0) {
527    //print '<br>départ UPDATE';
528                                                            while ($data612 = mysql_fetch_array($sql612)) {
529                                                                    $id_article_ec = $data612['id_article'];
530                                                                                sql_query("UPDATE $Tarticles SET id_rubrique = '$id_rub_archivesR', id_secteur = '$id_sect_parent_archivesR' WHERE id_article = '$id_article_ec' LIMIT 1");
531                                                                                $cteur_articles_deplacesR ++;
532                                                                }
533                                                        } 
534                                                        if ($auteurs_poubeller != 1) {
535                                                            sql_query("UPDATE $Tauteurs_articles SET id_auteur = '$id_auteur_archivesR' WHERE id_auteur = '$id_auteur_ec'");
536                                                        }                                                                                                                       
537                                                }
538                                        }
539                                        else {
540                                            $sql756 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
541    //print '<br>départ DELETE';
542                                                while ($data756 = mysql_fetch_array($sql756)) {
543                                                    $id_article_a_effac = $data756['id_article'];
544                                                        sql_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
545                                                                $cteur_articles_supprimesR ++;
546                                                }
547                                                sql_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
548                                        }
549                                        }
550                                  // traitement des auteurs à effacer                                                                                           
551                                        if ($auteurs_poubeller != 1) {
552                                            sql_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '1comite' LIMIT 1");
553                                        if (mysql_error() == 0) {
554                                            $TresR_eff[] = $login;
555                                        }
556                                                else {
557                                            $TerrR_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
558                                        }
559                                        }
560                                        else {
561                                            sql_query("UPDATE $Tauteurs SET statut = '5poubelle' WHERE id_auteur = '$id_auteur_ec' LIMIT 1");
562                                        if (mysql_error() == 0) {
563                                            $TresR_poub[] = $id_auteur_ec;
564                                }
565                                else {
566                                    $TerrR_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
567                                }
568                                        }
569                                }
570                        }
571              // optimisation de la table après les effacements
572                        sql_query("OPTIMIZE TABLE $Tauteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
573                }               
574        }
575     // 4.4.3 : traitement des administrateurs restreints actuels de la base spip_auteurs => si effacer les absA = OK
576        if ($eff_absa == 1) {
577            $sql1473 = sql_query("SELECT COUNT(*) AS nb_redacsA FROM $Tauteurs
578                                                                 LEFT JOIN $Tauteurs_rubriques
579                                                                 ON $Tauteurs_rubriques.id_auteur = $Tauteurs.id_auteur
580                                                                 WHERE statut = '0minirezo'");
581    //echo '<br>mysql_error 1473 = '.mysql_error();
582                $data1473 = mysql_fetch_array($sql1473);
583                if ($data1473['nb_redacsA'] > 0) {
584                    $sql1593 = sql_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");
585                        $cteur_articles_deplacesA = 0;
586                        $cteur_articles_supprimesA = 0;
587                        $cteur_articles_modif_auteurA = 0;
588                        while ($data1593 = mysql_fetch_array($sql1593)) {
589                            $login_sp = strtolower($data1593['login']);
590                                $id_auteur_ec = $data1593['id_auteur'];
591                                $sql4563 = sql_query("SELECT COUNT(*) AS nbA FROM spip_tmp_csv2spip WHERE nom = '$login_sp' LIMIT 1");
592                                $data4563 = mysql_fetch_array($sql4563);
593                  // l'utilisateur n'est pas dans le fichier CSV importé => le supprimer
594                                if ($data4563['nbA'] == 0) {
595                                  // traitement éventuel des articles de l'admin à supprimer
596                                        $sql7573 = sql_query("SELECT COUNT(*) AS nb_articles_auteur FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
597                                        $data7573 = mysql_fetch_array($sql7573);
598                                        if ($data7573['nb_articles_auteur'] > 0) {
599                                            if ($supprimer_articlesa != 1) {
600                                            if ($archivagea != 0) {
601                                                            $sql6123 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
602                                                            if (mysql_num_rows($sql6123) > 0) {
603                                                                    while ($data6123 = mysql_fetch_array($sql6123)) {
604                                                                            $id_article_ec = $data6123['id_article'];
605                                                                                        sql_query("UPDATE $Tarticles SET id_rubrique = '$id_rub_archivesA', id_secteur = '$id_sect_parent_archivesA' WHERE id_article = '$id_article_ec' LIMIT 1");
606                                                                                        $cteur_articles_deplacesA ++;
607                                                                        }
608                                                                } 
609                                                                if ($auteurs_poubellea != 1) {
610                                                                    sql_query("UPDATE $Tauteurs_articles SET id_auteur = '$id_auteur_archivesA' WHERE id_auteur = '$id_auteur_ec'");
611                                                                }                                                                                                                       
612                                                        }
613                                                        }
614                                                        else {
615                                                            $sql7563 = sql_query("SELECT id_article FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
616                                                                while ($data7563 = mysql_fetch_array($sql7563)) {
617                                                                    $id_article_a_effac = $data7563['id_article'];
618                                                                        sql_query("DELETE FROM $Tarticles WHERE id_article = '$id_article_a_effac' LIMIT 1");
619                                                                        $cteur_articles_supprimesA ++;
620                                                                }
621                                                                sql_query("DELETE FROM $Tauteurs_articles WHERE id_auteur = '$id_auteur_ec'");
622                                                        }
623                                                }
624                                      // traitement des admins à effacer                                                                                               
625                                                if ($auteurs_poubellea != 1) {
626                                                    sql_query("DELETE FROM $Tauteurs WHERE id_auteur = '$id_auteur_ec' AND statut = '0minirezo' LIMIT 1");
627                                                        if (mysql_error() == 0) {
628                                                    $TresA_eff[] = $login;
629
630                                                  // virer l'administation de toutes les rubriques pour cet admin
631                                                            sql_query("DELETE FROM $Tauteurs_rubriques WHERE id_auteur = $id_auteur_ec");
632                                                            if (mysql_error() != '') {
633                                                                $TerrA_eff_rub_admins[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
634                                                            }
635                                                }
636                                                else {
637                                                        $TerrA_eff[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
638                                                }
639                                                }
640                                                else {
641                                                    sql_query("UPDATE $Tauteurs SET statut = '5poubelle' WHERE id_auteur = '$id_auteur_ec' LIMIT 1");
642                                                        if (mysql_error() == 0) {
643                                                    $TresA_poub[] = $id_auteur_ec;
644                                                }
645                                                else {
646                                                    $TerrA_poub[] = array('id_auteur' => $id_auteur_ec, 'erreur' => mysql_error());
647                                                }
648                                                }
649                                        }
650                                }
651                  // optimisation de la table après les effacements
652                                sql_query("OPTIMIZE TABLE $Tauteurs, $Tarticles, $Tauteurs_articles, $Taccesgroupes_auteurs");
653                        }
654            }   //   fin effacer les abs (4.4)  V 2.3
655       
656          // résultats étape 4
657            echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape4'));
658            echo "<br>"._T('csvspip:etape4.1')."<br>";
659            if (count($TerrV_nvx) > 0) {               
660                    echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
661                    foreach ($TerrV_nvx as $Ven) { 
662                            echo _T('csvspip:utilisateur').$Ven['login']._T('csvspip: erreur').$Ven['erreur']."<br>";
663                    }
664                    echo "</span>";
665                    $err_total ++;
666            }
667            else {
668                    echo "<br>"._T('csvspip:creation').count($TresV_nvx)._T('csvspip:comptes_visit_ok')."<br>";                                                         
669            }
670            if (count($Terr_nvx) > 0) {         
671                    echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
672                    foreach ($Terr_nvx as $en) { 
673                            echo _T('csvspip:utilisateur').$en['login']._T('csvspip:erreur').$en['erreur']."<br>";
674                    }                                   
675                    echo "</span>";
676                $err_total ++;
677            }
678            else {
679                    echo "<br>"._T('csvspip:creation').count($Tres_nvx)._T('csvspip:comptes_redac_ok')."<br>";                                   
680            }
681       
682            if (count($TerrA_nvx) > 0) {               
683                    echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
684                    foreach ($TerrA_nvx as $Pen) { 
685                            echo _T('csvspip:utilisateur').$Pen['login']._T('csvspip: erreur').$Pen['erreur']."<br>";
686                    }
687                    echo "</span>";
688                    $err_total ++;
689            }
690            else {
691                    echo "<br>"._T('csvspip:creation').count($TresA_nvx)._T('csvspip:comptes_admin_ok')."<br>";                                                         
692            }
693       
694          // 4.2 résultats maj des existants
695            if ($_POST['maj_gene'] == 1) {
696                    echo "<br>"._T('csvspip:etape4.2')."<br>";
697                        if ($_POST['maj_mdp'] == 1) {                                   
698                    echo "<br>"._T('csvspip:etape4.2.1')."<br>";
699                                if (count($TerrV_maj) > 0) {
700                            echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
701                                foreach ($TerrV_maj as $Vem) { 
702                                    echo _T('csvspip:visit').$Vem['login']._T('csvspip: erreur').$Vem['erreur']."<br>";
703                                }               
704                                echo "</span>";
705                                $err_total ++;
706                        }
707                        else {
708                            echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_visit_ok')."<br>";
709                        }                                       
710                                if (count($Terr_maj) > 0) {             
711                                    echo "<span class=\"Cerreur\">"._T('csvspip:err_redac');
712                                        foreach ($Terr_maj as $em) { 
713                                            echo _T('csvspip:redac').$em['login']._T('csvspip: erreur').$em['erreur']."<br>";
714                                        }               
715                                        echo "</span>";
716                                        $err_total ++;
717                        }
718                        else {
719                            echo "<br>"._T('csvspip:ok_etape4.2.1').count($Tres_maj)._T('csvspip:comptes_redac_ok')."<br>";                                                     
720                        } 
721                        if (count($TerrA_maj) > 0) {
722                            echo "<span class=\"Cerreur\">"._T('csvspip:err_admin');
723                                foreach ($TerrA_maj as $Pem) { 
724                                    echo _T('csvspip:admin').$Pem['login']._T('csvspip: erreur').$Pem['erreur']."<br>";
725                                }               
726                                echo "</span>";
727                                $err_total ++;
728                        }
729                        else {
730                            echo "<br />"._T('csvspip:ok_etape4.2.1').count($TresA_maj)._T('csvspip:comptes_admin_ok')."<br>";
731                        }                                       
732                        }
733                        if ($_POST['maj_grpes_redac'] == 1 OR $_POST['maj_grpes_admin'] == 1 OR $_POST['maj_grpes_visit'] == 1) {
734                            echo "<br>"._T('csvspip:etape4.2.2')."<br>";
735                                if (count($Terr_maj_grpacces) > 0) {
736                                    echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_grpacces');
737                                foreach ($Terr_maj_grpacces as $Peg) { 
738                                    echo _T('csvspip:utilisateur').$Peg['login']._T('csvspip: erreur').$Peg['erreur']."<br>";
739                                }               
740                                echo "</span>";
741                                $err_total ++;
742                                }
743                                else {
744                                    echo "<br />"._T('csvspip:ok_maj_grpacces').count($Tres_maj_grpacces)._T('csvspip:utilisateurs')."<br>";
745                                }
746                        }
747                        if ($_POST['maj_rub_adm'] == 1) {
748                            echo "<br>"._T('csvspip:etape4.2.3')."<br>";
749                                if (count($Terr_maj_rub_admin) > 0) {
750                                    echo "<span class=\"Cerreur\">"._T('csvspip:err_maj_rub_adm');
751                                foreach ($Terr_maj_rub_admin as $Pera) { 
752                                    echo _T('csvspip:utilisateur').$Pera['login']._T('csvspip: erreur').$Pera['erreur']."<br>";
753                                }               
754                                echo "</span>";
755                                $err_total ++;
756                            }
757                                else {
758                                    echo "<br />"._T('csvspip:ok_maj_rub_adm').count($Tres_maj_rub_admin)._T('csvspip:utilisateurs')."<br>";
759                                }
760                        }
761            }
762
763          // 4.4 résultats effacer les absents
764            if ($eff_absv == 1 OR $eff_absr == 1 OR $eff_absa == 1) {
765                    echo "<br />"._T('csvspip:etape4.4')."<br>";
766            }
767         
768          // résultats effacer les visiteurs
769            if ($eff_absv == 1) {                                       
770                    echo "<br />"._T('csvspip:etape4.4.1')."<br>";
771                        if (count($TerrV_eff) > 0 OR count($TerrV_poub) > 0) { 
772                            echo "<span class=\"Cerreur\">"._T('csvspip:err_visit');
773                            foreach ($TerrV_eff as $Vee) {
774                                    echo _T('csvspip:visit').$Vee['login']._T('csvspip: erreur').$Vee['erreur'];
775                                }       
776                                $err_total ++;
777                    }
778                    else { 
779                            echo "<br />"._T('csvspip:suppression_debut').count($TresV_eff)._T('csvspip:comptes_visit_ok')."<br>";
780                    }
781            }                                   
782       
783          // résultats effacer les redacteurs
784            if ($eff_absr == 1) { 
785                    echo "<br />"._T('csvspip:etape4.4.2')."<br>";
786                    if (count($TerrR_eff) > 0 OR count($TerrR_poub) >0) {
787                            echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
788                                foreach ($TerrR_eff as $ee) { 
789                                    echo '<br/>'._T('csvspip:redac').$ee['login']._T('csvspip: erreur').' '.$ee['erreur'];
790                                }
791                                echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
792                                foreach ($TerrR_poub as $ep) { 
793                                        echo '<br/>'._T('csvspip:redac').$ep['login']._T('csvspip: erreur').' '.$ep['erreur'];
794                                }
795                            $err_total ++;
796                }
797                    else { 
798                            echo "<br />"._T('csvspip:suppression_debut').count($TresR_eff)._T('csvspip:comptes_redac_ok')."<br>";
799                                echo "<br />"._T('csvspip:poubelle_debut').count($TresR_poub)._T('csvspip:comptes_redac_ok')."<br>";
800                    }
801                    if ($archivager != 0) {
802                            echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesR._T('csvspip:archivage_fin').$nom_rub_archivesR;
803                    } 
804                    if ($supprimer_articlesr == 1) {
805                            echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesR._T('csvspip:suppression_fin')."<br>";
806                    }
807            }                                   
808       
809          // résultats effacer les admins
810            if ($eff_absa == 1) {                       
811                    echo "<br />"._T('csvspip:etape4.4.3')."<br>";
812                    if (count($TerrA_eff) > 0 OR count($TerrA_poub) >0) {
813                            echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
814                                foreach ($TerrA_eff as $Aee) { 
815                                    echo "<br />"._T('csvspip:admin').$Aee['login']._T('csvspip: erreur').' '.$Aee['erreur'];
816                                }
817                                echo "<span class=\"Cerreur\">"._T('csvspip:redac_poubelle');
818                                foreach ($TerrA_poub as $Aep) { 
819                                        echo "<br />"._T('csvspip:admin').$Aep['login']._T('csvspip: erreur').' '.$Aep['erreur'];
820                                }
821                            $err_total ++;
822                }
823                    else { 
824                            echo "<br />"._T('csvspip:suppression_debut').count($TresA_eff)._T('csvspip:comptes_admin_ok')."<br>";
825                                echo "<br />"._T('csvspip:poubelle_debut').count($TresA_poub)._T('csvspip:comptes_admin_ok')."<br>";
826                    }
827                    if ($archivagea != 0) {
828                            echo "<br />"._T('csvspip:archivage_debut').$cteur_articles_deplacesA._T('csvspip:archivage_fin').$nom_rub_archivesA;
829                    } 
830                    if ($supprimer_articlesa == 1) {
831                            echo "<br />"._T('csvspip:suppression_debut').$cteur_articles_supprimesA._T('csvspip:suppression_fin')."<br>";
832                    }
833
834                    if (count ($TerrA_eff_rub_admins) > 0) {
835                            echo "<span class=\"Cerreur\">"._T('csvspip:suppr_redac');
836                                foreach ($TerrA_eff_rub_admins as $Aer) { 
837                                    echo _T('csvspip:err_eff_adm_rub').$Aer['login']._T('csvspip: erreur').$Aer['erreur'];
838                                }
839                                echo "</span>";
840                                $err_total ++;                                                 
841                    }
842            }   // fin effacer les absents V 2.3
843            echo fin_cadre_couleur(true);                       
844       
845        // étape 5 : si nécessaire intégration des admins comme administrateurs restreints de la rubrique de leur sous-groupe
846        //$id_rub_admin_defaut
847            if ($groupe_admins != '-1') {
848                    $Terr_adm_rub = array();
849                        $Tres_adm_rub = array();
850                    $sql54 = sql_query("SELECT ss_groupe, nom, id_spip FROM spip_tmp_csv2spip WHERE LOWER(groupe) = '$groupe_admins'");
851                    while ($data54 = mysql_fetch_array($sql54)) {
852                        $login_adm_ec = strtolower($data54['nom']);
853                            $id_adm_ec = $data54['id_spip'];
854                            if ($_POST['rub_prof'] == 1) {
855                                        if ($data54['ss_groupe'] != '') {
856                                        $ss_grpe_ec = $data54['ss_groupe'];
857                                                $sql55 = sql_query("SELECT id_rubrique FROM $Trubriques WHERE titre = '$ss_grpe_ec' LIMIT 1");
858                                                $data55 = mysql_fetch_array($sql55);
859                                                $id_rubrique_adm_ec = $data55['id_rubrique'];                                                                                   
860                                    }
861                                    else {
862                                        $id_rubrique_adm_ec = $id_rub_admin_defaut;
863                                            $ss_grpe_ec = '';
864                                    }
865                            }
866                            $sql57 = sql_query("SELECT COUNT(*) AS existe_adm_rub FROM $Tauteurs_rubriques WHERE id_auteur = '$id_adm_ec' AND id_rubrique = '$id_rubrique_adm_ec' LIMIT 1");
867                            $data57 = mysql_fetch_array($sql57);
868                            if ($data57['existe_adm_rub'] == 0) {
869        //print '<br>rubrique $ss_grpe_ec = '.$ss_grpe_ec.' $id_rubrique_adm_ec = '.$id_rubrique_adm_ec.'$id_adm_ec = '.$id_adm_ec;                                                             
870                                sql_query("INSERT INTO $Tauteurs_rubriques (id_auteur, id_rubrique) VALUES ('$id_adm_ec', '$id_rubrique_adm_ec')");
871                                    if (mysql_error() != '') {
872                                            $Terr_adm_rub[] = array('login' => $login_adm_ec, 'rubrique' => $ss_grpe_ec, 'erreur' => mysql_error());
873                                        }
874                                        else {
875                                            $Tres_adm_rub[] = $login_adm_ec;
876                                    }
877                            }
878                    }
879                    echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape5'));
880        //                                               echo "<h2>"._T('csvspip:titre_etape5')."</h2>";
881                if (count($Terr_adm_rub) > 0) {
882                        echo "<span class=\"Cerreur\">"._T('csvspip:err_admin_rubrique');
883                            foreach ($Terr_adm_rub as $ear) { 
884                                echo _T('csvspip:admin').$ear['login']._T('csvspip:rubrique_').$ear['rubrique']._T('csvspip: erreur').$ear['erreur']."<br>";
885                            }   
886                            echo "</span>";
887                            $err_total ++;
888                    }
889                    else {
890                        echo 'Attribution d\'une sous-rubrique pour '.count($Tres_adm_rub).' administrateurs restreints = OK<br>';
891                    }
892                    echo fin_cadre_couleur(true);
893            }
894               
895        // Etape 6 : si nécessaire création d'un article par rubrique                                   
896            if ($_POST['art_rub'] == 1 AND $_POST['rub_prof'] == 1) {
897                $Terr_art_rub = array();
898                $Tres_art_rub = array();
899                $sql57 = sql_query("SELECT ss_groupe, nom FROM spip_tmp_csv2spip WHERE groupe = '$groupe_admins' AND ss_groupe != '' GROUP BY ss_groupe");
900                while ($data57 = mysql_fetch_array($sql57)) {
901                    $titre_rub_ec = $data57['ss_groupe'];
902                        $sql58 = sql_query("SELECT id_rubrique, id_parent, id_secteur FROM $Trubriques WHERE titre = '$titre_rub_ec' AND id_parent = '$rubrique_parent' LIMIT 1");
903                        $data58 = mysql_fetch_array($sql58);
904                        $id_rub_ec = $data58['id_rubrique'];
905                        $id_parent_ec = $data58['id_parent'];
906                        $id_sect_ec = $data58['id_secteur'];
907                        $date_ec = date("Y-m-d H:i:s");
908                        $titre_ec = 'Bienvenue dans la rubrique '.$titre_rub_ec;
909                        $sql432 = sql_query("SELECT id_article FROM $Tarticles WHERE id_rubrique = '$id_rub_ec' AND titre = '$titre_ec' LIMIT 1");
910                        if (mysql_num_rows($sql432) < 1) {
911                            $data432 = mysql_fetch_array($sql432);
912                                sql_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')");
913                                if (mysql_error() != '') {
914                                    $Terr_art_rub[] = array('rubrique' => $titre_rub_ec, 'erreur' => mysql_error());
915                                }
916                                else {
917                                    $Tres_art_rub[] = $titre_rub_ec;
918                                }
919                        }
920                }
921                echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/csv2spip-24.gif", true, "", _T('csvspip:titre_etape6'));
922            //                                           echo "<h3>"._T('csvspip:titre_etape6')."</h3>";
923                if (count($Terr_art_rub) > 0) {
924                    echo "<span class=\"Cerreur\">"._T('csvspip:err_article');
925                        foreach ($Terr_art_rub as $eart) { 
926                            echo _T('csvspip:rubrique_').$eart['rubrique']._T('csvspip:erreur').$eart['erreur']."<br>";
927                        }       
928                        echo "</span>";
929                        $err_total ++;
930                }
931                else {
932                    echo _T('csvspip:ok_etape6_debut').count($Tres_art_rub)._T('csvspip:ok_etape6_fin')."<br>";
933                }
934                echo fin_cadre_couleur(true);
935            }
936
937               
938          // vidage de la table temporaire !! sécu !!
939            if ($err_total == 0) { 
940                sql_query("TRUNCATE TABLE spip_tmp_csv2spip");
941            }
942    }
943// FIN TRAITEMENT DES DONNEES
944
945// Formulaire de saisie du fichier CSV et des options de config         
946        else {
947                echo "<script language=\"JavaScript\"> ";
948                echo "   function aff_masq(id_elem, vis) { ";
949                echo "          vis == 0 ? s_vis = 'none' : s_vis = 'block'; ";
950                echo "          document.getElementById(id_elem).style.display = s_vis; ";
951                echo "          this.checked = 'checked'; ";                     
952                echo "  }";
953                echo "</script>";
954
955          // debut_cadre_formulaire();
956                echo "\r\n<form name=\"csv2spip\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."?exec=csv2spip\" method=\"post\" onsubmit=\"return (verifSaisie());\">";
957                echo debut_cadre_couleur("cal-today.gif", true, "", _T('csvspip:titre_choix_fichier'));
958                echo "<strong>"._T('csvspip:choix_fichier')."</strong><input name=\"userfile\" type=\"file\">";
959                echo "<br><br /><strong>"._T('csvspip:nom_groupe_redac')."</strong><input type=\"text\" name=\"groupe_redacs\" value=\"REDACTEURS\">";
960                echo "<br><br /><strong>"._T('csvspip:nom_groupe_admin')."</strong><input type=\"text\" name=\"groupe_admins\" value=\"ADMINS\">";
961                echo "<br><br /><strong>"._T('csvspip:nom_groupe_visit')."</strong><input type=\"text\" name=\"groupe_visits\" value=\"VISITEURS\">";
962                echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_nom_groupe_admin')."</span>";             
963                echo fin_cadre_couleur(true);
964         
965                echo debut_cadre_couleur("mot-cle-24.gif", true, "", _T('csvspip:options_maj'));
966                echo "<strong>"._T('csvspip:maj_utils')."</strong>";
967                echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_gene\" value=\"1\"  checked=\"checked\" onClick=\"aff_masq('maj_avance', 1);\">"; 
968                echo "<input type=\"radio\" name=\"maj_gene\" value=\"0\" onClick=\"aff_masq('maj_avance', 0);\">"._T('csvspip:non');
969                echo "<div id=\"maj_avance\" class=\"ss_cadre\">";
970                echo "<br /><strong>"._T('csvspip:maj_mdp')."</strong>"; 
971                echo _T('csvspip:oui')."<input type=\"radio\" name=\"maj_mdp\" value=\"1\"  checked=\"checked\">"; 
972                echo "<input type=\"radio\" name=\"maj_mdp\" value=\"0\">"._T('csvspip:non');
973
974                echo "<br /><br /><img src=\"".find_in_path('images/admin-12.gif')."\" alt=\"admins uniquement\"> <strong>"._T('csvspip:maj_rub_adm')."</strong>";
975                echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"1\" checked=\"checked\">"._T('csvspip:oui');   
976                echo "<input type=\"radio\" name=\"maj_rub_adm\" value=\"0\">"._T('csvspip:non'); 
977                echo "<br /><span style=\"font-size: 10px;\">"._T('csvspip:help_maj_rub_adm')."</span><br>"; 
978                echo "</div>";                           
979                echo fin_cadre_couleur(true);
980         
981                echo debut_cadre_couleur(_DIR_PLUGIN_CSV2SPIP."/img_pack/supprimer_utilisateurs-24.gif", true, "", _T('csvspip:suppr_absents'));
982                echo "<strong>"._T('csvspip:suppr_utilis')."</strong><ul style=\"padding: 0px; margin: 0px 0px 0px 30px;\">";
983                echo "<li style=\"list-style-image: url('".find_in_path('images/redac-12.gif')."');\">"._T('csvspip:suppr_redac')."";
984                echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_redac\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
985                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');
986                echo "</li>";
987                echo "<li style=\"list-style-image: url('".find_in_path('images/admin-12.gif')."');\">"._T('csvspip:suppr_admin');
988                echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_admin\" value=\"1\" onClick=\"aff_masq('archi', 1);\">";
989                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'); 
990                echo "</li>";
991                echo "<li style=\"list-style-image: url('".find_in_path('images/visit-12.gif')."');\">"._T('csvspip:suppr_visit')."";
992                echo _T('csvspip:oui')."<input type=\"radio\" name=\"eff_visit\" value=\"1\" >";
993                echo "<input type=\"radio\" name=\"eff_visit\" value=\"0\" checked=\"checked\" >"._T('csvspip:non');
994                echo "</li>";                           
995                echo "</ul><span style=\"font-size: 10px;\">"._T('csvspip:help_suppr_redac')."</span><br>"; 
996                echo "<div style=\"display: none\" id=\"archi\" class=\"ss_cadre\"><br /><strong>"._T('csvspip:suprr_articles')."</strong>";
997                echo _T('csvspip:oui')."<input type=\"radio\" name=\"supprimer_articles\" value=\"1\" onClick=\"aff_masq('transfert', 0);\">";   
998                echo "<input type=\"radio\" name=\"supprimer_articles\" value=\"0\" checked=\"checked\" onClick=\"aff_masq('transfert', 1);\">"._T('csvspip:non'); 
999                echo "<div id=\"transfert\" class=\"ss_cadre\"><br><strong>"._T('csvspip:transfert_archive')."</strong>";
1000                echo "<input type=\"radio\" name=\"archivage\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_transfert', 1);\">"._T('csvspip:oui');   
1001                echo "<input type=\"radio\" name=\"archivage\" value=\"0\" onClick=\"aff_masq('rub_transfert', 0);\">"._T('csvspip:non'); 
1002                echo "<div id=\"rub_transfert\" class=\"ss_cadre\"><br>";
1003                $sql9 = sql_query("SELECT COUNT(*) AS nb_rubriques FROM $Trubriques");
1004                $data9 = mysql_fetch_array($sql9);
1005                $nb_rubriques = $data9['nb_rubriques'];
1006                $annee = date("Y"); 
1007                echo "<strong>"._T('csvspip:nom_rubrique_archives')."</strong>";
1008                echo "<input type=\"text\" name=\"rub_archivage\" value=\"Archives annee ".($annee - 1).'-'.$annee."\" style=\"width: 200px;\">";
1009                echo "";
1010                if ($nb_rubriques > 0) {               
1011                        echo"<br><br><strong>"._T('csvspip:choix_parent_archive')."</strong>"; 
1012                        $sql10 = sql_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1013                        echo "<select name=\"rub_parent_archivage\">";
1014                        echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1015                               
1016                        while ($data10 = mysql_fetch_array($sql10)) { 
1017                                echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
1018                        }                                                                               
1019                        echo "</select><br>";
1020                }
1021                else { 
1022                        echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
1023                }               
1024                echo "</div></div>";
1025                echo "<br><br><strong>"._T('csvspip:traitement_supprimes')."</strong><br>";
1026                echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"1\">"._T('csvspip:auteurs_poubelle')."  <br>"; 
1027                echo "<input type=\"radio\" name=\"auteurs_poubelle\" value=\"0\" checked=\"checked\">"._T('csvspip:attribuer_articles'); 
1028                echo "<input type=\"text\" name=\"nom_auteur_archives\" value=\"archives".($annee - 1)."-".$annee."\">"._T('csvspip:passe_egale_login');
1029                echo "</div>";
1030                echo fin_cadre_couleur(true);
1031               
1032                echo debut_cadre_couleur("rubrique-24.gif", true, "", _T('csvspip:creation_rubriques'));
1033                //                       echo "<h3>"._T('csvspip:creation_rubriques')."</h3>";
1034                echo "<strong>"._T('csvspip:rubrique_ss_groupes')."</strong>"; 
1035                echo _T('csvspip:oui')."<input type=\"radio\" name=\"rub_prof\" value=\"1\" checked=\"checked\" onClick=\"aff_masq('rub_adm', 1);\">";   
1036                echo "<input type=\"radio\" name=\"rub_prof\" value=\"0\" onClick=\"aff_masq('rub_adm', 0);\">"._T('csvspip:non');
1037                echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:profs_admins')."</span>";
1038                echo "<br /><div id=\"rub_adm\" class=\"ss_cadre\">";
1039                if ($nb_rubriques > 0) {               
1040                        echo "<br /><strong>"._T('csvspip:choix_parent_rubriques')."</strong>"; 
1041                        echo "<select name=\"rub_parent\">";
1042                        echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1043                        $sql10 = sql_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1044                        while ($data10 = mysql_fetch_array($sql10)) { 
1045                                echo "<option value=\"".$data10['id_rubrique'].",".$data10['id_secteur']."\">".$data10['titre']."</option>";
1046                        }       
1047                        echo "</select>";
1048                }
1049                else { 
1050                        echo "<br>"._T('csvspip:pas_de_rubriques');
1051                }               
1052                echo "<br /><br /><strong>"._T('csvspip:article_rubrique')."</strong>"; 
1053                echo _T('csvspip:oui')."<input type=\"radio\" name=\"art_rub\" value=\"1\">";   
1054                echo "<input type=\"radio\" name=\"art_rub\" value=\"0\" checked=\"checked\">"._T('csvspip:non');
1055                echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_articles')."</span>";
1056                echo "<br /></div>";
1057                echo "<br /><div id=\"rub_adm_defaut\">";
1058                echo "<strong>"._T('csvspip:choix_rub_admin_defaut')."</strong>";
1059                echo "<input type=\"text\" name=\"rub_admin_defaut\" value=\""._T('csvspip:nom_rub_admin_defaut')."\" style=\"width: 200px;\">";
1060                echo "<br><span style=\"font-size: 10px;\">"._T('csvspip:help_rub_admin_defaut')."</span>";
1061                if ($nb_rubriques > 0) {               
1062                        echo "<br/><br/><strong>"._T('csvspip:choix_parent_rub_admin_defaut')."</strong>"; 
1063                        echo "<select name=\"rub_parent_admin_defaut\">";
1064                        echo "<option value=\"0,0\" selected=\"selected\">"._T('csvspip:racine_site')."</option>";
1065                        $sql108 = sql_query("SELECT id_rubrique, titre, id_secteur FROM $Trubriques ORDER BY titre");
1066                        while ($data108 = mysql_fetch_array($sql108)) { 
1067                                echo "<option value=\"".$data108['id_rubrique'].",".$data108['id_secteur']."\">".$data108['titre']."</option>";
1068                        }       
1069                        echo "</select><br />";
1070                }
1071                else { 
1072                        echo "<br>"._T('csvspip:pas_de_rubriques')."<br>";
1073                }               
1074                echo "</div>"; 
1075                echo fin_cadre_couleur(true);
1076
1077                echo "<input type=\"submit\" value=\""._T('csvspip:lancer')."\" style=\"background-color: #FF8000; font-weight: bold; font-size: 14px;\">";
1078                echo "</form><br><br />";
1079               
1080                echo debut_cadre_trait_couleur("fiche-perso-24.gif", true, "", _T('csvspip:titre_help')); 
1081          // inclure le fichier help de la langue
1082                $code_langue = (!$GLOBALS['spip_lang'] ? lire_meta("langue_site") : $GLOBALS['spip_lang']);
1083                if (!find_in_path(_DIR_PLUGIN_CSV2SPIP.'lang/csvspip_help_'.$code_langue.'.php')) $code_langue = 'fr';
1084                include(_DIR_PLUGIN_CSV2SPIP.'lang/csvspip_help_'.$code_langue.'.php');
1085                echo "<a href=\""._DIR_PLUGIN_CSV2SPIP."tests_csv2spip/csv2spip_modele.csv\">csv2spip_modele.csv</a>";
1086                echo fin_cadre_trait_couleur(true);
1087               
1088        } 
1089       
1090        echo fin_grand_cadre(true),fin_page();
1091}
1092                 
1093                 
1094
1095?>
Note: See TracBrowser for help on using the repository browser.