Template Variablen anzeigen
Aus Contao Community Documentation
betrifft | |
---|---|
Contao Version | 2, 3, 4 |
Template Variablen im FE anzeigen
Bei einer Fehlersuche kann es manchmal sinnvoll sein, sich sämtliche Daten eines Templates anzeigen zu lassen.
Contao 2, 3
Um sich die Daten anzeigen zu lassen, wird einfach folgender Code möglichst am Anfang des entsprechenden Templates eingefügt:
<?php $this->showTemplateVars() ?>
Noch mehr Informationen:
<?php echo $this->dumpTemplateVars() ?>
In beiden Varianten erfolgt die Ausgabe präformatiert (HTML-Tag pre).
Einzelne Variablen, welche unter $this->arrData liegen können wie folgt ausgegeben werden:
<?php echo $this->varname ?>
Die Ausgabe von showTemplateVars() kann mit FirePHP auch an die Firebug Console gesendet werden. Dann wird das Template Layout nicht tangiert. Mehr dazu: PHP_Debugging
Einfach ist es auch die Contao-Funktion dump() zu benutzen.
<?php dump($this->arrData); dump($this->varname); ?>
$this->arrData zeigt alle Variablen, welche showTemplateVars() auch zeigt. dump() macht automatisch einen var_dump() auf einfache Variablen und ein print_r() auf Arrays und Objects. Ausgabe ist gewrappt in einem PRE-Tag.
Contao 4
In Contao 4 kann man dumpTemplateVars() benutzen (ohne echo), die Ausgabe ist formatiert.
<?php $this->dumpTemplateVars(); ?>
Soll die Ausgabe nur erfolgen, wenn ein Admin im BE eingeloggt ist, kann man dies wie folgt erweitern.
<?php /** DEBUG */ if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) { $this->dumpTemplateVars(); } /** */ ?>
Die Ausgabe ist leider etwas unglücklich formatiert. Damit sich die Keys (Schlüssel) besser von den Values (Werten) unterscheiden, kann man das CSS noch ein wenig korrigieren.
<?php /** DEBUG */ $GLOBALS['TL_BODY'][] = ' <style> pre.sf-dump .sf-dump-key { color: beige; } </style> '; if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) { $this->dumpTemplateVars(); } /** */ ?>