[gelöst] Best practice Inhaltstyp mit Referenz auf anderen Inhaltstyp
am 09.12.2014 - 09:48 Uhr in
Hallo zusammen,
wie der Titel schon erahnen lässt, würde ich gerne beim Erstellen eines Inhaltstyps auf einen anderen Inhaltstypen
referenzieren.
Besser, ich schildere mein Vorhaben an einem Beispiel:
Der eine Inhaltstyp lautet Veranstaltung und der andere Referent.
Während des Anlegens einer Veranstaltung möchte ich dieser gerne einen bereits existierenden Referenten zuweisen.
Dieser soll dann anschließend in der jeweiligen Veranstaltung (node) in der rechten Sidebar angezeigt werden.
Zum Testen habe ich schon mal das Modul Entity reference installiert und etwas experimentiert.
Was mir daran nicht so gut gefällt, ist, dass ich kaum Einfluss auf die Ausgabe des HTML-Contents habe.
Deshalb würde mich interessieren, wie ihr sowas realisieren würdet.
Eventuell gibt es ja einen besseren bzw. leichteren Weg.
Viele Grüße
Axel
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Axel, das Entity
am 09.12.2014 - 11:12 Uhr
Hallo Axel,
das Entity Reference Modul hat nichts mit der Ausgabe zu tun, sondern es
erstellt nur eine Verknüpfung zwischen zwei Entitäten.
Und das funktioniert ja bei Dir, oder (die auswahl einens anderen nodes in einem node)?
Wenn Du Einfluss auf die Ausgabe des HTML Contents
haben möchtest, fällt das in die Theme Schicht.
Sprich das wird im Theme erledigt und hat eigentlich nichts mit dem Content zu tun.
MfG
Robert
Also: Entity reference ist
am 09.12.2014 - 14:19 Uhr
Also: Entity reference ist das Mittel der Wahl.
Du hast 2 Entities, einmal den Referenten, zum anderen die Veranstaltung.
Du trägst Veranstaltungen ein, und entweder drekt in der Veranstaltung mittles inline entity reference modul den neuen Referenten, oder Du legst diese vorher an und referenzierts per autocomplete oder select oder so darauf.
Dann machst Du 1 view, nämlich einen Block mit den Feldern des Referenten. Darein legst du eine relationship zu dem Event. Zudem einen contextual filter der besagt, filtere aus der URL die Beitrags ID, die auf die Relation passt. Lass es leer, wenn es keine passenden ID gibt.
Wie das genau geht bin ich zu faul zum schreiben. Aber die Zauberworte stehen jetzt alle hier.
Happy googling.
maen
Das Ganze aufzuschreiben
am 11.12.2014 - 05:32 Uhr
Das Ganze aufzuschreiben dauert mir auch zu lang. Hier ein ganz gutes Howto.
HTH
Vielen Dank
am 12.12.2014 - 14:11 Uhr
Vielen Dank für die hilfreichen Tipps.
Mit dem HowTo habe ich es letztlich hinbekommen.
Allerdings habe ich ein neues Problem und bin mir nicht sicher, ob ich dazu nicht lieber ein neues Theme erstellen soll.
Außer des Referenten-Blocks möchte ich gerne in der Sidebar, also direkt darunter, verschiedene Felder ausgeben lassen,
die aber zum Typ Veranstaltung dazugehören.
Da ich den Referenten Block jetzt aber schon in der Sidebar-Region untergebracht habe, kann ich die Veranstaltungs-Felder
nicht mehr über das Node-Template (Veranstaltung) ausgeben, weil die Sidebar eigentlich außerhalb liegt.
Deshalb habe ich versucht, für jedes Feld, das ich rechts anzeigen lassen möchte, einen eigenen Views Block zu erstellen
und diesen dann über Struktur >> Blöcke in die Sidebar-Region anzeigen zu lassen.
Das klappt fast!
Ich habe einen Contextual filter Inhalt: Nid hinzugefügt, ihn auf den Inhaltstyp Veranstaltung beschränkt
und anschließend wird dieser auch an entsprechender Stelle ausgegeben.
ABER: Leider wird sowohl der Block-Titel als auch der leere Block-Wrapper gerendert. Und ich weiß nicht,
wie ich das verhindern kann - habe schon verschiedene Einstellungen ausprobiert.
Hat jemand eine Idee, wie ich hinbekommen kann?
Also ich möchte quasi bestimmte Felder des Typs Veranstaltung nicht in der Inhalts-Region ausgeben lassen, sondern in der Sidebar.
Wäre cool, wenn das irgendwie geht!
Cheers
Blocktitel aus setzen, in
am 12.12.2014 - 14:47 Uhr
Blocktitel auf
<none>
setzen, in views in die Felder reinschreiben, wenn Resultat 0 dann nicht anzeigen. Ist eine Option im jeweiligen Feld.Hi, er könnte auch unter
am 12.12.2014 - 14:37 Uhr
Hi,
er könnte auch unter Blöcke den entsprechenden Block editieren
und dort einfach den Block Titel auf
<none>
setzen.LG