Sortierung einer Liste über eigene Werte

Sortieren Sie eine Weblication® Liste über eigene Werte, um die Reihenfolge der Listeneinträge individuell zu bestimmen.

Als Sortierkriterium für Weblication® Listen können Sie neben einer Sortierung nach Änderungsdatum, Pfad, etc. auch eigene Werte heranziehen. So können Sie eine Liste manuell über die individuellen Werte der Dateien sortieren.

Wählen Sie hierzu in den Listenoptionen im Auswahlfeld "Sortieren nach" die Option "Sortierungs-ID" aus.

Listenoptionen zur Sortierung (nach Sortierungs-ID)
Listenoptionen zur Sortierung (nach Sortierungs-ID)
Sollte die Auswahl im Projekt nicht vorhanden sein (z.B. bei älteren BASE 2.x Projekten), können Sie diese in aktuellen Projekten über die Projektkonfiguration hinzufügen.
Tragen Sie dies innerhalb eines Projekes wie folgt ein:
- Zusätzliche Sortiermöglichkeiten (xPath-Ausdrücke durch | getrennt):
/wd:extension/wd:object/wd:data[@id='orderID']/text()
- Zusätzliche Sortiermöglichkeiten (Angezeigte Werte durch | getrennt):
Sortierungs-ID

Standardmässig greift das Listen-Eement (list.standard.wItem.php) bei dieser Einstellung auf folgenden xPath zurück:

/wd:extension/wd:object/wd:data[@id='orderID']/text()

In den Dateien, die in die Liste eingelesen werden, muss dieses Feld somit vorhanden sein und mit einem entsprechenden Wert (z.B. 0001) befüllt sein.

Passen Sie das Template, das zur Pflege der Dateien verwendet wird, entsprechend an, um in den Dateien die gewünschten Werte zu befüllen. Am Beispiel der aktuellen Meldungen demonstrieren wir Ihnen das anhand des Objekt-Templates für die News.
Da sich der zu schreibende Wert innerhalb des wd:object Bereiches befindet, muss dieser in den Seiten noch nicht bestehen, sondern wird automatisch (neu) geschrieben (das sogenannte Reverse-Template-Modelling, siehe auch weiterführende Links).

Pflegefeld der Sortierungs-ID über die Objektmaske
Pflegefeld der Sortierungs-ID über die Objektmaske

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/objects/news.wObject.php mit orderID

...
  <div class="wEditorExtensionLabel" style="clear:both"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Sort-ID', 'Sortierungs-ID', 'Sort-ID')"/> <span>(<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Will be used for sort by ID', 'Wird verwendet, wenn die Liste nach Sortierungs-ID sortiert wird', 'Utilisé lorsque la liste est triée trier par-id')"/>)</span></div>
  <div class="wEditorExtensionValue"><!-- web:text:start validator="/^(\d{4})?$/" errorMessage="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Please insert correct sort-id', 'Bitte geben Sie eine korrekte Sortierungs-ID an!', 'Entrez un identifiant valide sort-id, s.v.p.')" />" editor="input" inputStyle="width:100px"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id='orderID']/text()"/><!-- web:text:stop --> <span>(<xsl:value-of select="php:functionString('wTexts::showTextUser', 'e.g.: 0001', 'z.B.: 0001', 'e.g.: 0001')"/>)</span></div>
...

Im Beispiel wird ein Validator für das Eingabefeld innerhalb der Bearbeitung verwendet. Entspricht der eingegebene Wert nicht dem Muster des regulären Ausdruckes, wird ein Hinweis ausgegeben.

Validator für das Eingabefeld

Nachfolgend Beispiele für einen Validator des Eingabefeldes:

  • /^(\d{4})?$/
    Das Feld muss dem angegebenen regulären Ausdruck entsprechen (z.B.: validator="/^(\d{4})?$/" prüft auf eine vierstellige Zahl (z.B. 0001)) oder leer sein.
    Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann.
  • /^\d{4}$/
    Das Feld muss dem angegebenen regulären Ausdruck entsprechen (z.B.: validator="/^\d{4}$/" prüft auf eine vierstellige Zahl (z.B. 0001)).
    Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann.

 

FAQs
Wie kann ich eine Weblication® Liste nach eigenen Werten sortieren?
Wählen Sie in den Listenoptionen im Auswahlfeld **"Sortieren nach"** die Option **"Sortierungs-ID"** aus. Damit können Sie die Reihenfolge der Listeneinträge anhand eines individuellen Feldes in den Dateien bestimmen.
Welche Einstellung muss in den Listenoptionen für die Sortierung nach eigenen Werten gewählt werden?
In den **Listenoptionen** muss unter **"Sortieren nach"** die Option **"Sortierungs-ID"** ausgewählt werden, damit die Liste nach der benutzerdefinierten Sortierungs-ID sortiert.
Was kann ich tun, wenn die Auswahl "Sortierungs-ID" im Projekt nicht vorhanden ist?
Falls die Auswahl im Projekt nicht vorhanden ist (z.B. bei älteren BASE 2.x Projekten), fügen Sie die zusätzlichen Sortiermöglichkeiten über die **Projektkonfiguration** hinzu. Dazu kann z.B. folgender xPath-Ausdruck verwendet werden: / wd:extension / wd:object / wd:data[@id='orderID']/text()
Welche zusätzliche Sortiermöglichkeit (xPath) wird für die Sortierung nach Sortierungs-ID verwendet?
Standardmäßig greift das Listen-Element bei dieser Einstellung auf folgenden xPath zurück: / wd:extension / wd:object / wd:data[@id='orderID']/text()
Welches Feld muss in den Dateien vorhanden sein, damit nach "Sortierungs-ID" sortiert werden kann?
In den Dateien, die in die Liste eingelesen werden, muss das Feld **orderID** vorhanden sein und mit einem passenden Wert befüllt werden (z.B. **0001**).
Wie pflege ich die Werte für die Sortierungs-ID in den Dateien?
Passen Sie das Template an, das zur Pflege der Dateien verwendet wird, sodass in den Dateien der gewünschte Wert im **wd:object**-Bereich (Feld **orderID**) befüllt wird. Im Kontext wird dabei das **Reverse-Template-Modelling** genutzt, wodurch der Wert automatisch neu geschrieben wird.
Wie funktioniert das Reverse-Template-Modelling bei der Pflege der Sortierungs-ID?
Da sich der zu schreibende Wert innerhalb des **wd:object**-Bereichs befindet, muss er in den Seiten bereits nicht existieren. Der Wert wird automatisch beim Schreiben der Daten neu erzeugt/aktualisiert (Reverse-Template-Modelling).
Wie könnte ein Beispiel-Template für die Eingabe der Sortierungs-ID aussehen?
Im Beispiel wird die Sortierungs-ID in einem Objekt-Template (z.B. für News) über ein Eingabefeld gepflegt, u.a. mit Referenz auf: /wd:extension/wd:object/wd:data[@id='orderID']/text()
Welche Validator-Regeln werden für das Eingabefeld der Sortierungs-ID genannt?
Genannt werden u.a. folgende Validator-Beispiele: - **/^((\d{4})?)$/\**: Erlaubt eine vierstellige Zahl oder leer (z.B. 0001) - **/^\d{4}$/\**: Erfordert zwingend eine vierstellige Zahl (z.B. 0001) Falls der Wert nicht passt, wird eine Hinweismeldung über das Attribut **errorMessage** ausgegeben.