Salut,
J'ai regardé pour ta question.
Je me suis creusé la tête, car n'est pas trop mon domaine, mais j'ai bricolé un truc qui semble fonctionner.
Après quelques recherches, j'ai vu que la liste était généré notamment grâce à la fonction
getUserList dans le fichier /kernel/member.php
Seulement, en regardant cette fonction on voit bien que la recherche se fait sur 'uname', c'est-à-dire le pseudo des membres.
Si on change par 'uname' par 'name' dans cette fonction, alors on retrouvait bien le nom réel dans ton menu déroulant.
Mais du coup, ça affecterait tout le site.
J'ai donc crée une fonction spécifique (getUserList2) que je place juste sous la fonction (getUserList).
function getUserList2($criteria = null)
{
$users = $this->_uHandler->getObjects($criteria, true);
$ret = array();
foreach (array_keys($users) as $i) {
//si le nom réel n'est pas renseigné, j'affiche juste le pseudo
if($users[$i]->getVar('name') == ""){$ret[$i] = $users[$i]->getVar('uname');}
//sinon j'affiche : Nom Prénom - Pseudo
else {$ret[$i] = $users[$i]->getVar('name').' - '.$users[$i]->getVar('uname');}
}
return $ret;
}
Ensuite, je passe à la phase de modification du module Clientspace.
Dans le fichier /modules/clientspace/admin/function.php, on trouve la fonction
selectUser().
Juste en dessous de cette fonction, je colle cette nouvelle fonction (bricolage à partir de bout de code trouvé ici et là).
function selectUser2()
{
global $xoopsConfig;
$client = new XoopsThemeForm(_AM_CLIENTSPACE_FUNCCLIENTSPACETOEDIT, 'client', 'index.php');
$uid = new XoopsFormSelect(_AM_CLIENTSPACE_FUNCCLIENTSELECTCLIENT,'uid');
$member_handler =& xoops_gethandler('member');
$tblusers = array();
$critere=new Criteria('uid', 0, '>');
$critere->setSort('name');
$tblusers = $member_handler->getUserList2($critere);
asort($tblusers);
$uid->addOptionArray($tblusers);
$client->addElement($uid);
$button = new XoopsFormButton(_AM_CLIENTSPACE_FUNCCLIENTEDITPAGE, 'button',_AM_CLIENTSPACE_FUNCCLIENTEDIT, 'submit');
$client->addElement($button);
$client->addElement(new xoopsFormHidden ('action','edit'));
$client->display();
}
Dans cette fonction, je récupère tous les membres dont l'uid est supérieur à 0.
L'affichage sera par ordre croissant, sur le nom réel.
Reste à présent, à utiliser cette fonction dans le module, à la place de la fonction d'origine qui renvoie les pseudos.
Pour cela, il faut éditer le fichier /modules/clientspace/admin/index.php
Et ligne 151, remplacer
selectUser(); par
selectUser2();A présent dans ton menu déroulant, tu auras un affichage comme l'exemple ci-joint en image.
C'est-à-dire, le nom réel, un tiret (-) le pseudo.
Ou bien juste le pseudo si le nom réel n'est pas renseigné.