web-dev-qa-db-fra.com

Obtenir les coordonnées de la substitution d'article

Je dois afficher les informations de contact d'un contact sur une substitution d'article (adresse, numéro de téléphone, etc.).
Je peux obtenir l'utilisateur avec: $user = JFactory::getUser(); mais comment puis-je obtenir les coordonnées d'un utilisateur?

J'ai essayé d'utiliser ceci:

JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_contact/tables');
$contact = JTable::getInstance('contact_details');    

echo '<pre>'; print_r($contact); echo '</pre>';

Mais cela ne produit rien.

2
web-tiki

Vous devrez d’abord récupérer l’ID utilisateur de la manière suivante:

$id = JFactory::getUser()->id;

Ensuite, obtenez le tableau de données de profil, comme suit:

$profile = JUserHelper::getProfile($id)->profile;

Vous pouvez maintenant accéder à toutes les données:

echo $profile['address1'];
echo $profile['address2'];
echo $profile['city'];
echo $profile['region'];
echo $profile['country'];
echo $profile['postal_code'];
echo $profile['phone'];
echo $profile['website'];
echo $profile['favoritebook'];
echo $profile['aboutme'];
echo $profile['dob'];

Vous devez vous assurer que vous êtes connecté, sinon vous ne pourrez pas obtenir les informations:

Voici le code complet avec un contrôle d'intégrité:

$user = JFactory::getUser();

if (!$user->guest)
{
    $profile = JUserHelper::getProfile($user->id)->profile;

    echo $profile['address1'];
    echo $profile['address2'];
    echo $profile['city'];
    echo $profile['region'];
    echo $profile['country'];
    echo $profile['postal_code'];
    echo $profile['phone'];
    echo $profile['website'];
    echo $profile['favoritebook'];
    echo $profile['aboutme'];
    echo $profile['dob'];
}
3
Lodder
$user = JFactory::getUser();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')->from('#__contact_details')->where('user_id = '.(int)$user->id);
$db->setQuery($query);
$contacts = $db->loadObjectList(); 
/* one user can be associated with multiple contacts */
if($contacts) {
    /* do stuff with the contact records */
}
1
Michael