[gelöst] Taxonomy Terms nur des Beitrages als Block ausgeben
am 04.09.2015 - 07:51 Uhr in
Hallo,
folgendes Problem:
Auf meiner Site können den einzelnen Beiträgen über das entsprechende Feld Taxonomy Terms zugeordnet werden, bei manchen Beiträgen bleibt das Feld aber auch mal leer. Nur die dem Beitrag zugeordneten Taxonomy Terms sollen dann im Beitrag auch angezeigt werden, allerdings nicht direkt im Content, sondern als Block im Footer-Bereich.
Mit welchem Ansatz bekomme ich das hin? Ich habe es bereits mit Views und einem Kontext-Filter versucht. Das würde an sich auch klappen, allerdings wird dann der entsprechende View mit Überschrift auch dann angezeigt, wenn das Feld Taxonomy des Beitrages leer ist.
Ich vermute ja, dass die Lösung ganz simpel ist, aber ich stehe gerade etwas auf dem Schlauch, und per Suche in Google und hier habe ich leider ebenfalls noch nicht den passenden Ansatz gefunden. Vielleicht kann mir hier ja jemand 'nen kleinen Fingerzeig geben? Wäre toll!
Vielen Dank im Voraus!
Alex
- Anmelden oder Registrieren um Kommentare zu schreiben
Das mit dem View müsste doch
am 04.09.2015 - 19:02 Uhr
Das mit dem View müsste doch gehen wenn Du noch einen normalen Filter "Taxonomy Term" ergänzt und diesen auf "is not empty" setzt. Dann sollte der View nur angezeigt werden, wenn auch ein oder mehrere Terms vorhanden sind.
Die Lösung
am 04.09.2015 - 21:44 Uhr
Wie ich es schon geahnt hatte, es ist wirklich simpel - wenn man weiß, wie es geht. Für die, die so wie ich erst mal auf dem Schlauch stehen und insbesondere beim Views-Modul nicht den vollen Durchblick haben, hier die Lösung im Detail:
1. Im Content-Type (z. B. "Einfache Seite" ist ein Feld "Tags" angelegt, in dem beispielsweise mit Auto-Vervollständigung für den einzelnen Beitrag passende Taxonomie-Begriffe angegeben werden können, das Feld kann aber auch leer bleiben.
2. Einen neuen View anlegen, und zwar als Block.
3. In den Block Details unter Format -> Anzeigen: "Felder" auswählen, unter Einstellungen zusätzlich "Leere Felder ausblenden" aktivieren.
4. Unter Felder das Feld "Inhalt: Tags" hinzufügen, dann unter "Verhalten, wenn keine Ergebnisse vorliegen" "Verstecken, falls leer" und "Nicht überschreiben, wenn leer" aktivieren und anschließend mit "Anwenden" das Feld speichern. Das standardmäßige vorhandene Titel-Feld entfernen, da es nicht angezeigt werden soll.
5. Rechts den Bereich "Erweitert" öffnen und dann den Kontext-Filter "Inhalt: Beitrags-ID" hinzufügen. Im Folgenden den Filter konfigurieren: unter "Falls der Filterwert nicht verfügbar ist" den Punkt "Vorgabewert bereitstellen" und als Typ "Beitrags-ID aus der URL" auswählen, dann "Anwenden".
Mit diesen Einstellungen und dem abschließenden Speichern des Views steht dieser als Block bereit und kann einer beliebigen Region hinzugefügt werden. Angezeigt werden nur die Taxonomie-Begriffe des gerade angezeigten Beitrags. Allerdings gibt es noch einen Schönheitsfehler: sind zu dem Beitrag keine Taxonomie-Begriffe gespeichert, wird der Block im Quelltext trotzdem ausgegeben, so dass z. B. die Blocküberschrift angezeigt wird, obwohl der Block keinen Inhalt hat.
Dieses Verhalten lässt sich mit folgender zusätzlicher Einstellung vermeiden:
6. Rechts im Bereich "Erweitert" findet sich unterhalb des Kontextfilters der Punkt "Beziehungen". Dort "Inhalt: Tags" hinzufügen und anschließend unter Konfigurieren den Punkt "Beziehung ist erforderlich" auswählen. Dann wieder "Anwenden", und zum Schluss den View speichern.
FERTIG! Jetzt werden in allen Beiträgen, in denen das Feld "Tags" einen Inhalt hat, die entsprechenden Tags in einem Block angezeigt. Ist dagegen in einem Beitrag das Feld "Tags" leer, wird der gesamte Block nicht ausgegeben.
Das Ganze klappt sinngemäß auch mit anderen Feldern, z. B. mit einem Image-Feld, das nicht immer einen Inhalt hat.
Es ist nicht nötig im Bereich
am 09.09.2015 - 13:43 Uhr
Es ist nicht nötig im Bereich "Erweitert" eine Beziehung hinzuzufügen. Damit wird die SQL-Abfrage die hinter dem View steht komplexer und ggf. auch langsamer.
Es reicht aus unter Filterkriterien "Inhalt: Hat einen Taxonomiebegriff" hinzuzufügen und dort "Ist nicht leer (NOT NULL)" auszuwählen.
Stefan.Korn schrieb Es ist
am 09.09.2015 - 14:53 Uhr
Es ist nicht nötig im Bereich "Erweitert" eine Beziehung hinzuzufügen. Damit wird die SQL-Abfrage die hinter dem View steht komplexer und ggf. auch langsamer.
Es reicht aus unter Filterkriterien "Inhalt: Hat einen Taxonomiebegriff" hinzuzufügen und dort "Ist nicht leer (NOT NULL)" auszuwählen.
Das scheint zu stimmen, soweit unterbunden werden soll, dass ein leerer Block angezeigt wird. Allerdings erscheinen bei mir, wenn ich das Filterkriterium statt der Beziehung einstelle, nun alle Elemente mehrfach, was aber gerade nicht sein soll. Duplikate reduzieren ändert daran leider nichts.
Stimmt, dann muss man noch im
am 09.09.2015 - 15:25 Uhr
Stimmt, dann muss man noch im View unter "Andere -> Datenbankabfrageeinstellungen" -> "Eindeutig" (Distinct) auswählen. Dann sollten die Duplikate weg sein, "Duplikate reduzieren" beim Filter braucht man dann nicht.