Seite 1 von 1

HTML Output "strippen" / "komprimieren"

Verfasst: Sa 27. Jan 2007, 08:43
von hes
Moin,

ich möchte gerne über eine Variable im Mandantenverzeichnis den erzeugten HTML-Output von unnützen Zeichen bereinigen lassen. Ich finde aber die Stelle zur Template-Ausgabe nicht, an der ich ansetzen könnte.

Die Suche hier im Forum hat mir keinen Lösungsansatz gezeigt - aber evtl. habe ich auch nur mit falschen Suchwörtern gesucht. Würde mich freuen, wenn hier jemand mich auf den richtigen Pfad bringen könnte :-)

Was will ich?
Alle doppelte Leerzeichen, TABs, Zeilenumbrüche aus dem HTML-Code kurz vor dem HTML-Output ab dem <Body>-Tag entfernen, sodass der Quellcode kompakt, schmal und somit schneller über die Datenleitung übertragen wird. Dieses über eine Variable in Mandanteneinstellungen gesteuert, damit bei Fehler im HTML-Sourcecode auch mal kurz diese Funktion deaktiveren werden kann, um den Quelltext analysieren zu können.

An welcher Stelle in Contenido kann ich mein str_replace ansetzen - oder gibt's so eine Funktion schon irgendwo in Contenido? Ich habe dazu leider im Source nichts gefunden, wobei diese Funktion eigentlich ziemlich nützlich wäre.

Danke für die Hilfe...

Verfasst: Sa 27. Jan 2007, 09:47
von Dodger77
Komprimieren wäre schon der bessere Ansatz: also den Ouput per mod_gzip, mod_deflate (wenn man einen Apache nutzt) o.ä. zu komprimieren. Dafür könnte man natürlich auch eine PHP-Variante nutzen. Der Erfolg sollte recht ordentlich ausfallen.
Etwas in der Art habe ich hier mal gepostet:

http://www.contenido.org/forum/viewtopi ... 9786#89786

Allerdings würde es dann reichen folgende Änderungen durchzuführen (Zeilennummer bezieht sich auf die 4.6.15):

front_content.php (Zeile 884):

Code: Alles auswählen

			eval ("?>\n".$code."\n<?php\n");
ersetzen zu:

Code: Alles auswählen

      ob_start();
      eval("?>\n".$code."\n<?php\n");
      $exec_php_str = ob_get_contents();
      ob_end_clean();
		  
      $compressOutput = getEffectiveSetting('output', 'gzip', "false");
      if ($compressOutput == "true") ob_start(ob_gzhandler);
      echo $exec_php_str;
Nun kann man per System-/Mandanteneinstellung gzip-Komprimierung für das Frontend anschalten über:

Code: Alles auswählen

output  gzip  true

Verfasst: Sa 27. Jan 2007, 15:48
von HerrB
Ansonsten gäbe es m.W. auch noch einen Output-chain, den man via Plugin um eigene Funktionen erweitern kann. Vermutlich finden sich da unter docs/techref Informationen.

Gruß
HerrB

Verfasst: Sa 27. Jan 2007, 17:08
von Dodger77
HerrB hat geschrieben:Ansonsten gäbe es m.W. auch noch einen Output-chain, den man via Plugin um eigene Funktionen erweitern kann.
Die gibt es IMO noch nicht in der 4.6.15, deshalb habe ich ja auch mal eine gebaut (siehe Link oben). Da könnte man natürlich auch ansetzen.

Verfasst: Sa 27. Jan 2007, 17:34
von HerrB
Ah, dann muss ich das mal bei Gelegenheit einbauen... :wink:

Gruß
HerrB