JYAML Error: JDocumentHTML is not overwritten by JYAML

  • Hallo Forum,


    wir haben seit ein paar Wochen folgende Fehlermeldung auf unserer Website:

    "Error: JDocumentHTML is not overwritten by JYAML. Maybe an other externsion overwrites the class, too!


    Es wird auch nur dieser Text angezeigt, sonst nichts, keine anderen Seiten mehr aufrufbar.


    Komischerweise trat der Fehler auf, nachdem wir schon monatelang nichts mehr an der Website geändert hatten.

    Wenn ich den Fehler auf einem lokalen Webserver (XAMPP, Dateien & Datenbank geklont per Akeeba Backup/Kickstart) nachstellen möchte, tritt der Fehler nicht auf, Seite wird normal angezeigt.


    Der Fehler wird in Zeile 3033 der Datei \joomla\libraries\jyaml\jyaml.php geworfen:

    PHP
                $document     = JFactory::getDocument();
                $canPreRender = method_exists($document, 'setIsPreRender');
                if ( ! $canPreRender)
                {
                    $this->setError('JDocumentHTML is not overwritten by JYAML. Maybe an other externsion overwrites the class, too!');
                }


    Ich weiß nur nicht warum, oder was das dahinterliegende Problem ist.

    Bei einem Standard-Template, taucht das Problem nicht auf.

    Per Joomla ErrorReporting=Maximun kommen sonst nur ein paar deprecated PHP Hinweise.

    Andere PHP-Versionen beinflussen das Problem nicht.


    Kennt sich zufällig jemand mit JYAML aus oder hat sonst eine Idee?


    Joomla Version: 3.10.8 (aktuell)

    PHP-Version: 7.4

  • Per Joomla ErrorReporting=Maximun kommen sonst nur ein paar deprecated PHP Hinweise.

    Dann würde ich den Debug-Modus zusätzlich aktivieren:



    Läuft aber auf die Vermutung von Viviana hinaus.

  • In einer standard Joomla Installation gibt es keine jyaml.php. Ich vermute, es kommt bei dir vom Template, dann musst du den Entwickler kontaktieren.

    Ja richtig. es handelt sich um das Template System von JYAML.

    http://www.jyaml.de/ -> die Seite scheint gerade ziemlich leer. früher sah die Seite so aus: http://web.archive.org/web/201…ation/skripte-stylesheets


    Ich hatte gehofft hier jemand zu finden, der sich mit JYAML auskennt, oder vielleicht sagen kann warum

    das fehlen der Methode "setIsPreRender" von JFactory::getDocument(); ein Problem darstellt,


    bzw. ob sich jemand erklären kann warum so etwas auf einmal fehlschlägt, obwohl nichts an dem Template / der Joomla Installation geändert wurde und es auf einer lokalen XAMPP Installation nicht fehlschlägt.


    Dann würde ich den Debug-Modus zusätzlich aktivieren:



    Läuft aber auf die Vermutung von Viviana hinaus.

    ok danke, habe ich so gemacht, musste auch die error.php umbenennen, weil sonst auch nichts anderes angezeigt wurde.

    dann kommt folgender Call-Stack:


    der mir aber auch nicht weiter hilft, weil nur auf die Stelle verweist, die ich schon kannte (Zeile 3033).

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von popaper871 mit diesem Beitrag zusammengefügt.

  • Plötzlich ist Website wieder erreichbar und funktioniert ohne Fehler wie vorher, ohne dass wir oder der Webhoster etwas gemacht hat. Sehr komisch.

    Eine Vermutung ist, ob das Template Grundgerüst JYAML während des Aufbaus eine externe Stelle aufruft, was dann fehlschlägt.

    Sowas lässt sich anhand der Code Zeilen, wo der Fehler auftritt (siehe oben), nicht erkennen.

    Ist euch so ein Verhalten bekannt? könnte das möglich sein?

  • Das lässt sich bei einem so veralteten Framework schlecht beurteilen. Der Fehler tritt jedenfalls aufgrund eines internen Vorgangs auf, soweit ich das im Code sehen kann. Hab das Framework noch auf Halde rumliegen.


    Das Framework lädt eine Klasse, die eine Joomla-eigene Klasse extended (erweitert) und stellt dann fest, dass das nicht geklappt hat, weil eine Methode, die dann eigentlich drinnen sein sollte, nicht drinnen ist.


    Theoretisch kann da auch einfach z.B. ein Plugin (aber auch andere erweiterungen) dazwischenpfuschen, die die besagte Joomla-Klasse ebenfalls und "zu radikal kapert".


    Oder eine veränderte Einstellung im Template, Plugin, sonstwo, gelöschter Cache, sonstwas, was dazu führt, dass die besagte Methode gar nicht mehr relevant ist. Schwer zu sagen.


    Kann nur sagen, dass ich ein pkg_jyaml_4.5.7.stable.j3x.zip auf aktueller Joomla 3 installiert habe und den Fehler nicht reproduzieren konnte. Hatte aber auch nicht viel Lust, zu tief einzusteigen ;) Auch, weil ich ja gar nicht weiß, was bei Euch am Laufen ist.