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 09:48:38

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_crittruefalse);
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_ASCarray_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...
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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