Zum Inhalt springen

Warenkorb sortieren

Erstellt am 23. September 2008 · 5 Antworten · letzte Antwort am 25. September 2008

Tags: Frage

intensivstation ·

Laut Dokumentation kann man die Artikel so sortieren:

plugin.tt_products.conf.tt_products.ALL.orderBy = itemnumber
plugin.tt_products.conf.tt_products.LIST.orderBy = itemnumber
plugin.tt_products.conf.tt_products.BASKET.orderBy = itemnumber

Das klappt zwar bei LIST, aber nicht im Warenkorb.
Kann man auch den Warenkorb irgendwie sortieren?
Bei Version 2.5.7 habe ich dafür eine PHP-Datei geändert,
aber bei Version 2.6.0 sieht die selbe Datei ganz anders aus...

Yigor ·

Hallo,

kannst Du mir eventuell sagen, in welcher php-Datei Du welche Änderungen vorgenommen hast, um den Warenkorb sortieren zu können?
Das wäre nett, lieben Dank und
Gruß,
Yigor

intensivstation ·

Warenkorb sortieren bei tt_products 2.5.7 geht so:
ext/tt_products/modell/class.tx_ttproducts_basket.php :
Zeile 427:
vorher:

$res = $this->viewTable->table->exec_SELECTquery('*',$where);

nachher:

$res = $this->viewTable->table->exec_SELECTquery('*',$where,'itemnumber');

Das ist alles. itemnumber ist das Feld nach dem sortiert werden soll.
Da bin ich durch Zufall drauf gekommen. In Version 2.6.0 gibt es so eine Zeile aber nicht mehr...

intensivstation ·

OK, ich habe es nun auch in 2.6.0 anscheinend hinbekommen.
model/class.tx_ttproducts_basket.php :
vorher:

function getCalculatedBasket()  {
...
$rcArray = $this->viewTable->getWhere($where);

nachher:

function getCalculatedBasket()  {
...
$rcArray = $this->viewTable->getWhere($where, '', 'itemnumber');

und
model/class.tx_ttproducts_article_base.php
vorher:

function getWhere ($where, $theCode='') {
...
$res = $this->table->exec_SELECTquery('*', $where);

nachher:

function getWhere ($where, $theCode='', $orderBy='') {
...
$res = $this->table->exec_SELECTquery('*', $where, $orderBy);

Mal sehen, ob es igrendwelche Phänomene zur Folge hat...

Yigor ·

yup, das war genau der richtige Hinweis. In 2.5.5 ist die eigentliche Query noch nicht in der Variable $where hinterlegt, so daß Zeile 428 in model/class.tx_ttproducts_basket.php so aussieht, wenn man nach dem Titel sortieren lässt:

$res = $this->viewTable->table->exec_SELECTquery('*','uid IN ('.implode(',',$uidArr).') AND pid IN ('.$this->page->pid_list.')'.$this->viewTable->table->enableFields(),'title');

Gruß und nochmals Danke,

Yigor