Fork me on GitHub

Rapport de message :*
 

Re: recuperation des donnée d'enregistrement dans profile utilisateur sous xoops2.32

Titre du sujet : Re: recuperation des donnée d'enregistrement dans profile utilisateur sous xoops2.32
par blueteen sur 12/12/2008 14:55:12

Voilà, je vous propose un premier test, avec l'ajout d'un champs additionnel gérant la date de naissance dans le module 'profile', et l'affichage de cette date dans le module 'yogurt'.

Je commence par créer un champs au format date dans le module 'profile' sous xoops 2.3.x
Le libellé sera 'Date de naissance', et le nom du champs dans la base de données sera 'date_naissance'.

Open in new window

Open in new window

Open in new window

J'édite ensuite mon profil dans le module 'profile', et j'indique une date de naissance.
Je retrouve bien cette date dans mon profil.

Open in new window

J'édite à présent le fichier /modules/yogurt/index.php

Et juste avant la ligne :
include("../../footer.php");

J'ajoute :
$profile_handler =& xoops_getmodulehandler('profile','profile');
$uidyogurt intval($_GET['uid']); //get uid from url
if ($uidyogurt <= 0) { //if no valid uid passed to url
    
if (is_object($xoopsUser))  {//if member
        
$profile $profile_handler->get($xoopsUser->getVar('uid'));} //get uid for the connected member
        
else {
             
header('location: ' XOOPS_URL); //back to homepage - redirect wherever you want
             
exit();}
}
else {
//if a correct uid passed to url - eg. : index.php?uid=12
    
$profile $profile_handler->get($uidyogurt);}//get uid passed to url to take right data from profile
$date_de_naissance date('d/m/Y'$profile->getVar('date_naissance'));
$xoopsTpl->assign('date_naissance',$date_de_naissance);


Comme c'est une date stockée sous la forme d'un entier, j'utilise la fonction php 'date' afin de la remettre en forme.

J'ai à présent la possibilité d'utiliser la variable smarty suivante :
<{$date_naissance}>


C'est ce que je fais avec le fichier /modules/yogurt/templates/yogurt/index.html, en changeant la ligne 105 :
<class="odd"><img src="images/username.gif" /><span class="yogurt-profileinfo-label"><{$lang_uname}>:</span><span class="yogurt-profileinfo-value"><{$user_uname}></span></p>

Par :
<class="odd"><img src="images/username.gif" /><span class="yogurt-profileinfo-label"><{$lang_uname}>:</span><span class="yogurt-profileinfo-value"><{$user_uname}> - <{$date_naissance}></span></p>

Ce qui me donne l'affichage suivant :

Open in new window

Je peux bien entendu placer cette variable ailleurs dans la page.

Dans le cas d'une variable contenant du texte pur, il suffit d'utiliser ce code :
$ma_variable $profile->getVar('ma_variable_texte');
$xoopsTpl->assign('ma_variable_texte',$ma_variable);


A la place de :
$date_de_naissance date('d/m/Y'$profile->getVar('date_naissance'));
$xoopsTpl->assign('date_naissance',$date_de_naissance);


Que je peux ensuite afficher où je veux avec la variable smarty :
<{$ma_variable_texte}>

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

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