Template Variablen anzeigen: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Hinweise aus https://www.contao-community.de/showthread.php?28165 hinzugefügt)
K (Contao 4)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{AppliesTo
 +
|Version=2, 3, 4
 +
}}
 
[[Category:Dev_Snippets]]
 
[[Category:Dev_Snippets]]
Bei einer Fehlersuche kann es manchmal sinnvoll sein, sich sämliche Daten eines Templates anzeigen zu lassen.
 
Um sich die Daten anzeigen zu lassen, wird einfach folgender Code möglichst am Anfang des entsprechenden Templates einfügen:
 
<source lang="php"><?php $this->showTemplateVars(); ?></source>
 
  
Alternativ kann man sich die Variablen auch formatiert ausgeben lassen:
+
= 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!
 +
 
 +
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.'''
 +
}}
 +
 
 +
== 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">
 
<source lang="php">
<pre>
+
<?php echo $this->dumpTemplateVars() ?>
<?php $this->showTemplateVars(); ?>
+
</pre>
+
 
</source>
 
</source>
  
noch mehr Informationen:
+
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">
 
<source lang="php">
<?php echo $this->dumpTemplateVars(); ?>  
+
<?php echo $this->varname ?>
 
</source>
 
</source>
  
 +
----
 +
 +
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]]
  
Einzelne Spaltenwerte können wie folgt ausgegeben werden:
+
{{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">
 
<source lang="php">
<?php echo $this->spaltenname; ?>
+
<?php
 +
  dump($this->arrData);
 +
  dump($this->varname);
 +
?>
 
</source>
 
</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.
  
== Besonders wichtig: ==
+
{{msgInfo|Ergänzung zu '''Contao 4''' von
{{Achtung|Nicht vergessen, den Code nach erfolgreicher Fehlersuche wieder aus dem Template zu entfernen!}}
+
--[[Benutzer:Andreas|Andreas Burg]] ([[Benutzer Diskussion:Andreas|Diskussion]]) 20:26, 23. Jan. 2019 (CET)
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).
+
== Contao 4 ==
'''Generell möglichst nur auf lokalen Systemen und nicht auf öffentlich zugänglichen Servern verwenden.'''
+
----
+
  
Die Ausgabe von showTemplateVars kann mit FirePHP an die Firebug Console gesendet werden. Dann wird das Template Layout nicht tangiert. Mehr dazu: [[PHP_Debugging]]
+
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.


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

DumpTemplateVars-output.png

Ansichten
Meine Werkzeuge

Contao Community Documentation

IRC -> einziger fortlaufend sich selbst aktualisierender Comic.

Tristan Lins
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge