Manuelle Sortierung in Listen

Nutzbar ab: Version 007.001.048.000

07. Jun 2013

Drag and Drop Sortierung in Listen nutzen.

Die manuelle Listensortierung per Drag & Drop ermöglicht Ihnen zusätzlich zur automatischen Sortierung eine individuelle Sortierung einer Weblication® CMS Liste. Alle nicht manuell positionierten Listeneinträge bleiben dann weiterhin nach dem primären Sortierkriterium sortiert. Die manuelle Sortierung heben Sie einfach per Mausklick wieder auf.

Diese manuelle Sortierung in Listen erfordert innerhalb des verwendeten Listen Darstellungstemplates einen WSL-Aufruf (wsl:moverListEntry). Diesen finden Sie in den meisten Listen Darstellungstemplates bereits standardmässig eingebunden (z.B. default.wFilelist.php, compact.wFilelist.php, etc.).
Zusätzlich müssen Sie im Listentemplate definieren, dass man die manuelle Sortierung aktivieren darf, was über die erweiterte Bearbeitungsmaske (editmaskExtended) des Listen Darstellungstemplates erfolgt (showInputManualOrder:yes).

Beispiel: Auszug aus default.wFilelist.php zum wsl:moverListEntry

...
  <wd:editmaskExtended>
    <![CDATA[
      <!--wOptionsEditmaskExtended="showInputAllowSelf:yes;showInputOrder:yes;showInputLimits:yes;showInputLimitFrom:yes;showInputAllowOrderParam:yes;showInputAllowEntriesPageByParam:yes;showInputManualOrder:yes;showInputNoEntries:yes"-->
      ...
     ]]>
  </wd:editmaskExtended>
  ...
  <xsl:template match="/wFilelist">
  ...
    <xsl:choose> 
      <xsl:when test="files/file">    
       <ul class="listDefault listDefault_var{//data[@name = 'layout']/text()}">
  
          <!-- Schleife über alle Dateien -->
          <xsl:for-each select="files/file">
          ...
            <li class="listEntry">
            ...
              <xsl:if test="not($wIsInEditor) and php:functionString('wRequest::getParameter', 'wIsEmbeddedLanguage') != '1' and ($wUsertype = 'admin' or $wUsertype = 'standard')">
                <wsl:moverListEntry path="{@path}" manualOrderId="{/wFilelist/wData/data[@name = 'manualOrderId']/text()}" manualOrderIdEntry="{wd:extension/wd:object/wd:data[@id = 'manualOrderId']/@*[name() = concat('list-', /wFilelist/wData/data[@name = 'manualOrderId']/text())]}"/>
                ...
...
...

In eingeloggtem Zustand sieht dies bei entsprechender Berechtigung wie folgt aus:

Listensortierung per Drag&Dropzoom
Listensortierung per Drag&Drop

Wichtige Hinweise

  • Das XSLT Template für die Liste (list.standard.wItem) muss in aktueller Version installiert sein, da sie über diese die manuelle Sortierung aktivieren können.
  • In eine Liste eingelesene Binärdateien müssen eingecheckt sein, damit hierzu ein Anfasser zum Verschieben ersichtlich wird.
    Hintergrund: In jeder eingelesenen Datei wird im Objekt eine "manualOrderId" pro Liste hinterlegt.

Entwicklerbereich Weblication® CMS - © Scholl Communications AG