Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

$user und anhand von Argument spezifischen $user laden?

Eingetragen von MarkS (54)
am 25.10.2010 - 11:27 Uhr in
  • Allgemeines zu Drupal

Hallo,

ich habe 2 Fragen zum $user:

Wenn ich print_r($user) ausgebe, werden mir eine Reihe von Variablen angezeigt (zB. [uid] [name] [pass] [mail] [mode]). Kann ich irgendwo definieren welche ich ausgeben möchte bzw. welche Felder $user beinhalten soll?

Zweite Frage: Stellt Drupal eine Funktion bereit, dass ich auch Informationen anderer User einfach laden kann, wenn ich deren uid habe?
Zum Beispiel bekomme ich per Argument die uid eines Users übergeben, zB. $profile_id = arg(1);. Dann würde ich zB aufrufen: $profile = load_userdaten($profile_id) und schon habe ich einen Zugriff auf die Userdaten wie beim Aufruf von $user->name. Gibt es so eine Funktion wie load_userdaten?

Vielen Dank,
gruß Mark

‹ Dateien vom Server löschen Drupal 6 oder 7 ? / Soziales Netzwerk ? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Zum $user

Eingetragen von Nicolai Schwarz (1071)
am 25.10.2010 - 13:49 Uhr
  1. An den Feldern für den $user würde ich nicht rumfummeln. Wer weiß, was Drupal davon braucht (im Zweifel alles). Was davon hingegen ausgegeben wird, kannst du natürlich beeinflussen. An welcher Stelle denn? Im Profil? Dann erstelle einfach ein Theme für das Profil.
  2. Ja, gibt es. Die ist auch nicht so schwer zu finden: http://api.drupal.org/api/function/user_load. Beispiel dazu: http://11heavens.com/Drupal-coder-lost-in-space/who-authored-this-node
    Allerdings hört sich diese Frage auch so an, als wolltest du ein Profil themen. Dafür musst du nicht die Userdaten einzeln abrufen, das macht Drupal bereits.
  • Anmelden oder Registrieren um Kommentare zu schreiben

das User-Objekt ist innerhalb

Eingetragen von wla (9016)
am 25.10.2010 - 13:54 Uhr

das User-Objekt ist innerhalb von Drupal festgelegt und kann von Dir nicht geändert werden. Die PHP-Funktion print_r() dient ja gerade dazu eine komplette Struktur auszugeben. Warum benutzt Du die, wenn Du mit dem Ergebnis nicht klar kommst?
Mit der Drupal-Funktion user_load kannst Du Dir über die UID des User das zugehörige User-Objekt laden.

Beste Grüße
Werner

.
Werner
drupal-in-duesseldorf.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super, vielen Dank. Ihr habt

Eingetragen von MarkS (54)
am 26.10.2010 - 08:17 Uhr

Super, vielen Dank. Ihr habt mir schon sehr weitergeholfen.
Jetzt habe ich dazu aber noch eine Frage:

Ja, es ist richtig das ich ein Userprofil themen möchte.
Dieses setzt sich aus mehreren ContentProfile Inhaltstypen zusammen.

Jetzt könnte ich ja mit user_load() oder $account alle Felder per Hand in ein HTML-Konstrukt laden. Das wäre am performantesten (da keine zusätzlichen DB-Abfragen), dafür aber auch am unübersichtlichsten.
Eine weitere Möglichkeit die ich sehe, ist die das Profil in 4-5 Views zu organisieren, die Views zu themen und diese anschließend im Profil zu laden. Das wäre übersichtlicher, dafür aber auch nicht so performant.

Wie würdet ihr das userprofil erstellen, wenn viele Daten aus mehreren Contenttypen geladen/angezeigt werden müssen?

Vielen Dank!

Viele Grüße Mark

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mehrere ContentProfile Inhaltstypen?

Eingetragen von Nicolai Schwarz (1071)
am 26.10.2010 - 13:20 Uhr

Warum gibt es überhaupt mehrere ContentProfile Inhaltstypen? Ist das nötig? Ich bin bisher immer mit jeweils einem ausgekommen, auch wenn es umfangreicher wurde. Und wenn schon mehrere Inhaltstypen notwendig sind und verschiedene Inhalte dort alle einem User zugeordnet sind, lädt Drupal die Inhalte nicht automatisch auf der Profilseite?

Hast du dir über print_r() schon mal auf der Profilseite angesehen, welche Infos du schon alle hast? Ich würde dann nur noch mit eigenen Datenbankabfragen im Profil selbst die Inhalte holen, die noch fehlen.
Aus deinem Kommentar lese ich aber heraus, dass die Profilseite bereits alle Infos enthält. Die musst du nur noch themen. Wozu die Datenbank für Infos bemühen, die du schon hast?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Nicolai, danke für die

Eingetragen von MarkS (54)
am 26.10.2010 - 15:49 Uhr

Hallo Nicolai,

danke für die Hilfe.
Ja, in meinem Fall ist es aus verschiedenen Gründen sinnvoll mehrere Contenttypen zu nutzen. Sicherlich ist es auch eine Geschmackssache bzw. (mangelnde) Erfahrung. Jedenfalls habe ich zur Zeit mehrere Contenttypen und suche die bestmöglichste Lösung zum erstellen eines Userprofils.
Wenn ich einen print_r($account) bzw. print dsm($account) ausgebe, erhalte ich alle nötigen Angaben. Das ist korrekt. Nur leider in einer unmöglichen Ausgabe. Zum Beispiel

#children (String, 8798 characters ) <h3 class="content-profile-title" id="cont...

enthält quasi eine komplette Seite mit knapp 9000 Zeichen. Da kann ich nicht mehr auf Variablen zugreifen etc.
Überhaupt habe ich im print_r($account) keine Variable aus dem ContentProfile gefunden, so dass ich in der user-profile.tpl.php drauf zugreifen könnte.
Anscheinend wird ne Menge Zeug geladen das ich nicht brauchen kann :( Oder ich weiß nicht wie ich es sinnvoll nutzen kann :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Selbst ausgeben

Eingetragen von Nicolai Schwarz (1071)
am 26.10.2010 - 16:38 Uhr

Wenn der String knapp 9000 Zeichen enthält, kannst du daran nichts ändern. Aber du musst ja auch nicht 9000 Zeichen ausgeben. Schneid den Text einfach irgendwo ab.

Zitat:

Wenn ich einen print_r($account) bzw. print dsm($account) ausgebe, erhalte ich alle nötigen Angaben.

Na also, dann geht es doch nur noch darum, die Daten so auszugeben, wie du sie haben willst. Einfach die richtigen Variablen aussuchen und vor der Ausgabe ggf. noch etwas bearbeiten (auf x Zeichen kürzen, oder ein <p> drum packen etc.)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Pflichtfeld vom User deaktivieren lassen
  • Konto löschen, wie? (Drupalorg/Drupalcenter)
  • Layout-Builder hängt
  • Drupal 8/9 SEO-Beratung/Coaching
  • Verschachtelte UND / ODER Abfrage mit hook_views_query_alter
  • Kartenansicht, Position des Users und Nodes anzeigen
  • Hilfe zu Views und Filter?
  • Views für 2 Kategorien
  • [gelöst]Probleme nach löschen eines Menüpunktes im Adminmenü
  • [gelöst]Zufallsausgabe von Inhalt
  • Variable aus dem inkludierten Partial Template auslesen
  • Probleme beim Versand von Mails via Drupal 9
Weiter

Neue Kommentare

  • Schau Dir mal folgenden
    vor 3 Minuten 28 Sekunden
  • Du kannst die Eigenschaften
    vor 7 Minuten 54 Sekunden
  • Bitte meinen Account auch löschen
    vor 8 Minuten 20 Sekunden
  • Danke, den hook kannte ich natürlich
    vor 1 Stunde 38 Minuten
  • Ich würde das mit
    vor 3 Stunden 14 Minuten
  • php war es nicht
    vor 15 Stunden 37 Minuten
  • Ich mache so Sachen:-)
    vor 17 Stunden 42 Minuten
  • Bei Google musst Du erst ab
    vor 2 Tagen 4 Stunden
  • Filter
    vor 2 Tagen 18 Stunden
  • Ich bin mir nicht sicher,
    vor 2 Tagen 19 Stunden

Statistik

Beiträge im Forum: 246095
Registrierte User: 18884

Neue User:

  • uniquename
  • xapizm
  • maklko

» Alle User anzeigen

User nach Punkten sortiert:
wla9016
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3917
ronald3832
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 4 User und 8 Gäste online.

Benutzer online

  • Ionit
  • helpdesk
  • wla
  • schmittrich

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association