variable global $user et content profile

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

#

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 !

#

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.

#

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.

#

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).

#

Autant pour moi

#

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 ^^’

#

Bonjour,

Avez-vous réussi à récupérer les données des nodes content profil ? Si, oui comment ? Merci.

#

Tu as essayé avec cette fonction «profile_load_profile(&$user)» ?

#

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.

#

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.’ ;
}

#

ça m’affiche sur ma page de résultat : Date echeance :Array

#

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.

#

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.

#

Merci, ça fonctionne.

Syndiquer le contenu