Re: pour inverser les archives des news | Titre du sujet : Re: pour inverser les archives des news par blueteen sur 24/11/2005 15:23:12
>fmcradio : toujours dans la série "je bricole le php comme je peux" : Voici comment je procède pour bloquer uniquement certaines pages lorsque ce n'est pas prévu par le module, ou lorsque je veux vraiment chipoter avec certains groupes. Par exemple ici, le cas pas vraiment cohérent, mais assez parlant :
Laisser les membres du groupe 'archives' poster des messages, mais les empécher de voir les archives du module news!
Donc pour les archives des news, dans /modules/news/archive.php Vers la ligne 86, juste après :
Citation : $lastyear = 0; $lastmonth = 0;
j'ajoute le code suivant :
Citation :
//modifié - gère les droits d'accès à la page d'archives des news
$groupes = 0; //initialise la variable qui contiendra les groupes du surfeur if (is_object($xoopsUser)) //contrôle s’il s’agit d’un membre du site { $groupes = $xoopsUser->getGroups(); // récupère les groupes dont le membre fait partie } else { $groupes = array(XOOPS_GROUP_ANONYMOUS); // sinon c’est un anonyme, je le place tout de même dans un tableau pour éviter un WARNING[PHP] }
if (in_array(4, $groupes)) // je regarde si la valeur du groupe à refuser fait partie du tableau, ici le 4 correspond au groupe 'archives' que j'ai créé pour l'occasion { redirect_header(XOOPS_URL.'/modules/news/index.php', 3, _NOPERM); //retour sur la page des news exit(); } //fin modification
Dans le cas où l'on veuille interdire l'accès à cette page précise, à plusieurs groupes, voici le code légèrement modifié :
Citation :
if (in_array(3, $groupes) || in_array(4, $groupes)) // bloque l’accès à la page si le surfeur fait partie du groupe 3 (anonyme) OU du groupe 4. { redirect_header(XOOPS_URL.'/modules/news/index.php', 3, _NOPERM); //retour sur la page des news, on peut mettre l'adress que l'on souhaite exit(); }
Un exemple ici pour illustrer : http://xoops.romanais.info
Vous pouvez poster des messages en anonyme, et voir les archives. Par contre, si vous vous connectez avec le compte de test : login : archives pass : archives Vous aurez n'aurez plus accès aux archives des news. (mais vous pourrez toujours poster)
|
|