v3.10.x MailTemplatesCacheBuilder

Thema wurde von Dominik Späte, 9. Dezember 2018 erstellt.

  1. Dominik Späte
    Dominik Späte Erfahrener Benutzer
    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.251
    Danke erhalten:
    1.141
    Danke vergeben:
    391
    #1 Dominik Späte, 9. Dezember 2018
    Zuletzt bearbeitet: 9. Dezember 2018
    Gambio Version: v3.10.0.1
    /system/core/caching/MailTemplatesCacheBuilder.inc.php

    Die Methode _loadModuleMailTemplates() läuft über gefundene MailTemplates-Verzeichnisse in den Modulen via
    foreach($langDirs as $langDir)
    In der Schleife wird diese Methode aufgerufen:
    $this->_loadMailTemplates

    und in dieser wiederum die Property mailTemplateArray gesetzt via
    $this->mailTemplateArray = $mailTemplateReader->getMailTemplateArray();

    Fällt schon jemandem was auf? Die Schleife kann man sich sparen, weil das mailTemplateArray bei jedem Durchlauf neu gesetzt wird und somit immer nur das letzte gefundene Modul-Verzeichnis berücksichtigt wird. Wenn ich nichts übersehe, kann also nur ein einziges neu installiertes Modul E-Mail-Templates verwenden.

    Das ist ziemlich übel. Ich würde meine Kunden gerne E-Mail-Vorlagen bearbeiten lassen und vor allem auch den MailTemplateManager etc. nutzen, aber so wird das nichts.

    B.t.w. wäre das Problem einfach mit
    $this->mailTemplateArray += $mailTemplateReader->getMailTemplateArray(); // ein läppisches +-Zeichen...
    oder
    $this->mailTemplateArray = array_merge($this->mailTemplateArray, $mailTemplateReader->getMailTemplateArray());
    behoben.

    Gibt es irgendwelche Versionen ab 3.5.1, in denen das nicht auftritt (sieht nicht so aus)? Ist die MailTemplatesCacheBuilder.inc.php ggf. mit 3.5.1 bis zur aktuellsten Version kompatibel (sieht schon so aus), so dass ich einfach die korrigierte Original-Datei ausliefern kann statt einen eigenen E-Mail-Installer schreiben zu müssen?

    Besten Dank im voraus!

    Edit: Die Fragen haben sich erübrigt. Mit ein paar Stunden Abstand kommt man dann auch auf die Idee eines Overloads. Das Problem ist aber immer noch übel und kann zu viel "Euer Modul funktioniert nicht" bei unbescholtenen Modulentwicklern führen.