Ergebnis 1 bis 9 von 9

Thema: Inserttag {{env::page_id}} in Variable packen und abfragen

  1. #1
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Frage Inserttag {{env::page_id}} in Variable packen und abfragen

    Hallo zusammen,

    ich dreh durch. In einem Template packe ich den Inserttag {{env::page_id}} in eine Variable, aber ich kann sie nicht weiterverarbeiten.
    PHP-Code:
    $var '{{env::page_id}}'// ID ist 49
    var_dump($var); // Ausgabe. string(16) "49" 
    Wieso 16? Ich kann die 49 nicht abfragen, ich bekomme immer false.

    Hiiilfe, Andreas

  2. #2
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    385

    Standard

    TL geht so vor: erst alles an php verarbeiten und erst anschließend ersetzten.

    D.h., aus
    PHP-Code:
    $var '{{env::page_id}}'// ID ist 49 
    var_dump($var); // Ausgabe. string(16) "49" 
    wird nach dem interpretieren
    HTML-Code:
    string(16) "{{env::page_id}}"
    Die 16 steht dabei für die Länge des Strings.

    Danach geht der Interpreter von Tl drüber und ersetzt '{{env:age_id}}' durch den entsprechenden Wert, also 49.

    Damit erhälst du:
    HTML-Code:
    string(16) "49"
    Die 16 bleibt bestehen, da php mit seiner Arbeit ja bereits fertig war.

    Alles klar jetzt?

    PS: Wenn du php-nimmst kannst du direkt die Variable aus dem Enviroment auslesen - und ist auch besser als über die nachträgliche korrektur zu gehen.

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von SunBlack Beitrag anzeigen
    Alles klar jetzt?

    PS: Wenn du php-nimmst kannst du direkt die Variable aus dem Enviroment auslesen - und ist auch besser als über die nachträgliche korrektur zu gehen.
    Nicht ganz verstanden, da var_dump() ja gleichzeitig die Stringlänge und die 49 ausgespuckt hat, aber ok. Ich hätte mal die Länge vom Inserttag durchzählen sollen

    Aber wie geht's denn jetzt weiter. Hab ich mit dem Inserttag wirklich nur die Möglichkeit den Wert auszuspucken und nicht ihn auch weiter zu verarbeiten?

    Die Lösung findet man weiter unten im gleichen Thread https://community.contao.org/de/show...31&postcount=8

    Als allererstes hatte ich ja auch versucht die Page-ID aus dem "Environment" auszulesen, was mir nach Stunden nicht gelungen ist. Ich befinde mich im Template ce_comments.tpl. Kannst du mir da noch mal weiterhelfen? Hab sämtliche GLOBALS und TemplateVars gecheckt. Mein Gesamtziel ist es, das Formular von der Commentsseite, welches unter den Kommentaren erscheint, auf eine eigene Seite auszulagern. Soweit bin ich schon, ich wollte jetzt nur eine Fallunterscheidung innerhalb des Templates machen, da es auf beiden Seiten benutzt wird, sollen einmal nur die Kommentare und einmal nur das Formular ausgegeben werden.

    Gruß Andreas

    ah, jetzt hab ich das verstanden mit dem PHP und danach der Interpreter von Tl
    Geändert von Andreas (30.07.2009 um 12:11 Uhr) Grund: Verweis auf Lösung hinzugefügt

  4. #4
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    385

    Standard

    Probier es mal mit '$this->id'.

    Schau dir in der Controller.php mal die Funktion "replaceInsertTags" an. Dort siehst du, wie die Variablen umgemappt werden.

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ach, das hatte ich ganz zu Anfang, das liefert nix. Ich hab's jetzt erst mal über $GLOBALS[_SERVER][REQUEST_URI] gemacht, obwohl ich das eigentlich vermeiden wollte, da ich ja jetzt den Seitennamen nicht mehr verändern darf.

    Ursprünglich wollte ich ja die Inhaltselement-ID, dann die Artikel-ID; das ging alles nicht, auch, da sie auf beiden Seiten identisch sind. Und als nächstes kam halt die Seiten-ID. Jetzt bin ich halt beim Seitennamen gelandet

    Was ich grad mache ist, ich versuche eine Art Gästebuch (Kundenmeinungen) einmal mit Comments und einmal mit efg umzusetzen und die Ergebnisse zu vergleichen in Sachen Komfort sowohl für den User, den Redakteur und auch den Techniker. Ich bin mir da noch sehr unsicher, was ich am Ende nehmen soll. Comments funktioniert out-of-the-box, ich vermisse aber einige Feature, auf die ich eigentlich nicht verzichten wollte.

    missing features:
    • Formular und Einträge sind auf der gleichen Seite
    • keine extra Danke-Seite
    • Label für die Textarea fehlt
    • keine Anordnungsmöglichkeit der Eingabefelder
    • keine zusätzlichen Eingabefelder
    • E-mail-Feld ist als Pflichtfeld ausgezeichnet (dabei brauch ich gar keins)


    Gruß von Andreas

  6. #6
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    385

    Standard

    Bei der Kommentarfunktion kann ich dir nciht helfen. Auf meinen Seiten gibt es die Möglichkeit nicht etwas zu kommentieren .

    Mach mal im Template ein var_dump auf $this und schau da mal durch, ob was bruahcbares zu finden ist .

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke für den Tip, aber da ist die ID auch nicht dabei. Ich gehe dem jetzt nicht mehr weiter nach. Da müsste ich wohl das modul neu schreiben.

    Ich mach dann morgen die Umsetzung mit efg. Auf jeden Fall hab ich das Formular und die Einträge ja jetzt schon mal auf separaten Seiten und es funktioniert auch.

    Und was dazu gelernt hab ich auch schon wieder, danke.

    Andreas

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

    Support Contao

    Standard

    Hallo Andreas,

    das kann nicht funktionieren, da die InsertTags normal erst bei der HTML-Ausgabe ersetzt werden und nicht in der PHP-Ausführung. Du hast somit einen Text in der PHP-Variablen.

    Probiere mal folgendes:
    PHP-Code:
    $var $this->replaceInsertTags'{{env::page_id}}' ); 

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Daumen hoch Das ist die Lösung!

    DANKE do_while,

    das ist die Lösung für solche Behandlungen von Inserttags. Das hätte ich gestern mal gebrauchen können. Jetzt kann ich ein if-statement aus der Seiten-ID bilden.

    Dass die Inserttags erst nach PHP ersetzt werden, hatte SunBlack mir gestern ja schon erklärt, das hatte ich ja auch schon verstanden. Auch nochmal Dank an SunBlack.

    Andreas
    Geändert von Andreas (30.07.2009 um 12:00 Uhr) Grund: Icon

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Newsliste in UL-Liste packen (news_simple)
    Von Nina im Forum Modifizierte Templates
    Antworten: 4
    Letzter Beitrag: 15.02.2017, 08:00
  2. JavaScript-Datei verkleinern und packen
    Von Russe im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 17.09.2010, 14:37
  3. Javascripts serverseitig in eine Datei packen?
    Von Psi im Forum Entwickler-Fragen
    Antworten: 13
    Letzter Beitrag: 09.07.2010, 09:14
  4. Kalender-Archiv Jahrweise in Ordner packen
    Von schueler im Forum Allgemeine Inhaltselemente
    Antworten: 3
    Letzter Beitrag: 03.12.2009, 21:37
  5. Wie Url in php abfragen?
    Von sonnenblume im Forum Entwickler-Fragen
    Antworten: 11
    Letzter Beitrag: 11.09.2009, 09:15

Lesezeichen

Lesezeichen

Berechtigungen

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