Fork me on GitHub






Récupérer le pseudo de l'utilisateur en fonction de l'uid
Newbie
Inscrit: 04/06/2012 16:23
Messages: 15
Bonsoir à tous,

Je suis en train de développer un module pour mon site web.

J'ai une table qui contient des informations à propos de chaque utilisateur, cette table contient donc l'uid de l'utilisateur dans le but de pouvoir linker les deux tables.

Je cherche dans mon template à afficher le pseudo de l'utilisateur en fonction de l'uid stocké.

J'utilise une classe qui étend XoopsPersistableObjectHandler dans le but de récupérer mes données automatiquement base.

Mais je ne sais pas comment faire pour récupérer le pseudo. Existe-il une fonction pour smarty et du coup j'ai juste un appel de fonction à faire ? Existe-il une donnée directement à mettre dans ma classe ?

J'ai testé avec ça mais ça ne marche pas :
function __construct()
    {
        
$this->initVar('uid'XOBJ_DTYPE_INTnulltrue);
        
$this->initVar('member_id'XOBJ_DTYPE_INTnulltrue);
        
$this->initVar('member_lastname'XOBJ_DTYPE_TXTBOX);
        
$this->initVar('member_website_name'XOBJ_DTYPE_TXTBOX);
        
        
$handler =& xoops_gethandler('user');
        
$this->setVar('member_website_name'$handler->getUnameFromId($this->getVar('uid')));
    }


Après je suis débutant et pour développer mon module je m'inspire des sources des autres modules et je fais des copiers-collers.

Est-ce que quelqu'un peut m'aider ?

Merci :)

Posté le : 02/08/2012 22:56
Partager Twitter Partagez cette article sur GG+
Re: Récupérer le pseudo de l'utilisateur en fonction de l'uid
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
peut être avec ceci

function __contruct() {
  if (
is_object($GLOBALS['xoopsUser'])) {
    global 
$xoopsUser;
    
$nom $xoopsUser->getVar('uname');
  }
}

Posté le : 03/08/2012 15:18
Partager Twitter Partagez cette article sur GG+
Re: Récupérer le pseudo de l'utilisateur en fonction de l'uid
Newbie
Inscrit: 04/06/2012 16:23
Messages: 15
En fait j'ai fait autrement.

Je récupère le handler des utilisateurs. Puis je stocke dans un array le couple <uid, uname> qui j'inclus dans mon smarty. Puis avec l'uid que contient ma classe, je demande à smarty de chopper la donnée 'uname' dans cet array.

Je ne sais pas si c'est une solution propre mais bon...

Voici ce que j'ai fait dans ma page :
$criteria = new CriteriaCompo();
        
$criteria->setSort('member_id');
        
$criteria->setOrder('ASC');
        
$members $memberhandler->getObjects($criteriatruefalse);
        unset(
$criteria);
        
        
// Get users list
        
$user_handler =& xoops_gethandler('user');
        
$criteria    = new CriteriaCompo();
        
$criteria->setSort('uid');
        
$users $user_handler->getObjects($criteriatrue);
        
        
// Get Nickname / Pseudo
        
if (count($users) > 0) {
            foreach (
array_keys($users) as $i) {
                
$users_nickname[$users[$i]->getVar('uid')] = $users[$i]->getVar('uname');
                
$users_mail[$users[$i]->getVar('uid')] = $users[$i]->getVar('email');
            }
        }
        
$GLOBALS['xoopsTpl']->assign('nickname'$users_nickname);
        
$GLOBALS['xoopsTpl']->assign('email'$users_mail);
        unset(
$users_nickname);
        unset(
$users_mail);
        
$GLOBALS['xoopsTpl']->assign('token'$GLOBALS['xoopsSecurity']->getTokenHTML());

        
$GLOBALS['xoopsTpl']->assign('members',  $members);
        
$template_main "admin_memberlist.html";


Et du coup dans mon template :
<{foreach item=member from=$members}>
        <
tr class="<{cycle values='odd, even'}>">
            <
td align"center"><{$member.member_id}></td>
            <
td align"center"><a href="../../../userinfo.php?uid=<{$member.uid}>" title="<{$nickname[$member.uid]}>"><{$nickname[$member.uid]}></a></td>
            <
td align"center"><{$member.member_lastname}></td>
            <
td align"center"><{$member.member_firstname}></td>
            <
td align"center"><{$member.member_birthdate}></td>
            <
td align"center"><{$member.member_address}></td>
            <
td align"center"><{$member.member_postcode}></td>
            <
td align"center"><{$member.member_city}></td>
            <
td align"center"><a href="mailto:<{$email[$member.uid]}>"><{$email[$member.uid]}></a></td>
            <
td align"center"><{$member.member_mobilephone}></td>
            <
td align"center"><{$member.member_winamax}></td>
            <
td align"center">
                <
a href="member.php?id=<{$member.member_id}>" title="<{$smarty.const._EDIT}>"><img src="<{xoModuleIcons16 edit.png}>" alt="<{$smarty.const._EDIT}>" title="<{$smarty.const._EDIT}>" /></a>                
            </
td>
        </
tr>
    <{/foreach}>

Posté le : 03/08/2012 15:33
Partager Twitter Partagez cette article sur GG+
Re: Récupérer le pseudo de l'utilisateur en fonction de l'uid
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Bonjour,
comment s'appellera ton module ? Vas-tu nous le partager ?

Nous sommes aussi à ta disposition pour les tests, voir ici.

Posté le : 07/08/2012 12:54

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
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

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