Ich habe mir mal ein paar Gedanken gemacht zu der Einbindung von Erweiterungen, die an der Ausgabe des Frontends ansetzen. Beispiele dafür sind das Advanced Mod Rewriting von stese oder meine vpTransformationen. Wäre es nicht sinnvoll, dafür eine Chain einzubauen, die den Code, der durch eval() erzeugt wurde, dann noch ändern kann.
Das ließe sich dann für einen Haufen Sachen nutzen, z.B. auch für eine abschließende (X)HTML-Validierung mit libtidy o.ä.
Ich werde mir das mal anschauen und den Code dann hier posten, soweit das interessant sein sollte.
Chain für Frontend-Ausgabe
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Genau. Das wird ja zurzeit schon in einigen Erweiterungen genutzt.SkyBlader hat geschrieben:meinst du damit, den frontendoutput chain gesteuert zu machen, so das sich mode "anmelden" können, um dann der reihe nach den outputcode manipulieren zu dürfen ?
Die Idee dahinter ist, dass man durch die Nutzung des Contenido Extension Chainers Änderungen, die jetzt für solche Erweiterungen am Contenido-Code gemacht werden müssen, vermeiden könnte. Man packt dann einfach eine Chain in den Ordner "contenido/plugins/chains/". Diese wird dann auch nicht bei einem Update von Contenido überschrieben.
Man darf das sicher nicht überstrapazieren. Aber Output-Manipulationen in dem Rahmen von den genannten Modulen dürften IMO nicht so wild sein.MyAccount hat geschrieben:Kann mir allerdings vorstellen, dass man da schnell aus Performancegründen an die Grenzen des Machbaren kommt. Serielles Parsen nochmals parsen usw.
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Vorschlag zur Umsetzung
So, ich habe mich mit dem Thema ein wenig beschätigt und das läuft bei mir jetzt. Notwendige Änderungen (Zeilenangaben beziehen sich auf die 4.6.15):
front_content.php (Zeile 884):
ersetzen zu:
Und in der config.chains.php müsste man dann folgendes ergänzen:
Zusätzlich zur Manipulation des Outputs kann man nun auch per System-/Mandanteneinstellung gzip-Komprimierung für das Frontend anschalten über:
Das bringt eine ordentliche Reduzierung des übertragenen HTMLs, z.B. hier:
http://spielwiese.contenido-tutorials.de/vpguestbook/
von 37KB auf unter 6KB.
front_content.php (Zeile 884):
Code: Alles auswählen
eval ("?>\n".$code."\n<?php\n");
Code: Alles auswählen
ob_start();
eval("?>\n".$code."\n<?php\n");
$exec_php_str = ob_get_contents();
ob_end_clean();
$_cecIterator = $_cecRegistry->getIterator("Contenido.Frontend.OutputManipulation");
if ($_cecIterator->count() > 0)
{
while ($chainEntry = $_cecIterator->next())
{
$exec_php_str = $chainEntry->execute($exec_php_str);
}
}
$compressOutput = getEffectiveSetting('output', 'gzip', "false");
if ($compressOutput == "true") ob_start(ob_gzhandler);
echo $exec_php_str;
Code: Alles auswählen
/* Chain Contenido.Frontend.OutputManipulation
* This chain is called everytime the output is brought to the browser
*
* Parameters & order:
* string eval()'ed output from front_content.php
*
* Returns:
* string Returns manipulated output
*/
$_cecRegistry->registerChain("Contenido.Frontend.OutputManipulation", "string");
Code: Alles auswählen
output gzip true
http://spielwiese.contenido-tutorials.de/vpguestbook/
von 37KB auf unter 6KB.
Verschoben nach Bugs, damit ich es nicht übersehe. Sehr sinnvoll, da mod_rewrite von stese als Plugin realisiert werden soll...
Muss man sich natürlich noch ansehen, ob das ausreicht.
Gruß
HerrB
Muss man sich natürlich noch ansehen, ob das ausreicht.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
reicht nicht aus - aber das schreibe ich dir eh mal ne mail, um dir das ausmaß der korrekturen zu erläutern ;)
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel