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'.
J'édite ensuite mon profil dans le module 'profile', et j'indique une date de naissance.
Je retrouve bien cette date dans mon profil.
J'édite à présent le fichier
/modules/yogurt/index.phpEt 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 :
<p 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 :
<p 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 :
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}>