Template Variablen anzeigen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(Sicherheits-Hinweis ergänzt) |
K (→Contao 4) |
||
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | {{AppliesTo | ||
+ | |Version=2, 3, 4 | ||
+ | }} | ||
[[Category:Dev_Snippets]] | [[Category:Dev_Snippets]] | ||
− | |||
− | |||
− | |||
− | + | = Template Variablen im FE anzeigen = | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Bei einer Fehlersuche kann es manchmal sinnvoll sein, sich sämtliche Daten eines Templates anzeigen zu lassen. | |
− | + | ||
− | + | {{msgImportant|Nicht vergessen, den Code nach erfolgreicher Fehlersuche wieder aus dem Template zu entfernen! | |
− | + | Die Ausgabe gibt möglicherweise die '''Zugangsdaten zur Datenbank''' (und beim SafeModeHack '''auch FTP''') preis! | |
− | Die Ausgabe gibt möglicherweise die '''Zugangsdaten | + | |
Darum auch möglichst NICHT in einem HTML-Kommentar ausgeben (wird zu leicht vergessen). | Darum auch möglichst NICHT in einem HTML-Kommentar ausgeben (wird zu leicht vergessen). | ||
'''Generell möglichst nur auf lokalen Systemen und nicht auf öffentlich zugänglichen Servern verwenden.''' | '''Generell möglichst nur auf lokalen Systemen und nicht auf öffentlich zugänglichen Servern verwenden.''' | ||
+ | }} | ||
+ | |||
+ | == Contao 2, 3 == | ||
+ | |||
+ | Um sich die Daten anzeigen zu lassen, wird einfach folgender Code möglichst am Anfang des entsprechenden Templates eingefügt: | ||
+ | <source lang="php"><?php $this->showTemplateVars() ?></source> | ||
+ | |||
+ | Noch mehr Informationen: | ||
+ | <source lang="php"> | ||
+ | <?php echo $this->dumpTemplateVars() ?> | ||
+ | </source> | ||
+ | |||
+ | In beiden Varianten erfolgt die Ausgabe präformatiert (HTML-Tag pre). | ||
+ | |||
+ | Einzelne Variablen, welche unter $this->arrData liegen können wie folgt ausgegeben werden: | ||
+ | <source lang="php"> | ||
+ | <?php echo $this->varname ?> | ||
+ | </source> | ||
+ | |||
---- | ---- | ||
− | Die Ausgabe von showTemplateVars kann mit FirePHP an die Firebug Console gesendet werden. Dann wird das Template Layout nicht tangiert. Mehr dazu: [[PHP_Debugging]] | + | 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]] |
+ | |||
+ | {{msgInfo|Ergänzung von --[[Benutzer:Andreas|Andreas Burg]] ([[Benutzer Diskussion:Andreas|Diskussion]]) 13:42, 5. Jul. 2017 (CEST) | ||
+ | }} | ||
+ | Einfach ist es auch die Contao-Funktion '''dump()''' zu benutzen. | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | dump($this->arrData); | ||
+ | dump($this->varname); | ||
+ | ?> | ||
+ | </source> | ||
+ | '''$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. | ||
+ | |||
+ | {{msgInfo|Ergänzung zu '''Contao 4''' von | ||
+ | --[[Benutzer:Andreas|Andreas Burg]] ([[Benutzer Diskussion:Andreas|Diskussion]]) 20:26, 23. Jan. 2019 (CET) | ||
+ | }} | ||
+ | |||
+ | == Contao 4 == | ||
+ | |||
+ | In '''Contao 4''' kann man '''dumpTemplateVars()''' benutzen (ohne echo), die Ausgabe ist formatiert. | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $this->dumpTemplateVars(); | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | Soll die Ausgabe nur erfolgen, wenn ein Admin im BE eingeloggt ist, kann man dies wie folgt erweitern. | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | /** DEBUG */ | ||
+ | if(sha1(session_id().(!Config::get('disableIpCheck') ? Environment::get('ip') : '').'BE_USER_AUTH') == Input::cookie('BE_USER_AUTH')) | ||
+ | { | ||
+ | $this->dumpTemplateVars(); | ||
+ | } | ||
+ | /** */ | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | 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. | ||
+ | <source lang="php"> | ||
+ | <?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> | ||
+ | '; | ||
+ | } | ||
+ | /** */ | ||
+ | ?> | ||
+ | </source> | ||
+ | [[Datei:DumpTemplateVars-output.png]] |
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> '; } /** */ ?>