Content-Ersetzen vor Ausgabe

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Content-Ersetzen vor Ausgabe

Beitrag von rethus » Fr 23. Jul 2021, 13:25

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?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Content-Ersetzen vor Ausgabe

Beitrag von Faar » Sa 24. Jul 2021, 09:44

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.
Zuletzt geändert von Faar am Sa 24. Jul 2021, 10:02, insgesamt 1-mal geändert.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Content-Ersetzen vor Ausgabe

Beitrag von xmurrix » Sa 24. Jul 2021, 09:57

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Content-Ersetzen vor Ausgabe

Beitrag von Faar » Sa 24. Jul 2021, 10:04

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
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Content-Ersetzen vor Ausgabe

Beitrag von rethus » Do 19. Aug 2021, 06:33

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.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Antworten