Seite 1 von 1

Content-Ersetzen vor Ausgabe

Verfasst: Fr 23. Jul 2021, 13:25
von rethus
Hallo zusammen,

ich meine mich zu erinnern, das es in Contenido eine Möglichkeit gibt so eine Art "Pre-Render-Hook", zu nutzen.

Also den Content eine auszugebenden FE-Seite kurz vor der Ausgabe noch einmal zu verändern (z.B. um Platzhalter gegen bestimmte Inhalte zu ersetzen).

Kann mir jemand einen Tipp geben, wie das geht?

BTW: Gibt es eigentlich schon eine Lösung in Contenido um Mailadressen im Sourcecode für Bot's unlesbar zu machen?

Re: Content-Ersetzen vor Ausgabe

Verfasst: Sa 24. Jul 2021, 09:44
von Faar
Ja, gibt es und hab ich irgendwo auch schon mal programmiert.
Und Emergence hat das auch mal im alten 4.x gemacht, glaub noch mit einer config-after oder so.
Aber den Hook gibt es.
Ich guck mal.

Edit:
Ja, die alte Methode ist eine config.after.php, die laut Murat immer noch funktionieren sollte.
Da am Anfang folgendes:

Code: Alles auswählen

?<php
$output = ob_get_contents();
ob_end_clean();
Im $output ist dann der Code, der als Webseite ausgegeben werden soll, den kann man mit preg_replace bearbeiten.
Und hinterher einfach echo $output;

Mit Hook:
Contenido.Frontend.HTMLCodeOutput
Meine Funktion dafür heißt z.B. function cecFrontendHTMLProzessing($content)

Ich habe das über die Mandanteneinstellungen ein- und ausschaltbar gemacht.
if(strtolower(cEffectiveSetting::get('mailconvert','off'))=='true'){

Ja und dann gehts weiter mit preg_match_all und $pattern.

Und halt das übliche cec-include Gedöns um die eigene Datei einzubinden.

Re: Content-Ersetzen vor Ausgabe

Verfasst: Sa 24. Jul 2021, 09:57
von xmurrix
Hallo rethus,

es gibt die Hook "Contenido.Frontend.HTMLCodeOutput", die im Frontend vor der Ausgabe des HTML-Codes ausgeführt wird.

Dieser kann man eine Funktion registrieren, die dann ausgeführt wird. Eine allgemeine Anleitung gibt es unter:
https://docs.contenido.org/display/CONDEVE/Chain

Hinweis:
Es gibt auch die Einstellung "frontend.no_outputbuffer > idart", die eine kommaseparierte Liste der Artikelids enthalten kann, die von der Ausgabepufferung des Codes ausgeschlossen sind. Dann wird die Hook nicht ausgeführt.

Grüße
xmurrix

Re: Content-Ersetzen vor Ausgabe

Verfasst: Sa 24. Jul 2021, 10:04
von Faar
xmurrix hat geschrieben:
Sa 24. Jul 2021, 09:57
Hinweis:
Es gibt auch die Einstellung "frontend.no_outputbuffer > idart", die eine kommaseparierte Liste der Artikelids enthalten kann, die von der Ausgabepufferung des Codes ausgeschlossen sind. Dann wird die Hook nicht ausgeführt.
Das ist mir neu und klingt gut.
Grüße,
Frank

Re: Content-Ersetzen vor Ausgabe

Verfasst: Do 19. Aug 2021, 06:33
von rethus
xmurrix hat geschrieben:
Sa 24. Jul 2021, 09:57
es gibt die Hook "Contenido.Frontend.HTMLCodeOutput", die im Frontend vor der Ausgabe des HTML-Codes ausgeführt wird.
Vielen Dank xmurrix, werde ich mir mal ansehen.