10. Verknüpfungen

Wir erweitern die Seite „Referenzen“: Sie erhält die zwei Unterseiten „Privater Wohnungsbau“ und „Städtischer Wohnungsbau“. Die Referenz-Projekte selbst pflegen wir in einem neuen Bereich und verknüpfen sie jeweils mit einer der beiden Seiten.

Zuerst wandeln wir den Inhaltsbereich „Seiten“ in einen Baum um:
Wechsle dazu ins Modul „ Struktur“.
Klicke auf den Inhaltsbereich „Seiten“ > Reiter „Eingabefelder“ > „Neu“.
Klicke im Abschnitt „METAFELDER“ auf „Eltern-Datensatz“ und speichere.

Klicke auf den Reiter „Datensätze“. Du landest direkt in der Datensatzliste (Modul „Inhalte“).
Erstelle die beiden oben genannten Seiten und wähle als Eltern-Datensatz jeweils die Seite „Referenzen“.

In der Liste erscheinen die Datensätze eingerückt:
└ Privater Wohnungsbau
└ Städtischer Wohnungsbau

Jetzt richten wir einen neuen Inhaltsbereich für die Referenz-Projekte ein:
Wechsle ins Modul „ Struktur“ > „Neu“. Klicke im Abschnitt „RECORD“ diesmal auf „Alle sonstigen Inhalte“.

  • Name: projekte
  • Label: Projekte
  • Instanz: Camindo Architekten

Nach dem Speichern erscheint der neue Bereich in der Liste.

Diesmal erstellen wir die Eingabefelder selbst, eines nach dem anderen:
Klicke mit der rechten Maustaste auf den Bereich und wähle im Kontextmenü „ Eingabefelder“.
Die Liste ist noch leer. Klicke auf die Schaltfläche „ Neu“ und dann im Abschnitt „TEXT“ auf „Kurzer Text“.

  • Name: title (englisch)
  • Label: Titel
  • Standardfeld: (ist beim ersten Feld vorausgewählt und kann so bleiben)

Nach dem Speichern erscheint das Feld in der Eingabefeldliste des Bereichs.
Füge auf dieselbe Weise die folgenden Felder hinzu:

  • TEXT > „Langer Text“
    • Name: text
    • Label: Text
  • METAFELDER > „Veröffentlichungsdatum“
    • (Name und Label sind schon ausgefüllt.)
  • DATEI > „Datei-Upload“
    • Name: image
    • Label: Bild
  • DATEI > „Dateiversion (Thumbnail)“
    • Name: thumbnail
    • Label: Vorschaubild
    • Hier muss ein Konverter ausgewählt werden: Setze das Häkchen bei „Interne Bildvorschau (GD)“.
  • VERKNÜPFUNG > „Verknüpfung (bidirektional, n:1)“
    • Name: seiten
    • Verknüpfter Inhaltsbereich: Seiten
    • Darstellungstyp: Dropdown (einfache Auswahl)
    • Label: Seite

Die Eingabefeldliste sieht dann so aus:

Jetzt brauchen wir noch Referenzen:
Wechsle in den Reiter „Datensätze“. Die Liste ist noch leer. Erstelle ein paar Datensätze. In der Eingabemaske erscheint das Eingabefeld „Seite“ als Auswahlliste: Wähle bei einigen Projekten „Privater Wohnungsbau“, bei anderen „Städtischer Wohnungsbau“.

Nun widmen wir uns den Templates:
Öffne das Template „page_default“ und ergänze im Code (vor dem schließenden body-Tag) die neue Abfrage:

(CMS:SELECT list_subpages
  filter[parent_id]="$cms[record_id]"
  sort="position ASC"
)

In einem Baum beginnt position auf jeder Ebene mit 0. Das passt für unsere Unterseiten. Die Navigation ermittelt nun aber Datensätze aus zwei Ebenen und braucht deshalb ein Feld, das durchgängig sortiert: lft.
Stelle die Navigation wie folgt um:

(CMS:SELECT navigation
  filter[area]=seiten
  sort="lft asc"
)

Der Code lautet dann:

<html>
<body>
<div>Camindo Architekten</div>
<hr>
(CMS:SELECT navigation
  filter[area]=seiten
  sort="lft asc"
)
<hr>
<h1>(CMS:TEXT title)</h1>
(CMS:MEDIA image
  attr[style]="width:400px;height:auto;float:left;margin-right:20px;"
)
(CMS:TEXT text)
<br style="clear:both">

(CMS:SELECT list_subpages
  filter[parent_id]="$cms[record_id]"
  sort="position ASC"
)
</body>
</html>

Die neue Abfrage sucht nach Datensätzen, deren Eltern-Datensatz der aktuelle Datensatz ist – also nach den Unterseiten der aktuellen Seite.

Klicke nach dem Speichern auf den Namen list_subpages, um ein neues Listen-Template zu erstellen. Sein Inhalt lautet:

<br>
<p>Kategorie:</p>
<ul>
(CMS:RESULT_START)
<li><a href="(CMS:URL)">(CMS:TEXT title)</a></li>
(CMS:RESULT_END)
</ul>

Zuletzt erstellen wir ein neues Template für die Unterseiten. Es soll die verknüpften Referenz-Projekte auflisten:

Name: page_referenzen
Label: Referenzen
Code:

<html>
<body>
<div>Camindo Architekten</div>
<hr>
(CMS:SELECT navigation
  filter[area]=seiten
  sort="lft asc"
)
<hr>
<h1>(CMS:TEXT title)</h1>
<div>(CMS:TEXT text)</div>

(CMS:SELECT list_referenzen
  relation=rel_projekte
  sort="online_at DESC"
)
</body>
</html>

Ermittelt werden die Projekte, die mit der aktuellen Seite verknüpft sind. Das funktioniert über das Feld rel_projekte: Dieses Gegenfeld hat camindo CMS beim Anlegen der Verknüpfung automatisch im Bereich „Seiten“ erzeugt. Sortiert wird nach Veröffentlichungsdatum absteigend (online_at DESC), die Ausgabe übernimmt das Template list_referenzen.

Klicke nach dem Speichern auf den Template-Namen list_referenzen.

Der Code für das neue Listen-Template:

(CMS:RESULT_START)

<hr style="margin:20px 0">
<p>(CMS:TEXT online_at)</p>
<h1>(CMS:TEXT title)</h1>
(CMS:MEDIA image
  attr[style]="width:400px;height:auto;float:left;margin-right:20px;"
)
(CMS:TEXT text)
<br style="clear:both">

(CMS:RESULT_END)

Rufe nach dem Speichern noch einmal das vorherige Template page_referenzen auf, denn es muss noch im Inhaltsbereich „Seiten“ verfügbar gemacht werden:
Wechsle in den Reiter „Zugriff“. Wähle in der Liste „Contentbereich hinzufügen“ den Inhaltsbereich „Seiten“. Es erscheinen drei Checkboxen. Setze ein Häkchen in der Spalte „Auswählbar“ und speichere.

Damit wir je Datensatz ein Template zuweisen können, brauchen wir im Inhaltsbereich „Seiten“ ein neues Eingabefeld:
Modul „ Struktur“ > Inhaltsbereich „Seiten“ > Reiter „Eingabefelder“ > „Neu“.
Klicke im Abschnitt „METAFELDER“ auf „Gestaltungsvorlage“ und speichere.

Den beiden Unterseiten weisen wir das neue Template in einem Schritt zu:
Wechsle ins Modul „Inhalte“ und dort in den Inhaltsbereich „Seiten“.
Klicke oberhalb der Datensatzliste auf die Schaltfläche „ Suche“.
Tippe ins Feld „Titel“ den Text *wohnungsbau ein und sende die Suche ab.

Jetzt werden die beiden Unterseiten von „Referenzen“ aufgelistet. Um beide zu bearbeiten, klicke rechts oberhalb der Liste auf die Schaltfläche mit den drei Punkten () und wähle „Stapelverarbeitung“.
Die Auswahl „Umfang“ steht bereits auf „2 Datensätze aus dem letzten Suchergebnis“, die Auswahl „Funktion“ auf „ Bearbeiten“. Klicke auf „Weiter “.

Es erscheint die Bearbeitungsmaske des Bereichs, mit einer Checkbox vor jedem Label.
Wähle ganz unten bei „Gestaltungsvorlage“ unser neues Template „Referenzen“ aus. Das Häkchen vor dem Label wird automatisch gesetzt. Kehre nach dem Speichern zur Liste zurück. In der letzten Spalte „Gestaltungsvorlage“ erscheint nun die geänderte Auswahl.

Prüfe im Frontend, ob alles wie erwartet funktioniert:

  • Die Seite „Referenzen“ zeigt unter dem Text zwei Links (auf die beiden Unterseiten).
  • Die beiden Unterseiten listen jeweils ihre Projekte auf.

Zum Schluss noch eine Schönheitskorrektur: Die Unterrubriken in der Navigation sollen eingerückt erscheinen. Passe das Template „navigation“ wie folgt an:

<ul>
(CMS:RESULT_START)
<li style="padding-left:(CMS:NUMBER depth mul=20)px;"><a href="(CMS:URL)">(CMS:TEXT title)</a></li>
(CMS:RESULT_END)
</ul>

Das Feld depth enthält die im Baum gespeicherte Hierarchieebene, beginnend mit 0. Der Parameter mul multipliziert: Auf Ebene 1 erhalten wir also 1 × 20 Pixel Einrückung.