Template Variablen anzeigen: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K
K (Contao 4)
 
(3 dazwischenliegende Versionen von einem Benutzer 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ämtliche 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>
 
  
noch mehr Informationen:
+
= 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">
<?php echo $this->dumpTemplateVars(); ?>  
+
<?php echo $this->dumpTemplateVars() ?>
 
</source>
 
</source>
  
 
In beiden Varianten erfolgt die Ausgabe präformatiert (HTML-Tag pre).
 
In beiden Varianten erfolgt die Ausgabe präformatiert (HTML-Tag pre).
  
Einzelne Spaltenwerte können wie folgt ausgegeben werden:
+
Einzelne Variablen, welche unter $this->arrData liegen können wie folgt ausgegeben werden:
 
<source lang="php">
 
<source lang="php">
<?php echo $this->spaltenname; ?>
+
<?php echo $this->varname ?>
 
</source>
 
</source>
  
== Besonders wichtig: ==
 
{{Achtung|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.'''
 
 
----
 
----
  
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.


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

Ich habe es mir mal grob ausgerechnet: Bei jeder Extension von mir verbrauche ich im Durchschnitt 6 Pizzen. Wenn Dir meine Extensions gefallen, sende mir bitte mehr Pizzen. Die Adresse gibt es auf Anfrage!

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge