Symbolbild con4gis-Maps mit einer alten Karte und einem Kompass

Kartenstrukturen: Quelltabellen

Zum Vergrößern Bild anklicken

In diesem Backend-Bereich kannst Du Quelltabellen definieren, die dann von Kartenstrukturen des Typs "Aus anderer Tabelle" verwendet werden können. Standardmäßig gibt es hier bereits drei Einträge: Mitglieder, Events und Inhaltselemente. Diese sind vorkonfiguriert und können direkt verwendet werden. Im Folgenden werden die einzelnen Abschnitte erläutert, damit Du auch eigene Quelltabellen erstellen kannst.

Zum Vergrößern Bild anklicken

Allgemeine Daten

In den allgemeinen Daten kann zunächst ein Name zur Identifizierung der Quelltabelle angegeben werden. Dieser Name wird dann zur Auswahl im Kartenstrukturelement angezeigt. Weiterhin muss die Tabelle ausgewählt werden, aus der Daten geladen werden sollen.

Zum Vergrößern Bild anklicken

Elterntabellen (optional)

In diesem Bereich kann eine Elterntabelle angegeben werden, anhand derer die Auswahl aus der eigentlichen Quelltabelle eingeschränkt werden kann. Bei den Events (tl_calendar_events) ist dies z.B. der zugehörige Kalender (tl_calendar). Dadurch kann im Kartenstrukturelement spezifiziert werden, dass etwa nur Events aus einem oder mehreren bestimmten Kalendern geladen werden sollen.

Nach der Auswahl einer Elterntabelle müssen die Felder ausgewählt werden, die im Kartenstrukturelement für diese Art der Einschränkung zur Verfügung stehen sollen. Weiterhin müssen die Felder angegeben werden, die die Verknüpfung zwischen der Elterntabelle und der Kindtabelle realisieren. In der Kindtabelle ist dies meist eine "pid", die auf die ID eines Datensatzes der Elterntabelle zeigt.

Zum Vergrößern Bild anklicken

Lokation

Dieser Abschnitt bildet die Georeferenzierung der Quelltabelle ab. Dabei gibt es zwei Möglichkeiten: Entweder können zwei Felder angegeben werden, aus denen im WGS-84-Format Längen- und Breitengrad ausgelesen werden (x- und y-Koordinate); alternativ kann ein einzelnes Feld (Geolokation) angegeben werden, welches beide Koordinaten enthält. Eine dieser beiden Möglichkeiten ist notwendig, damit die Daten in der Karte dargestellt werden können.

Zum Vergrößern Bild anklicken

Zuordnung der Tabellenspalten (optional)

Im letzten Bereich können Felder angegeben werden, aus denen weitere Daten wie das Kartenlabel, der Lokationsstil oder ein Tooltip generiert werden können. Diese Angaben sind nicht notwendig, sondern dienen dazu, bei Bedarf weitere Informationen darstellen zu können. Falls diese Felder nicht gesetzt werden, greifen die Einstellungen am Kartenstrukturelement, welches diese Quelltabellenkonfiguration anbindet.

Zudem wird hier der Mechanismus definiert, der die Popups der Karte befüllt.

Expertenkonfiguration (optional):

Die Expertenkonfiguration ist komplexer als die Feldauswahl, bietet aber auch flexiblere Möglichkeiten. Bei der Expertenkonfiguration werden prinzipiell auch Felder angegeben, aber in einer speziellen Syntax. Der grundsätzliche Aufbau der Expertenkonfiguration besteht aus mehreren Komma-getrennten Token. Jedes Token repräsentiert dabei genau eine Tabellenspalte aus der Tabelle und kann entweder ein Contao-Inserttag sein oder ein Ausdruck in eckigen Klammern (ein Beispiel folgt unten).

Contao-Inserttags können ganz normal verwendet werden. Innerhalb der geschweiften Klammern des Inserttags kann auch durch die Angabe einer Tabellenspalte in eckigen Klammern (z.B. [id]) auf die Tabelle zugegriffen werden. Dieser Ausdruck wird dann durch den tatsächlichen Feldinhalt (in diesem Fall die ID) ersetzt, bevor das Inserttag zum Übersetzen an Contao weitergegeben wird.

Bei Verwendung eines Ausdrucks in eckigen Klammern wird ein Spaltenname und ein "Feldtyp" angegeben. Der einfachste Fall, etwa für ein Namensfeld, wäre: [name:string]. Als erster Parameter muss immer der Spaltenname angegeben werden. Je nach angegebenem Feldtyp können bzw. müssen weitere Angaben gemacht werden. Alle Angaben für einen Ausdruck müssen mit einem Doppelpunkt voneinander getrennt werden. Mögliche Feldtypen sind:

  • string
  • date
  • pagelink
  • responsiveImage

Für "string" werden keine weiteren Angaben benötigt. Der Inhalt der angegebenen Spalte wird ausgelesen und dargestellt.

Bei "date" wird erwartet, dass in der angegebenen Spalte ein Timestamp gespeichert ist. Dieser wird dann in ein Datum umgewandelt und dargestellt.

Der Parameter "pagelink" realisiert einen Hyperlink und hat weitere Parameter. Der erste Parameter ist ein String, der den Linktext darstellt, auf den geklickt werden kann. Der zweite Parameter stellt eine Ausgangs-URL dar, an die der Inhalt der angegebenen Spalte angehängt wird. Wenn der erste Parameter fehlt, wird dieser standardmäßig auf "details" gesetzt. Wenn der zweite Parameter fehlt, wird der Spalteninhalt als Seiten-ID oder -Alias interpretiert und in ein -Inserttag geschrieben, aus dem dann der Hyperlink erzeugt wird. Ein Beispiel für einen pagelink-Parameter könnte etwa so aussehen:

[name:pagelink:Details:/mitarbeiter]

Dabei würden Links im Format "example.com/mitarbeiter/name.html" generiert werden (in dem Fall wäre vorausgesetzt, dass für jeden Mitarbeiter an dieser Stelle auch eine Seite vorhanden ist).

Beim Typ "responsiveImage" wird ein img-Tag erzeugt. Der Spalteninhalt wird zunächst als Contao-File-UUID interpretiert. Wenn so keine Datei gefunden werden kann, wird der Spalteninhalt als Pfad interpretiert und in das src-Attribut des img-Tags geschrieben. Ansonsten wird der Pfad der Datei aus dem Contao-Dateisystem verwendet.

Ein vollständiges Beispiel für eine Expertenkonfiguration könnte folgendermaßen aussehen:

[firstname:string],[lastname:string],[name:pagelink:Details:/mitarbeiter],[picture:responsiveImage]

Diese Konfiguration würde den Vornamen und Namen aus der Tabelle auslesen und darstellen, darunter einen Hyperlink (der wie oben beschrieben generiert wird) und aus der Spalte "picture" noch eine UUID oder einen Dateipfad auslesen und das entsprechende Bild darstellen.

Auch erscheint bei der Expertenkonfiguration eine weitere Checkbox. Wenn diese gesetzt ist, werden alle Hyperlinks, die im Popup generiert werden, automatisch in einem neuen Browsertab geöffnet.

Im Feld "Text ab bestimmter Länge kürzen" kann eine Zeichenzahl angegeben werden, ab der Texte im Popup, die über einen "string"-Typ erstellt werden, gekürzt werden. Die angegebene Zeichenzahl ist dabei dann nicht die maximale Zeichenzahl, die ein Text haben kann, sondern ab dieser Zeichenzahl wird nach dem nächsten abgeschlossenen Wort der restliche Text durch "..." ersetzt.