Liefert Contenido Artikel aus, bindet es die js- und css-Dateien ein, die aus den Modulen des entsprechenden Templates zusammengetragen werden. Die Dateien heißen dann typischerweise cache/templatename.css oder cache/templatename.js.
Problematisch ist dabei, dass Änderungen an den Modul-Dateien oder auch das Hinzufügen neuer Module zwar zu neuem Code in diesen Dateien führt, Browser aber normalerweise keine Veranlassung sehen, diesen Dateien auch neu zu laden, falls es bereits eine ältere Version im Browser-Cache gibt.
Mein Vorschlag wäre hier, dem Dateinamen im HTML-Code eine Versions-Hash hinzuzufügen, der aus dem jeweiligen Inhalt der Datei resultiert.
Generiert wird die Url zu den Dateien in der Datei contenido/classes/module/class.module.handler.php in der Methode saveContentToFile():
Code: Alles auswählen
$url = $this->_cfgClient[$this->_client]['path']['htmlpath'] . $saveDirectory . '/' . $templateName . '.' . $fileType;
Code: Alles auswählen
if (($fileType == 'css' || $fileType == 'js') && $saveDirectory == 'cache') {
$url .= '?v=' . substr(md5($fileContent), 0, 5);
}
Aufgerufen wird diese Methode eigentlich nur aus der Datei classes/code_generator/class.code.generator.standard.php und nur für die css- und die js-Datei, weshalb man die if-Abfrage auch weglassen könnte.
Aber apropos class.code.generator.standard.php:
Die besagten Tags mit den Links zu den Dateien werden nur generiert, wenn in den Dateien auch etwas drinsteht. (Methode _generate()) Dabei wird die Stringlänge des potentiellen Dateinhalts abgefragt. Resultiert die Datei aber aus leere css- oder js-Dateien in den Modulen, ist der Dateninhalt nicht leer, da die (leeren) Dateien mit PHP_EOL verbunden werden. Im Ergebnis kann dann eine css-Datei eingebunden werden, die nur Zeilenumbrüche enthält, was sicher nicht sinnvoll ist. Mein Vorschlag wäre hier, die Zeile
Code: Alles auswählen
if (cString::getStringLength($this->_cssData) > 0) {
Code: Alles auswählen
if (cString::getStringLength(trim($this->_cssData)) > 0) {
Vielen Dank für eure Aufmerksamkeit.
Schönen Rest-Advent!
Bodil