Fork me on GitHub






Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Clientspace v 2.0 Beta
Xoops 2.0.18.1

Bonjour,

Ce module est très pratique pour faire un suivi de données par membres (et par groupe depuis la version 3).

La sélection du client se fait par pseudo mais les pseudos ne sont pas toujours « parlants ».
Si l’on veut s’adresser à un abonné il vaut mieux le rechercher par son nom…

Je sais bien que par défaut le champ « nom réel » n’est pas obligatoire, cependant une âme charitable pourrait-elle me montrer comment faire pour changer le champ ("pseudo" par défaut) par le champ "nom réel" ou/et éventuellement en rajouter un (ou deux)…

@+
Z

Posté le : 17/07/2008 10:31
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
ce n'est qu'un up !

@+
Z

Posté le : 23/09/2008 22:49
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Je n'ai pas bien compris, on parle d'un changement dans le module ou dans xoops? Car si c'est le cas dans xoops la version 2.3 te permet de personnaliser le profile et de rendre obligatoire n'importe quel champ!

Posté le : 23/09/2008 23:09
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Bonsoir Mage,

Effectivement avec Xoops 2.3 la zone Nom peut devenir obligatoire.

J'attends comme toi avec impatience la version 2.3 Final de Xoops pour la mettre en production...

Pour en revenir à clientspace, il s'agit bien d'une question sur ce module. Dans le module on sélectionne les utilisateurs par l'identifiant, il serait très pratique de pouvoir les sélectionner par le nom... d'autant plus, comme tu le soulignes, avec Xoops 2.3 cette zone pourra devenir obligatoire !

@+
Z

Posté le : 23/09/2008 23:25
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
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($criteriatrue);
        
$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é.

Attacher un fichier:



png  2008-11-24_142054.png (4.79 KB)
5661_492aaa43ab133.png 471X176 px

Posté le : 24/11/2008 14:11
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Je te propose également une petite modification, pour lorsque l'on se trouve sur la page d'édition d'un membre.

Dans le fichier /modules/clientspace/admin/function.php, on trouve la fonction
function uidtouname($uid)
{
global 
$xoopsDB;
$sql 'SELECT uname FROM '.$xoopsDB->prefix('users').' WHERE uid='.$uid;
$result $xoopsDB->query($sql);
$resultat $xoopsDB->fetchRow($result);
$uname$resultat[0];
return 
$uname;
}


Qui comme son nom l'indique, convertit l'uid d'un membre vers son pseudo.

Je te propose d'ajouter juste en dessous, la fonction suivante :
function uidtoname($uid)
{
global 
$xoopsDB;
$sql 'SELECT name FROM '.$xoopsDB->prefix('users').' WHERE uid='.$uid;
$result $xoopsDB->query($sql);
$resultat $xoopsDB->fetchRow($result);
$uname$resultat[0];
return 
$uname;
}


Qui récupère le nom réel (on aurait pu aussi modifier la première fonction, mais je préfère éviter).

Reste à présent à modifier /modules/clientspace/admin/index.php pour utiliser cette fonction.

Vers la ligne 156, tu as :
$uname uidtouname($uid);


Remplace cette ligne ci-dessus, par (mets-là plutôt en commentaire) :
$uname uidtoname($uid).' ('.uidtouname($uid).')';


Ca te donnera l'affichage visible en pièce jointe, lorsque tu éditeras un membre. (le nom réel, suivi du pseudo entre parenthèses, ou alors alors juste le pseudo entre parenthèses si aucun nom réel n'est renseigné).

Attacher un fichier:



png  2008-11-24_142006.png (3.97 KB)
5661_492aaa0eba0fc.png 469X198 px

Posté le : 24/11/2008 14:20
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Trop fort !

Blueteen tu est un super chef !

Un grand merci !



@+
Z

EDT : Nos réponses se sont croisées, merci pour cette seconde partie qui est la cerise sur le gâteau !

Posté le : 24/11/2008 14:42
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Eh...

J'ai dû rêver effectivement tout est parfait !
désolé...

En tout cas MERCI !

@+
Z

Posté le : 24/11/2008 15:08
Partager Twitter Partagez cette article sur GG+
Re: Module Espace client : pouvoir faire une sélection sur le nom réel í  la place (ou en plus) du pseudo
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Pas de souci lol
Je vais purger ces derniers échanges pour ne pas perturber les futurs lecteurs !

Posté le : 24/11/2008 15:10
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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