Ergebnis 1 bis 10 von 10

Thema: Rekursives Ersetzen von InsertTags

  1. #1
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard Rekursives Ersetzen von InsertTags

    Hallo zusammen,

    ich habe eine Tabelle, in der einige Felder/Zellen mittels InsertTags gefüllt werden. Nun soll diese Tabelle aber nur unter bestimmten Bedingungen überhaupt angezeigt werden. Dazu habe ich im Templates-Ordner eine PHP-Datei, die die Bedingungen prüft und dann die Tabelle mittels
    PHP-Code:
    echo $this->getContentElement(4711); 
    ausgibt. In diesem Fall werden die InsertTags in den Zellen nicht mehr geparsed. Liegt das daran, dass Contao 3.5 rekursives Ersetzen noch nicht beherrscht? Gibt es eine Möglichkeit das Parsen trotzdem zu erzwingen?
    Natürlich könnte ich die gesamte Tabelle über PHP ausgeben. Das möchte ich aber nicht. Das würde die redaktionelle Pflege der Tabelle erschweren.

  2. #2
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    \Controller::replaceInsertTags($this->getContentElement(4711)) 

  3. #3
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard

    @lomex
    Sorry für die späte Antwort. Irgendwas funktioniert bei mir gerade mit den E-Mail-Benachrichtigungen für abonnierte Themen nicht.

    Zitat Zitat von lomex Beitrag anzeigen
    PHP-Code:
    \Controller::replaceInsertTags($this->getContentElement(4711)) 
    Das funktioniert. Teilweise. Insert-Tags wie {{user::*}} werden auf diese Weise nun tatsächlich ersetzt. Ich habe aber auch Felder, die ihren Inhalt aus einem weiteren PHP-Skript mittels {{file::*}} beziehen. Das file-Insert-Tag wird weiterhin nicht ersetzt.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Wie sieht der Insert Tag aus?

  5. #5
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von w00dchuck Beitrag anzeigen
    Ich habe aber auch Felder, die ihren Inhalt aus einem weiteren PHP-Skript mittels {{file::*}} beziehen. Das file-Insert-Tag wird weiterhin nicht ersetzt.
    Du hast innerhalb Deines mit {{file::*}} eingebundenen Skriptes ein weiteres Skript, was mit {{file::*}} eingebunden wird? Ich stelle mir so ein rekursives Verknüpfen von Skripten ja relativ schwierig vor. Warum codest Du Dir nicht gleich ein richtiges Modul was die Aufgaben aller Deiner PHP-Skripte übernimmt?
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  6. #6
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wie sieht der Insert Tag aus?
    {{file::do_some_database_queries.php?value=abc}}


    Zitat Zitat von Samson1964 Beitrag anzeigen
    Du hast innerhalb Deines mit {{file::*}} eingebundenen Skriptes ein weiteres Skript, was mit {{file::*}} eingebunden wird? Ich stelle mir so ein rekursives Verknüpfen von Skripten ja relativ schwierig vor. Warum codest Du Dir nicht gleich ein richtiges Modul was die Aufgaben aller Deiner PHP-Skripte übernimmt?
    Nicht ganz. Ich habe eine Tabelle, bei der einige Zellen mit dem o.g. Insert-Tag {{file::do_some_database_queries.php?value=abc}} gefüllt werden. Und übergeordnet gibt es ein Skript 'show_table.php', das dazu dient diese Tabelle nur unter bestimmten Bedingungen auszugeben. Hört sich komplizierter an als es ist.

    Also: 'show_table.php' gibt die Tabelle als Inhaltselement aus und {{file::do_some_database_queries.php?value=abc}} füllt eine der Zellen der Tabelle.

    Ich denke mal drüber nach wie ein entsprechendes Modul strukturiert sein müsste.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Naja dann ist das doch genau so wie es Samson vermutet hat

  8. #8
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Naja dann ist das doch genau so wie es Samson vermutet hat
    Ja, letztlich läuft es auf eine solche Verschachtelung hinaus. Auch wenn dazwischen noch ein Inhaltselement ist.

    Ein Redakteur sieht aber nur die Tabelle und die Insert-Tags in den Zellen. Ihm ist es egal, ob die Tabelle letztlich angezeigt wird oder nicht.

  9. #9
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Als ich mich mit der Erweiterungsprogrammierung noch nicht auskannte, habe ich meine externen PHP-Skripte auch mit {{file::*}} eingebunden. Auf die Idee darin das Contao-Framework zu nutzen, z.B. für das Ersetzen von Inserttags, bin ich aber nie gekommen. Vielleicht, weil ich so einen Fall nicht hatte. Oder weil ich glaubte, es ginge nicht.

    Mittlerweile arbeite ich nur noch mit Erweiterungen: Über ein BE-Modul werden die Daten vom Redakteur gepflegt, mit einem FE-Modul oder einem Inhaltselement werden die Daten im FE ausgegeben. Da sich die Programmierung bis auf einige Spezialfälle gleicht, kopiert man später nur noch den Code anderer Erweiterungen und paßt den DCA an. So wie es Tristan Lins alias Tril in seinen YouTube-Videos vorgemacht hat.

    Dein Fall, was auch immer er für ein Problem lösen soll, schreit nach einer Erweiterung. Dann sparst Du Dir auch die file-Inserttags. Und vielleicht brauchst Du die anderen Inserttags wie user dann auch nicht mehr.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  10. #10
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    Als ich mich mit der Erweiterungsprogrammierung noch nicht auskannte, habe ich meine externen PHP-Skripte auch mit {{file::*}} eingebunden. […]

    Dein Fall, was auch immer er für ein Problem lösen soll, schreit nach einer Erweiterung. [...]
    Da kann und will ich nicht widersprechen. Wenn ich mein templates-Verzeichnis so anschaue, dann wird es ohnehin mal höchste Zeit, das „ein oder andere“ Skript in ein Modul zu packen.
    Ich habe zwar schon ein gutes Dutzend Module programmiert, hauptsächlich um bestimmte Hooks abzufangen, aber dem gegenüber stehen etwa 100 Skripte. Noch dazu könnte ich dann endlich mal die händisch angelegten Datenbank-Tabellen sauber über DCAs abbilden.

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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