Joomla! Programmierung/Framework/JFactory/getUser
Aus Joomla! Dokumentation
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
| 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
- JFactory->getUser() auf api.joomla.org
- JUser
[Bearbeiten] Quellcode
{ jimport('joomla.user.user'); $instance = self::getSession()->get('user'); } } else { } return $instance; }