WebsiteBaker Community Forum

WebsiteBaker Support (2.10.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: masju on July 28, 2017, 01:20:41 PM

Title: Problem mit Output-Filter
Post by: masju on July 28, 2017, 01:20:41 PM
Hallo liebe Forumsgemeinde,

folgendes Problem habe ich seit Umstellung von Version 2.8.3 auf 2.10.0. Ich habe einen Code-Abschnitt, in dem ich eine externe Datenbank abfrage und das Ergebnis in einer Tabelle ausgebe. Irgendetwas scheint den neuen Output-Filter zu stören, denn ich erhalte eine Fehlermeldung:

Code: [Select]
There was an uncatched exception
malformed document created
in line (54) of (/modules/output_filter/filters/filterCssToHead.php):

Leider hilft diese Meldung überhaupt nicht, wenn man auf der Fehlersuche ist, denn der komplette Output danach wird unterdrückt.  Auch das Error-Log ist leer.

Ich weiß, dass es hier im Forum wenig hilft, wenn man keinen Code postet der nicht laufen soll, aber ich habe das Gefühl, dass hier ein Fehler im Output-Filter vorliegt, denn die Tabelle kann ich stückweise korrekt ausgeben. Schon die doppelte Ausgabe einer Tabellenspalte mit Link scheitert aber. Seltsam.
Gibt es einen Trick, den Filter temporär komplett zu deaktivieren oder eine aussagekräftigere Fehlermeldung zu erhalten?

Grüße, masju
Title: Re: Problem mit Output-Filter
Post by: Gast on July 28, 2017, 01:29:11 PM
Ursache ist hier dein Template im Zusammenspiel mit dem auf der Seite benutztem Modul. Der besagte Filter CSStoHead soll CSS-Dateien, die per Link <link ....> eingebunden sind in den head-Bereich verschieben, findet aber das Ende des <head>-Bereichs nicht.

Schau dir deinen Code mal an auf diesen Bezug hin
Title: Re: Problem mit Output-Filter
Post by: masju on July 28, 2017, 01:53:35 PM
Hallo jacobi,

ja, das hatte ich auch schon gedacht. Aber das Template funktioniert ohne den Code-Abschnitt problemlos.
<head> und </head> sind nur einmal vorhanden.
Wenn ich die Ausgabe des PHP-Scripts zeilenweise aus- und einschalte klappt die Ausgabe ebenfalls.
Wenn ich nur irgendwo einen Hinweis bekommen könnte, woran der Filter nun konkret scheitert...

Gruß, masju
Title: Re: Problem mit Output-Filter
Post by: Gast on July 28, 2017, 02:02:37 PM
dann sollte klar sein, das das Problem im Code und nicht im Filter liegt  :wink:

schick mir den Code bitte mal per PN oder Mail
Title: Re: Problem mit Output-Filter
Post by: masju on July 28, 2017, 05:42:06 PM
Hab Dir eine PM geschickt und inzwischen aber auch schon die Lösung :-):

Durch herumprobieren habe ich herausgefunden, dass der Output-Filter Probleme bekommt, wenn er auf große Strukturen stößt. Bei mir war es besagte Tabelle mit übe 1000 Zeilen, bis ca. 800 Zeilen war alles okay, darüber hinaus -> Fehlermeldung

Habe das Problem nun gelöst, indem ich ein LIMIT setze.

Danke für die Hilfe!

masju
PS: eventuell muss der Output-Filter korrigiert werden :roll:?
Title: Re: Problem mit Output-Filter
Post by: Gast on July 29, 2017, 12:10:03 PM
Ja, das Problem wurde schon öfter angetragen. Ich hatte da ebenfalls schon mehrere Dispute deswegen. Von Entwicklerseite her gibt es dieses Problem nicht, obwohl ich das Problem dank Zusendung von User-Backups exakt nachstellen konnte.
Das Problem betrifft allerdings nicht nur WB, auch die Serverkonfiguration spielt hier mit rein, z.b. das Memory-Limit, die Arbeitsspeichergröß e, diverse Zeiten, die zur Ausführung benötigt werden usw.
Allerdings läßt sich das Problem immer auch mit anderer Logik umgehen. Dein Beispiel, das mit anderen Feldern auch für andere User zu traf:

Du liest eine Zahl X an Datensätzen aus und bekommst eine Menge Y als Antwort zurück. In Y sind aber jede Menge Informationen enthalten, die du zur Ausgabe oder zum Durchsuchen in diesem Moment nicht benötigst. In einem Beispiel hatte ich einen Terminkalender, hier der ConcertCalendar mit Anzeige der Termine der letzten 10 Jahre, inkl. Termin-Details, einer unterschiedlich langen textlichen Beschreibung.
Mir persönlich fehlt der Sinn dafür, ALLE Termine, Konzerte oder auch Gottesdienste der letzten 10 Jahre auf einer Einzelseite darzustellen, inkl. ausklappbarer Itemdetails. Aber selbst, wenn ich jetzt z.b. alle Termine im letztem halben Jahr hätte und damit eine gewisse Aktualität besteht, würde ich dennoch versuchen, andere Lösungen zu finden, z.b. in dem ich nur Titel und Datum in meiner Liste lade und den Rest dann praktisch "onDemand", also nach Klick auf den Link. Eine andere Variante wäre dieses LIMIT, allerdings im Zusammenhang mit einer Seitenweiterschaltu ng. Ermittle die Anzahl der Items, teile sie durch eine Zahl Items pro Seite und baue dann eine Seitenweiterschaltu ng ein. Beispiel dafür findet man im Newsmodul. Hier wird jeweils nur die Anzahl an News geladen, die auf dieser Seite zugelassen ist, also z.b. 10 News plus Kurztext, beginnend bei News 40, endent bei News 49
Hakelig wird es, wenn man Sachen per JQuery und Auswahlliste begrenzen möchte, wie man es von diversen KFZ-Teileseiten kennt, zeige zuerst alle Hersteller, reduziere auf Motor XY, reduziere auf Baujahr, reduziere auf Hubraum usw. Ist alles eine Frage der Tabellenstruktur in der Datenbank und der Technik, die man zur Abfrage verwendet. Zur Erstellung der Liste reichen Stichwörter, Itemdetails läd man per Ajax nach. Beispiele dafür gibt es haufenweise im Web und es läßt sich auch in WB ohne Probleme verwenden,

Zur Deaktivierung des Filters hatte ich das hier Beschrieben -> https://forum.WebsiteBaker.org/index.php/topic,30407.msg211883.html#msg211883

allerdings können hier mögliche Nebeneffekte nicht ausgeschlossen werden. Ist aber auch gut möglich, das damit das Problem nicht gelöst ist, weil hier doch mehrere Filter nacheinander durchlaufen und sich die Masse der Daten im internen Zwischenspeicher mit jedem Durchlauf erhöht.
Title: Re: Problem mit Output-Filter
Post by: masju on August 07, 2017, 04:32:42 PM
Naja, den Filter deaktiviere ich natürlich lieber nicht. Und über den Sinn, 1.200 Datensätze auf einer Seite auszugeben brauchen wir auch nicht zu streiten  :wink:, aber es gibt tatsächlich Kunden, die wünschen das explizit so, dass sie ALLE Datensätze sehen (auf der argumentativen Sachebene kommt man da als Programmierer nicht weiter, wenn das Hauptargument "ich möchte es aber trotzdem so haben..." lautet  :-o :roll:).

Viele Grüße,
masju
Title: Re: Problem mit Output-Filter
Post by: Gast on August 07, 2017, 10:35:20 PM
Quote
Und über den Sinn, 1.200 Datensätze auf einer Seite auszugeben brauchen wir auch nicht zu streiten

Wir zwei sowieso nicht  :wink: :-D
Mir ist das fürchterlich egal. Eine Seite, die 5 Minuten zum Laden braucht, besuch ich nur einmal. Und damit keiner sein kostbares Volumen versurft, erzähl ich es auch gern weiter   :wink:
Und als Dienstleister sag ich dazu: am Ende steht mein Name drunter und wenn die Seite 5 min läd, heißt es, was hat der denn gemacht. Von daher wird es dem Kunden fachlich und sachlich erklärt und wenn auch das nicht hilft, kann es gern wer anders machen ;-)

Mit dem LIMIT, das du oben erwähntest, kommst du ja auch nicht zur Vorgabe, diese 1200 Item auf einen Schlag anzuzeigen. Von daher würde ich das mit dem Auskommentieren des Filters schon einmal antesten. Der Aufwand ist minimal
Der Filter läßt sich auch über die Datenbank ausschalten (0 statt 1), kann dann aber auch nur dort auch wieder eingeschaltet werden.