it-swarm.com.de

Kontaktdaten erhalten Sie über die Artikelüberschreibung

Ich muss die Kontaktinformationen eines Kontakts auf einer Artikelüberschreibung anzeigen (Adresse, Telefonnummer ...).
Ich kann den Benutzer mit: $user = JFactory::getUser(); abrufen, aber wie kann ich die Kontaktdaten eines Benutzers abrufen?

Ich habe Folgendes versucht:

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

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

Es wird aber nichts ausgegeben.

2
web-tiki

Sie müssen zunächst die Benutzer-ID wie folgt abrufen:

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

Dann holen Sie sich das Array mit den Profildaten wie folgt:

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

Sie können jetzt auf alle Daten zugreifen:

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'];

Sie müssen sicherstellen, dass Sie angemeldet sind. Andernfalls können Sie die Informationen nicht abrufen:

Hier ist der vollständige Code mit einer Plausibilitätsprüfung:

$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