Update 3.9.2 -=> 3.9.3 - Template - CSS Dateien werden geleert.

  • Hallo zusammen,


    ich habe jetzt schon mehrfach ein Update von V3.9.2 auf 3.9.3 gemacht, musste aber immer wieder ein Backup einspielen.


    Das Problem ist, wenn ich die Seite nach dem Update zu ersten Mal lade, werden mir fast alle CSS-Dateien aus meinem Template geleert. Nur der Inhalt der Custom.css bleibt erhalten. hmm

    Kann sich jemand dieses Verhalten erklären?


    Vielen Dank

    Max

  • Die Dateien bleiben erhalten, sie werden nur geleert. Wenn ich sie dann von Hand wieder fülle, werden sie beim nächsten Aufruf erneut geleert.

    Momentan habe ich das Backup mit 3.9.2 wieder laufen. Ich müsste mal zum Testen eine zweite Instanz erstellen!


    Der Hoster ist lima-city.de und da Template ist JoomShaper Finance.

  • Wenn alles aktuell ist, hast du vermutlich im Framework/Template etwas verstellt? Schau mal nach Einstellungen wie Compiler / Caching usw. !

    In anderen Systemen kam es schon vor, dass Seiten ausgeliefert wurden, obwohl die CSS-Dateien noch nicht generiert wurden. Weiß jetzt aber nicht wie dein Framework arbeitet und was damit so alles möglich ist. Von daher ist das jetzt geraten.

  • Vielen Dank für eure Hinweise!


    - Ist das Template aktuell - Für das Template gibt es neuerdings ein Update auf 1.1 - ich habe aber leider keine aktive Lizenz mehr.

    - Das trifft auch für den SP Pagebuilder zu, Installiert ist v.3.3.2

    - Helix 3 ist aktuell


    Ich habe Fehler berichten aktiviert und bekomme nach dem Update zu Joomla 3.9.3 folgende Fehler angezeigt:


    Warning: Invalid argument supplied for foreach() in /home/html_dev/plugins/system/helix3/core/helix3.php on line 864

    Warning: implode(): Invalid arguments passed in /home/html_dev/plugins/system/helix3/core/helix3.php on line 942


    Ich muss mal schauen was da gemacht wird.


    Vielen Dank erstmal!

  • Das hängt irgendwie mit den Webfonts im Helix3-Framework zusammen.

    Die Webfonts.json im Template-Ordner enthielt nur ein paar Datensätze. Meine verwendete Font (Lato) fehlte. Ich habe die Json-Datei zusammen mit den geleerten Css-Dateien aus dem Backup wiederhergestellt und damit verschwanden die PHP-Fehler auf der Website und alles (bis auf die Font, wird nun wieder korrekt dargestellt.


    Mir ist dann aufgefallen, dass es im Admin-Panel in der Template-Konfiguration -> Typography, auch noch jede Menge PHP-Fehler gab und man konnte keine Schriftart mehr definieren:


    - Notice: Trying to get property 'items' of non-object in /home/html_dev/plugins/system/helix3/fields/typography.php on line 33

    - Warning: Invalid argument supplied for foreach() in /home/html_dev/plugins/system/helix3/fields/typography.php on line 53

    - Notice: Trying to get property 'variants' of non-object in /home/html_dev/plugins/system/helix3/fields/typography.php on line 78

    - Warning: Invalid argument supplied for foreach() in /home/html_dev/plugins/system/helix3/fields/typography.php on line 78

    - Notice: Trying to get property 'subsets' of non-object in /home/html_dev/plugins/system/helix3/fields/typography.php on line 100

    - Warning: Invalid argument supplied for foreach() in /home/html_dev/plugins/system/helix3/fields/typography.php on line 100


    In der Recherche ist mir aufgefallen, dass die Funktion 'JFile' nur 8192 Byte der Webfonts.json Datei einließt!?


    Testhalber habe ich dann die PHP-Datei wie folgt angepasst:

    PHP: plugins/system/helix3/fields/typography.php
        if(file_exists( $template_path )) {
          //$json = JFile::read( $template_path );
          $json = file_get_contents( $template_path );
        } else {
          // $json = JFile::read( $plugin_path );
          $json = file_get_contents( $plugin_path );
        }

    Erstaunlicherweise funktioniert jetzt alles! Unklar ist mir aber, warum JFile nur 8192 Bytes einließt!?

  • Ich habe jetzt noch mal ein Backup (v.3.9.2) eingespielt und das Template, Helix und den SP Pagebuilder auf die letzte Version aktualisiert -> Alles funktioniert!

    Danach habe ich das Update auf v.3.9.3 gemacht-> gleiche Fehler wie oben, die Methode JFile ::read liefert nur 8192 Bytes zurück und zerstört damit das Layout und andere Dinge...


    Nun testete ich diese Funktion read noch mal global, auch hier kommen nur 8192 Bytes zurück.

    PHP: mod_test.php
    $test = JFile::read('test.txt');
    var_dump($test);

    Result: string(8192) "123456789012345...."


    Irgendwie denke ich, dass in der aktuellen Joomla Version etwas kaputt gegangen ist - mich wundert allerdings, dass das Problem sonst niemand hat :/

  • Sehr komisch, im letzten Update wurden ja keine Veränderungen an der Joomla Filesystem-Klasse gemacht.

    Damit meine Seite wie vorher läuft, musste ich Funktion read in dieser Klasse auf file_get_contents umstellen.

    Code: /libraries/src/Filesystem/File.php
    public static function read($filename, $incpath = false, $amount = 0, $chunksize = 8192, $offset = 0) 
    {
      return file_get_contents ($filename, $incpath, NULL, $offset);  // <--

    Die Funktion ist ja auch mit deprecated gekennzeichnet:

    @deprecated 4.0 - Use the native file_get_contents() instead.


    Hat jemand noch eine Idee, warum dieser Fehler bei mir auftritt?

  • Hallo,


    ich habe die PHP Version von 7.2.15 auf 7.3.2 umgestellt und nun funktioniert es wieder ?(


    Also Joomla 3.9.2 war noch ohne Probleme bei mir mit PHP 7.2 lauffähig und ab Joomla 3.9.3 brauch ich auf einmal PHP 7.3.

    Ich würde es ja gern auf der 7.3er lassen aber einige Module (z.B. SP Easy Image Gallery) funktionieren damit nicht korrekt. <X