FORM_SUBMIT wir immer gecahed?
Ich bin beim Frontend angekommen und habe auf einer Seite zwei FE-Module.
Das eine ist die Ergebnis-ausgabe für das Suche-Formular, das andere ein Listen-Modul.
Jetzt möchte ich gerne die Suchergebnis-Ausgabe nur dann anzeigen, wenn wirklich gesucht wurde. Die Liste will ich nur anzeigen, wenn NICHT gesucht wurde und der User auf diese Seite navigiert ist.
Dazu will ich im Listenmodul abfragen, ob das Such-Formular abgesendet wurde. Wenn ja, soll die Liste NICHT angezeigt werden:
PHP-Code:
public function generate()
{
if ($this->Input->post('FORM_SUBMIT') == 'tl_search')
{
return '';
}
return parent::generate();
}
Leider klappt das nicht, da das Ergebnis von FORM_SUBMIT von Contao gecached wird. Der Cache geht soweit, dass wenn der User 1x gesucht hat und die Seite ein zweites mal ansteuert, er wieder das Suchergebnis seiner letzten Suche angezeigt bekommt, statt eine leeren Seite - oder wie in meinem Fall der Ausgabe des Listenmoduls.
Formulargenerator löscht POST vars
Schuld daran ist der Formulargenerator. Ein Blick in die Form.php hat gezeigt, dass sämtliche Variablen vom Post und Get Input in die Session überführt und damit sehr lange konserviert werden. :(
Das passiert aber nur auf Seiten, wo ein per FormularGenerator erstelltes Formular drauf ist. Das ist sehr sehr verwirrend.