Tipps und Tricks Filter

Ausgabeformat im Frontend Modul automatisch anpassen

Programmiert man ein Frontend-Modul muss man auf das Ausgabeformat achten und die Ausgaben auf XHTML oder HTML5 trimmen. Das braucht man aber nun nicht bei jedem Tag selber zu tun. Zum einem gibt es für jedes der Formate ein eigenes Template, ein Grund mehr solche zu nutzen.

Generiert man Teile der HTML Ausgabe im Modul selbst kann man die Ausgabe bevor man diese dem Template übergibt anpassen lassen wie folgt.

global $objPage;
if ($objPage->outputFormat == 'html5')
{
    $output = \String::toHtml5($output);
}
else
{
    $output = \String::toXhtml($output);
}

Hier werden also zwei statische Methoden der String Klasse genutzt, im obigen Beispiel für Contao 3. Man kann das auch etwas kürzer schreiben:

global $objPage;
$output = ($objPage->outputFormat == 'html5') ? \String::toHtml5($output) : \String::toXhtml($output);

Für Contao 2 bzw. wenn das Contao 3 eigene Frontend-Modul in keinem Namespace sich befindet, muss man statt \String::... einfach String::... schreiben.