In diesem Abschnitt stelle ich dir die übrigen Core-Module im Bereich »Anwendungen« vor. Die Liste der Frontend-Module
kann darüber hinaus durch (Third-Party-)Erweiterungen beliebig verlängert werden.
Formular
Mit dem Modultyp »Formular« kann ein Formular auf einer Seite hinzugefügt werden. Informationen zur Erstellung und
Verwaltung von Formularen findest du auf der Seite Formulargenerator.
Formular: Hier kannst du ein Formular auswählen
Auflistung
Das Frontend-Modul »Auflistung« fügt der Webseite eine Liste von Datensätzen hinzu, die im Frontend sortiert, gefiltert
und durchsucht werden können. Als Grundlage für die Auflistung dient eine beliebige Tabelle der Datenbank, wie z. B.
die Mitgliedertabelle tl_member.
Tabelle: Hier legst du die Tabelle fest, deren Datensätze aufgelistet werden sollen.
Felder: Gebe hier die Felder ein, die in der Auflistung dargestellt werden sollen. Trenne die einzelnen Felder mit
einem Komma.
Bedingung: Hier kannst du eine Bedingung eingeben, nach der die Datensätze gefiltert werden. Da das Modul
prinzipiell nichts anderes als eine Datenbankabfrage macht, kannst du hier SQL-konformen Code wie z. B.
published=1 verwenden. Auch der Einsatz von Insert-Tags ist möglich, z. B. user={{user::id}}.
Durchsuchbare Felder: Wenn du bestimmte Felder als durchsuchbar definierst, erstellt Contao automatisch ein
Formular, mit dem diese durchsucht werden können.
Sortieren nach: Hier kannst du festlegen, nach welchen Spalten die Auflistung standardmäßig sortiert wird. Trenne
mehrere Felder durch Kommata.
Elemente pro Seite: Wenn du hier einen Wert größer 0 eingibst, verteilt Contao die Ergebnisse automatisch auf
mehrere Seiten – eine entsprechende Anzahl vorausgesetzt.
Felder der Detailseite: Wenn du hier ein oder mehrere Felder erfasst, fügt Contao jeder Zeile der Auflistung ein
kleines Icon hinzu, mit dem du die Detailansicht eines Datensatzes aufrufen kannst. Auf der Detailseite kannst du
zusätzliche Felder eines Datensatzes ausgeben, die in der Liste vielleicht keinen Platz haben.
Detailseitenbedingung: Hier kannst du eine Bedingung eingeben, nach der die Datensätze der Detailseite gefiltert
werden (vgl. oben Bedingung).
Listentemplate: Hier wählst du das Template für die Listenansicht aus.
Detailseitentemplate: Hier wählst du das Template für die Detailseite aus.
HTML-Ausgabe Das Frontend-Modul generiert folgenden HTML-Code:
<divclass="mod_listing ce_table listing block"><divclass="list_search"><formaction="content-elements.html"method="get"><divclass="formbody"><inputtype="hidden"name="order_by"value=""><inputtype="hidden"name="sort"value="asc"><inputtype="hidden"name="per_page"value="5"><divclass="widget widget-select"><labelfor="ctrl_search"class="invisible">Vorhandene Felder</label><selectname="search"id="ctrl_search"class="select"><optionvalue="firstname">Vorname</option><optionvalue="lastname">Nachname</option></select></div><divclass="widget widget-text"><labelfor="ctrl_for"class="invisible">Suchbegriffe</label><inputtype="text"name="for"id="ctrl_for"class="text"value=""></div><divclass="widget widget-submit"><buttontype="submit"class="submit">Suchen</button></div></div></form></div><divclass="list_per_page"><formaction="content-elements.html"method="get"><divclass="formbody"><inputtype="hidden"name="order_by"value=""><inputtype="hidden"name="sort"value="asc"><inputtype="hidden"name="search"value=""><inputtype="hidden"name="for"value=""><divclass="widget widget-select"><labelfor="ctrl_per_page"class="invisible">Ergebnisse pro Seite</label><selectname="per_page"id="ctrl_per_page"class="select"><optionvalue="10">10</option><optionvalue="20">20</option><optionvalue="30">30</option><optionvalue="50">50</option><optionvalue="100">100</option><optionvalue="250">250</option><optionvalue="500">500</option></select></div><divclass="widget widget-submit"><buttontype="submit"class="submit">Ergebnisse pro Seite</button></div></div></form></div><tableclass="all_records"><thead><tr><thclass="head col_first"><ahref="…"title="Sortiere nach Vorname">Vorname</a></th><thclass="head"><ahref="…"title="Sortiere nach Nachname">Nachname</a></th><thclass="head col_last"><ahref="…"title="Sortiere nach E-Mail-Adresse">E-Mail-Adresse</a></th><thclass="head col_last"> </th></tr></thead><tbody><trclass="row_0 row_first even"><tdclass="body col_0 col_first">…</td><tdclass="body col_1">…</td><tdclass="body col_2"><ahref="…">…</a></td><tdclass="body col_3 col_last"><ahref="…"><imgsrc="…"width="16"height="16"alt=""></a></td></tr><trclass="row_1 odd"><tdclass="body col_0 col_first">…</td><tdclass="body col_1">…</td><tdclass="body col_2"><ahref="…">…</a></td><tdclass="body col_3 col_last"><ahref="…"><imgsrc="…"width="16"height="16"alt=""></a></td></tr><trclass="row_2 row_last even"><tdclass="body col_0 col_first">…</td><tdclass="body col_1">…</td><tdclass="body col_2"><ahref="…">…</a></td><tdclass="body col_3 col_last"><ahref="…"><imgsrc="…"width="16"height="16"alt=""></a></td></tr></tbody></table></div>
Das HTML-Markup der Detailseite sieht wie folgt aus: