Ein ArticlePage ist ein Hilfsobjekt, um dynamisch Shapes, die Artikel darstellen, in verschiedensten Mengen, Sortierungen und Filterungen einfach erhalten zu können. Somit muss nicht für jeden einzelnen Shop eine eigene Sortier-, Filter- und Paging-Logik geschrieben werden.
Ein ArticlePager enthält eine Menge von Shapes, die er ordnet, filtert, zu Seiten zusammenfasst und ausliefert. Diese Menge an Shapes kann ihm per Konstruktor übergeben werden oder auch zur Laufzeit gesetzt werden. Auch können zur Laufzeit verschiedene Sortier- und Filterparameter gesetzt werden.
Zu beachten ist, dass jedes Setzen eines geänderten Werts eine interne Neuordnung der zugrundeliegenden Artikelliste bedeutet. Dies kann bei häufiger Anwendung und vielen Artikel durchaus in der Performance spürbar werden, sodass sich empfiehlt das Neusetzen der Parameter auf so wenige Stellen wie nötig zu beschränken.
Ein ArticlePager liefert immer im ViewMode die veröffentlichten und im EditMode die aktuell dort vorhandenen Shapes. Das Übergeben eines EditModes ist nicht nötig, das kann das Objekt selbst regeln.
Der ArticlePager selbst ist so geschrieben, dass er auf falsche Parameterwerte immer noch mit einer sinnigen Ausgabe versucht zu reagieren. Dies dient der Robustheit, kann aber eine Fehlersuche bei der Entwicklung erschweren, wenn z.B. nach einem falsch geschriebenen Attribut sortiert werden soll.
Es gibt den Pager auch im Javascript.
Erzeugt ein neues Pager-Objekt.
Liefert die Anzahl Artikel pro Seite. 0 bedeutet alle auf einer Seite.
Wird ein negativer Wert gesetzt, wird 0 verwendet.
Gibt an, ob der Pager mit EditMode- oder ViewMode-Objekten arbeitet (Edit oder Published-Stände).
Der Konstruktor setzt diesen Wert automatisch auf den aktuellen Wert des Systems, jedoch kann dieser bei Bedarf nachträglich geändert werden.
Liefert den Bestand an Artikeln mit denen der Pager gerade arbeitet. Eine Sortierung nach den aktuellen Werten ist bei dieser Property nicht sichergestellt. Ist die Sortierung notwending, bitte GetAll() verwenden. BaseAmount dient nur der Information, was intern gerade gehalten wird und zum Setzen einer neuen Basismenge.
Beim Setzen werden Shapes, die keine Artikel sind, gefiltert. Diese werden also nie zurückgeliefert und verursachen keinen Fehler.
Wenn true, wird nach der vorgegebenen Sortierung absteigend sortiert, sonst aufsteigend.
Liefert bzw. setzt die Liste der Filteroptionen. Details hierzu unter FilterOptions.
Attribute, bzw. deren Namen, nach denen sortiert werden soll.
Zu beachten ist folgendes:
Info: Es wurde ursprünglich versucht, hier auf Attribut-Objekten zu arbeiten, dies erwies sich aber als wenig praktisch, da man sie nicht parat hat, daher wurden die Namen verwendet.
Liefert die Anzahl aller Artikel, die der Pager in der aktuellen Konfiguration (Filterung) beinhaltet.
Info: Entspricht GetAll().Count
Liefert die Anzahl Seiten, die der Pager mit der aktuellen Konfiguration hat.
Liefert die Artikel der aktuellen Seite.
Hinweis: Man kann mit den Funktionen NextPage, PreviousPage und GoToPage navigieren, d.h. der Pager merkt sich, auf welcher Seite er gerade steht.
Liefert die Artikel der nächsten Seite.
Liefert die Artikel der vorherigen Seite.
Gibt die Artikel der angeforderten Seite zurück.
Liefert eine bestimmte Menge von Artikeln ab einer gegebenen Position. Dies veranlasst den Pager nicht, intern zu dieser Position zu gehen.
Liefert alle Artikel im Pager unter Beachtung aller eingestellten Filterungs- und Sortieroptionen.