source: spip-zone/_plugins_/_dev_/acces_groupes/exec/accesgroupes_admin.php @ 5862

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

début du filtrage complet de l'espace privé par surcharge des requêtes SQL : plus de rubriques restreintes *presque partout*, reste les articles, les sites et les forums...

File size: 69.2 KB
Line 
1<?php
2/*
3  Gestion des acces aux rubriques et articles par groupes d'utilisateurs
4  Contrib de Coyote, alias JPK ou Jean-Pierre KUNTZ
5  V0.1 - 16 juillet 2005 Coyote
6       version initiale avec gestion multilingue
7  v0.2 - 02 août 2005 Coyote
8       maj pour compatibilité avec MySQL 3.23
9       la table jpk_auteurs_groupes devient jpk_groupes_auteurs
10       correction affichage des titres de rubriques typo()
11  v0.3 - 05 août 2005 Coyote
12       ajout d'un bouton pour suppression d'un groupe
13       transforme tous les mysql_query() en spip_query()
14       Correction du test d’accès, utilisation du login au lieu de l’id_auteur
15  v0.61 - mars 2006 cy_altern
16                         utilisation d'un préfixe pour les table jpk_xxx               
17                         + intégration des sous-groupes et des statuts
18                         + interface admin enrichie des explorateurs de groupes/sous-groupes et groupes/rubriques       
19        v0.7 - juillet 2006 cy_altern
20                         renommage des tables en prefixeSPIP_accesgroupes_xxx
21                         + restrictions séparées possibles pour public/privé
22                         + correction bogue suppression/modification
23                         + message demande d'inscription au groupe
24                         + passage en BOUCLE_xx (ACCESGROUPES) du contrôle d'accès dans les squelettes
25                         + critère  accesgroupes_invisible et filtre accesgroupes_visualise pour enrichir les squelettes
26        v1.0 - septembre 2006 cy_altern
27                         passage en plugin pour compatibilité spip 1.9
28                         nombreuses modifs des requètes SQL et renvoi de certaines clause des WHERE en post-traitement
29                   pour cause d'alias impossibles dans les clauses WHERE
30                         (résultat de l'utilisation de abstract_sql de spip 1.9 qui permet d'éviter la détection du préfixe des tables de spip ?)
31                         + filtrage des éléments à accès restreint directement dans les requètes SQL des boucles par surcharge des fonctions du core
32                         + gestion du cache en fonction des combinaisons de rubriques restreintes pour éviter les mauvaises surprises
33                         + possibilité de modifier le propriétaire d'un groupe par les admins généraux
34                         + amélioration du traitement des messages de demande d'accès
35                         + marquage des groupes désactivés dans l'interface admin
36
37*/
38
39
40include_spip('base/db_mysql');
41include_spip('base/abstract_sql');
42
43
44function exec_accesgroupes_admin() {
45                        // définir comme constante le chemin du répertoire du plugin
46         $p = explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
47         $pp = explode("/", end($p));
48         define('_DIR_PLUGIN_ACCESGROUPES',(_DIR_PLUGINS.$pp[0]));
49                       
50                        // initialisation d'un éventuel message de maintenance + état d'erreur potentiel
51        $msg_text = '';
52        $alerte = 0;
53                               
54      // toutes les fonctions utilisées dans accesgroupes_admin uniquement
55        include_spip('exec/accesgroupes_admin_fonctions');
56        include_spip('base/create');
57       
58      // initialiser le tableau qui sera utilisé pour la limitation des possibilités de type d'accès
59      // pour les rubriques déja restreintes par le groupe en cours (prive+public/prive/public)
60      // => cf tableau en dessous du select des rubriques à restreindre
61        $Trub_grpe_ec_parent = array();   
62                                global $Trub_grpe_ec_parent;
63
64                 // créer les tables accesgroupes_xxx au cas ou elles sont absentes
65        creer_base(); //
66       
67                  // les fonctions de spip nécessaires pour afficher les éléments de l'interface
68                                include_spip("inc/presentation");               
69
70                        // les variables spip nécessaires
71                          global $connect_statut, $connect_toutes_rubriques;
72                               
73// TRAITEMENT des DONNEES RENVOYEES PAR LES FORMULAIRES : AJOUT - MODIFICATION - SUPPRESSION
74       
75//        isset($_GET['groupe'])? $groupe = $_GET['groupe'] : $groupe = 0;
76        isset($_POST['groupe'])? $groupe = $_POST['groupe'] : (isset($_GET['groupe'])? $groupe = $_GET['groupe'] : $groupe = 0);
77       
78        // pour traiter les admins restreints
79        $id_util_restreint = 0;
80        if (accesgroupes_est_admin_restreint() == TRUE) {
81                 $id_util_restreint = accesgroupes_trouve_id_utilisateur();
82                 $Trub_restreint =  accesgroupes_cree_Trub_admin ();
83        }       
84       
85//$msg_text .= 'accesgroupes_est_admin_restreint = '.accesgroupes_est_admin_restreint().' $Trub_restreint = '.print_r($Trub_restreint).'<br>$id_util_restreint ='.$id_util_restreint.' accesgroupes_trouve_id_utilisateur() = '.accesgroupes_trouve_id_utilisateur();
86//$msg_text .= '<br>$_REQUEST = '.print_r($_REQUEST);
87//$msg_text . = '<br>$GLOBALS[auteur_session]= '.$GLOBALS['auteur_session'];
88       
89        // désactive toutes les fcts de modifs du groupe si admin restreint + pas proprio !!! ATTENTION ce if est extra long !!!
90        if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
91               
92  // AUTEURS ======== gestion des auteurs
93     // AUTEUR Ajout
94            if (isset($_POST['add_auteur'])){
95                $auteur = $_POST['auteur'];
96                $sql = "INSERT INTO spip_accesgroupes_auteurs(id_grpacces,id_auteur, dde_acces, proprio)
97                                                                                  VALUES($groupe, $auteur, 0, $id_util_restreint)";
98              $result = spip_query($sql);
99            }
100           
101     // AUTEUR Modif = accepter un auteur ayant envoyé un message de demande d'accès
102            if (isset($_GET['mod_auteur'])){
103                                                                $mod_auteur = $_GET['mod_auteur'];
104                                                                if (isset($_GET['message']) AND $_GET['message'] == 'accepte') {
105                                                                 $sql21 = "SELECT dde_acces FROM spip_accesgroupes_auteurs
106                                                                                                                 WHERE id_auteur = $mod_auteur
107                                                                                                                 AND id_grpacces = $groupe
108                                                                                                                 LIMIT 1";
109                                                                         $result21 = spip_query($sql21);
110                                                                         $row21 = spip_fetch_array($result21);
111                                                                         $id_message_efface = $row21['dde_acces'];
112                                                                }
113                                                // modifier l'auteur (dde_acces passe à 0)
114                $sql = "UPDATE spip_accesgroupes_auteurs
115                                                                                  SET dde_acces = 0, proprio = $id_util_restreint 
116                                                                                        WHERE id_grpacces = $groupe 
117                                                                                        AND id_auteur = $mod_auteur";
118                spip_query($sql);
119                                        // gérer l'effacement du message à l'admin du groupe + envoyer message retour au demandeur
120                                                                if (isset($_GET['message']) AND $_GET['message'] == 'accepte') {
121                                                                         $sql22 = "DELETE FROM spip_messages
122                                                                                                                  WHERE id_message = $id_message_efface
123                                                                                                                        LIMIT 1";
124                                                                         spip_query($sql22);
125                                                                         $sql23 = "DELETE FROM spip_auteurs_messages
126                                                                                                                  WHERE id_message = $id_message_efface";
127                                                                         spip_query($sql23);
128                                                                         $sql24 = "SELECT nom FROM spip_accesgroupes_groupes
129                                                                                                                 WHERE id_grpacces = $groupe
130                                                                                                                 LIMIT 1";
131                                                                         $result24 = spip_query($sql24);
132                                                                         $row24 = spip_fetch_array($result24);
133                                                                         $nom_groupe = $row24['nom'];
134                                                         $titre_mess = addslashes(_T('accesgroupes:titre_message_retour'));
135                                                                         $message = _T('accesgroupes:message_retour').'<strong>'.$nom_groupe.'</strong>'._T('accesgroupes:message_accepte');
136                                                                         $message = addslashes($message);
137                                                                         $sql25 = "SELECT MAX(id_message) AS maxId FROM spip_messages";
138                                                                         $result25 = spip_query($sql25);
139                                                                         $row25 = spip_fetch_array($result25);
140                                                                         $id_forum = $row25['maxId'] + 1;
141                                                         $date_pub = date("y-m-d H:i:s");
142                                                                         $auteur_message = accesgroupes_trouve_id_utilisateur();
143                                                         $sql26 = "INSERT INTO spip_messages (id_message, titre, texte, type, date_heure, rv, statut, id_auteur, maj)
144                                                                                         VALUES ($id_forum, '$titre_mess', '$message', 'normal', '$date_pub', 'non', 'publie', $auteur_message, '$date_pub')";
145                                                   spip_query($sql26);
146                                                         if (mysql_error() == '') {
147                                                                                        $sql27 = "INSERT INTO spip_auteurs_messages (id_auteur, id_message, vu)
148                                                                                                                                VALUES ($mod_auteur, $id_forum, 'non')";
149                                                                        spip_query($sql27);
150                                                                         }
151                                                        }
152                                                                spip_query("OPTIMIZE TABLE spip_auteurs_messages");
153                                                                spip_query("OPTIMIZE TABLE spip_messages");
154            }
155           
156    // AUTEUR Suppression...
157            if (isset($_GET['del_auteur']) AND $_GET['del_auteur'] != '') {
158                $del_auteur = $_GET['del_auteur'];
159                                                        if (isset($_GET['message']) AND $_GET['message']== 'refuse') {
160                                                                 $sql21 = "SELECT dde_acces FROM spip_accesgroupes_auteurs
161                                                                                                                 WHERE id_auteur = $del_auteur
162                                                                                                                 AND id_grpacces = $groupe
163                                                                                                                 LIMIT 1";
164                                                                         $result21 = spip_query($sql21);
165                                                                         $row21 = spip_fetch_array($result21);
166                                                                         $id_message_efface = $row21['dde_acces'];
167                                                        }
168                                                // effacer l'auteur
169                                                        $sql = "DELETE FROM spip_accesgroupes_auteurs
170                                                                                  WHERE id_grpacces = $groupe 
171                                                                                        AND id_auteur = $del_auteur";
172                $result = spip_query($sql);
173                                        // gérer l'effacement du message à l'admin du groupe + envoyer message retour au demandeur
174                                                        if (isset($_GET['message']) AND $_GET['message']== 'refuse') {
175                                                                         $sql22 = "DELETE FROM spip_messages
176                                                                                                                  WHERE id_message = $id_message_efface
177                                                                                                                        LIMIT 1";
178                                                                         spip_query($sql22);
179                                                                         $sql23 = "DELETE FROM spip_auteurs_messages
180                                                                                                                  WHERE id_message = $id_message_efface";
181                                                                         spip_query($sql23);
182                                                                         $sql24 = "SELECT nom FROM spip_accesgroupes_groupes
183                                                                                                                 WHERE id_grpacces = $groupe
184                                                                                                                 LIMIT 1";
185                                                                         $result24 = spip_query($sql24);
186                                                                         $row24 = spip_fetch_array($result24);
187                                                                         $nom_groupe = $row24['nom'];
188                                                         $titre_mess = addslashes(_T('accesgroupes:titre_message_retour'));
189                                                                         $message = _T('accesgroupes:message_retour').'<strong>'.$nom_groupe.'</strong>'._T('accesgroupes:message_refuse');
190                                                                         $message = addslashes($message);
191                                                                         $sql25 = "SELECT MAX(id_message) AS maxId FROM spip_messages";
192                                                                         $result25 = spip_query($sql25);
193                                                                         $row25 = spip_fetch_array($result25);
194                                                                         $id_forum = $row25['maxId'] + 1;
195                                                         $date_pub = date("y-m-d H:i:s");
196                                                                         $auteur_message = accesgroupes_trouve_id_utilisateur();
197                                                         $sql26 = "INSERT INTO spip_messages (id_message, titre, texte, type, date_heure, rv, statut, id_auteur, maj)
198                                                                                         VALUES ($id_forum, '$titre_mess', '$message', 'normal', '$date_pub', 'non', 'publie', $auteur_message, '$date_pub')";
199                                                   spip_query($sql26);
200                                                         if (mysql_error() == '') {
201                                                                                        $sql27 = "INSERT INTO spip_auteurs_messages (id_auteur, id_message, vu)
202                                                                                                                                VALUES ($del_auteur, $id_forum, 'non')";
203                                                                        spip_query($sql27);
204                                                                         }
205                                                        }
206                                                                spip_query("OPTIMIZE TABLE spip_accesgroupes_auteurs");
207                                                                spip_query("OPTIMIZE TABLE spip_auteurs_messages");
208                                                                spip_query("OPTIMIZE TABLE spip_messages");
209
210            }
211           
212  // SS-GROUPES ======== gestion des sous-groupes
213     // SS-GROUPES Ajout...
214            if (isset($_POST['add_ss_groupe'])){
215              // vérification que le sous-groupe à créer n'est pas dans l'ascendance du groupe en cours
216                // "never trust user" : en principe ce cas n'est pas possible mais un hack du POST est si vite arrivé...
217                if (accesgroupes_verifie_inclusions_groupe($_POST['add_ss_groupe'], $groupe) != FALSE) {
218                        $sql = "INSERT INTO spip_accesgroupes_auteurs(id_grpacces,id_ss_groupe,dde_acces, proprio)
219                                                                                                  VALUES($groupe,{$_POST['ss_groupe']}, 0, $id_util_restreint)";
220                  $result = spip_query($sql);
221                }
222                        else {
223                                         echo _T('accesgroupes:erreur_inclusion_recurrente');
224                        }
225            }
226           
227    // SS-GROUPES Modif...
228            if (isset($_GET['mod_ss_groupe'])){
229              $sql = "UPDATE spip_accesgroupes_auteurs SET dde_acces = 0, proprio = $id_util_restreint 
230                                                                                  WHERE id_grpacces = $groupe 
231                                                                                        AND id_ss_groupe = {$_GET['mod_ss_groupe']}";
232              $result = spip_query($sql);
233            }
234           
235   // SS-GROUPES Suppression...
236            if (isset($_GET['del_ss_groupe'])){
237              $sql = "DELETE FROM spip_accesgroupes_auteurs
238                                                                                  WHERE id_grpacces=$groupe 
239                                                                                        AND id_ss_groupe = {$_GET['del_ss_groupe']}";
240              $result = spip_query($sql);
241            }
242           
243  // STATUTS ======== gestion des statuts intégrés dans les groupes
244     // STATUTS Ajout...
245            if (isset($_POST['add_statut'])){
246                        $sp_statut = $_POST['sp_statut'];
247                                $sql = "INSERT INTO spip_accesgroupes_auteurs(id_grpacces,sp_statut,dde_acces, proprio)
248                                                                                                  VALUES ($groupe,'$sp_statut',0, $id_util_restreint)";
249                  $result = spip_query($sql);
250            }
251           
252     // STATUTS Modif...
253            if (isset($_GET['mod_statut'])){
254              $mod_statut = $_GET['mod_statut'];
255                $sql = "UPDATE spip_accesgroupes_auteurs
256                                                                                  SET dde_acces = 0, proprio = $id_util_restreint 
257                                                                                  WHERE id_grpacces = $groupe AND sp_statut = '$mod_statut'";
258              $result = spip_query($sql);
259            }
260           
261     // STATUTS Suppression...
262            if (isset($_GET['del_statut'])){
263              $del_statut = $_GET['del_statut'];
264                $sql = "DELETE FROM spip_accesgroupes_auteurs
265                                                                                  WHERE id_grpacces = $groupe AND sp_statut = '$del_statut'";
266              $result = spip_query($sql);
267            }
268           
269           
270  // GROUPE ======== gestion des groupes
271     // GROUPE Modification
272            if (isset($_POST['mod_groupe'])){
273                                        $_POST['actif'] == 1 ? $actif = 1 : $actif = 0;
274                                        $_POST['demandes_acces'] == 1 ? $demande_acces = 1 : $demande_acces = 0;
275                                                                $description_modif = addslashes($_POST['description']);
276                                                                $nom_modif = addslashes($_POST['nom']);
277                                                                $id_grpe_change_proprio = $_POST['groupe'];
278                                                                $sql121 = "SELECT proprio
279                                                                                                   FROM spip_accesgroupes_groupes
280                                                                                                         WHERE id_grpacces = $id_grpe_change_proprio
281                                                                                                         LIMIT 1";
282                                                                $result121 = spip_query($sql121);
283                                                                $row121 = spip_fetch_array($result121);
284                                                                $ancien_proprio = $row121['proprio'];
285                if (isset($_POST['proprio']) AND $_POST['proprio'] != '' AND $id_util_restreint == 0) {  // chgmnt de proprio autorisé que pour les admins généraux
286                                                                         $proprio_grpe_modif = $_POST['proprio'];
287                                                          }
288                                                                else {
289                                                                                 $proprio_grpe_modif =  $ancien_proprio;
290                                                                }
291                $sql = "UPDATE spip_accesgroupes_groupes
292                                    SET nom='".$nom_modif."',
293                                        description = '".$description_modif."',
294                                        actif = $actif,
295                                                                        proprio = $proprio_grpe_modif,
296                                                                                        demande_acces = $demande_acces
297                                          WHERE id_grpacces = $id_grpe_change_proprio";
298                $result = spip_query($sql);
299                accesgroupes_debug($result);
300                if (mysql_error() != '') {
301                                                 $alerte = 1;
302                                                 $msg_text .= _T('accesgroupes:erreur_modif_proprio').$id_grpe_change_proprio.' : '.mysql_error();
303                                        }
304                                        else { 
305                                                                        // seuls les admins généraux peuvent faire les opérations liées au changement de proprio
306                                                                                 if ($id_util_restreint == 0) { 
307                                                                        // réatribuer tous les accès aux rubriques  de ce groupe dont le proprio est l'ancien proprio ou les admins au nv proprio
308                                                                                                 $sql118 = "UPDATE spip_accesgroupes_acces
309                                                                                                                    SET proprio = \"".$proprio_grpe_modif."\"
310                                                                                                                                WHERE id_grpacces = \"".$id_grpe_change_proprio."\"
311                                                                                                AND (proprio = $ancien_proprio 
312                                                                                                OR proprio = 0)";
313                                                                                 spip_query($sql118);
314                         if (mysql_error() != '') {
315                                                          $alerte = 1;
316                                                          $msg_text .= _T('accesgroupes:erreur_modif_proprio_acces').$id_grpe_change_proprio.' : '.mysql_error();
317                                                 }
318                                                                                 else {
319                                                                                                                        // réatribuer tous les proprios des auteurs appartenants à ce groupe au nv proprio
320                                                                                                        // (plus souvenir de pourquoi on a besoin et quand on utilise le proprio des auteurs mais dans le doute... ou si ça doit servir un jour
321                                                                                                        $sql119 = "UPDATE spip_accesgroupes_auteurs
322                                                                                                                                                 SET proprio = \"".$proprio_grpe_modif."\"
323                                                                                                                                                 WHERE id_grpacces = \"".$id_grpe_change_proprio."\" ";
324                                                                                                        spip_query($sql119);
325                                                                                                        if (mysql_error() != '') {
326                                                                                                                        $alerte = 1;
327                                                                                                                        $msg_text .= _T('accesgroupes:erreur_modif_proprio_auteurs').$id_grpe_change_proprio.' : '.mysql_error();
328                                                                                                        }
329                                                                                 }
330                                                                                 }
331                                                                }  // fin des changements de proprios
332            }
333                                               
334                                               
335        } // fin du IF admin restreints + proprio
336                               
337     // GROUPE Ajout (actif est mis à 1 systématiquement lors de la création d'un groupe)
338        if (isset($_POST['add_groupe'])){
339          // éviter les duplicatas de noms de groupes
340                                if (accesgroupes_verifie_duplicata_groupes($_POST['nom']) == FALSE) {
341                                         $msg_text = '<h2 style="color: #f00;">'.$_POST['nom'].' : '._T('accesgroupes:duplicata_nom').'</h2>';
342                                }
343                                else {
344                  if (isset($_POST['proprio']) AND $_POST['proprio'] != '') {
345                                                                                 $proprio_nv_grpe = $_POST['proprio'];
346                                                                        }
347                                                                        else {
348                                                                                         $proprio_nv_grpe =  $id_util_restreint;
349                                                                        }
350                                                                        $sql = "INSERT INTO spip_accesgroupes_groupes(nom, description, actif, proprio, demande_acces)
351                                VALUES(\"".addslashes($_POST['nom'])."\",\"".addslashes($_POST['description'])."\", 1, $proprio_nv_grpe, ".$_POST['demandes_acces'].")
352                  ";
353                  $result = spip_query($sql);
354                  accesgroupes_debug($result);
355                  $groupe = mysql_insert_id();
356                                }
357        }
358                       
359                               
360    // limitation admins restreints + proprio
361        if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
362     // GROUPE Suppression
363            if ( (isset($_POST['del_groupe_all']) AND isset($_POST['groupe']) AND $_POST['groupe'] != '') OR (isset($_GET['del_groupe']) AND $_GET['del_groupe'] != '') ) {
364                isset($_GET['del_groupe']) ? $id_grpe_asupr = $_GET['del_groupe'] : $id_grpe_asupr = $_POST['groupe'];
365                                        $sql111 = "DELETE FROM spip_accesgroupes_acces WHERE id_grpacces = ".$id_grpe_asupr;
366                spip_query($sql111);
367                if (mysql_error() != '') {
368                                                 $alerte = 1;
369                                                 $msg_text .= _T('accesgroupes:erreur_supr_rubriques').$id_grpe_asupr.' : '.mysql_error();
370                                        }
371                                        else {
372                      $sql112 = "DELETE FROM spip_accesgroupes_auteurs WHERE id_grpacces = ".$id_grpe_asupr;
373                      spip_query($sql112);
374                      if (mysql_error() != '') {
375                                                         $alerte = 1;
376                                                                 $msg_text .= _T('accesgroupes:erreur_supr_auteurs').$id_grpe_asupr.' : '.mysql_error();
377                                                 }
378                                                 else {
379                           $sql113 = "DELETE FROM spip_accesgroupes_auteurs WHERE id_ss_groupe = ".$id_grpe_asupr;
380                                                                         spip_query($sql113);
381                                                                         if (mysql_error() != '') {
382                                                                                  $alerte = 1;
383                                                                                  $msg_text .= _T('accesgroupes:erreur_supr_ssgrpes').$id_grpe_asupr.' : '.mysql_error();
384                                                                         }
385                                                                         else {
386                                                                         $sql114 = "DELETE FROM spip_accesgroupes_groupes WHERE id_grpacces = ".$id_grpe_asupr;
387                               spip_query($sql114);
388                                                                                         if (mysql_error() != '') {
389                                                                                                  $alerte = 1;
390                                                                                                  $msg_text .= _T('accesgroupes:erreur_supr_groupe').$id_grpe_asupr.' : '.mysql_error();
391                                                                                         }
392                                                                                         else {
393                                                                                                          $sql115 = "OPTIMIZE TABLE spip_accesgroupes_groupes";
394                                                                                                          spip_query($sql115);
395                                                                                                          $sql116 = "OPTIMIZE TABLE spip_accesgroupes_auteurs";
396                                                                                                          spip_query($sql116);
397                                                                                                          $sql117 = "OPTIMIZE TABLE spip_accesgroupes_acces";
398                                                                                                          spip_query($sql117);
399                                                                                                          $msg_text .= _T('accesgroupes:supr_groupe_ok').$id_grpe_asupr;
400                                                                                         }
401                                                                         }
402                                                 }
403                                        }
404            }
405        }  // fin du IF admin restreint + proprio
406                       
407                                                                                       
408       
409  // ACCES  ======== gestion des accès restreints
410     // ACCES AJOUT
411            if (isset($_POST['add_rub']) && $_POST['add_id_rubrique'] > 0){
412                $acces_groupe_ec = $_POST['groupe'];
413                  $acces_id_parent = $_POST['add_id_rubrique'];
414                  $acces_prive_public = $_POST['prive_public'];
415              // ajout rubrique restreinte si admin général ou admin restreint + admin de la rubrique
416//echo '<br>accesgroupes_est_admin_rubrique('.$acces_id_parent.') = '.accesgroupes_est_admin_rubrique($acces_id_parent);
417                if ($id_util_restreint == 0 OR ($id_util_restreint !== 0 AND accesgroupes_est_admin_rubrique($acces_id_parent) == TRUE) ) {
418                                         $sql601 = "INSERT INTO spip_accesgroupes_acces(id_grpacces, id_rubrique, id_article, dtdb, dtfn, proprio, prive_public)
419                                  VALUES(\"".$acces_groupe_ec."\", \"".$acces_id_parent."\", \"\",now(),now(), $id_util_restreint, \"".$acces_prive_public."\")";
420                       $result601 = spip_query($sql601);
421                        }  // fin du IF admin restreint + proprio
422
423            }
424     // ACCES MODIFICATION
425            if (isset($_POST['modif_id_groupe']) AND isset($_POST['modif_id_rubrique'])){
426            //           $msg_text = "<h2>"._T('accesgroupes:acces_double')."</h2>";
427               $modif_prive_public = $_POST['modif_prive_public'];
428               $modif_id_rubrique = $_POST['modif_id_rubrique'];
429               $modif_id_groupe = $_POST['modif_id_groupe'];
430              // si admin restreint, modif autorisées si proprio de l'accès
431               if ($id_admin_restreint == 0 OR  ($id_admin_restreint !== 0 AND accesgroupes_est_proprio_acces($modif_id_rubrique) == TRUE)) {
432                         $sql602 = "UPDATE spip_accesgroupes_acces
433                                                        SET prive_public = $modif_prive_public
434                                                  WHERE id_grpacces = $modif_id_groupe 
435                                                        AND id_rubrique = $modif_id_rubrique
436                                                        LIMIT 1" ;
437                         $result602 = spip_query($sql602);
438                 }
439            }
440           
441     // ACCES SUPPRESSION
442            if (isset($_GET['del_rub'])){
443             // si admin restreint, suppression autorisée si proprio de l'accès
444              $id_parent_del = $_GET['del_rub'];
445              if ($id_admin_restreint == 0 OR  ($id_admin_restreint !== 0 AND accesgroupes_est_proprio_acces($id_parent_del) == TRUE)) {
446                  $sql = "DELETE FROM spip_accesgroupes_acces WHERE id_grpacces = $groupe AND id_rubrique = \"".$id_parent_del."\"";
447                  $result = spip_query($sql);
448                  accesgroupes_debug($result);
449                }
450            }
451            //accesgroupes_rub_reinit();
452                   
453                               
454// DEBUT AFFICHAGE DE LA PAGE 
455        debut_page(_T('accesgroupes:module_titre'));
456       
457     // SECURITE ========
458        if ($connect_statut != "0minirezo") {
459            echo "\r\n<h3><font color='red'>"._T('avis_non_acces_page')."</font></h3>";
460            fin_page();
461            exit;
462        }
463       
464                                // never trust users...
465        // test existence du groupe pour ne pas afficher la page admin s'il n'existe pas dans la base alors qu'il est envoyé par $_POST ou $_GET
466        if ($groupe != 0) {
467                 $sql91 = "SELECT COUNT(*) AS verif_grpe FROM spip_accesgroupes_groupes WHERE id_grpacces = $groupe LIMIT 1";
468                 $result91 = spip_query($sql91);
469                 if ($row91 = spip_fetch_array($result91)) {
470                                $row91['verif_grpe'] != 1 ? $groupe = 0 : $groupe = $groupe;
471                 }
472        }
473       
474     // GAUCHE ========
475        debut_gauche();
476        debut_boite_info();
477                                echo "<b>"._T('accesgroupes:module_titre')."</b><br />"._T('accesgroupes:module_info');
478                                if (isset($msg) AND $msg != '') {
479                                         echo $msg;
480                                }
481                                // affichage de la version en cours de acces_groupes à partir de plugin.xml
482                                $Tlecture_fich_plugin = file(_DIR_PLUGIN_ACCESGROUPES.'/plugin.xml');
483                                $stop_prochain = 0;
484                                foreach ($Tlecture_fich_plugin as $ligne) {
485                                                                if ($stop_prochain == 1) {
486                                                                         echo '<br /><br/>Version : <strong>'.$ligne.'</strong>';
487                                                                         break;
488                                                                }
489                                                                if (substr_count($ligne, '<version>') > 0) {
490                                                                         $stop_prochain = 1;
491                                                                }
492                                }
493        fin_boite_info();
494       
495        $sql = "SELECT * FROM spip_accesgroupes_groupes";
496        $result = spip_query($sql);
497        debut_cadre_relief('../'._DIR_PLUGIN_ACCESGROUPES.'/img_pack/groupe-24.png');
498        echo "\r\n<form action=\"$PHP_SELF?exec=accesgroupes_admin\" name=\"frm_groupe\" method=\"post\">";
499        echo "\r\n<br />"._T('accesgroupes:select').": <select name=\"groupe\" size=\"1\" onchange='submit()';>";
500        echo "\r\n<option value=\"0\">"._T('accesgroupes:select_vide')."</option>";
501        while ($row = spip_fetch_array($result)){
502                         echo "<option value=".$row['id_grpacces'].($groupe== $row['id_grpacces'] ? ' selected':'').">";
503                                                 if ($row['actif'] != 1) {
504                                                                echo '('.typo($row['nom']).' : '._T('accesgroupes:inactif').')';
505                                                 }
506                                                 else {
507                                                                        echo typo($row['nom']);
508                                                 }
509                                                 echo "</option>";
510        }
511        echo "</select>";
512       
513        $sql_grp  = "SELECT * FROM spip_accesgroupes_groupes WHERE id_grpacces=\"$groupe\"";
514        $result_grp = spip_query($sql_grp );
515        if ($row = spip_fetch_array($result_grp))
516           $nom = $row['nom'];
517           $desc = $row['description'];
518           $actif = $row['actif'];
519                 $prive_public = $row['prive_public'];
520                 $demande_acces = $row['demande_acces'];
521                                         $le_proprio = $row['proprio'];
522                                         if ($le_proprio != 0) {
523                                                        $sql258 = "SELECT spip_auteurs.nom
524                                                                                           FROM spip_auteurs
525                                                                                                 WHERE id_auteur = $le_proprio
526                                                                                                 LIMIT 1";
527                                                  $result258 = spip_query($sql258);
528                                                        $row258 = spip_fetch_array($result258);
529                                                        $nom_proprio = $row258['nom'];
530                                         }
531                                         else {
532                                                                $nom_proprio = _T('accesgroupes:tous_les_admins');
533                                         }
534       
535        echo "\r\n<table style=\"width: 100%;\"><tr><td class='serif2'>";
536        echo bouton_block_invisible('groupeinfo')._T('accesgroupes:creer');
537        if ($groupe > 0 AND ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) ) {
538                 echo '/'._T('accesgroupes:modifier')." : ";
539        }
540        // echo "$desc";
541        echo "\r\n</td></tr></table>\n";
542       
543        echo debut_block_invisible('groupeinfo');
544                // partie nom et description
545        echo "\r\n<input type=\"hidden\" name=\"groupe\" value=\"$groupe\" />";
546        echo "\r\n<table width=\"100%\">";
547        echo "\r\n<tr><td colspan=\"2\" style=\"font-weight: bold;\">"._T('accesgroupes:nom')." : </td></tr>";
548        echo "\r\n<tr><td colspan=\"2\"><input type=\"text\" name=\"nom\" value=\"$nom\" size=\"18\" />\r\n</td>\r\n</tr>";                     
549        echo "\r\n<tr><td colspan=\"2\" style=\"padding-top: 7px; font-weight: bold;\">"._T('accesgroupes:description')." : </td></tr>";
550        echo "\r\n<tr><td colspan=\"2\"><textarea name=\"description\" rows=\"2\" cols=\"15\">$desc</textarea></td>\r\n</tr>";
551                // bouton créer
552        echo "\r\n<tr><td  style=\"padding-top: 3px;\"><input type=\"submit\" name=\"add_groupe\" value=\""._T('accesgroupes:creer')."\" class='fondo' style='font-size:10px;' />";
553        echo "\r\n</td>\r\n</tr>";
554                // partie demande d'accès
555        echo "\r\n<tr><td colspan=\"2\" style=\"padding-top: 7px; font-weight: bold;\">"._T('accesgroupes:autoriser_demandes');
556        echo " <span style=\"font-size: 10px; font-weight: normal;\">"._T('accesgroupes:help_inscriptions')."</span>\r\n</td></tr>";
557        echo "\r\n<tr><td colspan=\"2\">";
558        echo _T('accesgroupes:oui')."<input name=\"demandes_acces\" value=\"1\" type=\"radio\" ".($demande_acces == 1 ? "checked=\"checked\"" : "")."\">";
559        echo "&nbsp;&nbsp;<input name=\"demandes_acces\" value=\"0\" type=\"radio\" ".($demande_acces == 0 ? "checked=\"checked\"" : "")."\">"._T('accesgroupes:non');
560        echo "\r\n</td>\r\n</tr>";
561       
562                // partie activé/désactivé
563        // admins restreints interdits si pas proprios                 
564        if ($groupe > 0 AND ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE))) {
565                 
566                        echo "\r\n<tr><td colspan=\"2\" style=\"padding-top: 7px; font-weight: bold;\">"._T('accesgroupes:etat_groupe')." : </td></tr>";
567                  echo "\r\n<tr><td colspan=\"2\">"._T('accesgroupes:actif');
568            echo "\r\n<input type=\"radio\" id=\"actif\" name=\"actif\" value=\"1\" ".(($actif != 0)? 'checked="checked" ' : '')."/>";
569            echo "\r\n&nbsp;&nbsp;<input type=\"radio\" id=\"inactif\" name=\"actif\" value=\"0\" ".(($actif == 0)? 'checked="checked" ' : '')."/>";
570            echo "\r\n"._T('accesgroupes:inactif');
571                        echo "\r\n</td>\r\n</tr>";
572        }
573                // partie changer de proprio
574                          // admin généraux uniquement (PAS admins restreints)
575                                if ($groupe > 0 AND $id_util_restreint == 0) {
576                                         echo "\r\n<tr><td colspan=\"2\" style=\"padding-top: 7px; font-weight: bold;\">"._T('accesgroupes:changer_proprio_groupe')." : ";
577                                         echo "<span style=\"font-size: 10px; font-weight: normal;\">("._T('accesgroupes:changer_proprio_help').")</span>";
578                                         $sql256 = "SELECT spip_auteurs.nom, spip_auteurs.id_auteur
579                                                                            FROM spip_auteurs_rubriques
580                                                                                        LEFT JOIN spip_auteurs
581                                                                                        ON spip_auteurs_rubriques.id_auteur = spip_auteurs.id_auteur
582                                                                                        GROUP BY nom
583                                                                                        ORDER BY nom";
584                                         $result256 = spip_query($sql256);
585//echo '<br>mysql_error $sql256 = '.mysql_error();                                       
586                                         echo "\r\n<select name=\"proprio\" id=\"proprio\">";
587                                         echo "<option value=\"0\" ";
588                                         if ($le_proprio == 0) {
589                                                        echo "selected=\"selected\" "; 
590                                         }
591                                         echo ">"._T('accesgroupes:tous_les_admins')."</option>";
592                                         while ($row256 = spip_fetch_array($result256)) {
593                                                                 echo "<option value=\"".$row256['id_auteur']."\" ";
594                                                                 if ($le_proprio == $row256['id_auteur']) {
595                                                                                echo "selected=\"selected\" "; 
596                                                                 }
597                                                                 echo ">".$row256['nom']."</option>";
598                                         }
599                                         echo "</select>";
600                                         echo " </td></tr>";
601                                }
602                // boutons modifier + effacer
603        // admins restreints interdits si pas proprios                 
604        if ($groupe > 0 AND ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE))){
605            echo "\r\n<tr style=\"padding-top: 7px; font-weight: bold;\"><td>";
606            echo "\r\n<input type=\"submit\" name=\"mod_groupe\" value=\""._T('accesgroupes:modifier')."\" class='fondo' style='font-size:10px;' />";                           
607            echo "\r\n</td>\r\n<td>";
608            echo "\r\n<input type=\"button\" onclick=\"bascule_effacer();\" id=\"del_groupe\" name=\"del_groupe\" value=\""._T('accesgroupes:supprimer')."\" CLASS='fondo' STYLE='font-size:10px;' />";
609            echo "\r\n<input type=\"submit\" id=\"del_groupe_all\" name=\"del_groupe_all\" value=\""._T('accesgroupes:supprimer_tout')."\" CLASS='fondo' STYLE='font-size:10px; display: none;' />";
610                        echo "\r\n<script language=\"JavaScript\">
611                                         function bascule_effacer() {
612                                                                                if (document.getElementById('del_groupe') && document.getElementById('del_groupe_all')) {
613                                                                                         document.getElementById('del_groupe').style.display = 'none';
614                                                                                         document.getElementById('del_groupe_all').style.display = 'inline';
615                                                                                         document.getElementById('help_del_groupe').style.display = 'inline';
616                                                                                         document.getElementById('inactif').checked = 'checked';
617                                                                                }
618                                         }";
619                 echo "\r\n</script>";
620                 echo "\r\n</td></tr>";
621        } // fin limitations admins restreints
622        echo "\r\n<tr><td colspan=\"2\" style=\"background-color: #eeeeee; border: 1px solid #cccccc; font-size: 10px;\">";
623        echo "\r\n<span id=\"help_del_groupe\" style=\"display: none;\">"._T('accesgroupes:help_supprimer')."</span>";
624        echo "\r\n</td>\r\n</tr>\r\n</table>";
625        echo fin_block();
626        fin_cadre_relief();
627        echo "\r\n</form>";
628       
629       
630        // afficher la répartition des rubriques par groupes
631        if ($groupe > 0){
632                 debut_cadre_relief('rubrique-24.gif');
633                 echo accesgroupes_affiche_groupes_rubriques(); 
634                 fin_cadre_relief();
635        }
636       
637        // afficher l'arborescence des groupes
638       
639                                echo '<div style="width: 220px !important;">'; // blocage de la largeur du cadre raccourcis pour Mozilla Seamonkey
640        debut_raccourcis();
641                                               
642        echo "\r\n<table CELLPADDING=2 CELLSPACING=0 class='arial2' style='border: 1px solid #aaa; width: 100%;'>\n";
643        echo "\r\n<tr style='background-color: #fff;'><th colspan=\"2\">"._T('accesgroupes:arborescence_groupes')."</th><th colspan=\"2\">&nbsp;</th></tr>";
644                        $sql102 = "SELECT id_grpacces, nom, actif
645                                                                 FROM spip_accesgroupes_groupes
646                                                                 GROUP BY nom";
647                        $result102 = spip_query($sql102);
648        while ($row = spip_fetch_array($result102)){
649                                 $id_ec = $row['id_grpacces'];
650                                 $nom_ec = typo($row['nom']); //$row['nom'];
651                                 echo "\r\n<tr style='background-color: #eeeeee;'>";
652               echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
653                                 if (accesgroupes_est_admin_restreint() == TRUE AND accesgroupes_est_proprio($id_ec) == TRUE) {
654                                                                        echo "<img src='img_pack/admin-12.gif' alt='|_' style='vertical-align:top;'>";
655                                                         }
656                                                 echo "\r\n<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/groupe-12.png' alt='|_'></td>";
657               echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"$PHP_SELF?exec=accesgroupes_admin&groupe=".$id_ec."\">";
658                                                 if ($row['actif'] != 1) {
659                                                                echo '('.$nom_ec.' : <span style="color: #6c3;">'._T('accesgroupes:inactif').'</span>)';
660                                                 }
661                                                 else {
662                                                                        echo $nom_ec;
663                                                 }
664                                 echo "</a><br />";
665                                 echo accesgroupes_affiche_descendance($id_ec, accesgroupes_descendance_groupe($id_ec));
666                                 echo "\r\n</td>";
667               echo "\r\n<td style='border-top: 1px solid #cccccc; text-align : right; padding-right: 20px; vertical-align: middle;'>";
668                  // supprimer rapide pour les admins pas restreints
669                                 if (($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($id_ec) == TRUE) ) AND $groupe != 0) {
670                                                 echo "\r\n<a style=\"vertical-align: bottom;\" href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_groupe=".$id_ec."&groupe=".$groupe."\">". http_img_pack('croix-rouge.gif', _T('accesgroupes:suppression'), "width='7' height='7' border='0' style='vertical-align: middle;'")."</a>";
671                                 }
672                                 else {
673                                                  echo "&nbsp;";
674                                 }                                       
675                                                 echo "\r\n</td>";
676               echo "\r\n</tr>";
677        }
678 
679        echo "\r\n</table>";
680               
681        fin_raccourcis();
682        echo '</div>';
683                               
684     // DROITE ========
685        debut_droite();
686       
687        if ($msg_text != '') {
688                 $tete_msg = '<span style="color: '.($alerte != 1 ? '#6c3' : '#f00').'; text-align: center; font-weight: bold; font-size: 1.2em;">';
689                 $queue_msg = '</span>';
690                 $msg_text = $tete_msg.$msg_text.$queue_msg;
691        }
692        if ($groupe <= 0){  // si pas de groupe envoyé par $_GET ou $_POST
693          // affichage des groupes existants et des rubriques qu'ils contrôlent
694            gros_titre(_T('accesgroupes:titre_groupes'));
695            echo "\r\n<br />";
696                        if ($msg_text != '') {
697                                  debut_cadre_trait_couleur("fiche-perso-24.gif", false, "", _T('accesgroupes:titre_msg_text'));
698                                  debut_cadre_couleur();
699                                        echo $msg_text;
700                                        fin_cadre_couleur();
701                                  fin_cadre_trait_couleur();
702                        }
703            debut_cadre_trait_couleur("auteur-24.gif", false, "", _T('accesgroupes:membres'));
704            gros_titre(_T('accesgroupes:choisir'));
705            fin_cadre_trait_couleur();
706            echo "\r\n<br />";
707           
708            debut_cadre_trait_couleur("rubrique-24.gif", false, "", _T('accesgroupes:organisation'));
709            echo accesgroupes_affiche_groupes_rubriques();
710            fin_cadre_trait_couleur();
711        }
712        else {  // attention else extra long !! : la page de gestion du groupe déterminé par $_GET ou $_POST
713                                                $sql567 = "SELECT actif FROM spip_accesgroupes_groupes WHERE id_grpacces = $groupe LIMIT 1";
714                                                $result567 = spip_query($sql567);
715                                                $row = spip_fetch_array($result567);
716                                                        $inactif = ($row['actif'] != 1 ? ' <span style="color: #6c3;">'._T('accesgroupes:inactif').'</span>' : '');
717                                                        gros_titre(_T('accesgroupes:titre_page_groupe').' : '.$nom.' (n&deg; '.$groupe.')'.$inactif);
718              if ($desc != "") {
719                                echo "<div align='$spip_lang_left' style='margin-top: 10px; padding: 5px; border: 1px dashed #aaa; font-family: Verdana,Arial,Sans,sans-serif; font-size: 10px;'>";
720                                echo "$desc ("._T('accesgroupes:proprio')." : $nom_proprio)";
721                                echo "</div>\r\n<br />";
722                                }
723                        if ($msg_text != '') {
724                                 debut_cadre_trait_couleur("fiche-perso-24.gif", false, "", _T('accesgroupes:titre_msg_text'));
725                                 debut_cadre_couleur();
726                                         echo $msg_text;
727                                         fin_cadre_couleur();
728                                 fin_cadre_trait_couleur();
729                        }
730                                debut_cadre_trait_couleur("auteur-24.gif", false, "", _T('accesgroupes:auteurs')._T('accesgroupes:du_groupe'));
731                               
732          // admins restreints interdits si pas proprios                       
733              if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
734                                         debut_cadre_couleur();
735                                 $suffixe_action_form = ($groupe AND $groupe != '') ? "&groupe=".$groupe : "";
736                                         echo "\r\n<form action=\"$PHP_SELF?exec=accesgroupes_admin".$suffixe_action_form."\" name=\"frm_auteur\" method=\"post\">";
737                                         echo "\r\n<input type=\"hidden\" name=\"groupe\" value=\"$groupe\" />";
738                 echo _T('accesgroupes:ajouter_auteur');
739                 $group = false;
740                 $group2 = false;
741                               
742                 $sql1 = "SELECT spip_auteurs.*
743                                            FROM spip_auteurs
744                                                        LEFT JOIN spip_accesgroupes_auteurs
745                                                        ON spip_auteurs.id_auteur =  spip_accesgroupes_auteurs.id_auteur 
746                                                        WHERE statut != '5poubelle' 
747                                                        AND statut != 'nouveau' 
748                                                        ORDER BY statut, nom";
749                 $result1 = spip_query($sql1);
750                 if (mysql_errno() != 0) {
751                                                        echo mysql_errno().": ".mysql_error();
752                                   }
753                                         echo "\r\n<select name='auteur' size='1' style='width:150px;' class='fondl'>";
754                 while ($row = spip_fetch_array($result1)) {
755                         $id_auteur = $row["id_auteur"];
756                         $nom = $row["nom"];
757                         $email = $row["email"];
758                         $statut = $row["statut"];
759                                                       
760                         $statut = str_replace("0minirezo", html_entity_decode(_T('info_administrateurs')), $statut);
761                         $statut = str_replace("1comite", html_entity_decode(_T('info_redacteurs')), $statut);
762                         $statut = str_replace("6visiteur", html_entity_decode(_T('info_visiteurs')), $statut);
763         
764                         $premiere = strtoupper(substr(trim($nom), 0, 1));
765         
766                         if ($connect_statut != '0minirezo') {
767                                if ($p = strpos($email, '@')) {
768                             $email = substr($email, 0, $p).'@...';
769                                                                                                        }
770                                                                                   }
771                         if ($email) {
772                                $email = " ($email)";
773                                                                                         }
774         
775                         if ($statut != $statut_old) {
776                                echo "\r\n<option value=\"x\"> </option>";
777                                echo "\r\n<option value=\"x\" style='background-color: $couleur_claire;'> ".strtoupper($statut)." :</option>";
778                       }
779         
780                         if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old)) {
781//                        echo "\r\n<option value=\"x\"> </option>";
782                       }
783         
784                         $texte_option = supprimer_tags(couper(typo("$nom$email"), 40));
785                         echo "\r\n<option value=\"$id_auteur\">&nbsp;&nbsp;&nbsp;&nbsp;$texte_option</option>";
786                         $statut_old = $statut;
787                         $premiere_old = $premiere;
788                 }
789       
790                 echo "\r\n</select>";
791                                         echo "\r\n<input type=\"submit\" name=\"add_auteur\" value=\""._T('accesgroupes:ajouter')."\"  class='fondo'/>";
792                                fin_cadre_couleur();           
793              } // fin restriction admin restreint
794                 
795            // tableau des auteurs ayant accès
796                                echo "\r\n<table CELLPADDING=2 CELLSPACING=0 class='arial2' style='width: 100%; border: 1px solid #aaa;'>\n";
797              echo "\r\n<tr><th colspan=\"2\">"._T('accesgroupes:auteurs_groupe')."</th><th colspan=\"2\">&nbsp;</th></tr>";
798
799              $sql2 = "SELECT spip_auteurs.id_auteur, spip_auteurs.nom, spip_auteurs.statut
800                                                                                         FROM spip_accesgroupes_auteurs
801                                                                                         LEFT JOIN spip_auteurs
802                                                                                         ON spip_auteurs.id_auteur = spip_accesgroupes_auteurs.id_auteur
803                                                                                         WHERE id_grpacces = $groupe
804                                                                                         AND dde_acces = 0";                                                                                     
805// , spip_accesgroupes_auteurs.dde_acces
806                                                        $result2 = spip_query($sql2);
807//echo '<br>mysql_error $sql2 = '.mysql_error();                                                       
808              while ($row = spip_fetch_array($result2)){
809                                                                         if ($row['id_auteur'] == 0) {
810                                                                                        continue;
811                                                                         }
812                                                                         echo "\r\n<tr style='background-color: #eeeeee;'>";
813                   echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
814                                         $statut_util_ec = accesgroupes_trouve_statut($row['id_auteur']);
815                                                 $statut_util_ec == '0minirezo' ?  $ico_statut = 'admin-12.gif' : ($statut_util_ec == '1comite' ? $ico_statut = 'redac-12.gif' : $ico_statut = 'visit-12.gif');
816                                                 echo "\r\n<img src='img_pack/".$ico_statut."' alt='|_' style='vertical-align:top;'></td>";
817                   echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"?exec=auteurs_edit&id_auteur=".$row['id_auteur']."\">".$row['nom']."</a></td>";
818                   echo "\r\n<td style='border-top: 1px solid #cccccc; text-align : right; padding-right: 20px;'>";
819                                        // admins restreints interdits de modifs des membres du groupe si pas proprios
820                                                 if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
821                                                 echo "\r\n<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_auteur=".$row['id_auteur']."&groupe=$groupe\"> "._T('lien_retirer_auteur')." &nbsp;  ".http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' style='vertical-align: middle;'")."</a>";
822//                       echo ($row['dde_acces'] == 1) ? "&nbsp;|&nbsp;<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&mod_auteur=".$row['id_auteur']."&groupe=".$groupe."\"> "._T('accesgroupes:accepter')."</a>" : "";
823                                        }
824                                        else {
825                                                         echo $row['id_auteur'];
826                                        }
827                                                 echo "\r\n</td>";
828                   echo "\r\n<td style='border-top: 1px solid #ccc;'><a href=\"mailto:$email\"></a></td>";
829                   echo "\r\n</tr>";
830              }
831              echo "</table>";
832                               
833            // tableau des auteurs en attente d'une demande d'accès
834              $sql2 = "SELECT spip_auteurs.id_auteur, spip_auteurs.nom, spip_auteurs.statut
835                                         FROM spip_accesgroupes_auteurs 
836                                         LEFT JOIN spip_auteurs
837                                                                                         ON spip_accesgroupes_auteurs.id_auteur = spip_auteurs.id_auteur 
838                                         WHERE id_grpacces = $groupe
839                                                                 AND dde_acces != 0";
840// , spip_accesgroupes_auteurs.dde_acces                                                                                         
841              $result2 = spip_query($sql2);
842                                if (spip_num_rows($result2) > 0) {
843                  echo "\r\n<br /><table CELLPADDING=2 CELLSPACING=0 class='arial2' style='width: 100%; border: 1px solid #aaaaaa;'>\n";
844                  echo "\r\n<tr><th colspan=\"4\">"._T('accesgroupes:auteurs_en_attente')."</th></tr>";
845                  while ($row = spip_fetch_array($result2)){
846                       echo "\r\n<tr style='background-color: #eeeeee;'>";
847                       echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
848                                         $statut_util_ec = accesgroupes_trouve_statut($row['id_auteur']);
849                                                 $statut_util_ec == '0minirezo' ?  $ico_statut = 'admin-12.gif' : ($statut_util_ec == '1comite' ? $ico_statut = 'redac-12.gif' : $ico_statut = 'visit-12.gif');
850                                                 echo "\r\n<img src='img_pack/".$ico_statut."' alt='|_' style='vertical-align:top;'></td>";
851                       echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"?exec=auteurs_edit&id_auteur=".$row['id_auteur']."\">".$row['nom']."</a></td>";
852                       echo "\r\n<td style='border-top: 1px solid #cccccc; text-align : right; padding-right: 20px;'>";
853                                     if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
854                                                                echo "\r\n<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_auteur=".$row['id_auteur']."&groupe=$groupe&message=refuse\"> "._T('lien_retirer_auteur')." &nbsp;  ".http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' style='vertical-align: middle;'")."</a>";
855                                                                                                        echo "&nbsp;|&nbsp;<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&mod_auteur=".$row['id_auteur']."&groupe=".$groupe."&message=accepte\"> "._T('accesgroupes:accepter')."</a>";
856//                                      echo ($row['dde_acces'] == 1) ? "&nbsp;|&nbsp;<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&mod_auteur=".$row['id_auteur']."&groupe=".$groupe."\"> "._T('accesgroupes:accepter')."</a>" : "";
857                                           }
858                                           else {
859                                                                        echo $row['id_auteur'];
860                                           }
861                                                 echo "\r\n</td>";
862                       echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"mailto:$email\"></a></td>";
863                       echo "\r\n</tr>";
864                  }
865                  echo "</table>";
866                                }
867        fin_cadre_trait_couleur();
868       
869       
870     // inclure/gérer des ss-groupes ou des statuts dans les groupes
871        // début des sous-groupes
872              echo "\r\n<br />";
873        debut_cadre_trait_couleur("../"._DIR_PLUGIN_ACCESGROUPES."/img_pack/groupe-24.png", false, "", _T('accesgroupes:ss_groupes')._T('accesgroupes:du_groupe'));
874       
875        // admins restreints interdits si pas proprios
876              if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
877        debut_cadre_couleur();
878                                echo _T('accesgroupes:ajouter_ss_groupe');
879                  echo "\r\n<select name='ss_groupe' SIZE='1' style='width:150px;' class='fondl'>\r\n";
880                               
881                                $sql101 = "SELECT id_grpacces, nom FROM spip_accesgroupes_groupes WHERE id_grpacces != $groupe AND actif = 1 ORDER BY nom";
882                                $result101 = spip_query($sql101);
883           
884                  echo "\n<option value=\"x\"> </option>\r\n";
885                  while ($row = spip_fetch_array($result101)) {
886                        $id_ss_groupe = $row["id_grpacces"];
887                        $nom_ss_groupe = $row["nom"];
888                                // ne pas afficher les groupes déja inclus dans le groupe en cours (et leurs descendants)
889                                                        if (accesgroupes_verifie_inclusions_groupe($groupe, $id_ss_groupe) == FALSE) {
890                                                                 continue;
891                                                        }
892                                        // ne pas afficher les groupes appartenant à l'ascendance du groupe en cours
893                                                        if (accesgroupes_verifie_inclusions_groupe($id_ss_groupe, $groupe) == FALSE) {
894                                                                 continue;
895                                                        }
896                        $nom_ss_grpe = strtoupper(substr(trim($nom_ss_groupe), 0, 1));
897                        echo "\n<option value=\"$id_ss_groupe\" style='background-color: $couleur_claire;'> $nom_ss_groupe</option>\r\n";
898                  }
899           
900                  echo "</select>\r\n";
901                               
902                                echo "<input type=\"submit\" name=\"add_ss_groupe\" value=\""._T('accesgroupes:ajouter')."\"  CLASS='fondo'/>";
903        fin_cadre_couleur();
904              } // fin limitation admin restreint
905                                         
906                          echo "\r\n<table CELLPADDING=2 CELLSPACING=0 class='arial2' style='width: 100%; border: 1px solid #aaa;'>\n";
907              echo "\r\n<tr><th colspan='3'>"._T('accesgroupes:ss_groupes_groupe')."</th></tr>";
908                          $sql102 = "SELECT spip_accesgroupes_auteurs.id_ss_groupe, spip_accesgroupes_groupes.nom, spip_accesgroupes_auteurs.id_grpacces
909                                                                         FROM spip_accesgroupes_auteurs
910                                                                                                 LEFT JOIN spip_accesgroupes_groupes
911                                                                                                 ON spip_accesgroupes_auteurs.id_ss_groupe = spip_accesgroupes_groupes.id_grpacces
912                                                                         WHERE actif = 1
913                                                                         ORDER BY nom";
914// , spip_accesgroupes_auteurs.dde_acces
915//                                                                       WHERE spip_accesgroupes_auteurs.id_grpacces = $groupe
916                          $result102 = spip_query($sql102);
917//echo '<br>mysql_error $sql102 = '.mysql_error();                                                     
918              while ($row = spip_fetch_array($result102)){
919                                 if ($row['id_grpacces'] != $groupe) {
920                                                                                                continue;
921                                                                                 }
922                                                                                 $id_ec = $row['id_ss_groupe'];
923                                 $nom_ec = $row['nom'];
924                                 echo "\r\n<tr style='background-color: #eeeeee;'>";
925                     echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
926                                                         echo "\r\n<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/groupe-12.png' alt='|_' style='vertical-align:top;'></td>";
927                     echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"$PHP_SELF?exec=accesgroupes_admin&groupe=".$id_ec."\">".$nom_ec."</a><br />";
928                                 echo accesgroupes_affiche_descendance($id_ec, accesgroupes_descendance_groupe($id_ec));
929                                 echo "</td>";
930                     echo "\r\n<td style='border-top: 1px solid #cccccc; text-align : right; padding-right: 20px;'>";
931                             if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
932                                                         echo "\r\n<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_ss_groupe=".$row['id_ss_groupe']."&groupe=".$groupe."\">"._T('accesgroupes:retirer_groupe')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' style='vertical-align: middle;'")."</a>";
933//                         echo $row['dde_acces'] == 1 ? "&nbsp;|&nbsp;<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&mod_ss_groupe=".$row['id_ss_groupe']."&groupe=".$groupe."\">"._T('accesgroupes:accepter')."</a>" : "";
934                                         }
935                                         else {
936                                                          echo "&nbsp;";
937                                         }                                       
938                                                         echo "</td>";
939                     echo "</tr>";
940              }
941              echo "\r\n</table>";
942        fin_cadre_trait_couleur();
943       
944      // début des statuts                     
945                        echo "\r\n<br />";
946        debut_cadre_trait_couleur("../"._DIR_PLUGIN_ACCESGROUPES."/img_pack/statuts-24.png", false, "", _T('accesgroupes:statuts')._T('accesgroupes:du_groupe'));
947                    $Tstatuts = array("0minirezo" => "Administrateurs", "1comite" => "R&eacute;dacteurs", "6forum" => "Visiteurs");
948                        if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
949        debut_cadre_couleur();
950                                 echo _T('accesgroupes:ajouter_statut');
951                 echo "\r\n<select name='sp_statut' SIZE='1' style='width:150px;' class='fondl'>\r\n";
952                                 $sql105 = "SELECT sp_statut FROM spip_accesgroupes_auteurs WHERE id_grpacces = $groupe AND sp_statut != '' GROUP BY sp_statut";
953                                 $result105 = spip_query($sql105);
954                                 while ($row = spip_fetch_array($result105)) {
955                                                        $Tresult105[] = $row['sp_statut'];
956                                 }
957                 echo "\r\n<option value=\"x\"> </option>\r\n";
958                 foreach ($Tstatuts as $statut_ec => $nom_stat) {
959                                                                if (!in_array($statut_ec, $Tresult105)) {
960                                                                 echo "\r\n<option value=\"$statut_ec\" style='background-color: $couleur_claire;'> $nom_stat</option>\r\n";
961                                                                }
962                 }
963                 echo "\r\n</select>\r\n";
964                                 echo "\r\n<input type=\"submit\" name=\"add_statut\" value=\""._T('accesgroupes:ajouter')."\"  CLASS='fondo'/>";
965        fin_cadre_couleur();
966              } // fin limitation admin restreint
967                        $sql104 = "SELECT spip_accesgroupes_auteurs.sp_statut, spip_accesgroupes_auteurs.id_grpacces
968                                         FROM spip_accesgroupes_auteurs
969                                                                                         LEFT JOIN spip_accesgroupes_groupes
970                                                                                         ON spip_accesgroupes_groupes.id_grpacces = spip_accesgroupes_auteurs.id_grpacces
971                                         WHERE actif = 1
972                                         AND sp_statut != ''";
973                        $result104 = spip_query($sql104);
974// , spip_accesgroupes_auteurs.dde_acces
975//echo '<br>mysql_error $sql104 = '.mysql_error();             
976                        echo "\r\n<table CELLPADDING=2 CELLSPACING=0 class='arial2' style='width: 100%; border: 1px solid #aaaaaa;'>\n";
977                        echo "\r\n<tr><th colspan=\"3\">"._T('accesgroupes:statut_groupe')."</th></tr>";
978                        while ($row = spip_fetch_array($result104)) {
979                                                                                if ($row['id_grpacces'] != $groupe) {
980                                                                                         continue;
981                                                                                }       
982                                                                                $statut_ec = $row['sp_statut'];
983                                                $nom_statut = $Tstatuts[$statut_ec];
984                                                        $statut_ec == '0minirezo' ?  $ico_statut = 'admin-12.gif' : ($statut_ec == '1comite' ? $ico_statut = 'redac-12.gif' : $ico_statut = 'visit-12.gif');
985                                                 
986                                                echo "\r\n<tr style='background-color: #eeeeee;'>";
987                                echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
988                                                                echo "\r\n<img src='img_pack/".$ico_statut."' alt='|_' style='vertical-align:top;'></td>";
989                                                                echo "\r\n<td style='border-top: 1px solid #cccccc;'>".$nom_statut."</td>";                     
990                                echo "\r\n<td style='border-top: 1px solid #cccccc; text-align : right; padding-right: 20px;'>";
991                                                if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio($groupe) == TRUE)) {
992                                                                 echo "\r\n<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_statut=".$statut_ec."&groupe=".$groupe."\">"._T('accesgroupes:retirer_statut')."&nbsp;".http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' style='vertical-align: middle;'")."</a>";
993//                       echo ($row['dde_acces']== 1) ? "&nbsp;|&nbsp;<a href=\"".$PHP_SELF."?exec=accesgroupes_admin&mod_statut=".$statut_ec."&groupe=".$groupe."\">"._T('accesgroupes:accepter')."</a>" : "";
994                                                }
995                                                else {
996                                                                         echo "&nbsp;";
997                                      }
998                                                        echo "\r\n</td>";
999                                echo "\r\n</tr>";
1000              }
1001                        echo "\r\n</table>";
1002        fin_cadre_trait_couleur();
1003       
1004                    echo "\r\n</form>";
1005       
1006                        echo "<br />";
1007       
1008                                echo "\r\n<script language=\"JavaScript\" type=\"text/javascript\">
1009                                                                                Tacces_rub = new Array();
1010                                                                        // fct pour sélectionner le radio correspondant au type d'accès restreint (privé+public/privé/public) de la rubrique sélectionnée dans la liste déroulante
1011                                                                        // et limiter le choix du type de restriction en fct du type d'accès du parent par masquage des radios interdits
1012                                                                                        function select_rubrique_acces() {
1013                                                                                                                         document.getElementById('span_prive_public_1').style.display = 'inline';
1014                                                                                                                         document.getElementById('span_prive_public_2').style.display = 'inline';
1015                                                                                                                         for (i in Tacces_rub) {
1016                                                                                                                                         if (document.getElementById('add_id_rubrique').value == Tacces_rub[i][0]) {
1017                                                                                                                                                        document.getElementById('prive_public_' + Tacces_rub[i][1]).checked = 'checked';
1018                                                                                                                                                        if (Tacces_rub[i][2] == 0) {
1019                                                                                                                                                                 document.getElementById('span_prive_public_1').style.display = 'none';
1020                                                                                                                                                                 document.getElementById('span_prive_public_2').style.display = 'none';
1021                                                                                                                                                        }
1022                                                                                                                                                        if (Tacces_rub[i][2] == 1) {
1023                                                                                                                                                                 document.getElementById('span_prive_public_2').style.display = 'none';
1024                                                                                                                                                        }
1025                                                                                                                                                        if (Tacces_rub[i][2] == 2) {
1026                                                                                                                                                                 document.getElementById('span_prive_public_1').style.display = 'none';
1027                                                                                                                                                        }
1028                                                                                                                                                        return true;
1029                                                                                                                                         }
1030                                                                                                                         }
1031                                                                                                                // si la rubrique n'appartient pas à Tacces_rub, sélectionner prive+public par défaut
1032                                                                                                                         document.getElementById('prive_public_0').checked = 'checked';
1033                                                                                        }
1034                                            ";
1035                                echo "                  </script>";
1036       
1037        debut_cadre_trait_couleur("rubrique-24.gif", false, "", _T('accesgroupes:rubriques_restreintes'));
1038             
1039                    echo "<div style=\"font-weight: bold; margin-bottom: 5px; font-size: 10px;\">";
1040                                echo _T('accesgroupes:rubriques_autorisees_info');
1041                                echo "<span style=\"color: #f00; background-color: #c0cad4; padding: 2px;\">";
1042                                echo _T('accesgroupes:prive_public');
1043                                echo "</span> <span style=\"color: #093; background-color: #c0cad4; padding: 2px;\">";
1044                                echo _T('accesgroupes:prive_seul');
1045                                echo "</span> <span style=\"color: #f90; background-color: #c0cad4; padding: 2px;\">";
1046                                echo _T('accesgroupes:public_seul');
1047                                echo "</span></div>";
1048                                echo "<div style=\"font-weight: bold; margin-bottom: 5px; font-size: 10px;\">";
1049                                echo _T('accesgroupes:prive_public_autres');
1050                                echo "<span style=\"color: #00f; background-color: #c0cad4; padding: 2px; font-size: 10px;\">";
1051                                echo _T('accesgroupes:prive_public_tous');
1052                                echo "</span></div>";
1053                               
1054                        echo "\r\n<form action=\"$PHP_SELF?exec=accesgroupes_admin\" name=\"frm_rubrique\" method=\"post\" style=\"margin-bottom: 0px;\">\n";
1055                        echo "\r\n<select id='add_id_rubrique' onChange=\"select_rubrique_acces();\" name='add_id_rubrique' style='background-color:#fff; font-size:90%; font-face:verdana,arial,helvetica,sans-serif; max-height: 24px; margin-top: 2px;' class='forml' size='1'>\n";
1056                        if ($connect_toutes_rubriques) {
1057                  echo "\r\n<option ".mySel("0",$id_parent).http_style_background('racine-site-12.gif',  "$spip_lang_left no-repeat; background-color:$couleur_foncee; padding-$spip_lang_left: 16px; font-weight:bold; color:white") .'>'._T('info_racine_site')."\n";
1058              } 
1059                        else {
1060                                                 $Trub_autorise = accesgroupes_cree_Trub_admin();
1061                                                 if (count($Trub_autorise) > 0) {
1062                                                 accesgroupes_enfant(0);
1063                                                 }
1064                                                 else {
1065                                                                        echo "\r\n<option ".mySel("0",$id_parent).http_style_background('racine-site-12.gif',  "$spip_lang_left no-repeat; background-color:$couleur_foncee; padding-$spip_lang_left: 16px; font-weight:bold; color:white");" \">"._T('info_non_deplacer')."\n";
1066                                                 }
1067              }
1068             
1069                        if (lire_meta('multi_rubriques') == 'oui') {
1070                                         echo " [".traduire_nom_langue(lire_meta('langue_site'))."]";
1071                    }
1072             
1073              // si le parent ne fait pas partie des rubriques restreintes, modif impossible
1074                        if (acces_rubrique($id_parent)) {
1075                  accesgroupes_enfant(0);
1076              }
1077                               
1078                        echo "</select>";
1079       
1080                        echo "\r\n<span style=\"font-size: 10px; float: right; text-align: left;\">";
1081                                echo "\r\n<span id=\"span_prive_public_2\"><input id=\"prive_public_2\" style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"prive_public\" value=\"2\"".($prive_public_ec == 2 ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:public')."</span>";
1082                                echo "\r\n<span id=\"span_prive_public_1\"><br /><input id=\"prive_public_1\" style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"prive_public\" value=\"1\"".($prive_public_ec == 1 ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:prive')."</span>";
1083                                echo "\r\n<span id=\"span_prive_public_0\"><br /><input id=\"prive_public_0\" style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"prive_public\" value=\"0\"".(($prive_public_ec == 0 OR $prive_public_ec == '') ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:les_2')."</span>";
1084                                echo "\r\n</span>";
1085                                echo "\r\n<span style=\"float: right;\">"._T('accesgroupes:portee_acces')."</span>";
1086                        echo "\r\n<input type=\"submit\" name=\"add_rub\" value=\""._T('accesgroupes:autoriser')."\"  class='fondo'/> \n";
1087                                echo "\r\n<br /><span style=\"font-size: 9px;\">("._T('accesgroupes:help_portee_acces').")</span>";
1088                        echo "\r\n<input type=\"hidden\" name=\"groupe\" value=\"$groupe\" />\n";
1089                        echo "\r\n</form>\n";
1090                                echo "\r\n<script language=\"JavaScript\" type=\"text/javascript\">select_rubrique_acces();</script>";                 
1091
1092                                            $sql603 = "SELECT spip_rubriques.*, spip_accesgroupes_acces.prive_public, spip_auteurs.nom, spip_auteurs.id_auteur
1093                                                 FROM spip_accesgroupes_acces
1094                                                                                                 LEFT JOIN spip_rubriques
1095                                                                                                 ON spip_accesgroupes_acces.id_rubrique = spip_rubriques.id_rubrique
1096                                                                                                 LEFT JOIN spip_auteurs
1097                                                                                                 ON spip_accesgroupes_acces.proprio = spip_auteurs.id_auteur
1098                                                                                                 WHERE id_grpacces = \"$groupe\"";
1099//echo '<br>mysql_error $sql603 = '.mysql_error();
1100             
1101              $result603 = spip_query($sql603);
1102                                                        accesgroupes_debug($result603);
1103                        echo "\r\n<table CELLPADDING=2 CELLSPACING=0 class='arial2' style='border: 1px solid #aaaaaa; width: 100%; clear: right; margin-top: 0px;'>\n";
1104                        echo "\r\n<tr><th colspan='5'>"._T('accesgroupes:autoriser_info')."</tr>";
1105                                echo "\r\n<tr style=\"background-color: #fff; border-top: solid 1px #ccc;\"><td style=\"font-size: 10px; border-top: solid 1px #ccc;\"></td><td style=\" border-top: solid 1px #ccc;\">"._T('accesgroupes:nom')."</td><td colspan=\"2\" style=\" border-top: solid 1px #ccc;\">"._T('accesgroupes:portee_acces')."</td><td  style=\"margin-left: 20px; padding-right: 20px; border-top: solid 1px #ccc;\" >"._T('accesgroupes:suppression')."</td></tr>";
1106                        while ($row = spip_fetch_array($result603)){
1107                                $prive_public_ec = $row['prive_public'];
1108                                                        $modif_id_rubrique = $row['id_rubrique'];
1109                                                                                $id_proprio_ec = $row['id_auteur'];
1110                                                                                $nom_proprio_ec = $row['nom'];
1111                                                        echo "\r\n<tr style='background-color: #eeeeee;'>";
1112                                                        echo "\r\n<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:middle;'>";
1113                                                        echo "\r\n<img src='img_pack/rubrique-12.gif' alt='|_'></td>";
1114                                                        echo "\r\n<td style='border-top: 1px solid #cccccc;'><a href=\"?exec=naviguer&id_rubrique=".$row['id_rubrique']."\">".typo($row['titre'])."</a></td>";
1115                                                        echo "\r\n<td style='border-top: 1px solid #cccccc; text-align: right;'>";
1116                                        if ($id_util_restreint == 0 OR ($id_util_restreint != 0 AND accesgroupes_est_proprio_acces($row['id_rubrique']) == TRUE)) {
1117//  AND accesgroupes_est_proprio($groupe) == TRUE                                                                               
1118                                  echo "\r\n<form action=\"$PHP_SELF?exec=accesgroupes_admin&groupe=$groupe\" name=\"form_modif_rubrique_".$modif_id_rubrique."\" method=\"post\">\n";
1119                                                        echo "\r\n<input  style=\"font-size: 75%;\" type=\"submit\" name=\"submit_modif_rub\" value=\""._T('accesgroupes:modifier')."\"  CLASS='fondo'/></td>\n";
1120                                                        echo "\r\n<td style=\"border-top: 1px solid #cccccc;\">";
1121                                                         // selon le prive/public de l'ascendance de la rubrique, limiter les possibilités de prive/public pour la rubrique
1122                                                                                                if ($Trub_grpe_ec_parent[$row['id_rubrique']] > 1) { 
1123                                                                                 echo "\r\n<input style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"modif_prive_public\" value=\"2\"".($prive_public_ec == 2 ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:public');
1124                                                        }
1125                                                                        if ($Trub_grpe_ec_parent[$row['id_rubrique']] > 0 AND $Trub_grpe_ec_parent[$row['id_rubrique']] != 2) {
1126                                                                                 echo "\r\n<br /><input style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"modif_prive_public\" value=\"1\"".($prive_public_ec == 1 ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:prive');
1127                                                        }
1128                                                                        echo "\r\n<br /><input style=\"text-align: right; vertical-align: bottom;\" type=\"radio\" name=\"modif_prive_public\" value=\"0\"".(($prive_public_ec == 0 OR $prive_public_ec == '') ? " checked=\"checked\"" : "")."  />"._T('accesgroupes:les_2');
1129                                                        echo "\r\n<input type=\"hidden\" name=\"modif_id_rubrique\" value=\"$modif_id_rubrique\" />\n";
1130                                                        echo "\r\n<input type=\"hidden\" name=\"modif_id_groupe\" value=\"$groupe\" /></td>";
1131                                        echo "\r\n</form>\n";
1132                                                        echo "\r\n<td style=\"border-top: 1px solid #ccc; padding-right: 10px;\" ><a href=\"".$PHP_SELF."?exec=accesgroupes_admin&del_rub=".$row['id_rubrique']."&groupe=".$groupe."\">"._T('supprimer')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' style='vertical-align: middle;'") ."</a></td>\n";
1133           
1134                                  }
1135                                  else {
1136                                                  echo "\r\n</td>";
1137                                                                                                echo "\r\n<td style=\"border-top: 1px solid #ccc; padding-right: 10px;\" colspan=\"2\">";
1138                                                                                                echo '('._T('accesgroupes:restriction_cree_par').' : ';
1139                                                                                                if ($nom_proprio_ec != '') {
1140                                                                                                         echo '<a href="?exec=auteurs_edit&id_auteur='.$id_proprio_ec.'">'.$nom_proprio_ec.'</a>';
1141                                                                                                }
1142                                                                                                else {
1143                                                                                                                 echo _T('accesgroupes:tous_les_admins');
1144                                                                                                }               
1145                                                                                                echo ")</td>";
1146                                  }
1147                                        echo "\r\n</tr>";
1148              }
1149                        echo "\r\n</table>";
1150       
1151        fin_cadre_trait_couleur();
1152       
1153        // liste des autres groupes ayant accès à la rubrique ajoutée ou modifiée...
1154              if (isset($_POST['add_id_rubrique']) OR isset($_POST['modif_id_rubrique'])) {
1155                                                                  $id_rubrique_am = ( isset($_POST['add_id_rubrique']) ? $_POST['add_id_rubrique'] : $_POST['modif_id_rubrique'] );
1156                                                        $sql655 = "SELECT spip_accesgroupes_groupes.nom, spip_accesgroupes_acces.id_grpacces
1157                                                 FROM  spip_accesgroupes_groupes
1158                                                                                 LEFT JOIN spip_accesgroupes_acces
1159                                                                                 ON spip_accesgroupes_acces.id_grpacces = spip_accesgroupes_groupes.id_grpacces
1160                                                 WHERE id_rubrique = $id_rubrique_am";
1161                  $result655 = spip_query($sql655);
1162                                        accesgroupes_debug($result655);
1163          //                                                                    AND spip_accesgroupes_acces.id_grpacces != $groupe";
1164                  if ($id_rubrique_am > 0 && spip_num_rows($result655) > 1 ){
1165                      debut_cadre_relief("mot-cle-24.gif");
1166                                                                                        if (isset($_POST['add_id_rubrique'])) {
1167                         echo gros_titre(_T('accesgroupes:acces_rubrique_add_par'));
1168                                                                                        }
1169                                                                                        else {
1170                                                                                                         echo gros_titre(_T('accesgroupes:acces_rubrique_modif_par'));
1171                                                                                        }
1172                      echo "\r\n<ul>";
1173                      while ($row = spip_fetch_array($result655)){
1174                                        if ($row['id_grpacces'] == $groupe) {
1175                                                                                         continue;
1176                                                                                }
1177                                                                                echo "\r\n<li>".typo($row['nom'])."</li>";
1178                      }
1179                      echo "\r\n</ul>";
1180                      fin_cadre_relief();
1181                  }
1182                                                        }
1183     
1184        }   // fin du else extra-long (affichage interface gestion si groupe déterminé)
1185                               
1186                               
1187        fin_page();
1188       
1189       
1190}  // fin fct exec_accesgroupes_admin
1191
1192
1193
1194?>
Note: See TracBrowser for help on using the repository browser.