Das ist schnell gemacht und der processFormData Hook reicht.
Hier ein Beispiel mit einem Auswahlmenü:
Formularfeld (SelectMenü): 'jumpToSelection'
In den Optionen als Label z.B. die Seitennamen und als Wert die Id der Seite.
config.php
PHP-Code:
$GLOBALS['TL_HOOKS']['processFormData'][] = array('MyClass','redirectJumpTo');
autoload.php
PHP-Code:
ClassLoader::addClasses(array
(
'MyClass'=>'system/modules/myclass/MyClass.php'
));
(oder von contao erstellen lassen)
MyClass.php
PHP-Code:
class myClass extends \Frontend
{
public function redirectJumpTo($arrPost, $arrForm, $arrFiles)
{
$objJumpTo = \Database::getInstance()->prepare("SELECT * FROM tl_page WHERE id=?")
->limit(1)
->execute($arrPost['jumpToSelection']);
if($objJumpTo->numRows > 0)
{
$url = $this->generateFrontendUrl($objJumpTo->row());
$this->redirect($url);
}
}
}
Je nach Auswahl wird unterschiedlich weitergeleitet.
Lesezeichen