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 - 09: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 - 10: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, einen Schritt weiter

Eingetragen von E-Fee (481)
am 06.05.2010 - 10: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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du den Code so aufbaust,

Eingetragen von wla (9463)
am 06.05.2010 - 13: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Werner, auch wenn die

Eingetragen von E-Fee (481)
am 06.05.2010 - 14: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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Naja ich habe nichts an den
    vor 1 Woche 1 Tag
  • Ich sehe ja dein Theme nicht
    vor 1 Woche 3 Tagen
  • Zwischenzeitlich habe ich
    vor 1 Woche 4 Tagen
  • Ok ich habe die anderen
    vor 1 Woche 5 Tagen
  • Toll
    vor 1 Woche 5 Tagen
  • Vielen Dank
    vor 1 Woche 5 Tagen
  • Vielen Dank für diese sehr
    vor 1 Woche 5 Tagen
  • Wieso willst du dass denn
    vor 1 Woche 6 Tagen
  • Oh, der Klassiker unter den
    vor 1 Woche 6 Tagen
  • Naja ich achte immer drauf on
    vor 1 Woche 6 Tagen

Statistik

Beiträge im Forum: 250258
Registrierte User: 20472

Neue User:

  • JeffreyPaf
  • StevenEness
  • ocvk2810

» Alle User anzeigen

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