User Informationen auslesen

Joomla 1.5 ButtonJoomla 1.6 ButtonJoomla 1.7 ButtonJoomla 2.5 Button

Joomla! Entwickler benötigen für ihre Erweiterungen (Plugins, Module, Komponenten oder Templates) öfters mal nähere Informationen über den Besucher.
Ist der Besucher ein angemeldetes Mitglied oder ein nicht registrierter Gast? Wie lautet der Name oder die E-Mail Adresse des Mitglieds? Mit einfachen Code Schnipseln lässt sich das leicht ermitteln.

 

Eingeloggter User oder unbekannter Gast?

Mit folgendem Code kannst du erkennen ob ein registrierter Besucher eingeloggt ist, oder ob ein unbekannter Gast (dazu zählen auch die Spider der Suchmaschinen) die Homepage besucht.

<?php

    $user =& JFactory::getUser();
    $guest = $user->guest;

  ?>
  

Die Variable $guest liefert den Wert 1, wenn der User ein unbekannter Gast ist. Der Wert 0 bestätigt, das es sich um einen eingeloggten registrierten User handelt.

 

Daten von registrierten Usern auslesen

Möchtest du bei deiner Joomla! Erweiterung einen eingeloggten User mit seinem Namen ansprechen? Oder ihm bei irgendeiner Anwendung automatisch eine E-Mail senden? Dann benötigst du natürlich die E-Mail Adresse bzw. den Namen des Users. Mit folgendem Code kannst du diese Daten ermitteln.

<?php

    $user =& JFactory::getUser();
    
    $user_id = $user->id; // ID um den User eindeutig zu identifizieren
    $user_name = $user->name; // echter Name
    $user_username = $user->username; // Nickname
    $user_email = $user->email; // E-Mail Adresse
    $user_sendemail = $user->sendEmail; // möchte der User System E-Mails erhalten
    $user_register = $user->registerDate; // Registrierungszeitpunkt
    $user_lastvisit = $user->lastvisitDate; // Zeitpunkt des letzten angemeldeten Besuches
    $user_block = $user->block; // User gesperrt oder nicht

  ?>
  

 

Unterschiede bei den Joomla! Versionen

Achtung, es gibt einige Attribute die bei den Joomla! Versionen unterschiedliche Ergebnisse liefern!

Bei den oben aufgelistetetn Daten habe ich bei meinen Tests keine Unterschiede bemerkt. Aber bei folgenden 3 Abfragen:

usertype

Code: $user->usertype;
... liefert bei J1.5 den richtigen Wert. Bei J1.6 wird der String deprecated (zu deutsch "veraltet") geliefert und bei J1.7 bleibt diese Abfrage komplett leer. (wird vermutlich nicht mehr benötigt)

activation

Code: $user->activation;
... liefert bei J1.5 einen codierten String. Bei J1.6 und J1.7 bleibt diese Abfrage leer.

superadmin

Code: $user->superadmin;
... bei J1.5 nicht vorhanden. Bei J1.6 und J1.7 wird bei einem Super Administrator "1" geliefert, ansonsten "0".

 

Daten eines bestimmten Users anzeigen

Bei den obigen Codes werden die Daten des aktuellen Users ermittelt. Es können auch die Daten eines anderen registrierten Users ausgelesen werden.

Wird dem Objekt getUser ein String übergeben, so werden die Daten des Users mit diesem Nicknamen (Usernamen) ermittelt. Wenn der übergebene Wert eine Zahl ist, wird automatisch nach dem User mit der ID dieses Wertes gesucht und dessen Daten zurück geliefert.

einige Beispiele:

Einfaches Beispiel um die E-Mail des Users "Max Mustermann" auszulesen

<?php

    $user =& JFactory::getUser('Max Mustermann');
    echo "Die E-Mail Adresse von Max Mustermann lautet: ".$user->email;

  ?>
  

 

Erweiterter Code, der den Usernamen überprüft und dann den Nicknamen, den realen Namen und die E-Mail Adresse ausgibt.

<?php

    $user =& JFactory::getUser('Max Mustermann');
    if ($user->id == 0) {
      echo "Es ist kein User mit dem Namen Max Mustermann registriert.<br />";
    } else {
      echo "Nickname: ".$user->username . '<br />";
      echo "echter Name: ".$user->name . '<br />";
      echo "E-Mail Adresse: ".$user->id . '<br />";
    }

  ?>
  

 

Der Name des Users mit der User-ID 100 wird ermittelt und angezeigt.

<?php

    $user =& JFactory::getUser(100);
    echo "Hallo ".$user->name;  // persönliche Begrüßung

  ?>
  

 

Weitere Informationen


  • Montag, 10 Oktober 2011

Kommentare (0)

Bitte Kommentar schreiben

Bitte einloggen, um einen Kommentar zu schreiben.