Template Variablen anzeigen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (→Contao 4) |
K (→Contao 4) |
||
Zeile 76: | Zeile 76: | ||
<?php | <?php | ||
/** DEBUG */ | /** DEBUG */ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) | if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) | ||
{ | { | ||
$this->dumpTemplateVars(); | $this->dumpTemplateVars(); | ||
+ | |||
+ | $GLOBALS['TL_BODY'][] = ' | ||
+ | <style> | ||
+ | pre.sf-dump .sf-dump-key { | ||
+ | color: beige; | ||
+ | } | ||
+ | </style> | ||
+ | '; | ||
} | } | ||
/** */ | /** */ |
Aktuelle Version vom 23. Januar 2019, 20:49 Uhr
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 */ if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) { $this->dumpTemplateVars(); $GLOBALS['TL_BODY'][] = ' <style> pre.sf-dump .sf-dump-key { color: beige; } </style> '; } /** */ ?>