Hi,
im Backend kann man ja die Felder festlegen, nach denen die Suchergebnisse sortiert werden (z.B. oxtitle, oxvarminprice, etc.).
Allerdings werden dann immer alle Möglichkeiten sowohl ab- als aufsteigend angezeigt, was ja auch normalerweise sinnvoll und wünschenswert ist.
ABER: Ich möchte z.B. die Auswahl “Bewertung” (oxrating) ausschließlich absteigend anzeigen lassen. So dass die Artikel mit den besten Bewertungen oben stehen. Die umgekehrte Anzeige (aufsteigend) möchte ich hingegen komplett aus dem Template rausnehmen.
Hat jemand eine Idee wie ich das bewerkstelligen könnte?
Vielen Dank,
Thomas
Hi Thomas 
das ist einfach. Pass einfach dein Template an und nimm die aufsteigende Sortierung raus.
Im Standard Azure Theme ist die Sortierung wie folgt umgesetzt:
[{foreach from=$oView->getSortColumns() item=sColumnName}]
<li class="desc">
<a href="[{$oView->getBaseLink()|oxaddparams:"ldtype=$_listType&_artperpage=$_artPerPage&$_sortColumnVarName=$sColumnName&$_sortDirectionVarName=desc&pgNr=0&$_additionalParams"}]" [{if $oView->getListOrderDirection() == 'desc' && $sColumnName == $oView->getListOrderBy()}] class="selected"[{/if}]><span>[{ oxmultilang ident=$sColumnName|upper }]</span></a>
</li>
<li class="asc">
<a href="[{$oView->getBaseLink()|oxaddparams:"ldtype=$_listType&_artperpage=$_artPerPage&$_sortColumnVarName=$sColumnName&$_sortDirectionVarName=asc&pgNr=0&$_additionalParams"}]" [{if $oView->getListOrderDirection() == 'asc' && $sColumnName == $oView->getListOrderBy()}] class="selected"[{/if}]><span>[{ oxmultilang ident=$sColumnName|upper }]</span></a>
</li>
[{/foreach}]
Viele liebe Grüße,
indianer3c
Hi indianer3c,
danke für deinen Vorschlag, ist aber nicht ganz so einfach.
Und zwar möchte ich manche Felder nach wie vor auf- und absteigend anzeigen lassen, andere wiederum nur absteigend.
Konkret sollte das z.B. so aussehen:
- Name absteigend
- Name aufsteigend
- Preis absteigend
- Preis aufsteigend
- Bewertung absteigend
Hi Thomas,
da die Template Dateien über Smarty: PHP Template Engine bei OXID laufen kannst du dies problemlos mit einer Smarty Bedingung Prüfung abfangen
Wenn Variable $sColumnName ungleich oxrating,
dann zeige aufsteigende Sortierung an.
Viele liebe Grüße,
indianer3c
Danke, genau so.
Ich bin aber leider programmiertechnisch nicht so fit, um das hinzukriegen.
Wie würde denn die Codezeile am Beispiel oxrating konkret aussehen?
Danke,
Thomas
[{foreach from=$oView->getSortColumns() item=sColumnName}]
<li class="desc">
<a href="[{$oView->getBaseLink()|oxaddparams:"ldtype=$_listType&_artperpage=$_artPerPage&$_sortColumnVarName=$sColumnName&$_sortDirectionVarName=desc&pgNr=0&$_additionalParams"}]" [{if $oView->getListOrderDirection() == 'desc' && $sColumnName == $oView->getListOrderBy()}] class="selected"[{/if}]><span>[{ oxmultilang ident=$sColumnName|upper }]</span></a>
</li>
[{if $sColumnName != 'oxrating'}]
<li class="asc">
<a href="[{$oView->getBaseLink()|oxaddparams:"ldtype=$_listType&_artperpage=$_artPerPage&$_sortColumnVarName=$sColumnName&$_sortDirectionVarName=asc&pgNr=0&$_additionalParams"}]" [{if $oView->getListOrderDirection() == 'asc' && $sColumnName == $oView->getListOrderBy()}] class="selected"[{/if}]><span>[{ oxmultilang ident=$sColumnName|upper }]</span></a>
</li>
[{/if}]
[{/foreach}]
Wow, doch so einfach! Hab irgendwie viel zu kompliziert gedacht…
Anyway, DANKE indianer3c, du bist der Beste!
Erledigt.