WebsiteBaker Community Forum

WebsiteBaker Support (2.13.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: sabo-! on August 04, 2023, 03:06:40 PM

Title: Fehler statt Inhalt: "missing head area"
Post by: sabo-! on August 04, 2023, 03:06:40 PM
Hallo zusammen,

auf einer Unterseite nutze ich das News-Modul (News v4.0.0). Vor dem Upgrade hat alles noch prima funktioniert. Seit WB 2.13.3 r166 mit PHP 8.0 erscheint statt dem Inhalt folgende Fehlermeldung:

There was an uncatched exception
malformed document created, missing head area
in line (67) of (/modules/output_filter/Filters/filterCssToHead.php):

Wie die Zeile in der Datei aussieht füge ich bei.

Wenn ich die Website auf ein Standard-Theme umstelle, erscheint zwar diese Fehlermeldung nicht, aber der Inhalt aus dem News-Modul wird trotzdem nicht angezeigt. Die anderen "normalen" Seiten schon.

Für Tipps wäre ich dankbar.

Viele Grüße
Sabo

Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sternchen8875 on August 04, 2023, 03:35:34 PM
Aufgabe dieses Filters ist eine HMTL-konforme Ausgabe des Codes. Dabei wird versucht, Teilbereiche wie z.b. eine Link zu einer CSS-Datei oder ein style-Element in den HEAD-Bereich der Seite zu befördern. Dafür wird das schließende </head> gesucht und unmittelbar davor der betreffende Code eingefügt. Gelingt dies nicht, erscheint der angezeigte Fehler.

Zur Behebung des Problem wäre es am Einfachsten, wenn man Einblick in die Seite inkl. der News-Inhalte hätte.
Betrifft dein Problem auchschließlich die News-seite, liegt nahe, das von dort solch auslösende Elemente dargestellt werden sollen.

Ein erster Schritt wäre erstmal die Validierung des Quellcodes mit funktionierender Ausgabe auf Seiten wie z.b. hier -> https://validator.w3.org/
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: crnogorac081 on August 04, 2023, 06:35:53 PM
Usualy this message appears to me when having  extra </div> closing tag so it closes body and htm tag bit there is still content. Inspect your output first
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sabo-! on August 14, 2023, 02:11:44 PM
Hallo,

also innerhalb der News-Beiträge sind keine div-Containter. Im Template scheinen alle div-Container geschlossen zu sein.

Das Ergebnis von validator.w3.org füge ich bei. Ich habe die betreffenden Stellen aus dem Template reinkopiert.

Innerhalb der News-Beiträge sind diese Tags enthalten: <br />. Wenn ich den Slash rauslösche, fügt das System diesen nach dem Speichern automatisch wieder ein.

Wie geschrieben, erscheint die Fehlermeldung nur auf den News-Seiten, auf den anderen Seiten nicht.

Hat noch jemand einen Tipp für mich, wie ich das lösen könnte?

Viele Grüße
Sabo


Title: Re: Fehler statt Inhalt: "missing head area"
Post by: Luisehahne on August 14, 2023, 03:53:40 PM
Irgendwie scheint in dem Inhalt von page_contenT() ein div zuviel zu sein. Wenn es am News liegt müsste ich das wissen, dann könnte ich das für die kommende Version fixen.

Ist das die Kommentarfunktion?

Gruss
Dietmar
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sabo-! on August 14, 2023, 04:05:13 PM
Hallo Diemar,

vielen Dank für Deine Antwort.
Möchtest Du über PN einen Login zur Website, um Dir das anzusehen?

Viele Grüße
Sabo
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sternchen8875 on August 14, 2023, 05:10:36 PM
was crnogorac081 meinte, wäre das Ausgabe-Template in den News-Optionen, das dort (jetzt) ein div zuviel dabei ist. Also ggf mal den Code des aktuell eingestellten Layout's posten

Quote
Innerhalb der News-Beiträge sind diese Tags enthalten: <br />. Wenn ich den Slash rauslösche, fügt das System diesen nach dem Speichern automatisch wieder ein.

liegt daran, das der Wysiwyg-Editor kein HTML5 kann, sondern nur HTML4
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sabo-! on August 14, 2023, 05:24:55 PM
Hallo zusammen,

ich füge die index-Datei des Templates bei.

Viele Grüße
Sabo
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sternchen8875 on August 14, 2023, 05:50:45 PM
Mißverständnis

benötigt wird dieses Template hier aus den News-Optionen (im Foto die Variante mit table, bei dir wohl mit einem div)

https://i.gyazo.com/df7361a6f884ffadff49c93e77efe548.png
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sabo-! on August 15, 2023, 11:33:02 AM
Jetzt habe ich verstanden. Anbei das Template aus den News-Optionen.
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sternchen8875 on August 15, 2023, 01:34:27 PM
da ist kein Fehler zu sehen - wäre auch zu einfach gewesen  :-(

Da du offensichtlich nicht möchtest, das jemand direkt und live drauf schaut, hab ich mir den Filter noch mal angeschaut. Vielleicht hilft dir das bei der Problemsuche

Der Outputfilter startet bei jedem Klick im Frontend, alles, was dort ausgegeben werden soll, muß diese Filter einmal durchlaufen. Dabei werden dann z.b. Mailadressen verschlüsselt, WbLinks aufgelöst oder Droplets abgearbeitet.
Der Filter CSStoHead sucht in der gesamten Ausgabe nach Codezeilen, die einen Link enthalten zu Dateien, die über diese Methode eingebunden werden, also nach der Kombination (\<link[^>]*?"(text\/css|stylesheet)"[^>]*?\/?\> oder eben nach einem abgeschlossenem style-Block, also <style[^>]*?\>.*?\<\/style\>, aber eben keine Inline-Style's

Findet er solchen Code in der Ausgabe, möchte er ihn in den Head-Bereich verschieben, wo er lt. Definition eben hingehört. dazu sucht der Filter die Struktur der index.php des genutzten Templates durch, wo es zwei mögliche Bereiche gibt, 1: innerhalb von <head></head>, dann 2. innerhalb von <body></body>
Jeder mögliche Treffer sollte dann direkt in die Zeile vor dem schließendem </head> geschoben werden.

Findet er aber diese zwei Bereiche nicht, weil z.b. die Code-Struktur der geplanten Ausgabe dieses unmöglich macht, erscheint der o.g. Fehler "malformed document created, missing head area", heißt: der Filter findet das schließende </head> nicht.

Ursachen dafür sind vielfältig, die einfachste und verständlichste Variante wäre das Einlesen einer zweiten Datei, die ebenfall eine HTML-Seitenstruktur aufweist. Eine andere Möglichkeit wäre die Verwendung von Uralt-Modulen oder Uralt-Droplets. Früher war es nämlich üblich, Links z.b. zu CSS-Dateien direkt in die Ausgabe eines Moduls zu schreiben. Stammt aus Zeiten, wo es die Funktion register_frontend_c ss() noch nicht gab. Gilt dann analog für Droplets.

Und dann wäre eben noch die Validität der Ausgabe. Jeder kennt es, jeder hat es schon mal gesehen: hab ich einen Syntax-Fehler in meinem Template (und das schließt die Ausgabe einzelner Blöcke mit ein, erscheint mein Inhalt oder auch nur eine Fehlermeldung an völlig anderer Stelle, abhängig vom Abbruch mal ganz oben oder ganz unten, aber oft eben "out of content" und damit außerhalb von <head> oder von <body>. Gutes Beispiel sind deine Validierungen, die auf nicht geschlossene Div's in Folge des Scriptabbruches hinweisen.
Je nach Stelle hat man dann auch mal zwei <head>-Bereiche

Als "Profi" hab ich nun meine Methoden, nach solchen Stellen zu suchen, die haben aber auch das Risiko, die gesamte webseite zu zerschießen, wenn sie falsch angewandt werden. Haben aber auch den Vorteil, das die Ursache in kürzester Zeit gefunden werden kann, ich denk, ich bräuchte keine 5 min mit einer Live-Ansicht, um das Problem zu finden.

Als Laie würde ich jetzt die Newsbeiträge deaktivieren. Zuerst das gesamte NewsModul über die Zeitsteuerung deaktivieren (Eingabe eines Datums aus der Vergangenheit in der Sektion-Verwaltung dieser Seite. Dann probieren

(https://i.gyazo.com/b5f008e9d93fd57bbdbcb5d0e2e5a783.png)

Lt Code der index.php des Templates verwendest du eine Abfrage auf Content im Block2. Lt Quellcode der Fehlerseite wird solch Block2 auch genutzt. Diesen Inhalt mal dem Block1 zuweisen (gleiches Bild). Auch wieder probieren.

Wird in einem der beiden Test's der Rest des Content angezeigt, ist der Fehler eingekreist, entweder auf das News-Modul oder auf den Code des Block2

Ist nun das News-Modul der auslöser, kannst du nach und nach jeden News-Beitrag inaktiv schalten. Einer davon wird das Problem auslösen (denk ich)



Title: Re: Fehler statt Inhalt: "missing head area"
Post by: hgs on August 15, 2023, 03:12:44 PM
Hallo Diemar,

vielen Dank für Deine Antwort.
Möchtest Du über PN einen Login zur Website, um Dir das anzusehen?

Viele Grüße
Sabo

Ich vermute dass ist überlesen worden, also sabo-!

eine PM an sternchen8875

und das Problem ist schnell erkannt und gebannt.
Title: Re: Fehler statt Inhalt: "missing head area"
Post by: sternchen8875 on August 15, 2023, 04:56:02 PM
PM ist angekommen, Problem ist gesehen und erkannt - PHP-Version und Code passen nicht zusammen

einfachste Lösung wäre das Hochsetzen der PHP-Version auf PHP 8.1.x. Vielleicht kannst du das kurzfristig arrangieren.

P.S.: die neueste WB-Version 2.13.4 ist ein paar Stunden vor dem Release. Die läuft dann mit allen PHP 8.2er Versionen.
Wenn du mir die FTP-Zugangsdaten zukommen läßt, würde ich dieses Upgrade dann gleich mit erledigen, aber dann sollte es schon eine PHP 8.2.x sein