Moin,
gelegentlich kommt es vor, dass man mehrere Paginierungen auf einer Seite haben möchte. Einen Forumsbetrag zu diesem Thema habe ich bisher gefunden. Andere Beispiele wären etwa:
- eine blätterbare Galerie in 'main' und eine News-Liste 'right/left'
- eine Isotope Produktliste in 'left', eine News-Liste 'right' und Kommentare in 'main'
- usw.
Zur Zeit (Contao 2.11.2 und früher) behandelt die Klasse Pagination und der Code zur Fütterung des Konstruktors JEDE Pagination gleich, erzeugt schlicht einen GET Parameter page=<Seiten-Nummer> und ignoriert, welches Modul das Blättern angefordert hat.
Das hat zur Folge, dass sämtliche Module der Seite mit Paginierung auch mit-blättern, obwohl sie gar nicht gemeint sind.
Meine Idee ist nun, dem Parameter "page" nicht nur die Seite, sondern auch die ID des Moduls mitzugeben, das das Blättern angefordert hat:
page=<Seiten-Nummer>:<Modul-ID>
Dazu müsste "Pagination.php" im Konstruktor (oder in Methode generate()) auch noch die Modul-ID akzeptieren und die Links passend erzeugen.
Ausserdem müsste der Code zur Vorbereitung der Pagination den Parameter "page" splitten, testen und ignorieren, wenn ein anderes Modul (ID) das Blättern angefordert hat. Und die eigene Modul-ID übergeben, falls erforderlich.
Damit aber andere bereits geblätterte Module wieder so angezeigt werden, wie der Frontend-User sie hinterlassen hat, bevor er klickte, ohne zusätzliche GET Parameter übergeben zu müssen, sollte der Blätter-Zustand jedes blätterbaren Moduls in der Session gespeichert und wieder hergestellt werden.
Was denkt Ihr?
LG, Georg
Lesezeichen