Joomla! Programmierung/Framework/JFactory/getUser

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

JFactory/getUser Liefert eine Referenz zu dem globalen JUser Objekt. Wird nur neu erstellt, wenn es noch nicht existiert.

Inhaltsverzeichnis

[Bearbeiten] Syntax

static getUser( [$id] )
  • @return object JUser
  • @since Joomla 1.5
Parameter Datentyp Beschreibung Standardwert
$id integer oder string Der Benutzer, der geladen werden soll. Wenn ein String übergeben wird, dann wird dieser als Benutzername interpretiert und automatisch in die ID umgewandelt. Wenn der Parameter nicht gesetzt wird oder null lautet, dann wird der aktuelle Benutzer geladen. Ist der Parameter 0, dann wird ein "leeres" JUserobjekt zurück gegeben. null

[Bearbeiten] Beispiele

[Bearbeiten] Informationen über einen Benutzer laden

In diesem Beispiel werden Informationen über den aktuellen Benutzer ausgegeben; aber nur, wenn der Benutzer eingeloggt ist.

// globale JUser Instanz laden
$user = JFactory::getUser();
 
// Test ob der Benutzer eingeloggt ist
if (!$user->guest) {
  echo 'Sie sind eingeloggt als:<br />';
  echo 'Benutzername: ' . $user->get('username') . '<br />';
  echo 'echter Name: ' . $user->get('name') . '<br />';
  echo 'Benutzer ID  : ' . $user->get('id') . '<br />';
}

[Bearbeiten] Benutzer mittels Benutzername laden

In diesem Beispiel werden Informationen über den Benutzer "HansDampf" dargestellt, unabhängig vom Status des aktuellen Users.

$user = JFactory::getUser( 'HansDampf' );
 
if ($user->id == 0) {
  echo 'HansDampf ist auf dieser Seite nicht registriert<br />';
} else {
  echo 'Benutzername: ' . $user->get('username') . '<br />';
  echo 'echter Name: ' . $user->get('name') . '<br />';
  echo 'Benutzer ID  : ' . $user->get('id') . '<br />';
}

[Bearbeiten] ACL testen

In diesem Beispiel wird überprüft, ob ein Benutzer die Erlaubnis hat, Artikel zu bearbeiten. Für weitere Informationen schauen Sie bitte auf JAuthorization und JFactory->getACL.

$user = JFactory::getUser();
 
if ($user->authorize( 'com_content', 'edit', 'content', 'all' )) {
  echo 'Bearbeiten erlaubt.';
} else {
  echo 'Bearbeiten nicht erlaubt.';
}

[Bearbeiten] Neuer Benutzer registrieren

/*
 
Es wird angenommen, dass dieser Code in einer Funktion steht
 
Als erstes werden ein paar Variablen/Objekte definiert
*/
// ACL laden
$acl =& JFactory::getACL();
 
/* com_user Parameter laden */
 
jimport('joomla.application.component.helper'); // libraries/application/component/helper.php einbinden
$usersParams = JComponentHelper::getParams( 'com_users' ); // Parameter laden
 
// neues JUser Objekt "generieren"
$user = JFactory::getUser(0); // es ist wichtig die"0" zu übergeben, ansonsten wird der aktuelle Benutzer geladen
 
$data = array(); // Array für die Benutzereinstellungen
 
// Den Standard Benutzertyp laden
$usertype = $usersParams->get( 'new_usertype' );
if (!$usertype) {
    $usertype = 'Registered';
}
 
// die wichtigen "Grundinformationen" laden
 
$data['name'] = $firstname.' '.$lastname; // Vor- und Nachname setzen
$data['username'] = $username; // Benutzername setzen
$data['email'] = $email; // Email setzen
$data['gid'] = $acl->get_group_id( '', $usertype, 'ARO' );  // GID in abhängigkeit vom Benutzertyp setzen
 
/* Der Benutzertyp muss nicht gesetzt werden, der wird später automatisch generiert */
 
$data['password'] = $password; // Passwort setzen
$data['password2'] = $password; // Passwort bestätigen
$data['sendEmail'] = 1; // Soll der Benutzer Systemmails erhalten?
 
/* Nun können wir entscheiden, ob der Benutzer sich freischalten muss */
 
$useractivation = $usersConfig->get( 'useractivation' ); // In diesem Beispiel laden wir den Eintrag in der globalen Konfiguration
if ($useractivation == 1) { // ja, wir wollen eine Aktivierung
 
    jimport('joomla.user.helper'); // libraries/user/helper.php inbinden
    $data['block'] = 1; // Benutzer blockieren
    $data['activation'] =JUtility::getHash( JUserHelper::genRandomPassword()) ); // Aktivierungshash setzen (nicht vergessen eine Aktivierungsmail zu schreiben)
 
}
else { // keine Aktivierung
 
    $data['block'] = 0; // Benutzer nicht blockieren
}
 
if (!$user->bind($data)) { // Nun die Benutzerdaten an das JUserobjekt "heften" und falls es nicht funktioniert...
 
    JError::raiseWarning('', JText::_( $user->getError())); // ...eine Warnung ausgeben
    return false; // wenn man sich in einer Methode/Funktion befindet, mit "false" beenden
}
 
if (!$user->save()) { // Benutzer speicher, falls es nicht funktioniert
 
    JError::raiseWarning('', JText::_( $user->getError())); // ...eine Warnung ausgeben
    return false; // wenn man sich in einer Methode/Funktion befindet, mit "false" beenden
}
 
return $user; // Wenn alles geklappt hat, das gefüllte JUser Objekt zurück geben

[Bearbeiten] Siehe auch

[Bearbeiten] Quellcode

Joomla 11.1 JFactory::getUser()

Folder blue.png libraries/joomla

  • File php.png factory.php
  1. public static function getUser($id = null)
  2. {
  3. jimport('joomla.user.user');
  4.  
  5. if (is_null($id)) {
  6. $instance = self::getSession()->get('user');
  7. if (!($instance instanceof JUser)) {
  8. $instance = JUser::getInstance();
  9. }
  10. }
  11. else {
  12. $instance = JUser::getInstance($id);
  13. }
  14.  
  15. return $instance;
  16. }
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge