Media Modul und Image Link formatter
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 23.12.2014 - 14:56 Uhr in
Hallo Drupal Community,
ich habe über Stackexchange, Google und eure Seite nach einer Lösung gesucht, aber nichts brachte mich so wirklich weiter.
Folgende Problematik:
Ich habe eine View und für diese View ein Attachment. Die View filtert nach Nodes mit dem Inhaltstypen "Produkt". Die Produkte sind jeweils einer Produktserie und einem Hersteller zugeordnet. Die Produkte der gleichen Serie werden in der View nicht einzeln dargestellt sondern gruppiert nach Serie. Das funktioniert soweit super und war auch kein Problem. Vor dem eigentlichen Inhalt der View wird ein Attachement angehängt. Das Attachement soll nun alle Serien, nach Hersteller gruppiert, auflisten. Dies ist bis jetzt auch noch kein Problem. Nun wird es aber für mich knifflig. Der Hersteller soll nicht einfach nur als Text angezeigt werden, sondern als Bild, welches das Logo des jeweiligen Herstellers anzeigt. Das Bild soll zudem noch gleichzeitig ein Link sein. Dieser Link führt einen Kontextfilter auf die View und auf das Attachement aus. Klickt man auf ein Hersteller-Logo so sollen nur noch alle Serien angezeigt werden, die von diesem Hersteller geführt werden.
Aussehen tut das ganze folgendermaßen:
Ich habe schon einiges versucht aber bisher blieb ich leider ziemlich erfolglos. Zuerst dachte ich, es wäre sinnvoll ein "field collection" - field zu erstellen, welches ein Bild- und ein Link-Field beinhaltet um mit "Image Link formatter" die Beziehung von Bild zu Link herzustellen. Allerdings müsste ich so für jedes Produkt das Logo hochladen. Hinzu kommt, dass sich die Serien so nur schwer nach Hersteller gruppieren lassen, da die "field collection" Bilder zwar vom Inhalt gleich sind, allerdings natürlich immer einen neuen Namen erhalten.
Aus diesem Grund habe ich mich an das Media Modul gewagt. Hier kann man zumindest von mehreren Nodes auf das gleiche Bild referenzieren, allerdings schaffe ich es nicht, dass das Media Feld, welches das Bild darstellt, das Link Feld für den Kontext Filter verwendet. Bisher habe ich nur die Möglichkeit gefunden zum Inhalt zu verlinken oder den Link im allgemeinen zu überschreiben.
Ich hoffe, dass ich es einigermaßen verständlich beschreiben konnte und sich dieser Problematik annehmen kann um mir einen Schubs in die richtige Richtung zu geben.
- Anmelden oder Registrieren um Kommentare zu schreiben
ein paar Anregungen...
am 29.12.2014 - 22:59 Uhr
Ohne das ganze komplett auszuführen, ein paar Tipps:
Der Hersteller soll nicht einfach nur als Text angezeigt werden, sondern als Bild, welches das Logo des jeweiligen Herstellers anzeigt. Das Bild soll zudem noch gleichzeitig ein Link sein.
Ich vermute, du hast den Hersteller als Text- oder Listenfeld in deinen nodetyp gebaut. Bei deiner Anforderung würde dich die Modellierung als Taxonomie Vokabular "Hersteller" sehr unterstützen, weil dieser Taxonomie terms fieldable entiies sind (Alternativ dazu ein eigener nodetyp, der via entity ref. zugeordnet wird). Kurz gesagt: Wahrscheinlich optimal wäre Taxonomie "Hersteller" mit Bildfeld "logo". Dieses Bildfeld kannst du in der view aufrufen und natürlich beliebig verlinken (z.B. auf eine andere View mit Argumentübergabe durch Kontextfilter). Normalerweise musst du dazu im view unter "Erweitert" die Relation zur Taxonomie herstellen, dann kannst du deren Felder (das Bildfeld) aufrufen.
Dieser Link führt einen Kontextfilter auf die View und auf das Attachement aus. Klickt man auf ein Hersteller-Logo so sollen nur noch alle Serien angezeigt werden, die von diesem Hersteller geführt werden.
Falls noch nicht getan, lass dich mal von http://nodeone.se/en/taming-the-beast-learn-views-with-nodeone, besonders #19-24 inspirieren. Du überschreibst die Verlinkung des Feldes mit Link auf den view mit Node id oder term id auf den Hersteller als token in der url.
good luck
Marco
Vielen Dank...
am 30.12.2014 - 00:21 Uhr
für deine Lösungsvorschläge :). Morgen werden sie erst mal ausgetestet. Ich gebe bescheid, ob das ganze funktioniert hat.
Liebe Grüße