Fork me on GitHub

Rapport de message :*
 

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)
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

216 Personne(s) en ligne (180 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 216 | Plus ...