Alle verfügbaren Variablen in einem Template anzeigen
Hier nur eine Kleinigkeit, die ich aber sehr praktisch finde ...
Wenn ihr wissen wollt, welche Variablen in einem bestehenden TL-Template aufgerufen werden können, dann fügt folgendes zum Template hinzu:
Code:
<!-- <?php $this->showTemplateVars(); ?> -->
Wenn ihr nun das Template auf der Website einbindet, könnt ihr im Quelltext der ausgegebenen Seite die Variablen (in einem HTML-Kommentar) sehen.
PS: Danke an Harry. Sein Hinweis im englischen Forum hat mich erst darauf aufmerksam gemacht.
Sicherheitshinweis beachten!
Bitte den Sicherheitshinweis im Wiki beachten:
http://de.contaowiki.org/Template_Variablen_anzeigen
Möglichst nicht auf öffentlich zugänglichen Seiten und nicht als HTML-Kommentar einfügen!
Contao - .env - Debug-Modus - Symfony VarDumper
Hallo,
Zunächst:
Die folgenden Hinweise stammen u.a. von Spooky/aschempp/toflar aus einem Slack-Thread.
Vielen Dank dafür ...
Folgende Angaben getestet in einer lokalen 4.8 Neuinstallation:
Contao 4.8 Debug-Modus aktivieren - Alternative
Mit einer Contao 4.8 Installation kann der Debug-Modus nicht mehr über den CM ( v.1.1.7 ) aktiviert werden, da dies jetzt bequem innerhalb des Backends möglich ist.
Eine weitere Alternative ist über eine ".env" Datei möglich. Anlegen bitte im Contao "root" Verzeichnis ( also oberhalb von "web" ) und aktivieren mit dem Inhalt:
.env:
Code:
# Contao debug modus - Setting dev or prod
APP_ENV=dev
Im Template den Debug-Modus abfragen
In einem Contao Template kann der Status prod/dev wie folgt abgefragt werden:
PHP-Code:
<?php if ( \Contao\System::getContainer()->get('kernel')->isDebug() == true ): ?>
<p>Frontend Ausgabe nur im debug modus</p>
<?php endif; ?>
Macht bei einer lokalen Umgebung so zwar keinen Sinn und man sollte ja z.B. mögliche Debug-Ausgaben für den Live-Betrieb zuvor entfernen -
was evtl. aber beim deployen u.U vergessen wird ...
Template Variablen anzeigen
Wie hier beschrieben kann man sich mit <?php $this->showTemplateVars(); ?> die Variablen eines Templates anzeigen lassen.
Befindet man sich nicht im Debug-Modus werden die Ausgaben im Frontend dargestellt.
Mit aktivierten Debug-Modus dann entsprechend bequem nur über den Symfony Profiler bzw. der Symfony Debug Toolbar.
Gleiches gilt für <?php $this->dumpTemplateVars(); ?>.
Die Ausgaben sind identisch.
Praktisch handelt es sich nur um eine Umbennung um hervorzuheben das nun die Symfony VarDumper Komponente [1] benutzt wird
( Nicht verwechseln mit PHP var_dump() ).
Sollte mit der 4.8 aber auch mit der 4.4 LTS so funktionieren.
Ein weiterer Vorteil der Symfony VarDumper [1] Unterstützung:
In Templates mit Template Vererbung, gingen Ausgaben, die außerhalb von "$this->block('...')" und "$this->endblock()" gemacht wurden verloren.
Über den VarDumper in der dev Umgebung nicht - Weitere Samples siehe [2].
Beispiel Template ce_text.html5 innerhalb von "<?php $this->block('content'); ?>":
PHP-Code:
<?php
\Symfony\Component\VarDumper\VarDumper::dump($this->text);
// or
dump($this->text);
$MeineTolleVar="Mein Value";
dump($MeineTolleVar);
//or
dump($this);
// show all vars in template
$this->dumpTemplateVars();
?>
Siehe auch:
[1] https://symfony.com/doc/current/comp...les-and-output
[2] https://www.sitepoint.com/var_dump-i...ony-vardumper/