Hilfe-Center

ArticlePager

Der ArticlePager über die Javascript-API funktioniert, was die Funktionen angeht, weitestgehend parallel zum ArticlePager auf serverseitiger Ebene.

Grundlegende Funktionsweise: Der Pager nimmt ein Konfigurationsobjekt entgegen über das seine Parameter initial gesteuert werden.
Über CONTAILOR.API.ArticlePager.create(params) muss dieses Objekt initial zugewiesen werden. Seine Werte können später einzeln verändert werden. 
Beim Anfordern von Seiten lädt der Pager diese vom Server nach und gibt ein Resultobjekt zurück. Mittels Callback-Funktionen kann dieses Result verarbeitet werden und daraus eine Darstellung am Client festgelegt werden.

Für Webseitenersteller gibt es mit dem Shape "ArticleListWithJS" eine vollständige Beispielimplementierung.

Parameter-Objekt für die Erzeugung

Untenstehend findet sich ein Beispiel, das alle verfügbaren Parameter verwendet.
Achtung! Dies ist kein an sich funktionierendes Objekt, außer man hätte genau die angegebenen IDs von Shapes und Pages, sondern soll einen Überblick darüber geben, was der Pager alles kann.
Die Parameter entsprechen namentlich denen, die auch bei der Erzeugung eines serverseitigen Pager-Objekts verwendet werden.

Copy

{
    CurrentPage: 1,
    ArticlesPerPage: 3,
    BaseAmount: [1,2,5,20,300],
    FilterOptions: {
        Boolean: [{
            AttributeName: 'isavailable',
            Value: true
        }],
        Decimal: [{
            AttributeName: 'price',
            Min: 0,
            Max: 500
        }],
        Integer: [{
            AttributeName: 'categoryint1',
            Min: 0,
            Max: 100
        },{
            AttributeName: 'categoryint2',
            Min: 1,
            Max: 6
        }],
        Page: [{
            FilterPages: [1,3,200]
        }],
        Text: [{
            AttributeName: 'description',
            Contains: 'mysearchtext',
            StartsWith: null,
            EndsWith: null,
            IsEqual: null
        }]
    },
    OrderByAttributeNames: [description, price],
    DescendingOrder: descending
}

Rückgabeobjekt zur Anzeige der Shapes

Da der Pager clientseitig keine Shape-Objekte liefern kann, wird dies mit Javascript-Objekten geregelt, die die Shapes und ihre Attribute darstellen. Sie können dann verwendet werden und in ein clientseitiges Tamplate zur Anzeige eingesetzt werden.

Insgesamt besteht dieses Objekt aus folgendem:

  • NumberOfPages: Gibt an, wie viele Seiten der Pager aktuell hat (1 bei keinem Ergebnis)
  • NumberOfArticles: Anzahl der gefundenen Artikel
  • Shapes: Array aller gefundenen Artikel-Shapes mit folgenden Eigenschaften:
    • ID
    • URL: Absolute URL zur Seite, die das  Shape enthält mit Anker zum Shape
    • Attributes: Repräsentiert alle Attribute. Je nach Typ kommen hier andere Werte zurück. Immer dabei ist AttributeName, der Name des Attributs und Value, der 1:1 dem Value-Wert des Attributs entspricht. Hinzu kommen z.B. die URL bei Datei-Typen, Platzhalter-Abmessungen bei Bildern, der Text bei einem Link, etc.
  • Params: Liefert 1:1 die aktuellen Parameter für den Pager. Wird sicher nicht immer gebraucht, kann aber bei Bedarf verwednet werden.

Beispiel:

Copy

{
    NumberOfPages: 5,
    NumberOfArticles: 42,
    Shapes: [{
        ID: 1,
        URL: 'https://mydomain/mypage#myshape',
        Attributes: [
            {
                AttributeName: 'price',
                Value: '0,99'
            }.
            {
                AttributeName: 'image',
                Value: '4',
                Image: {
                    URL: '/image/myurl.jpg',
                    AltText: 'myText',
                    PlaceholderWidth: 500,
                    PlaceholderHeight: 600
                }
            },
            {
                AttributeName: 'manual',
                Value: '10',
                File: {
                    URL: '/file/mymanual.pdf',
                }
            },
            {
                AttributeName: 'link',
                Value: '3',
                Link: {
                    URL: '/description?id=3',
                    Title: 'Beschreibung',
                    Text: 'Zur Detailansicht'
                }
            }
        ]    
    },
    {
        // nächstes Shape
    }]
    
    Params: {
        // gleiche Struktur wie die Parameter oben
    }
}

CONTAILOR.API.ArticlePager.create(params)

Hiermit wird ein neuer Pager erzeugt. Ein eventuell Bestehender wird überschrieben.
In params steht das oben beschriebene Objekt zur Erzeugung.

CONTAILOR.API.ArticlePager.currentPager

In dieser Variable kann der Stand des aktuellen Pagers abgefragt werden. In ihm findet sich die Struktur des Result-Objekts inkl. der Parameter.

Achtung: Das Objekt sollte nicht von Instanz-Code direkt gesetzt/bearbeitet werden, andernfalls kann für eine korrekte Funktionsweise keine Garantie übernommen werden.

CONTAILOR.API.ArticlePager.numberOfArticles()

Liefert die Gesamtzahl an Artikeln im Pager (nicht die aktuell angezeigten).

CONTAILOR.API.ArticlePager.numberOfPages()

Liefert die aktuelle Anzahl Seiten.

 

Allgemeine Hinweise zu allen folgenden Funktionen:

Jede der folgenden Funktionen hat eine Callback-Funktion und einen Callback-Parameter zur Verfügung, diese werden nicht bei jeder Funktion erneut beschrieben. Mit diesen Mitteln lassen sich die Ergebnisobjekte verarbeiten. Jede Callback-Funktion bekommt zwei Parameter: An erster Stelle steht das Ergebnis-Objekt des Pagers, dessen Struktur siehe oben unter Rückgabeobjekt zur Anzeige der Shapes. Als zweiter Parameter kommt der selbst angegebene Parameter, der mit "callbackParam" übergeben wurde. Dieser kann natürlich auch leer gelassen werden.

CONTAILOR.API.ArticlePager.getCurrentPage(callbackFunc, callbackParam)

Liefert eine Liste von Artikeln gemäß der aktuellen Spezifikation

CONTAILOR.API.ArticlePager.changeArticlesPerPage(value, callbackFunc, callbackParam)

Setzt die Anzahl an Artikeln pro Seite für den Pager und liefert eine entsprechende Liste an Artikeln zurück.

  • value: Anzahl an Artikeln pro Seite. Ungültige Eingaben (nicht numerische Werte, negative Zahlen, null, etc.) führen dazu, dass alles auf einer Seite kommt (als ob man dem Pager eine Artikelanzahl von 0 geben würde)

CONTAILOR.API.ArticlePager.changeBaseAmount(value, callbackFunc, callbackParam)

Setzt die Ausgangsmenge an Artikeln und liefert entspr. die Artikel.

  • value (Intger-Array der Shape-IDs): Die IDs der zu berücksichtigenden Shapes. Ohne Angabe von BaseAmount, werden alle Artikel des Shops verwendet.

CONTAILOR.API.ArticlePager.changeDescendingOrder(value, callbackFunc, callbackParam)

Setzt den Wert, ob ab- oder aufsteigend sortiert werden soll und liefert entspr. die Artikel.

  • value: Neuer Wert, ob auf- (false) oder absteigend (true) sortiert werden soll.

CONTAILOR.API.ArticlePager.changeFilterOptions(value, callbackFunc, callbackParam)

Setzt neue Filteroptionen und liefert entspr. die Artikel.

  • value: Neues Filteroptionen-Objekt. Aufbau siehe oben unter "Parameter-Objekt", Wert "FilterOptions".

CONTAILOR.API.ArticlePager.changeOrderByAttributeNames(value, callbackFunc, callbackParam)

Setzt Attribute, bzw. deren Namen, nach denen sortiert werden soll und liefert entspr. die Artikel.
 Zu beachten ist folgendes:
- Es wird zunächst nach dem ersten gegebenen, dann dem zweiten usw. sortiert
- Es kann maximal nach drei Attributen geschachtelt sortiert werden, werden mehr angegeben, werden die übrigen ignoriert
- Ungültige Attribute, Nothing-Einträge, etc. werden ignoriert
- Es kann nicht nach File-, Link-, Image- und Option-Attributen sortiert werden, solche werden auch ignoriert
- Mehrfachangaben des gleichen Attributs werden ignoriert, die erste Position greift

  • value (String-Array): Namen der Attribute, nach denen sortiert werden soll.

CONTAILOR.API.ArticlePager.nextPage(callbackFunc, callbackParam)

Liefert die nächste Seite des Pagers und setzt die interne aktuelle Position eine Seite nach vorne.

CONTAILOR.API.ArticlePager.nextPage(callbackFunc, callbackParam)

Liefert die nächste Seite des Pagers und setzt die interne aktuelle Position eine Seite nach vorne.
Gibt es keine nächste Seite, bleibt die Position wie sie ist.

CONTAILOR.API.ArticlePager.previousPage(callbackFunc, callbackParam)

Liefert die vorherige Seite des Pagers und setzt die interne aktuelle Position eine Seite zurück.
Gibt es keine vorherige Seite, bleobt die Position wie sie ist. Ungültige Eingaben führen zu Wert 0 bei Startposition (also ab Beginn) und 1 bei der Menge.

CONTAILOR.API.ArticlePager.goToPage(number, callbackFunc, callbackParam)

Geht zur angegebenen Seite. Existiert sie nicht, wird die größte Gültige verwendet. Negative oder nicht numerische Werte lassen die erste Seite liefern.
Die interne Position des Pagers wird entsprechend umgesetzt.

CONTAILOR.API.ArticlePager.getArticlesAt(startPos, amount, callbackFunc, callbackParam)

Liefert eine bestimmte Anzahl Artikel ab einer gegebenen Position. Gibt es nicht genug Artikel um "amount" zu erfüllen, kommen die noch
vorhandenen. Die Angabe nicht existenter Positionen führt zu einem leeren Ergebnis.

CONTAILOR.API.ArticlePager.getAll(startPos, amount, callbackFunc, callbackParam)

Liefert alle Artikel, die aktuell im Pager vorhanden sind.

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich.
Es ist ein technisches Problem aufgetreten. Bitte wenden Sie sich telefonisch oder per E-Mail an uns.