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

Daten über aktuellen User bei Profilaufruf?

Eingetragen von Vasco (89)
am 17.04.2007 - 20:36 Uhr in
  • Allgemeines zu Drupal

Hallo Zusammen,

ich bin gerade dabei mein Userprofil etwas zu tunen und bin nun an dem Punkt angekommen, wo ich prüfen muss, ob der User, der sich das anschaut der Eigentümer des Profils ist oder ein anderer.

Grundsätzlich ist ja $user->uid die richtige Adresse (so wie ich das mitbekommen habe) aber das Array wird beim Profil mit den Daten geflutet vom aktuellen Profil.
Aber wie komme ich denn nun an die uid vom Betrachter? Selbst die Session scheint keine Infos über den aktuellen Nutzer zu speichern und auch sonst finde ich keine globale Variable, die erfolgsversprechend aussieht.

Zur Info: ich habe meine Profilseite mit einem Template versehen, wie in http://drupal.org/node/35728 und darin möchte ich die Unterscheidung treffen.

Danke

‹ Wie mache ich $node verfügbar in Blöcken? Verzeichnis-Struktur nachbilden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du willst also den UID von

Eingetragen von yippi (24)
am 17.04.2007 - 22:35 Uhr

Du willst also den UID von den eingeloggten User?
mit $GLOBALS['user']->uid kannst du das erreichen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

user-profile.tpl.php

Eingetragen von md (3717)
am 17.04.2007 - 22:57 Uhr

Wahrscheinlich hast du in deiner template.php das user-profile folgendermaßen überschrieben:

<?php
function phptemplate_user_profile($user, $fields = array()) {
    return
_phptemplate_callback('user-profile', array('user' => $user, 'fields' => $fields));

}
?>

Wenn du jetzt, wie es normal wäre, in der 'user-profile.tpl.php', auf den user zugreifen möchtest, der sich das Profil anschaut hast du mit:

<?php
global $user;
$user->uid
?>

ein Problem.

Wenn du aber in deiner template.php z.B. folgendes schreibst:

<?php
function phptemplate_user_profile($user, $fields = array()) {

    return
_phptemplate_callback('user-profile', array('besucher' => $user, 'fields' => $fields));

}
?>

kannst du auf die Profilfelder mit $besucher->FELDNAME zugreifen und auf den user der sich das Profil anschaut mit: $user->uid.

Übrigens: der erste Parameter 'user-profile' ist auch beliebig. Man kann dort auch 'benutzerprofil' schreiben. Dann muss man allerdings eine 'benutzerprofil.tpl.php' benutzen.

Ich hoffe, das klärt mal einige Fragen zu Themeable Functions.

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja, da habe ich noch eine

Eingetragen von yippi (24)
am 17.04.2007 - 23:22 Uhr

ja, da habe ich noch eine Frage. Was ist denn der Unterschied, wenn ich statt _profile benutzerprolie schreibe und kann ich denn mit **.tpl.php beliebige Seiten eigentlich aendern? zum Beispiel die Imageseite oder so? oder eine View Seite?
thx
yippi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Seiten Templates

Eingetragen von md (3717)
am 18.04.2007 - 00:01 Uhr

Ein sehr 'verstecktes' Feature der Drupal Template Engine ist folgendes:
Du kannst für jede Seite ein eigenes Template anlegen.
Beispiel:
page-front.tpl.php für die Homepage
page-blog.tpl.php für Blogseiten
usw.

Für Views gibts den Template Generator.

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

template Generator? kannst

Eingetragen von yippi (24)
am 18.04.2007 - 00:23 Uhr

template Generator?
kannst du das etwas erläutern bitte? Ich bin grad ganz müde, und ich will nicht mehr suchen. Oder ich kann auch morgen wieder suchen..
danke schon mal für den Tipp!
gute Nacht

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views Theme Wizard

Eingetragen von md (3717)
am 18.04.2007 - 09:40 Uhr

Unter 'admin/build/views' findest du oben den Reiter 'Theme Wizard'.
Damit kannst du sehr einfach ein Template für eine View, egal ob Block- oder Pageview, erzeugen. Das ist sehr hilfreich, da alleine die richtige Namensgebung für ein View-Template eine Herausforderung ist.

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi MD, das klingt

Eingetragen von Vasco (89)
am 18.04.2007 - 18:37 Uhr

Hi MD,

das klingt einleuchtend, klappt aber nicht ;)
Der Grund: das neue Array ist leider nicht global verfügbar (entgegen user) und ist somit im theme nicht verfügbar.

Leider versagen meine Bemühungen das global verfügbar zu machen...

Also um weitere Infos wäre ich dankbar!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was genau

Eingetragen von md (3717)
am 18.04.2007 - 18:42 Uhr

Was genau ist denn bei dir wo nicht verfügbar?

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe zur besseren

Eingetragen von Vasco (89)
am 18.04.2007 - 18:56 Uhr

Ich habe zur besseren Übersicht Funktionen erstellt, die komplexe Ausgaben händeln. Und in diesen Funktionen ist das neue Array nicht verfügbar.

EDIT: Problem gelöst, mit dem Übergeben des Userobjekts an die Funktion geht es (zwar erst beim 2. Anlauf, aber das kann auch ein Cache-Problem gewesen sein).

  • Anmelden oder Registrieren um Kommentare zu schreiben

User Object

Eingetragen von md (3717)
am 18.04.2007 - 21:14 Uhr

Nur nochmal zur Klarstellung für alle anderen: es ist hier nicht vom globalen User, sondern von dem User dessen Profil gerade aufgerufen wird, die Rede.

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also so ganz klappt das

Eingetragen von Vasco (89)
am 21.04.2007 - 12:27 Uhr

Also so ganz klappt das nocht nicht.

Ich brauche ja einen Vergleich in etwa wie:

If (aktueller_User == Profilinhaber)
{
#mach irgendwas
}
else
{
#mach halt was anderes
}

Das ist bisher mit deinen Vorschlägen nicht umsetzbar. Wenn ich die template.php wie empfolen umschreibe existiert das Array zu $user nicht in meinem Profiltemplate. In meinem neuen Array hingegen finden sich nur Daten zu dem Inhaber des Profils, aber nicht zu dem aktuellen Betrachter.
Somit bin ich noch nicht in der Lage die beiden User-IDs miteinander zu vergleichen (was ich ja eigenlicht möchte).

Danke fuer Hinweise.

Vasco

EDIT:
Man muss $user vorher als global setzen, also einfach ein "global $user;" am Anfang der Datei (in den PHP-Bereich) setzen und es tut dann auch.
*grml* das war definitiv ein Krampf, danke an alle die so viel Geduld mit mir hatten ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Richtig lesen

Eingetragen von md (3717)
am 21.04.2007 - 13:13 Uhr

Hättest du den dritten Post von mir richtig gelesen wäre das klar gewesen. Oder kannst du die Themeable Function so überschreiben:

<?php
function phptemplate_user_profile($user, $fields = array()) {
    return
_phptemplate_callback('user-profile', array('user' => $user, 'fields' => $fields));
}
?>

und dann in deiner Template Datei
global $user nutzen ???

vg
--
md - DrupalCenter

mdwp

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 10 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 13 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

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