Contao Ajax Schnittstelle

Kapitel 24

Das F Modul unterstützt eine Ajax Schnittstelle für alle Entwickler, die mehr aus Ihren Modulen herausholen wollen. Diese Dokumentation ist an Entwickler gerichtet. Die F Modul Ajax Api befindet sich noch im Aufbau. Bisher nur auf Contao 3.5.6 getestet.

Erstmal das F Modul bietet kein Ajax Modul an, dass bedeutet wir müssen auf bestehende Module zurückgreifen. Ich habe mich für Simple Ajax entschieden. Damit können wir ganz einfach die F Modul Ajax Api ansprechen und steuern.

Simple Ajax verwenden

Wir laden Simple Ajax herunter, entpacken die .zip Datei, gehen in den TL_ROOT Ordner und verschieben die SimpleAjax.php in unser Root Verzeichnis (Projekt).

Als nächstes gehen wir zu system/modules und erstellen ein neuen Ordner: my_ajax_module (Name Freiwählbar). Im my_ajax_module Ordner erstellen wir ein Ordner mit der Bezeichnung: config und legen dort die config.php ab. In die config.php tragen wir unseren Hook ein:

$GLOBALS['TL_HOOKS']['simpleAjax'][] = array('AjaxApi', 'getAjaxResponse');

Damit haben wir ein Ajax Modul für Contao implementiert.

F Modul Api Steuern

Wir können jetzt die F Modul AjaxApi über die GET Parameter steuern. Dazu rufen wir die SimpleAjax.php auf: http://www.meineDomain.dev/SimpleAjax.php.

Die einzelnen Methoden können wir über den do Parameter steuern:

http://www.meineDomain.dev/SimpleAjax.php?do=getEntities

Mögliche do - Parameter

  • getEntities
  • getDetail
  • getAutoCompletion

Ajax Listenansicht

Die getEntities Methode liefert uns die Listenansicht aller Datensätze.

Erlaubte GET Parameter:

  • tablenameDer Tabellenname des Backend Modul's. z.B fm_referenzen. Das ist ein Pflichtfeld.
  • wrapperID Die Wrapper ID in dem sich die Datensätze befinden. Die kann man über das "i" Symbol im Contao Backend herausfinden. Das ist ein Pflichtfeld.
  • dateFormatWenn kein Datumsformat definiert ist, wird das Datumsformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.
  • timeFormatWenn kein Zeitformat definiert ist, wird ein Zeitformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.
  • templateHier kann optional ein Template übergeben werden. Standard template: fmodule_teaser.
  • perPageDie Anzahl an Elementen pro Seite.
  • pageWenn Sie einen perPage Wert definiert haben, können Sie sich durch die Seite navigieren (Pagination).
  • orderByHier können Sie die Reihenfolge festlegen. Es stehen zur Auswahl: DESC, ASC, RAND. Standard: DESC.
  • sorting_fieldsHier können Sie Felder für die Sortierung definieren. Standard Feld: id.

Anwendungsbeispiel:

http://www.meineDomain.dev/SimpleAjax.php?do=getEntities&tablename=fm_meinemodul&wrapperID=1

Ajax Detailseite

Die getDetail Methode liefert uns die Detailansicht eines Datensatzes.

Erlaubte GET Parameter:

  • tablenameDer Tabellenname des Backend Modul's. z.B fm_referenzen. Das ist ein Pflichtfeld.
  • wrapperID Die Wrapper ID in dem sich die Datensätze befinden. Die kann man über das "i" Symbol im Contao Backend herausfinden. Das ist ein Pflichtfeld.
  • idDie ID des Datensatzes. Wenn keine ID definiert ist, wird nachdem Alias gesucht.Das ist ein Pflichtfeld.
  • aliasDer Alias des Datensatzes. Wenn kein Alias definiert ist, wird nach der ID gesucht.
  • dateFormatWenn kein Datumsformat definiert ist, wird das Datumsformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.
  • timeFormatWenn kein Zeitformat definiert ist, wird ein Zeitformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.
  • templateHier kann optional ein Template übergeben werden. Standard template: fmodule_teaser.

Anwendungsbeispiel:

http://www.meineDomain.dev/SimpleAjax.php?do=getDetail&tablename=fm_meinemodul&wrapperID=1&id=1

Ajax Autovervollständigung

Die getAutoCompletion Methode liefert uns Suchvorschläge aus einem bestimmten Feld.

Erlaubte GET Parameter:

    • tablenameDer Tabellenname des Backend Modul's. z.B fm_referenzen. Das ist ein Pflichtfeld.
    • wrapperID Die Wrapper ID in dem sich die Datensätze befinden. Die kann man über das "i" Symbol im Contao Backend herausfinden. Das ist ein Pflichtfeld.
    • fieldIDDer Feldname aus dem die Suchvorschläge erstellt werden sollen. Das ist ein Pflichtfeld.
    • dateFormatWenn kein Datumsformat definiert ist, wird das Datumsformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.
    • timeFormatWenn kein Zeitformat definiert ist, wird ein Zeitformat aus den Einstellungen genommen. Der Datums- und Zeitformat-String wird mit der PHP-Funktion date() geparst.

Unterstützte Feldtypen: Textfeld, Volltextsuche, Einfache/Mehrfache Auswahl, Datum.

Anwendungsbeispiel:

http://www.meineDomain.dev/SimpleAjax.php?do=getAutoCompletion&tablename=fm_meinemodul&wrapperID=1&fieldID=suche