Bonjour,
ceci n'est pas une question, mais plutôt une présentation d'une "bidouille", que j'ai mis en place sur mon site, et qui permet de voir sur la page d'accueil, s'il y a des membres (et combien) en attente de validation de leur compte, ainsi qu'un lien vers la liste de ces membres, avec possibilité d'activer ou de supprimer directement ces membres.
je reçois, en principe par mail, les coordonnées des membres en attente de validation de compte, mais pour des raisons pratiques (bug de messagerie, pas accès au mail...), je voulais avoir un moyen simple de savoir où j'en étais avec les membres en attente.
Donc sans passer par les multiples menus de l'administration.
Voici la modif' que j'ai apporté au code (xoops 2.0.13.1). (attention, je ne suis pas un expert, je ne peux pas assurer qu'il n'y ait pas de failles de sécurité, aussi, si vous avez des doutes ou des suggestions, ce sera bienvenue !)
Editer le fichier header.php à la racine du site.
Vers la ligne 89, avant
Citation :
// get all blocks and assign to smarty
Ajouter :
Citation :
$sql_membres_non_actives = $member_handler->getUserCount(new Criteria('level', 0, '='));
//requête recherche des membres non activés
if ($sql_membres_non_actives == 0)
{
$xoopsTpl->assign(array('result_membres_non_actives' => "Aucun membre non validé"));
}
else
if ($sql_membres_non_actives == 1)
{
$xoopsTpl->assign(array('result_membres_non_actives' => $sql_membres_non_actives." membre non validé"));
}
else
if ($sql_membres_non_actives > 1)
{
$xoopsTpl->assign(array('result_membres_non_actives' => $sql_membres_non_actives." membres non validés"));
}
L'emplacement n'est pas si important ici, c'est pour vous éviter de le coller au milieu d'une autre fonction.
Editez ensuite votre theme.html
Et à l'endroit où vous souhaitez voir apparaître cette information, vous insérez le code suivant :
Citation :
<{if $xoops_isadmin == 1}><center><a href="<{$xoops_url}>/modules/xoopsmembers/inactifs.php">
<{$result_membres_non_actives}></a></center><{/if}>
Cette information n'apparaîtra qu'aux membres ayant les droits d'administrateur.
Dans le cas présent, j’insère cette information dans une colonne de gauche, dans le thème par défaut, fournit avec xoops, 2.0.13.1 (vers la ligne 73)
Citation :
<{if $xoops_showrblock == 1}>
<td id="leftcolumn">
<{if $xoops_isadmin == 1}>
<center>
<a href="<{$xoops_url}>/modules/xoopsmembers/inactifs.php"><{$result_membres_non_actives}></a>
</center>
<{/if}>
<{foreach item=block from=$xoops_lblocks}>
<{include file="sable/theme_blockleft.html"}>
<{/foreach}>
</td>
<{/if}>
Pensez à faire les manips habituelles pour mettre à jour l’affichage de votre template.
Voilà ce que ça donne lorsque je me connecte sur mon site (si je ne suis pas connecté, je ne vois rien)

Ceci est la première étape, à savoir l’affichage du nombre de membres non validés.
Vous remarquerez que j’ai inséré également un lien. (il n’est pas obligatoire).
Ce lien, utilise le module xoopsmembers.
J’ai créé pour cela un fichier inactifs.php qui est appelé par le lien indiquant des membres en attente.
Module « xoopsmembers » et fichiers ajoutés/modifiés, récupérables ici :
http://romanais.info/forums/frxoops/t ... 2-forum5/xoopsmembers.rarInstallez-le et donnez les droits que vous voulez à ce module.
Voilà ce que ça donne lorsque l’on clique sur le lien présent sur la page d'accueil :

Et s’il y a des membres en attente de validation, j’ai ça sur la page d’accueil :

Et si je clique sur le lien, j’ai :

Je peux activer directement le compte d’ici (même que dans le mail d’activation), ou le supprimer (une fenêtre demandera la validation)
J’ai regroupé le lien de PM et Mail dans la même cellule.
En mode anonyme, cette page sera accessible mais on aura ça :

Un lien vers un site de test
http://xoops.romanais.info/modules/xoopsmembers/inactifs.phpSi une personne accède à cette page en anonyme, elle n’aura ni les mails/PM, ni l’admin.
On peut aussi carrément bloquer l’accès au module ‘xoopsmembers’ au groupe ‘anonyme’.
Je pense avoir fait le tour, en espérant avoir été assez clair.