Foto: Ryoji Iwata, via Unsplash
Neben Inhaltstypen und Datenbank-Views sind Referenzen das wohl wichtigste Tool zur Verwaltung von Inhalten (und anderer Daten) in Backdrop CMS. Referenzen verbinden verschiedene Inhalte einer Website und bilden eine solide Grundlage für deren Filterung und Zusammenspiel.
Bei der redaktionellen Handhabung von Referenzen helfen bereits besprochene Module wie References Dialog. Als Alternative wird in diesem Beitrag das Node Reference URL Widget vorgestellt. Das Modul befüllt ein Feld für Inhaltsreferenzen mit einem Wert, der aus der URL stammt.
Aktuelles Thema
Referenzen sind zur Zeit übrigens ein vieldiskutiertes Thema in der Backdrop-Community. Dabei geht es um die Frage, wie genau diese wichtige Funktionalität in den Kern von Backdrop integriert werden soll. Bis es soweit ist, empfiehlt sich die Verwendung eines Zusatzmoduls, und zwar Entity Reference oder References.
Meiner Erfahrung nach funktionieren beide Referenzierungsmodule sehr gut, im Detail gibt es jedoch Unterschiede. So wird für das heute besprochene Node Reference URL Widget das Modul References benötigt.
Anwendungsfälle
Redaktionelle Inhalte: Wie References Dialog hilft auch das Node Reference URL Widget beim redaktionellen Erstellen verbundener Inhalte. Beispiel: eine Online-Zeitschrift, deren einzelne Ausgaben jeweils mehrere Artikel referenzieren sollen. Anstatt zunächst alle Elemente zu erstellen und sie dann zu verbinden, geschieht beides in einem Arbeitsfluss. Ganz ähnliche Konstellationen sind etwa ›Autoren und ihre Bücher‹ oder ›Musikerinnen und ihre Alben‹.
Community-Inhalte: Anders als References Dialog eignet sich das Node Reference URL Widget auch für einfache Situationen, in denen es vor allem um eine klare Benutzerführung geht. Beispiel: eine Online-Community besteht aus verschiedenen Gruppen und bietet seinen Mitgliedern die Möglichkeit, Beiträge zu erstellen. Statt jedesmal zu fragen, in welcher Gruppe ein Beitrag gepostet werden soll, soll er automatisch der Gruppe erscheinen, in der die postende Person sich gerade befindet. Ein vergleichbares Szenario wäre ein Online-Forum mit unterschiedlichen Themenbereichen.
Wie funktioniert es?
Node Reference URL Widget stellt das Steuerelement »Reference from URL« für Felder des Typs Inhaltsreferenz zur Verfügung. Ein ›übergeordneter‹ Inhalt, der das Ziel einer Referenz sein soll (z.B. eine Online-Gruppe), verwendet dann eine Link-URL, die dessen Inhalts-ID enthält, z.B. node/add/post/231
. Durch Klicken auf den spezifischen Link wird das Formular für einen neuen Beitrag aufgerufen, und das Referenz-Feld wird automatisch mit dem übergeordneten Inhalt ausgefüllt.
Konkretes Beispiel
Zur Zeit arbeite ich an einer Website, auf der Kinder- und Jugendbücher vorgestellt werden sollen. Neben Einzelbesprechungen gibt es auch sogenannte Sammlungen, die mehrere Bücher behandeln. Dabei besteht eine Sammlung aus einzelnen Beiträgen, die jeweils nur ein Buch behandeln. Damit das Erstellen einer Sammlung nicht zu kompliziert wird, wird das Node References URL Widget eingesetzt.
In der folgenden Abbildung enthält die Sammlung »Auf dem Heimweg« einen Link zum Hinzufügen von Beiträgen. Der spezifische Link sorgt dafür, dass der Beitrag genau mit dieser Sammlung verbunden wird.
Als Ergebnis ist das Feld der übergeordneten Sammlung im Beitragsformular bereits ausgefüllt:
Fallback-Verhalten
Im oben abgebildeten Formular lässt sich der Wert »Auf dem Heimweg« offenbar nicht ändern. Solch ein striktes Verhalten ist nicht immer erwünscht, und deshalb stellt das Modul ein ›Fallback behavior‹ bereit. Dessen Eingabemodus – z.B. ein Auswahlfeld – kommt immer dann zum Zuge, wenn ein Beitrag ohne die spezifische Referenz-URL erstellt wird, also z.B. nicht node/add/post/231
, sondern nur node/add/post
.
In den Einstellungen des Referenz-Feldes lässt sich außerdem festlegen, dass beim Bearbeiten eines bereits bestehenden Beitrags grundsätzlich das Fallback-Verhalten verwendet wird. Auf diese Weise lässt sich der übergeordnete Beitrag bei Bedarf jederzeit ändern. In den folgenden Abbildungen sind Default- und Fallback-Modus im Vergleich zu sehen.
Konfiguration
Zur Einrichtung einer solchen Struktur genügen folgende Schritte, hier dargestellt am Beispiel eines Online-Forums:
- Installiere die Module References und Node Reference URL Widget.
- Aktiviere References, Node Reference und Node Reference URL Widget.
- Erstelle den Inhaltstyp »Forum«, und füge damit verschiedene Foren hinzu, z.B. Basketball, Radfahren, Wassersport usw.
- Erstelle den Inhaltstyp »Forumsbeitrag«, und ergänze ein Node-Reference-Feld mit dem Steuerelement »Reference from URL«.
- Wähle in der Feldkonfiguration das ›Fallback behavior‹ aus, und bestimme Art und Beschaffenheit der Links zum Hinzufügen neuer Beiträge.
Das war's schon!
Fazit
Referenzen sind ein tolles Mittel, um Inhalte und andere Daten in Backdrop CMS zu verbinden. Dabei können recht komplexe Strukturen entstehen, doch zum Glück werden Hauptmodule wie Entity Reference und References von Zusatzmodulen unterstützt, die die Handhabung erleichtern und die Benutzerführung verbessern. Für User-Reference-Felder steht z.B. das Modul User Reference URL Widget bereit.
Wer Entity Reference verwendet, muss zur Zeit etwas anders vorgehen als oben skizziert. Eine zu Node Reference URL Widget vergleichbare Funktionalität wird von Entityreference Prepopulate bereitgestellt. Allerdings ist die Drupal-Version des Moduls noch nicht für Backdrop portiert worden. Bis das passiert ist, könnte das allgemeine Prepopulate-Modul für Backdrop eine Alternative bieten.