Titre du sujet : Re: Choisir son groupe sans passer par le Webmestre par thecat sur 07/03/2006 20:56:37
Tu peux hacker la version 2.0.13.2 pour permettre à l'utilisateur de choisir son groupe. Il y a 3 fichiers à modifier légèrement et un à créer. Je te détaille la manip:
Fichier claas/xoopsformloader.php ajouter la ligne
include_once XOOPS_ROOT_PATH."/class/xoopsform/formselectgroupbyuser.php";
Faire un copier/coller du fichier class/xoopsform/formselectgroup.php en le renommant formselectgroupbyuser.php
Dans ce nouveau fichier remplacer la fonction XoopsFormSelectGroup par
function XoopsFormSelectGroupByUser($caption, $name, $include_anon=false, $value=null, $size=1, $multiple=false)
{
$this->XoopsFormSelect($caption, $name, $value, $size, $multiple);
$member_handler =& xoops_gethandler('member');
$criteria = new CriteriaCompo(new Criteria('groupid', XOOPS_GROUP_ANONYMOUS, '!='));
$criteria->add(new Criteria('groupid', XOOPS_GROUP_USERS,'!='));
$criteria->add(new Criteria('groupid', XOOPS_GROUP_ADMIN,'!='));
$this->addOptionArray($member_handler->getGroupList($criteria));
}
Dans register.php après la ligne
$agree_disc = (isset($_POST['agree_disc']) && intval($_POST['agree_disc'])) ? 1 : 0;
ajouter celle-ci
$group = isset($_POST['group']) ? intval($_POST['group']): 0;
puis après
<input type='hidden' name='vpass' value='".$myts->htmlSpecialChars($vpass)."' />
ajouter
<input type='hidden' name='group' value='".$group."' />
[oubli] puis modifier
if (!$member_handler->addUserToGroup(XOOPS_GROUP_USERS, $newid)) {
en
if (!$member_handler->addUserToGroup($group, $newid)) {
[/oubli]
Dans include/registerform.php après
$reg_form->addElement($email_tray);
ajouter
$reg_form->addElement(new XoopsFormSelectGroupByUser('Groupe','group', false, $group, 1, false));
L'utilisateur n'aura le choix qu'entre les groupes que tu auras créés: j'ai exclu anonymes, enregistrés et webmestre. Attention à la gestion des droits, car tes membres appartiendront à un groupe, mais pas au groupe des utilisateurs enregistrés. Faudra peut-être le modifier si ça pose problème.
|