Catégories:
Bonjour,
Comment peut-on faire en php pour récuperer les champs, les informations du content profile associé à un utilisateur dans un computed_field ;
J’ai voulu passer par la $user mais cela ne contient pas les champs du content profile.
Je recupere bien l’id de l’utilisateur son nom etc…
Je ne vois plus trop comment faire.
Merci
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Bonjour,
Je me permets de relancer ce sujet car je cherche aussi à accéder aux informations de content_profile. Mais je ne les trouve même pas dans la BDD… Est-ce que quelqu’un saurait où sont cachées les données utilisateurs enregistrées via ce module ?
Merci d’avance !
bthomas
4
Hello,
Content Profile n’ajoute pas directement des informations à l’utilisateur, il associe un node de type Profile à chaque utilisateur. L’auteur d’un node de type Profile détermine à quel utilisateur les infos du node sont associées (chaque utilisateur ne peut créer qu’un node de type Profile).
Il faut donc, via PHP, récupérer les données du node de type Profile dont l’auteur correspond à l’utilisateur dont on veut avoir les informations.
mdupont@drupal.org
616
Bonjour,
En approfondissant les recherches j’ai trouvée 2 table qui sont les tables de stockage de ces données.
Table Profile_fields et profile_values.
la jointure avec l’utilisateur est faite sur le uid dans la table profile_values.
Cordialement,
Aya
Edit : Sinon il y a aussi cette fonction là qui est inclus dans profile :
function profile_load_profile(&$user) {$result = db_query('SELECT f.name, f.type, v.value FROM {profile_fields} f INNER JOIN {profile_values} v ON f.fid = v.fid WHERE uid = %d', $user->uid);
while ($field = db_fetch_object($result)) {
if (empty($user->{$field->name})) {
$user->{$field->name} = _profile_field_serialize($field->type) ? unserialize($field->value) : $field->value;
}
}
}
Elle permet de récupérer les valeur des champs profile dans la variable $user.
Voila en espérant que sa aide.
Edit2 :
je ne pense pas que profile crée un node (aucune valeur dans node quand on ajout un nouvel utilisateur avec des contenu de profile) et de plus la table node_type ne contient aucune occurrence concernant le type profile donc impossible de créer un node de ce type.
Donc il vaut mieux utiliser les fonctions définit dans le module profile afin de récupérer les valeur voulues ou l’autre solution est de le refaire a la main.
Aya
508
On parle ici du module Content Profile (infos de profil stockées dans un node) et non du module Profile présent dans le coeur de Drupal (infos de profil stockées à part).
mdupont@drupal.org
616
Autant pour moi
Aya
508
Merci ! Tes explications claires et précises m’éclairent beaucoup pour mon projet. :)
Merci aussi à Aya d’avoir approfondi les recherches pour moi, même si ce n’était pas sur le bon sujet ^^’
bthomas
4
Bonjour,
Avez-vous réussi à récupérer les données des nodes content profil ? Si, oui comment ? Merci.
www.grafity.fr
fouinette
251
Tu as essayé avec cette fonction «profile_load_profile(&$user)» ?
underq
42
Bonjour,
Du coup, j’ai modifié avec ce que tu m’as dit :
function totofonc() {
profile_load_profile(&$user) ;
$date=$user->profile_date ;
return ‘
Vous êtes sur la page Toto.
Votre nom d'utilisateur est : ’ .$GLOBALS[‘user’]->name. ‘
Votre mail :’ .$GLOBALS[‘user’]->mail. ‘
Date echeance :’.$date.’
’ ;
}
Mais ça ne fonctionne pas, il ne m’affiche pas le champ date.
www.grafity.fr
fouinette
251
Essaye ça :
function totofonc() {
global $user ;
profile_load_profile($user) ;
$date=$user->profile_date ;
return ‘
Vous êtes sur la page Toto.
Votre nom d’utilisateur est : ’ .$user->name. ‘
Votre mail :’ .$user->mail. ‘
Date echeance :’.$date.’ ;
}
underq
42
ça m’affiche sur ma page de résultat : Date echeance :Array
www.grafity.fr
fouinette
251
Je viens d’ajouter un autre champ mais de type texte et là avec ton code ça s’affiche bien, le problème est l’affichage du champ date.
www.grafity.fr
fouinette
251
Si ça affiche Array, c’est que c’est un tableau, donc il faut dumper ce tableau (par exemple en faisant un print_r($date)) et voir où se trouvent les données intéressantes pour l’affichage dans ledit tableau.
Numerizen
1822
Merci, ça fonctionne.
www.grafity.fr
fouinette
251