Lesbare URLs in eigenen Contao-Modulen
Und hier der Code dazu.
In der Funktion compile meines Frontendmoduls werden die benötigten URLs generiert:
$url = $this->generateFrontendUrl($objPage->row(),'/round/1/pairing/2');
$link .= '<a href="'.$url.'">Link</a></li>';
Im Beispiel werden an die Hilfsfunktion zuerst das Page-Objekt mit einer Funktion die das Seitenalias zurückgibt übergeben. Als zweiter Parameter folgt ein String mit den von uns benötigten Variablen round (mit Wert 1) und pairing (mit Wert 2).
In $url steht dann z.B. "seitenalias/round/1/pairing/2.html".
In der Funktion generate des Frontendmoduls muß die Url komplett wieder aufgelöst werden. Komplett heißt in dem Fall: mit allen möglichen Parametern, die von meinem Modul irgendwann verwendet werden. Vergessen wir einen Parameter, erzeugt Contao einen 404-Fehler.
\Input::setGet('round', \Input::get('round'));
\Input::setGet('pairing', \Input::get('pairing'));
\Input::setGet('season', \Input::get('season'));
$saison = \Input::get('season');
$paarung = \Input::get('pairing');
$runde = \Input::get('round');
Im Beispiel wird auch noch die Variable season abgefragt, die von mir allerdings gar nicht angelegt wurde. Da sie aber in meinem Modul an anderer Stelle verwendet wird, muß sie mit aufgelöst werden.
In meiner Contao-Installation sind "URLs umschreiben" und "Auto_item aktivieren" übrigens aktiviert, weswegen sich die Abfrage von item in meinem Modul erübrigt. Mehr dazu findet ihr im Contao-Forum.
Datum: | Autor: Frank Hoppe
Kommentare
Kommentar von Schachbücher |
Sehr cooler Artikel!
Einen Kommentar schreiben