Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Panels: User miteinander vergleichen, um PM-Link in eigenem Profil zu vermeiden

Eingetragen von E-Fee (481)
am 04.05.2010 - 10:49 Uhr in
  • Module
  • Drupal 6.x

Hallo zusammen,

ich hab mal wieder etwas Kniffligeres:

Ich benutze Content Profile und das Advanced Profile Kit mit Panels. Das funktioniert auch recht schön, ich habe Felder aus verschiedenen Nodes nach meinem Gutdünken in die verschiedenen Panes geschoben.
Nun soll in einer Pane auch ein Link angezeigt werden, um dem User, auf dessen Profil man ist, eine PM zu schicken. Funktioniert auch, nur: Der Link wird auch beim eigenen Profil angezeigt, das ist natürlich unschön.

Jetzt habe ich ein wenig PHP eingefügt, komme aber nicht weiter. Normal würde ich $user->uid und $account->uid miteinander vergleichen, wie an anderer Stelle auch. Die sind hier aber nicht sichtbar. Stattdessen hat man die Context Keywords wie etwa %user:uid - und hier liegt der Knackpunkt: %user:uid bezieht sich nicht wie $user->uid auf den User, der die Seite aufruft, sondern auf den betrachteten User, also quasi $account->uid. Für den aufrufenden User gibt es kein Context Keyword.

Wie kann ich an der Stelle - wie auch immer - an die uid des aufrufenden Users gelangen, um die in eine Variable für einen ganz simplen Vergleich zu schubsen???
Alternativ: Wie kann ich den PM-Link an dieser Stelle möglicherweise anders anzeigen, so dass er nicht angeziegt wird, wenn ein User sein eigenes Profil aufruft?

LG
Sonja

‹ Notifications - Ich bekomme nirgendwo etwas zu sehen An Artikel angehängte Bilder (CCK imagefield) in Node automatisiert ausgeben nach X-tem Absatz - NEUE IDEE ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

So, ein Teil des Problem ist

Eingetragen von E-Fee (481)
am 06.05.2010 - 11:36 Uhr

So, ein Teil des Problem ist gelöst, ein Teil des Problems bleibt, und hier bin ich echt ratlos, das ist wohl ein Fall für PHP-Spezialisten.

Mein code in Panels sieht gerade so aus:

<?php
global $user;
$id1="%user:uid";
echo
$id1." ist ".gettype($id1);
$id1=trim($id1);
$id1a = (int) $id1;
echo
$id1a." ist ".gettype($id1a);
$id2=$user->uid;
echo
$id2." ist ".gettype($id2);
$id2=trim($id2);
$id2a = (int) $id2;
echo
$id2a." ist ".gettype($id2a);
echo
$id1a . " ist gleich ".$id2a;
if (
$id1a != $id2a) {
echo
"<a href='/messages/new/%user:uid?destination=user/%user:uid'>Jetzt %user:name eine Nachricht schicken!</a>";
}
?>

Ich habe also rausgefunden, dass ich an den handelnden Benuter über global $user komme, und bekomme auch die richtigen Werte. Das Einzige, woran es hakt: Der Vergleich.
Ich habe da ja jede Menge echo-Befehle drin, um die Werte und Variablentypen zu testen. Beide Variablen kommen zunächst als String-Datentyp rein, eventuell vorhandene Leerzeichen schneide ich ab. Die Strings sind dann trotzdem ungleich, auch wenn ich beide Male z.B. "14" da stehen habe.
Wenn ich eine Typumwandlung zum Integer mache, dann wird bei der $id1 eine 0 daraus, bei der $id2 bleibt mir die 14 erhalten.
Ausgabe in etwa so:

Zitat:

14 ist string
0 ist integer
14 ist string
14 ist integer
0 ist gleich 14

Sehr mysteriös, kennt sich da einer aus oder muss ich mir ein PHP-Forum suchen? Ich kann mir das jedenfalls nicht mehr erklären.

LG
Sonja

Drupal Freelancer im Rheinland gesucht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, einen Schritt weiter

Eingetragen von E-Fee (481)
am 06.05.2010 - 11:53 Uhr

Okay, einen Schritt weiter bin ich grad noch gekommen: Wenn ich mit dsm($id) arbeite, bekomme ich als Ausgabe %user:uid und nicht den Zahlenwert, den ich aber bei echo $id1 bekomme. Ich denke, da liegt der Hund irgendwo begraben. Der String %user:uid kann logischerweise nicht in einen Integer konvertiert werden. Aber wie komme ich jetzt an den konkreten Zahlenwert (ob als String oder Integer ist sekundär), den ich doch in echo $id1 so schön ausgeben kann?
Mit global $account komme ich hier leider nicht an die Daten des angezeigten Benutzers.

Drupal Freelancer im Rheinland gesucht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du den Code so aufbaust,

Eingetragen von wla (9333)
am 06.05.2010 - 14:50 Uhr

Wenn Du den Code so aufbaust, solltest Du den Zahlenwert in $uid bekommen

  global $user;
  $uid = $user->uid;

User ist ein Object und muß auch entsprechend angespochen werden. Die Variante %user:uid kommt aus dem Token Modul und kann nicht im PHP-Code verwendet werden.

Beste Grüße
Werner

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Werner, auch wenn die

Eingetragen von E-Fee (481)
am 06.05.2010 - 15:21 Uhr

Danke Werner, auch wenn die Antwort die Problemstellung nicht ganz erfasst hat (die $user->uid hatte ich ja schließlich schon). Ich hab aber mittlerweile die Lösung und werde sie nachher ausführlich posten, ist leider gerade zeitlich etwas zu eng dazu.

Drupal Freelancer im Rheinland gesucht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Matomo(?) in Seite, aber Deinstalliert!
  • Upgrade Drupal 7 auf Drupal 9 / Inhalt erstellen zeigt nur Fehler an
  • Olivero veraendern
  • Fehlermeldung nach Update auf Drupal 10
  • Wie Button erstellen?
  • footnotes bei D10 und CKE5
  • ckeditor Bilder skalieren
  • Bild in welcher Form die Beschriftung!
  • Drupal 10 und Adaptive Theme 2.0
  • Drupal Commerce: Deprecated Module deinstallieren: CKEditor, RDF
  • [gelötst] Migration einer Seite von D8.9 auf 9 resp 10
  • Theme Olivero - Rand entfernen?
Weiter

Neue Kommentare

  • @onkel Bob,Erst mal
    vor 5 Tagen 7 Stunden
  • Prinzipiell geht das schon.
    vor 5 Tagen 7 Stunden
  • Rubi_2021 schriebWie genau
    vor 1 Woche 3 Tagen
  • Ok, war ein Versuch. ;-) Kann
    vor 1 Woche 4 Tagen
  • Danke
    vor 1 Woche 4 Tagen
  • Redest Du von dem
    vor 1 Woche 4 Tagen
  • Mit sticht das hier ins
    vor 1 Woche 4 Tagen
  • Mit welcher Version Drupal
    vor 1 Woche 4 Tagen
  • Bitte um Hilfe
    vor 1 Woche 4 Tagen
  • Fehler trotz Neuinstallation
    vor 1 Woche 4 Tagen

Statistik

Beiträge im Forum: 248796
Registrierte User: 19831

Neue User:

  • J. Berten
  • vohome
  • DerRalph

» Alle User anzeigen

User nach Punkten sortiert:
wla9333
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 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