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.


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!

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.

"Wichtig"


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


Ergänzung von --Andreas Burg (Diskussion) 13:42, 5. Jul. 2017 (CEST)

"Information"


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.


Ergänzung zu Contao 4 von --Andreas Burg (Diskussion) 20:26, 23. Jan. 2019 (CET)

"Information"


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();
}
/** */
?>

DumpTemplateVars-output.png

Ansichten
Meine Werkzeuge

Contao Community Documentation

<TheTril> Stateless Template, Stateless Elements, Stateless Renderer :)
<TheTril> everything is stateles :D
<leo-unglaub> TheTril: genau wie Ed Snowden *g*

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge