[gelöst] Die View eines Inhaltstypen mit Benutzerdaten anreichern
am 07.02.2018 - 12:21 Uhr in
Hi,
ich habe ein Problem mit den Views bzw. habe vielleicht auch die falsche Entscheidung zur Realisierung der Teaser getroffen. ;o)
Ich habe in Drupal 8 einen Inhaltstypen für einen Reise-Teaser erstellt. Eine Anzahl von X Einträgen diesen Inhaltstyps wird per Views dann als Gruppe angezeigt und mit CSS von mir so platziert und gestaltet, dass alles passt. Soweit alles OK.
Nun mein Problem:
Bei der Registrierung eines neuen Benutzers kann dieser einen Rabattcode hinterlegen.
Dieser Rabattcode muss nun auch bei den Teasern Berücksichtigung finden und als Parameter an einen Link angehangen werden.
Der Link selbst wird im Inhaltstypen angelegt. Meine Hoffnung war, dass ich über die View an den Rabattcode des jeweils angemeldeten Benutzers rankomme und mit der Funktion "Ergebnisse überschrieben" dann den Parameter an den Link ranhänge. Ich kann bei der View aber keine Benutzerdaten des angemeldeten Benutzers mit hinzufügen, oder?
Gibt es einen Weg wie ich an den Rabattcode irgendwie rankommen könnte?
Für die Suchfunktion der Seite habe ich ein eigenes Modul gebaut.
Über die Anweisung:
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$rabattcode = $user->field_rabattcode->value;
komme ich im Modul an das Feld ran.
Mittelfristig werde ich die Teaser wohl auch als eigenes Modul mit einer Konfigurationsseite umsetzen. Da ich dies allerdings noch nicht gemacht habe, läuft mir gerade die Zeit weg, so dass ich erstmal eine "Notlösung" suche.
Habe ich irgendeine Chance, dies auf anderem Weg zu lösen?
Vielen Dank im Voraus für eure Hilfe.
Schönen Gruß
Ineluki
- Anmelden oder Registrieren um Kommentare zu schreiben
In Drupal 8 ist das
am 07.02.2018 - 13:03 Uhr
In Drupal 8 ist das tatsächlich etwas schwieriger. Vielleicht wäre eine Lösung, eine zweite/separate View, die die Benutzerdaten enthält (mit einem entsprechenden Kontextfilter), in der Teaser-View zu verwenden. Dabei würde dieses Modul helfen: https://www.drupal.org/project/views_field_view
@bv: Danke für die Antwort
am 07.02.2018 - 14:44 Uhr
Danke für den Hinweis.
Werde ich mal auf meinem Testsystem ausprobieren, auch wenn ich nicht so der Freund davon bin, BETA-Versionen in einem Produktivsystem einzubinden und ich den Ansatz auch nicht so toll finde.
Aber als "Notlösung" zur Überbrückung eventuell einsetzbar.
Stimmt, der Ansatz ist nicht
am 07.02.2018 - 14:55 Uhr
Stimmt, der Ansatz ist nicht ganz so elegant. Aber du hast ja selbst das Wort "Notlösung" ins Spiel gebracht! :) Und ich glaube, dass das Modul ganz gut funktioniert, trotz Beta-Status. Es ist im Moment auf mehr als 3.000 Drupal 8 Websites im Einsatz und der Modul-Maintainer ist ein ziemlicher Drupal-Crack :)
eigenes Modul erstellt
am 15.02.2018 - 10:12 Uhr
Moin,
Danke nochmal an bv für den Modul-Tipp.
Habe ich auf dem Testsystem ausprobiert. Mir war es allerdings nicht möglich, mit Hilfe des Moduls das gewünschte Ergebnis zu erzielen.
Ich habe mir nun geholfen, indem ich ein eigenes Modul geschrieben habe, in dem ich als "Notlösung" die gewünschten Teaser fest einprogrammiert habe.
Da man mir gesagt hat, dass die Teaser erstmal für ein paar Wochen so bestehen bleiben und nicht ständig geändert werden müssen, ist es in Ordnung, dass die Teaser sich nicht über Drupal verwalten lassen. So kann ich mit der o.g. PHP-Anweisung das gewünschte Feld abfragen und an den Link anhängen.
Im nächsten Schritt baue ich eine eigene Konfigurationsseite, über die man die Teaser mit Drupal verwalten kann.
Schöne Grüße