source: spip-zone/_plugins_/_dev_/acces_groupes/1_9_2/exec/accesgroupes_admin_fonctions.php @ 10028

Last change on this file since 10028 was 10028, checked in by coyote90@…, 13 years ago

correction titre rubrique : ajout typo()

File size: 22.5 KB
Line 
1<?php
2/*  LES FONCTIONS utilisées par accesgroupes_admin uniquement  */
3
4// affichage de la liste des rubriques disponibles pour l'utilisateur
5//      rubriques privées en rouge + vert + jaune + bleu
6function accesgroupes_acces_rubrique($id_rubrique) {
7        global $connect_toutes_rubriques;
8        global $connect_id_rubrique;
9
10        return ($connect_toutes_rubriques OR isset($connect_id_rubrique[$id_rubrique]));
11}
12
13function accesgroupes_enfant($leparent){
14        global $Trub_grpe_ec_parent;  // tableau des rubriques restreintes par le groupe en cours
15        global $groupe;
16        global $connect_toutes_rubriques;
17        global $i;
18        global $couleur_claire, $spip_lang_left;
19        global $browser_name, $browser_version;
20        global $dernier_option;
21        //      global $prive_public_ec, $prive_public_parent_ec;
22        $i++;
23        //       $prive_public_ec = $prive_public_parent;
24       
25        $query = "SELECT * FROM spip_rubriques WHERE id_parent = $leparent ORDER BY 0+titre,titre";
26        $result = spip_query($query);
27        $jpknb = 1;
28        //echo '<br>mysql_error accesgroupes_enfant = '.mysql_error();
29        while($row = spip_fetch_array($result)){
30                $my_rubrique = $row['id_rubrique'];
31                $titre = typo($row['titre']);
32                $statut_rubrique = $row['statut'];
33                $lang_rub = $row['lang'];
34                $langue_choisie_rub = $row['langue_choisie'];
35                $style = "";
36                $espace = "";
37                //              $prive = $row['prive'];
38                echo "\n<!-- BOUCLE ENFANT N°".$jpknb++."-->\n";
39               
40                if (eregi("mozilla", $browser_name)) {
41                        $style .= "padding-$spip_lang_left: ".($i*16)."px;";
42                }else{
43                        for ($count = 0; $count <= $i; $count ++) {
44                                $espace .= "&nbsp;&nbsp;&nbsp;&nbsp;";
45                        }
46                }
47                if ($i == 1) {
48                        $style .= "background: $couleur_claire url("._DIR_IMG_PACK."secteur-12.gif) no-repeat ".(($i - 1) * 16)."px 0px; ";
49                }else{
50                        $style .= "background: $couleur_claire url("._DIR_IMG_PACK."rubrique-12.gif) no-repeat ".(($i * 16) - 12)."px 2px; ";
51                }
52                // affiche en rouge/vert/jaune/bleu les rubriques privées : prive_public = 0 => prive+public | 1 => prive | 2 => public
53                echo "\n<!-- accesgroupes_trouve_prive_public($my_rubrique, $groupe) -->";
54                $prive_public_ec = accesgroupes_trouve_prive_public($my_rubrique, $groupe);
55                echo "\n<!-- accesgroupes_trouve_prive_public($leparent, $groupe) -->";
56                $prive_public_parent = accesgroupes_trouve_prive_public($leparent, $groupe);
57                if ($prive_public_parent >= 3 AND $prive_public_parent <= 5) {
58                        $prive_public_parent -= 3;
59                } 
60                // remplissage du tableau des rubriques restreintes par le groupe en cours : permet d'avoir le prive_public_parent de chaque rubrique restreinte par le groupe en cours
61                $Trub_grpe_ec_parent[$my_rubrique] = $prive_public_parent; 
62                echo "\n<!-- switch ($prive_public_ec) -->";
63                switch ($prive_public_ec) {
64                case 0 :                // privé + public
65                        $style .= "color: #f00;";
66                        break;
67                case 1 :                // privé seul
68                        $style .= "color: #093;";
69                        break;
70                case 2 :                // public seul
71                        $style .= "color: #f90;";
72                        break;
73                case 3 :                // autres groupes : privé+public
74                        $style .= "color: #00f;";
75                        break;
76                case 4 :                // autres groupes :  privé
77                        $style .= "color: #00f;";
78                        break;
79                case 5 :                // autres groupes : public
80                        $style .= "color: #00f;";
81                        break;
82                default :       // rubrique sans restriction
83                        $style .= "color: #000;";
84                        break;
85                }
86                if ($prive_public_ec <= 5) {
87                        $style .= "font-weight:bold; ";
88                }
89                if ($statut_rubrique != 'publie') {
90                        $titre = "($titre , non publi&eacute;e)";
91                }
92                if ($GLOBALS['meta']['multi_rubriques'] == 'oui' AND $langue_choisie_rub == "oui") {
93                        $titre = $titre." [".traduire_nom_langue($lang_rub)."]";
94                }
95                $selec_rub = "selec_rub";
96                if ($browser_name == "MSIE" AND floor($browser_version) == "5") {
97                        $selec_rub = ""; // Bug de MSIE MacOs 9.0
98                }
99                echo "\n<!-- acces_rubrique($my_rubrique) -->";
100                if (accesgroupes_acces_rubrique($my_rubrique)) {
101                        echo "\r\n <option".mySel($my_rubrique,$id_parent)." class=\"$selec_rub\" style=\"$style\">$espace".supprimer_tags($titre);
102                        //echo " i = $i my_rubrique = $my_rubrique prive_public_ec = $prive_public_ec prive_public_parent = $prive_public_parent";
103                        if ($prive_public_ec >= 3 AND $prive_public_ec <= 5) {
104                                echo " (";
105                                echo ($prive_public_ec == 3 ? _T('accesgroupes:prive_public') : ($prive_public_ec == 4 ? _T('accesgroupes:prive_seul') : _T('accesgroupes:public_seul') ));
106                                echo ")";
107                        }
108                        echo "</option>\n";
109                        //      $prive_public_parent >= 3 ? $prive_public_parent_ec = $prive_public_parent - 3 : $prive_public_parent_ec = $prive_public_parent;
110                        if ($prive_public_ec < 3) {
111                                echo "<script language=\"JavaScript\" type=\"text/javascript\">
112                                                Tacces_rub.push([\"$my_rubrique\", \"$prive_public_ec\", \"$prive_public_parent\"]);</script>";
113                        }
114                        elseif ($prive_public_ec <=5 AND $prive_public_ec > 2) {
115                                echo "<script language=\"JavaScript\" type=\"text/javascript\">
116                                                Tacces_rub.push([\"$my_rubrique\", \"".($prive_public_ec - 3)."\", \"$prive_public_parent\"]);</script>";
117                        }
118                }
119                echo "\n<!-- acces_rubrique($my_rubrique) -->";
120                accesgroupes_enfant($my_rubrique);
121        }
122        $i = $i - 1;
123        //      $i == 1 ? $prive_public_ec = 10 : $prive_public_ec = $prive_public_parent_ec;
124}
125
126//  fct pour renvoyer le code numérique du type d'accès à une rubrique restreinte
127//      si la rubrique est contrôlée par le groupe $id_grpacces retourne : 0 => prive + public, 1 => privé, 2 => public
128//      si la  rubrique est contrôlée par un autre groupe retourne : 3 =>  prive + public, 4 => privé, 5 => public
129function accesgroupes_trouve_prive_public($id_rub, $id_grpacces) {
130        $min = 10;
131        do {
132                $prive_ec = accesgroupes_valeur_prive($id_rub, $id_grpacces);
133                if ($prive_ec < $min) {
134                        $min = $prive_ec;
135                }
136                $sql = "SELECT id_parent FROM spip_rubriques WHERE id_rubrique = $id_rub LIMIT 1";
137                $result = spip_query($sql);
138                if ($row = spip_fetch_array($result)) {
139                        $id_rub = $row['id_parent'];
140                }
141        }
142        while ($id_rub > 0); // vérification de l'ascendance : on boucle jusqu'à être remonté à la racine du site
143        return $min;
144}       
145//print '<br>trouve_prive_public(42, 1) = '.accesgroupes_trouve_prive_public(42, 1);
146
147// fct pour retourner la valeur privé mini d'une rubrique
148// (on envisage le cas ou une rubrique peut être restreinte par plusieurs groupes, avec des valeurts de privé différentes)
149function accesgroupes_valeur_prive($id_rub, $id_grpacces) {
150        $pp_ec = 10;
151        $sql2 = "SELECT prive_public, id_grpacces FROM spip_accesgroupes_acces WHERE id_rubrique = $id_rub";
152        $result2 = spip_query($sql2);                           
153        while ($row2 = spip_fetch_array($result2)){
154                $id_groupe_ec = $row2['id_grpacces'];
155                $prive_public_ec = $row2['prive_public'];
156                if ($id_groupe_ec != $id_grpacces) {
157                        $prive_public_ec += 3;
158                }
159                if ($prive_public_ec < $pp_ec) {
160                        $pp_ec = $prive_public_ec;
161                }
162        }
163        return $pp_ec;
164}
165
166
167// les fonctions nécessaires pour la gestions des ss-groupes et statuts inclus dans les groupes
168
169// fct de vérification que le groupe_pere n'est pas inclu dans le groupe_fils ou l'un de ses ascendants (récursivement)
170// renvoie FALSE si groupe_pere ou l'un de ses ascendants contient groupe_fils
171function accesgroupes_verifie_inclusions_groupe($id_groupe_fils, $id_groupe_pere) {                             
172        $sql111 = "SELECT COUNT(*) AS inclusions FROM spip_accesgroupes_auteurs WHERE id_grpacces = $id_groupe_fils AND id_ss_groupe = $id_groupe_pere LIMIT 1";
173        $result111 = spip_query($sql111);
174        $row = spip_fetch_array($result111);
175        if ($row['inclusions'] > 0){
176                return FALSE;
177        }
178        // le père n'est pas inclu dans le fils => on teste toute l'ascendance du fils par récurrence avant d'être OK
179        else {
180                $sql110 = "SELECT id_grpacces FROM spip_accesgroupes_auteurs WHERE id_ss_groupe = $id_groupe_pere";
181                $result110 = spip_query($sql110);
182                while ($row = spip_fetch_array($result110)) {
183                        $id_groupe_ec = $row["id_groupe"];
184                        if (accesgroupes_verifie_inclusions_groupe($id_groupe_fils, $id_groupe_ec) == FALSE) {
185                                return FALSE;
186                        }
187                }
188        }                               
189        // pas d'inclusion d'un parent donc OK
190        return TRUE;                             
191}
192
193// fct pour construire le tableau de la descendance d'un groupe (récursivement)
194function accesgroupes_descendance_groupe($groupe_pere, $Tdescendance = array()) {
195        $sql121 = "SELECT spip_accesgroupes_auteurs.id_ss_groupe, spip_accesgroupes_groupes.nom, spip_accesgroupes_auteurs.id_grpacces
196                                                                                FROM spip_accesgroupes_auteurs
197                                                                                LEFT JOIN spip_accesgroupes_groupes
198                                                                                ON spip_accesgroupes_auteurs.id_ss_groupe = spip_accesgroupes_groupes.id_grpacces
199                                                                                WHERE actif = 1 
200                                                                                AND id_ss_groupe != 0
201                                                                                ORDER BY nom";
202        //                                                                              WHERE spip_accesgroupes_auteurs.id_grpacces = $groupe_pere 
203        $result121 = spip_query($sql121);
204        while ($row = spip_fetch_array($result121)) {
205                if ($row['id_grpacces'] != $groupe_pere) {
206                        continue;
207                }
208                $id_descendant_ec = $row["id_ss_groupe"];
209                $nom_descendant_ec = $row["nom"];
210                $Tdescendance[$groupe_pere][] = array('id' => $id_descendant_ec, 'nom' => $nom_descendant_ec);
211                $Tdescendance = accesgroupes_descendance_groupe($id_descendant_ec, $Tdescendance);
212        }
213        return $Tdescendance;
214}
215
216// fct pour afficher le tableau $Tdesc de la descendance du groupe $id_grpe (récursivement)
217function accesgroupes_affiche_descendance($id_grpe, $Tdesc, $a_afficher = "") {
218        if (is_array($Tdesc[$id_grpe]) AND count($Tdesc[$id_grpe]) > 0) {
219                $a_afficher .= "<div style='margin-left: 10px; font-size: 10px; padding: 2px;'>";
220                foreach ($Tdesc[$id_grpe] as $a => $Td) {
221                        $a_afficher .= "<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/sous-groupe.png' alt='|_' style='vertical-align:top;'>";
222                        $h =generer_url_ecrire("accesgroupes_admin","groupe=".$Td['id']);
223                        $a_afficher .= "<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/groupe-12.png' alt='|_' style='vertical-align:top;'> <a href=\"$h\">".$Td['nom']."</a><br />";
224                        $a_afficher = accesgroupes_affiche_descendance($Td['id'], $Tdesc, $a_afficher);
225                }
226                $a_afficher .= "</div>";
227        }
228        return $a_afficher;
229}
230
231// fct pour créer le tableau des rubriques gérées par les groupes
232function accesgroupes_affiche_groupes_rubriques() {
233        $a_afficher =  "<table CELLPADDING=2 CELLSPACING=0 WIDTH='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n";
234        $a_afficher .= "<tr><th colspan=\"2\">"._T('accesgroupes:groupes_rubriques')."</th></tr>";
235        $sql301 = "SELECT nom, id_grpacces, actif FROM spip_accesgroupes_groupes GROUP BY id_grpacces";
236        $result301 = spip_query($sql301);
237        while ($row301 = spip_fetch_array($result301)) {
238                $id_grpe_ec = $row301['id_grpacces'];
239                $nom_grpe_ec = $row301['nom'];
240                $a_afficher .= "<tr style='background-color: #eeeeee;'>";
241                $a_afficher .= "<td class='verdana11' style='border-top: 1px solid #cccccc; width: 14px; vertical-align:top;'>";
242                if (accesgroupes_est_admin_restreint() == TRUE AND accesgroupes_est_proprio($id_grpe_ec) == TRUE) {
243                        $a_afficher .= "<img src='img_pack/admin-12.gif' alt='|_' style='vertical-align:top;'>";
244                }
245                $a_afficher .= "<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/groupe-12.png' alt='|_' style='vertical-align:top;'></td>";
246                $h = generer_url_ecrire("accesgroupes_admin","groupe=$id_grpe_ec");
247                $a_afficher .= "<td style='border-top: 1px solid #cccccc;'><a href=\"$h\">";
248                if ($row301['actif'] != 1) {
249                        $a_afficher .= '('.$nom_grpe_ec.' : <span style="color: #6c3;">'._T('accesgroupes:inactif').'</span>)';
250                }
251                else {
252                        $a_afficher .= $nom_grpe_ec;
253                }
254                $a_afficher .= "</a><br />";
255                $a_afficher .= "<div style='margin-left: 20px; font-size: 10px; padding: 2px;'>";
256                $sql302 = "SELECT spip_rubriques.titre, spip_rubriques.id_rubrique
257                                                                                        FROM spip_rubriques
258                                                                                                        LEFT JOIN spip_accesgroupes_acces
259                                                                                                        ON spip_accesgroupes_acces.id_rubrique = spip_rubriques.id_rubrique
260                                                                                                        WHERE id_grpacces = $id_grpe_ec";
261               
262                if ($result302 = spip_query($sql302)) {
263                        while ($row302 = spip_fetch_array($result302)) {
264                                $id_rub_ec = $row302['id_rubrique'];
265                                $nom_rub_ec = $row302['titre'];
266                                $a_afficher .= "<img src='"._DIR_PLUGIN_ACCESGROUPES."/img_pack/sous-groupe.png' alt='|_' style='vertical-align:top;'>";
267                                $a_afficher .= " <a href=\"?exec=naviguer&id_rubrique=".$id_rub_ec."\"><img src='img_pack/rubrique-12.gif' alt='|_' style='vertical-align:top; border: 0px;'>".typo($nom_rub_ec);
268                               
269                                if (accesgroupes_est_admin_rubrique($id_rub_ec) == TRUE) {
270                                        $a_afficher .= " <img src='img_pack/admin-12.gif'>";
271                                }
272                               
273                                $a_afficher .= "</a><br />";
274                        }
275                }
276                //echo '<br>mysql_error $sql302 = '.mysql_error();                               
277                $a_afficher .= "</div>\r\n</td>";
278                $a_afficher .= "</tr>";
279        }
280        $a_afficher .= "</table>";
281        return $a_afficher;
282}
283
284// fct pour créer et retourner l'array contenant les rubriques d'un admin restreint
285function accesgroupes_cree_Trub_admin () {         
286        $id_utilisateur = accesgroupes_trouve_id_utilisateur();
287        $sql501= "SELECT  id_rubrique
288                                                                                FROM spip_auteurs_rubriques
289                                                                                WHERE id_auteur = '$id_utilisateur'";
290        $result501 = spip_query($sql501);
291        $Trubriques_autorises = array();
292        while ($row501 = spip_fetch_array($result501)) {
293                $Trubriques_autorises[] = $row501['id_rubrique'];
294        }
295        return $Trubriques_autorises;
296}
297
298// fct pour trouver l'id de l'utilisateur en cours
299function accesgroupes_trouve_id_utilisateur() {                                 
300        $login_utilisateur = $GLOBALS['auteur_session']['login'];
301
302        $sql502 = "SELECT id_auteur FROM spip_auteurs WHERE login = '$login_utilisateur' LIMIT 1";
303        $result502 = spip_query($sql502);
304        $row502 = spip_fetch_array($result502);
305        $id_utilisateur = $row502['id_auteur'];
306        return $id_utilisateur;                         
307}
308
309// fct pour déterminer si l'utilisateur en cours est admin restreint
310function accesgroupes_est_admin_restreint() {
311        $Trub_restreint = accesgroupes_cree_Trub_admin();
312        if (count($Trub_restreint) > 0) {
313                return TRUE;
314        }
315        else {
316                return $Trub_restreint;
317        }
318}
319
320// fct pour déterminer si l'utilisateur est proprio du groupe en cours (donc peut le modifier)
321function accesgroupes_est_proprio($id_groupe) {
322        $sql505 = "SELECT proprio FROM spip_accesgroupes_groupes WHERE id_grpacces = $id_groupe LIMIT 1";
323        $result505 = spip_query($sql505);
324        $row505 = spip_fetch_array($result505);
325        $id_proprio = $row505['proprio'];
326        if ($id_proprio == accesgroupes_trouve_id_utilisateur()) {
327                return TRUE;
328        }
329        else {
330                return FALSE;
331        }
332}
333
334// fct pour déterminer si l'utilisateur est proprio de l'accès sur une rubrique
335function accesgroupes_est_proprio_acces($id_rubrique) {
336        $proprio = 0;
337        $sql506 = "SELECT proprio FROM spip_accesgroupes_acces WHERE id_rubrique = $id_rubrique";
338        $result506 = spip_query($sql506);
339        while ($row506 = spip_fetch_array($result506)) {
340                $id_proprio_acces = $row506['proprio'];
341                if ($id_proprio_acces == accesgroupes_trouve_id_utilisateur()) {
342                        $proprio = 1;
343                }
344        }
345        if ($proprio == 1) {
346                return TRUE;
347        }
348        else {
349                return FALSE;
350        }
351}
352
353// fct pour déterminer le statut d'un utilisateur
354function accesgroupes_trouve_statut($id_util) {
355        $sql506 = "SELECT statut FROM spip_auteurs WHERE id_auteur = $id_util LIMIT 1";
356        $result506 = spip_query($sql506);
357        $row506 = spip_fetch_array($result506);
358        return $row506['statut'];
359}
360
361// fct pour traiter les noms de groupes en doublons retourne FALSE si le nom existe déja
362function accesgroupes_verifie_duplicata_groupes($nom_at) {
363        $sql507 = "SELECT nom FROM spip_accesgroupes_groupes";
364        if ($result507 = spip_query($sql507)) {
365                while ($row507 = spip_fetch_array($result507)) {
366                        if ($row507['nom'] == $nom_at) {
367                                return FALSE;
368                        }
369                }
370        }
371        return TRUE;
372}
373
374function accesgroupes_debug(){
375        if(mysql_errno() > 0){
376                echo "<br />".mysql_errno().": ".mysql_error();
377        }
378}
379
380// libère les rubriques qui n'ont plus de restriction, ok avec mysql 3.23
381function accesgroupes_rub_reinit(){
382        $sql = "SELECT spip_rubriques.*
383                                                        FROM spip_rubriques
384                                                LEFT JOIN spip_accesgroupes_acces
385                                                ON spip_rubriques.id_rubrique = spip_accesgroupes_acces.id_rubrique
386                                                                AND spip_rubriques.prive = 1
387                                                WHERE spip_accesgroupes_acces.id_rubrique IS NULL";
388        $result=spip_query($sql);
389        accesgroupes_debug($result);
390        while ($row = spip_fetch_array($result)){
391                $sql1 = "UPDATE spip_rubriques SET prive=0 WHERE id_rubrique = \"".$row['id_rubrique']."\"";
392                $result1=spip_query($sql1);
393                accesgroupes_debug($result1);
394        }
395}
396
397//  fct pour déterminer si une sous-rubrique est inclue dans une rubrique gérée par un admin restreint
398function accesgroupes_est_admin_rubrique($id_rub) {
399        $id_auteur_ec = accesgroupes_trouve_id_utilisateur();
400        // remonter dans l'ascendance de la rubrique jusqu'à trouver une rubrique parent dont l'admin en cours est l'admin restreint
401        do {
402                $sql563 = "SELECT COUNT(*) AS nb_rub
403                                                                                        FROM spip_auteurs_rubriques
404                                                                                        WHERE id_rubrique = $id_rub
405                                                                                        AND id_auteur = $id_auteur_ec";
406                $result563 = spip_query($sql563);
407                if ($row563 = spip_fetch_array($result563) AND $row563['nb_rub'] > 0) {
408                        return TRUE;
409                }
410                else {
411                        $sql564 = "SELECT id_parent
412                                                                                                                FROM spip_rubriques
413                                                                                                                WHERE id_rubrique = $id_rub
414                                                                                                                LIMIT 1";
415                        $result564 = spip_query($sql564);
416                        $row564 = spip_fetch_array($result564);
417                        $id_rub = $row564['id_parent'];
418                }
419        }
420        while ($id_rub != 0);
421        return FALSE;
422}
423
424
425/* versions avant modifs
426function accesgroupes_enfant($leparent, $prive_public_parent = 10){
427                                global $Trub_grpe_ec_parent;
428                                global $groupe;
429                global $connect_toutes_rubriques;
430                global $i;
431                global $couleur_claire, $spip_lang_left;
432                global $browser_name, $browser_version;
433                                global $prive_public_ec, $prive_public_parent_ec;
434
435                $i++;
436                $prive_public_ec = $prive_public_parent;
437                               
438                                $query = "SELECT * FROM spip_rubriques WHERE id_parent = $leparent ORDER BY 0+titre,titre";
439                $result = spip_query($query);
440                while($row = spip_fetch_array($result)){
441                        $my_rubrique = $row['id_rubrique'];
442                        $titre = typo($row['titre']);
443                        $statut_rubrique = $row['statut'];
444                        $lang_rub = $row['lang'];
445                        $langue_choisie_rub = $row['langue_choisie'];
446                        $style = "";
447                        $espace = "";
448                        $prive = $row['prive'];
449       
450                        if (eregi("mozilla", $browser_name)) {
451                                $style .= "padding-$spip_lang_left: ".($i*16)."px;";
452                        }
453                                                else {
454                                        for ($count = 0; $count <= $i; $count ++) {
455                                                                                        $espace .= "&nbsp;&nbsp;&nbsp;&nbsp;";
456                                                                        }
457                                        }
458                        if ($i == 1) {
459                                $style .= "background: $couleur_claire url("._DIR_IMG_PACK."secteur-12.gif) no-repeat ".(($i - 1) * 16)."px 0px; ";
460                        }
461                                                        else {
462                                                                        $style .= "background: $couleur_claire url("._DIR_IMG_PACK."rubrique-12.gif) no-repeat ".(($i * 16) - 12)."px 2px; ";
463                                                        }
464                // affiche en rouge/vert/jaune/bleu les rubriques privées : prive_public = 0 => prive+public | 1 => prive | 2 => public
465$ppe_old = $prive_public_ec;
466                                                        $prive_public_ec = accesgroupes_trouve_prive_public($my_rubrique, $groupe, $prive_public_ec);
467                                                switch ($prive_public_ec) {
468                                                                        case 0 :                // privé + public
469                                                                                                $style .= "color: #f00;";
470                                                                        break;
471                                                                        case 1 :                // privé seul
472                                                                                                $style .= "color: #093;";
473                                                                        break;
474                                                                        case 2 :                // public seul
475                                                                                                $style .= "color: #f90;";
476                                                                        break;
477                                                                        case 3 :                // autres groupes : privé+public
478                                                                                                $style .= "color: #00f;";
479                                                                        break;
480                                                                                case 4 :                // autres groupes :  privé
481                                                                                                $style .= "color: #00f;";
482                                                                        break;
483                                                                                case 5 :                // autres groupes : public
484                                                                                                $style .= "color: #00f;";
485                                                                        break;
486                                                                        default :       // rubrique sans restriction
487                                                                                                $style .= "color: #000;";
488                                                                        break;
489                                                }
490                        if ($prive_public_ec <= 5) {
491                                                                $style .= "font-weight:bold; ";
492                                                }
493                        if ($statut_rubrique != 'publie') {
494                                                        $titre = "($titre , non publi&eacute;e)";
495                                                }
496                        if (lire_meta('multi_rubriques') == 'oui' AND $langue_choisie_rub == "oui") {
497                                                        $titre = $titre." [".traduire_nom_langue($lang_rub)."]";
498                                                }
499                        $selec_rub = "selec_rub";
500                        if ($browser_name == "MSIE" AND floor($browser_version) == "5") {
501                                                        $selec_rub = ""; // Bug de MSIE MacOs 9.0
502                                                }
503                        if (acces_rubrique($my_rubrique)) {
504                                echo "\r\n <option".mySel($my_rubrique,$id_parent)." class='$selec_rub' style=\"$style\">$espace".supprimer_tags($titre);
505echo " i = $i my_rubrique = $my_rubrique prive_public_ec = $prive_public_ec prive_public_parent = $prive_public_parent ppe_old = $ppe_old";
506                                                                        if ($prive_public_ec >= 3 AND $prive_public_ec <= 5) {
507                                                                                echo " (";
508                                                                                echo ($prive_public_ec == 3 ? _T('accesgroupes:prive_public') : ($prive_public_ec == 4 ? _T('accesgroupes:prive_seul') : _T('accesgroupes:public_seul') ));
509                                                                                echo ")";
510                                                                        }
511                                                                        echo "</option>\n"; 
512                                                                        $prive_public_parent >= 3 ? $prive_public_parent_ec = $prive_public_parent - 3 : $prive_public_parent_ec = $prive_public_parent;
513                                                                        if ($prive_public_ec < 3) {
514                                                                        echo "<script language=\"JavaScript\" type=\"text/javascript\">
515                                                                                                        Tacces_rub.push([\"$my_rubrique\", \"$prive_public_ec\", \"$prive_public_parent\"]);</script>";
516                                                        // remplissage du tableau des rubriques restreintes par le groupe en cours : permet d'avoir le prive_public_parent de chaque rubrique restreinte par le groupe en cours
517                                                                        $Trub_grpe_ec_parent[$my_rubrique] = $prive_public_parent;
518                                                                }
519                                                                        elseif ($prive_public_ec <=5 AND $prive_public_ec > 2) {
520                                                                                                echo "<script language=\"JavaScript\" type=\"text/javascript\">
521                                                                                                        Tacces_rub.push([\"$my_rubrique\", \"".($prive_public_ec - 3)."\", \"$prive_public_parent_ec\"]);</script>";
522                                                                        }
523
524                        }
525                        accesgroupes_enfant($my_rubrique, $prive_public_ec);
526                }
527                $i = $i - 1;
528                                $i == 1 ? $prive_public_ec = 10 : $prive_public_ec = $prive_public_parent_ec;
529}
530
531//  fct pour renvoyer le code numérique du type d'accès à une rubrique restreinte
532//      si la rubrique est contrôlée par le groupe $id_grpacces retourne : 0 => prive + public, 1 => privé, 2 => public
533//      si la  rubrique est contrôlée par un autre groupe retourne : 3 =>  prive + public, 4 => privé, 5 => public
534function accesgroupes_trouve_prive_public($id_rub, $id_grpacces, $prive_public_parent = 10) {
535                                $prive_public_rub = $prive_public_parent;  // prive_public = 10 => indéterminé
536                $sql2 = "SELECT prive_public, id_rubrique, id_grpacces, proprio FROM spip_accesgroupes_acces WHERE id_rubrique = $id_rub";
537                $result2 = spip_query($sql2);
538                        while ($row2 = spip_fetch_array($result2)){
539                                                $id_rubrique_ec = $row2['id_rubrique'];
540                                                $id_groupe_ec = $row2['id_grpacces'];
541                                                $prive_public_ec = $row2['prive_public'];
542                                                        if ($id_groupe_ec != $id_grpacces) {
543                                                                $prive_public_ec += 3;
544                                                        }
545                                                        if ($prive_public_ec < $prive_public_rub) {
546                                                                $prive_public_rub = $prive_public_ec;
547                                                        }
548                }
549                        return $prive_public_rub;
550}       
551*/
552
553?>
Note: See TracBrowser for help on using the repository browser.