Zum Inhalt springen

USER_INT gibt nichts aus, wenn $content zu lange wird

Erstellt am 27. Oktober 2009 · 4 Antworten · letzte Antwort am 27. Oktober 2009

Tags: PHP, Frage

_Andreas_ ·

Hallo zusammen,

in einer UserFunc baue ich mir eine Liste von Download-Links, die werden sortiert und gruppiert und dann auf der Seite in Tabellenform ausgegeben. Mittels jQuery können dann die einzelnen Kategorien ausgewählt werden.

Mittlerweile sind allerdings so viele Downloads zusammengekommen, dass der in der UserFunc erstellte $content-String über 90.000 Zeichen hat. Wenn das passiert, gibt Typo3 nur noch eine weiße Seite aus, es scheint also, als ob der Rendering-Prozess abstürzt. Leider wird auch keine PHP-Fehlermeldung ausgegeben.

Wenn ich den String beschneide

return substr($content, 0, 87818-)

wird die Seite wieder ausgegeben (natürlich ist dann der HTML-Code im Eimer, weil er mittendrin abschneidet). Ab 87819 funktioniert die Ausgabe nicht mehr.

Ich kann mittels debug-Funktion den kompletten $content ausgeben:

t3lib_div::debug($content);

Nur eben nicht in der Seite selbst. Ich hatte schonmal ein ähnliches Problem, wo nur eine gewissen Anzahl von Zeichen gecached werden konnten, den Cache habe ich auf dieser Seite zum Testen auch schon - erfolglos - deaktiviert.

Hier ist noch das Typoscript, welches die UserFunc einbindet.

includeLibs.user_des = fileadmin/scripts/user_des.php
lib.downloads = USER_INT
lib.downloads.userFunc = user_des->user_getdownloads
lib.downloads {
  path = TEXT
  path.value = fileadmin/data/Downloads/2009/
  filetypes = TEXT
  filetypes = jpg,gif,png,tif,xls,mp3,pdf,zip
}

Habt ihr eine Idee, wo hier das Problem liegen könnte, im Netz habe ich nichts zu einer "maximalen Content-Länge" gefunden.

Vielen Dank im Voraus
Andreas

_Andreas_ ·

Hallo,

wie immer nach dem Posten einer Frage, stolpert man über etwas Neues.

Das Problem ist offensichtlich sourceopt. Sobald ich die Extension deinstalliere, funktioniert die Ausgabe wieder.

Nach einigen weiteren Versuchen genügt offensichtlich ein "sourceopt.removeBlurScript = 0" in den Constants, um die Seite wieder zum Leben zu erwecken.

Ich werde mein Selbstgespräch hier weiterführen, falls ich herausfinde, was genau vorgeht. Es ist aber offensichtlich kein Problem von der UserFunc oder tscobj.

Viele Grüße
Andreas