Veröffentlichungsdatum: 24. September 2019
Änderungsdatum: 13. Juni 2024
weblication cms listen sortierung manuell manual
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), siehe BASE Classic oder den Aufruf über die PHP-Framework Funktion wList::createXsltEditbuttons, siehe BASE (Mobile First). Diesen finden Sie in den meisten Listen Darstellungstemplates bereits standardmässig eingebunden (z.B. default.wFilelist.php, compact.wFilelist.php, etc.).
In einem BASE Classic Projekt müssen Sie zusätzlich im Listentemplate definieren, dass man die manuelle Sortierung aktivieren darf, was über die erweiterte Bearbeitungsmaske (editmaskExtended) des Listen Darstellungstemplates erfolgt (showInputManualOrder:yes). Die BASE Mobile First setzt dies schon im Standard über das Generieren der Editbuttons.
... <!-- Darstellung der Schaltflächen --> <xsl:template name="listEntryEditbuttons"> <wslPre:php><![CDATA[print wList::createXsltEditbuttons(array('context' => 'entry', 'showIfPublic' => true, 'showFilemanager' => false, 'allowObjectwizard' => true));]]></wslPre:php> </xsl:template> ...
... <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:
Sofern aufgrund individueller Listen-Varianten die Steuerungselement für die manuelle Sortierung (Anfasser bzw. Zielfläche) nicht (ganz) ersichtlich sind, können Sie individuell in der entsprechenden CSS-Listen-Variante darauf eingehen.
/* CSS-Klasse für den Anfasser zum Verschieben */ .wglListEntryMover {} /* CSS-Klassen für die Zielfläche */ .wglMarkerManualSort {z-index:999;position:relative;top:12px;left:12px;} .wglMarkerManualSortMo {z-index:999;position:relative;top:12px;left:12px;}