Servus,
bodil hat geschrieben: ↑Sa 21. Sep 2019, 20:52
... M.E. nach wäre stattdessen richtig:
Code: Alles auswählen
$containerCmsValues = $this->_processCmsValueTags($containerNr, $containerConfigurations[$containerNr]);
Nein, das ist ein bisserl anders gehändelt, darum bitte diesen Vorschlag so nicht übernehmen.
bodil hat geschrieben: ↑Sa 21. Sep 2019, 20:52
Und ja, ich würde sagen, das ist ein Bug.
Dem kann ich mich aber anschließen. Auch ich würde sagen es ist ein Bug.
Zum fixen muss man sich aber besagtes Handling nochmals etwas genauer anschauen und gegebenenfalls die Klassenmethoden etwas anpassen bzw. umbauen.
Dabei ist mir in der gleichen Datei dann auch noch das hier
Code: Alles auswählen
// CON-1536 strip comments from module code
// regex is not enough to correctly remove comments
// use php_strip_whitespace instead of writing own parser
// downside: php_strip_whitespace requires a file as parameter
$tmpFile = dirname(cRegistry::getBackendPath()) . '/' . $cfg['path']['temp'] . uniqid('code_gen_') . '.php';
if (cFileHandler::exists(dirname($tmpFile))
&& cFileHandler::readable(dirname($tmpFile))
&& cFileHandler::writeable(dirname($tmpFile))) {
if (false !== cFileHandler::write($tmpFile, $this->_moduleCode)) {
$this->_moduleCode = php_strip_whitespace($tmpFile);
// delete file
cFileHandler::remove($tmpFile);
}
}
ins Auge gefallen. Um Modulcode von Whitespaces und Kommentaren zu bereinigen, wird hier für jede eingelesene Moduldatei eine temporäre Datei angelegt und diese dann per PHP-Funktion
php_strip_whitespace() wieder eingelesen. Performance-technisch ist das aber, bei vielen Modulen, wohl nicht die beste Lösung. Auch hier sollte nochmal ein Auge drauf geworfen werden.
Gruß aus Franken
Ortwin