Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Speicherüberlauf(?) bei vielen Galerien-Inhaltselementen #5982

Closed
Samson1964 opened this issue Jul 17, 2013 · 4 comments
Closed

Speicherüberlauf(?) bei vielen Galerien-Inhaltselementen #5982

Samson1964 opened this issue Jul 17, 2013 · 4 comments

Comments

@Samson1964
Copy link

Contao 3.1.1
Ich habe mit der Erweiterung photoalbum2 insgesamt 19 Galerien per "Speichern und neu" eingebaut. Als ich zurück zur Übersicht der Galerien ging ("Speichern und zurück") meldete sich Contao nach max. 10 Sekunden mit einem 500er Fehler ab. Im Error-Log meines Servers bei domainfactory steht "Premature end of script headers..." - leider ohne Angabe bei welcher Speichergröße PHP rebelliert. Ich habe in der php.ini den Wert von memory_limit von anfangs 300 MB auf letztendlich 2000 MB hochgesetzt. Hat nichts genutzt: Die Vorschaufunktion der Inhaltselemente im Backend scheitert trotzdem. Ich denke mal das trifft generell auf die Vorschaufunktion zu, egal ob in der Erweiterung oder in Nachrichten oder Artikeln.

Ich habe anschließend über die Datenbank eine Galerie in ein anderes Album gepackt (pid geändert), weil ich diese im Verdacht hatte, sie würde den Fehler verursachen (es gab vorher ein Problem bei einigen Bildern, wohl bei der Thumbnail-Erstellung). Daran lag es aber nicht.

19 bzw. 18 Galerien mit rund 1000 Dateien bei insgesamt über 500 MB sind wohl einfach zuviel für die Vorschaufunktion. Diese Funktion ist zwar recht nützlich, aber für Galerien würde ich sie gern abschalten können, zumal der Ladevorgang der Vorschau schon recht lange dauert.

@leofeyer
Copy link
Member

Ich sehe aber nicht, dass das ein Contao-Bug ist. Je größer das Projekt, desto höher die Anforderungen an die Hardware. Das ist nichts Neues.

@Samson1964
Copy link
Author

Was beim Dateimanager ging - eine Optimierung um Speicherprobleme bei der Synchronisierung zu umgehen - geht bei der Voransicht also nicht. Dann muß ich wohl selbst ran und Contao patchen.

@leofeyer
Copy link
Member

Falls Dir das gelingt, würde ich mich freuen, wenn Du Deinen Patch hier veröffentlichst.

@Samson1964
Copy link
Author

Ich habe mich auf die Suche gemacht und mit meinen eingeschränkten PHP-Kenntnissen eine Stelle gefunden, wo man die Anzeige von Galerien in der Backend-Vorschau unterbinden kann.

/system/modules/core/drivers/DC_Table.php
Zeile 3840:

$return .= '</div>'.$this->$strClass->$strMethod($row[$i]).'</div>';

ersetzen durch:

if($row[$i]["images"] || ($row[$i]["type"] == "gallery" && $row[$i]["multiSRC"]))
{
    $return .= '</div><b>Galerie:</b> '.$row[$i]["title"].'</div>';
}
else
{
    $return .= '</div>'.$this->$strClass->$strMethod($row[$i]).'</div>';
}

$row[$i] ist ein Array mit dem gerade aktivem Inhaltselement $i. Der Wert images wird wohl nur vom photoalbum2 gesetzt und enthält die Bildquelle. Alternativ wird auch noch geprüft, ob gerade das (nomale) Inhaltselement gallery am Wickel ist und die Bildquelle multiSRC gesetzt ist. In beiden Fällen wird dann nur "Galerie: " plus der evtl. Titel des Inhaltselements ausgegeben.

Funktioniert bei mir perfekt und ich kann endlich direkt im Backend mit den Fotoalben hantieren ohne einen 500er Fehler zu bekommen.

Als Anregung für den DCA: Boolean-Wert backend_preview oder so und bei false, keine Vorschau im Backend ausgeben. Das wäre ein Fortschritt für Erweiterungsentwickler, die viel mit Bildern hantieren.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants