Sortierung einer Kategorie aufheben

Hallo,
kann es sein, dass eine Sortierung die für eine Kategorie festgelegt wird nicht mehr entfernt werden kann?

Falls ja: gibt es eventuell schon Lösungen für dieses Problem?
Falls nein: wie wird die Standard-Sortierung wiederhergestellt? (für einen normalbenutzer)

Danke für eure Antworten :slight_smile:

https://bugs.oxid-esales.com/view.php?id=5241
Interessant wäre wie das gewünschte Verhalten sein sollte.

Naja eventuell eine Auswahlmöglichkeit: “sortierung aufheben”?

Ich hab momentan (hardcoded - somit nicht gut für zukünftige Updates) die Sortierung nach oxsort ermöglicht, wenn eine andere Sortierung da ist.
Über ein Modul lässt sich das ja nicht so schön lösen oder?

Hi Till,
…kannst du mal deinen Code posten? Oxsort ist die in Oxid manuell angelegte sortierung, oder?

Gruß
Beni

Sorry für die Threadarchäologie, aber mich würde das auch interessieren. Wie kann man dem Besucher die Möglichkeit geben, die gewählte Artikelsortierung wieder aufzuheben?

gemach, gemach … der Bug steht ja erst seit 2014 im bug-tracker :smiley:
als workaround kannst du unter Grundeinstellungen -> Einstellungen -> Artikel auch andere Sortierungen eintragen. Funktionieren aber auch teilweise im Flow nicht :smiley:

[QUOTE=patchwork.de;187841]gemach, gemach … der Bug steht ja erst seit 2014 im bug-tracker :smiley:
als workaround kannst du unter Grundeinstellungen -> Einstellungen -> Artikel auch andere Sortierungen eintragen. Funktionieren aber auch teilweise im Flow nicht :D[/QUOTE]

Hi patchwork.de, danke für die Antwort.

Diese Einstellung hab ich auch schon gesehen, nur leider passt das nicht ganz für das was ich vorhabe. Wenn ich da jetzt kein Riesenbrett vorm Kopf habe dann ist es so: der Benutzer kann zwar zwischen verschiedenen Sortierungen hin und her springen, aber nicht zur Standardsortierung zurückkehren, also nach der DB-Spalte oxarticles.oxsort.

Ich hab schon versucht, oxsort in dieser Einstellung einzutragen, das wird auch auf der Seite angezeigt, aber es scheint keinen Effekt zu haben.

Hintergrund ist, dass wir ein Skript haben, das die Artikel nach einem komplizierten Punktesystem sortiert und mein Vorgesetzter legt viel Wert darauf, dass die Kunden auch zu dieser Standardsortierung zurückkehren können.

Aber ich glaube, ich habe inzwischen selbst eine Quick-and-dirty-Lösung gefunden. In application/controllers/oxubase.php habe ich die Methode getUserSelectedSorting wie folgt angepasst:

    public function getUserSelectedSorting()
    {
        $aSorting = null;
        $oStr = getStr();
        $oConfig = oxRegistry::getConfig();
        $aSortDirections = array('desc', 'asc');

        $sSortBy = $oConfig->getRequestParameter($this->getSortOrderByParameterName());
        $sSortDir = $oConfig->getRequestParameter($this->getSortOrderParameterName());

        if ($sSortBy && oxDb::getInstance()->isValidFieldName($sSortBy) && $sSortDir
            && oxRegistry::getUtils()->isValidAlpha($sSortDir)
            && in_array($oStr->strtolower($sSortDir), $aSortDirections)
            && in_array($sSortBy, oxNew('oxArticle')->getFieldNames())
        ) {
            $aSorting = array('sortby' => $sSortBy, 'sortdir' => $sSortDir);
        } else if ($sSortBy === 'reset') {
            oxRegistry::getSession()->deleteVariable('aSorting');
        }

        return $aSorting;
    }

(Der else-if-Zweig ist neu)

Dann habe ich an geeigneter Stelle einen Link eingebaut, der den GET-Parameter listorderby=reset übergibt.

Kann man das so machen? Zumindest beim ersten Durchklicken scheint es zu funktionieren, allerdings ist PHP nicht gerade meine Muttersprache, daher weiß ich nicht, ob ich mir da nicht Probleme einhandle, an die ich momentan nicht denke.

1 Like

Klasse! Das Löschen der Session-Variablen ist die Lösung!

Habe noch in der sort.tpl als letzten Menüpunkt nach foreach ‘Standard’ eingebaut:

<li>
<a href=“[{$oView->getLink()|oxaddparams:“ldtype=$_listType&_artperpage=$_artPerPage&$_sortColumnVarName=reset&$_sortDirectionVarName=reset&pgNr=0&$_additionalParams”}]” title=“Standard”>Standard</a>
</li>