J'ai regardé, mais ça dépasse ce que je sais faire.
Dans le module 'profile', les données semblent être récupérées dans la base avec :
// Dynamic User Profiles
$thisUsergroups = $thisUser->getGroups();
$visibility_handler = xoops_getmodulehandler('visibility');
$field_ids_visible = null;
// Admin has access to all fields
if (!$xoopsUser->isAdmin()) {
$field_ids_visible = $visibility_handler->getVisibleFields($groups, $thisUsergroups);
}
$profile_handler =& xoops_getmodulehandler('profile');
$fields = $profile_handler->loadFields();
$cat_handler =& xoops_getmodulehandler('category');
$cat_crit = new CriteriaCompo();
$cat_crit->setSort("cat_weight");
$cats = $cat_handler->getObjects($cat_crit, true, false);
unset($cat_crit);
$avatar = "";
if ($thisUser->getVar('user_avatar') && "blank.gif" != $thisUser->getVar('user_avatar')) {
$avatar = XOOPS_UPLOAD_URL . "/" . $thisUser->getVar('user_avatar');
}
$email = "";
if ($thisUser->getVar('user_viewemail') == 1) {
$email = $thisUser->getVar('email', 'E');
} elseif (is_object($xoopsUser)) {
// Module admins will be allowed to see emails
if ($xoopsUser->isAdmin() || ($xoopsUser->getVar("uid") == $thisUser->getVar("uid"))) {
$email = $thisUser->getVar('email', 'E');
}
}
foreach (array_keys($cats) as $i) {
$categories[$i] = $cats[$i];
}
$profile_handler = xoops_getmodulehandler('profile');
$profile = $profile_handler->get($thisUser->getVar('uid'));
// Add dynamic fields
foreach (array_keys($fields) as $i) {
//If field is not visible, skip
if ($field_ids_visible && !in_array($fields[$i]->getVar('field_id'), $field_ids_visible)) continue;
$cat_id = $fields[$i]->getVar('cat_id');
$value = $fields[$i]->getOutputValue($thisUser, $profile);
if (is_array($value)) {
$value = implode('<br />', array_values($value));
}
if ($value) {
$categories[$cat_id]['fields'][$fields[$i]->getVar('field_weight') . "_" . $i] = array('title' => $fields[$i]->getVar('field_title'), 'value' => $value);
ksort($categories[$cat_id]['fields']);
$weights[$cat_id][] = $fields[$i]->getVar('cat_id');
}
}
//sort fields order in categories
foreach (array_keys($categories) as $i) {
if (isset($categories[$i]['fields'])) {
array_multisort($weights[$i], SORT_ASC, array_keys($categories[$i]['fields']), SORT_ASC, $categories[$i]['fields']);
} else {
unset($categories[$i]);
}
}
//ksort($categories);
$xoopsTpl->assign('categories', $categories);
// Dynamic user profiles end
Si on ajoute un
print_r ($categories);
On retrouve toutes nos données.
Puis elles sont affichées et mises en page dans le template "profile_userinfo.html" avec :
<{foreach item=category from=$categories}>
<{if isset($category.fields)}>
<div class="profile-list-category" id="profile-category-<{$category.cat_id}>">
<table class="outer" cellpadding="4" cellspacing="1">
<tr>
<th colspan="2" align="center"><{$category.cat_title}></th>
</tr>
<{foreach item=field from=$category.fields}>
<tr>
<td class="head"><{$field.title}></td>
<td class="even"><{$field.value}></td>
</tr>
<{/foreach}>
</table>
</div>
<{/if}>
<{/foreach}>
Mais ça me semble demander un gros travail pour modifier yogurt, pour qu'il aille récupérer ces données également.
En tout cas là, après quelques recherches, je ne trouve rien de simple à faire.
Si quelqu'un peut t'aider plus que moi...