Contao-Camp 2024
Ergebnis 1 bis 22 von 22

Thema: Alle verfügbaren Variablen in einem Template anzeigen

  1. #1
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard 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.

  2. #2
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    746
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Sorry für diese "Neulings-Frage"...
    Wie rufe ich bestimmte Strings denn auf?

    Es geht in meinem Beispiel um den Katalog. Ich möchte einfach nur die Anzeige der E-Mail-Adresse ändern.

    Bei $col['content'] zeigt er mir halt als Ausgabe
    HTML-Code:
    <a href="mailto:mustermann@web.de">mustermann@web.de</a>
    Das ist ja noch sehr verständlich.


    Ich möchte einfach nur [email] anzeigen und nicht [content], nur verzweifel ich hier grad.

    $col['content']['email']
    $col['content']->email
    $col['raw']->email
    $col['6']['email']

    Nichts davon funktioniert. Wo liegt denn mein Fehler?
    Geändert von Stranger (16.11.2010 um 15:30 Uhr)
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  3. #3
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.466
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Anmerkung zum Tipp von Nina, damit es ein bisschen einfacher zum lesen ist, wenn ihr nicht im Quelltext schaut, sondern es live anzeigen lasst:
    PHP-Code:
    <?php
    echo "<pre>";
    echo 
    $this->showTemplateVars();
    echo 
    "</pre>";
    ?>
    Damit erhaltet ihr das ganze schön verschachtelt angezeigt.

    Stranger: Du musst wohl deine Angaben mit foreach ausgeben. Ganz wenig PHP musst du dir da aneignen, ist nicht schwer
    http://tut.php-q.net/de/array.html
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  4. #4
    Contao-Urgestein Avatar von Sebastian
    Registriert seit
    19.06.2009.
    Ort
    Stuttgart
    Beiträge
    3.361

    Standard

    HI

    weil ich Yanicks Code zu lang finde, hier die Kurzversion:

    PHP-Code:
    <pre><?php echo $this->showTemplateVars(); ?></pre>
    So ist es weniger Schreibarbeit und trotzdem wird alles schön geordnet im Frontend ausgegeben.

    Sebastian

  5. #5
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard 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!

  6. #6
    Contao-Nutzer
    Registriert seit
    10.06.2011.
    Beiträge
    28

    Standard

    gibt es noch mehr Variablen? Ich bin auf der Suche nach einer Möglichkeit z.b. den Artikel Titel gesondert auszugeben.

  7. #7
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Zitat Zitat von quicksilver Beitrag anzeigen
    Ich bin auf der Suche nach einer Möglichkeit z.b. den Artikel Titel gesondert auszugeben.
    Hallo quicksilver,

    willkommen in der Community!

    Bei Deinem Problem kann Dir vermutlich der Insert-Tag {{article_title::*}} ( siehe im Benutzerhandbuch ) weiterhelfen.

  8. #8
    Contao-Nutzer
    Registriert seit
    10.06.2011.
    Beiträge
    28

    Standard

    Danke für die Antwort. Aber wo kann ich diese Tags denn nutzen? Im Template? oder wo?

  9. #9
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    So ziemlich überall.

  10. #10
    Contao-Nutzer
    Registriert seit
    10.06.2011.
    Beiträge
    28

    Standard

    hmm habe das in ein Template eingebaut... und ausgeben lassen aber tut sich nichts

  11. #11
    Contao-Nutzer
    Registriert seit
    10.06.2011.
    Beiträge
    28

    Standard

    bzw.. habe {{article_title::*}} eingebaut.. und gehofft das er dann den Titel von der aktuellen Seite ausgibt??

  12. #12
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Am Ende einfügen, nach jeglichem Code!
    Eine Ausgabe sollte es in jedem Falls geben.

    Wenn Du dem Template aber auch noch vorsichtshalber einen anderen Namen gegeben hast, musst Du es im Modul noch auswählen.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  13. #13
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo quicksilver,

    ich weiß jetzt nicht, ob ich Deinen Post richtig verstanden habe, aber in {{article_title::*}} muss natürlich der Stern mit der ID des Artikels bzw. dem Alias des Artikels ersetzt werden.
    Wenn Du die Artikel auf der Seite nicht siehst, da wo Du ihn eingesetzt hast, liegt das wiederum meist daran, dass im Seitenlayout in dem Bereich (z.B. Hauptspalte) kein Modul "Artikel" eingetragen ist.

  14. #14
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Wenn man Inserttags im Template verwenden will, so geht das in der Regel über
    PHP-Code:
    <?php echo $this->replaceInsertTags('{{article_title::8}}'); ?>
    wobei die hier verwendete ID 8 durch die gewünschte zu ersätzen wäre.
    Eine Verwendung ohne $this->replaceInsertTags funktioniert meines Wissens nicht, bzw. nicht richtig.

    Im Artikel kann es aber direkt verwendet werden.

  15. #15
    Contao-Nutzer
    Registriert seit
    10.06.2011.
    Beiträge
    28

    Standard

    Super Danke für die Antworten. Muss mal schauen wie ich das löse! ggf. Nochmal gucken ob ich das per CSS löse!

  16. #16
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von kos Beitrag anzeigen
    Wenn man Inserttags im Template verwenden will, so geht das in der Regel über
    PHP-Code:
    <?php echo $this->replaceInsertTags('{{article_title::8}}'); ?>
    wobei die hier verwendete ID 8 durch die gewünschte zu ersätzen wäre.
    Eine Verwendung ohne $this->replaceInsertTags funktioniert meines Wissens nicht, bzw. nicht richtig.

    Im Artikel kann es aber direkt verwendet werden.
    Das ist nur in EXTERNEN Scripten nötig, die mit {{file::*}} eingebunden werden. In normalen Templates geht es auch so ohne Probleme.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  17. #17
    Contao-Nutzer Avatar von darki777
    Registriert seit
    03.07.2009.
    Beiträge
    63

    Standard

    Falls ihr die verfügbaren Variablen öffters mal im Frontend (oder sonst wo) zu Debugging-Zwecken braucht, dann kann man das auch so lösen dass eben nur der Admin / Developer diese im Frontend sehen kann (sehr praktisch wenn man im Live-Betrieb mal was ändern / checken möchte ohne dass der Endbenutzer / User davon etwas mitbekommen soll).

    PHP-Code:
    <?php if($_COOKIE["dbug"]=="meinPasswort"): ?>
        <h2>Mich sieht nur mein Programmierer ;)</h2>
        <pre>
        <?php echo $this->showTemplateVars(); ?>
        </pre>
    <?php endif; ?>
    Der Trick dabei ist, dass Firefox Tools wie Firecookie zur Verfügung stellt (Firebug muss vorher installiert sein) um ganz einfach eine Cookie-Variable wie "dbug" mit seinem Passwort zu setzen (das Häckchen "Sitzung" sollte dabei angekreuzt sein), damit man nur den Code sieht/ausführt der sich innerhalb der IF-Anweisung befindet ohne dass irgend ein anderer davon etwas mitbekommt. Dies ist also nicht nur für das Anzeigen von Variablen praktisch, sondern man kann alles mögliche anstellen (neue Funktionen / Methoden auf die Schnelle ausprobieren, neue Design-Elemente / Texte einfügen, etc.) ohne dass der Endbenutzer davon betroffen ist und man somit in aller Ruhe sein Ding durchziehen kann, um es letzten Endes wenn alles fertig ist freizuschalten. Hoffe dass es dem ein oder anderen nützlich sein kann, ich hab jedenfalls Spaß dran ;-)

    P.S. falls gewollt kann man natürlich auch das PW als md5 hash generieren, ich hab das eben nur mal auf die Schnelle geschrieben, da ich selbst eine eigene Klasse hierfür verwende, aber für die schnellen Sachen ist es allemal gut


    Viele Grüße,
    darki

  18. #18
    Contao-Nutzer Avatar von totoff
    Registriert seit
    08.04.2010.
    Ort
    Köln
    Beiträge
    174

    Standard

    hallo forum,

    wahrscheinlich eine saudumme frage, aber ich bin halt kein programmierer ...

    wollte mir mit
    PHP-Code:
    <?php echo $this->showTemplateVars(); ?>
    die variablen eines templates anzeigen lassen - aber leider essig. es erfolgt einfach keine ausgabe. es handelt sich um die templates der erweiterung shoplocator, der code ist hier auf github einsehbar.

    kann mir jemand weiterhelfen und sagen, was ich falsch mache?

    vielen dank!
    Kommunikation mit Konzept. Digital und Analog - christophlieck.com

  19. #19
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    ich denke, Du musst einfach das "echo" weglassen die Routine showTemplateVars() macht selbst die Ausgabe.

  20. #20
    Contao-Nutzer Avatar von totoff
    Registriert seit
    08.04.2010.
    Ort
    Köln
    Beiträge
    174

    Standard

    merci, aber leider war's das nicht.
    PHP-Code:
    <?php $this->showTemplateVars(); ?>
    führt auch zu keiner ausgabe ...
    Kommunikation mit Konzept. Digital und Analog - christophlieck.com

  21. #21
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sicher das du im richtigen Template bist? Auf die Endung achten! Und auch mal den Cache leeren nach Template Änderungen (den von Contao).

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  22. #22
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard 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/
    Geändert von Franko (21.08.2019 um 18:01 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Betrifft Template Variablen
    Von pinball im Forum Off Topic
    Antworten: 3
    Letzter Beitrag: 12.02.2011, 16:00
  2. PHP Script anzeigen + eigene Variablen übergeben?
    Von luv76 im Forum Allgemeine Inhaltselemente
    Antworten: 4
    Letzter Beitrag: 19.05.2010, 19:49
  3. Antworten: 1
    Letzter Beitrag: 25.02.2010, 12:57
  4. Antworten: 9
    Letzter Beitrag: 18.12.2009, 14:17

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •