Opencart 2 - Radenie produktov podla dátumu dostupnosti

Ako zmeniť radenie produktov

Choď do súboru:

catalog/model/catalog/product.php

nájdi časť kódu:

$sort_data = array(
'pd.name',
'p.model',
'p.quantity',
'p.price',
'rating',
'p.sort_order',
'p.date_added'
);

a doplň tam:

'p.date_available'

V rovnakom súbore nájdi časť kódu:

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY " . $data['sort'];
}
} else {
$sql .= " ORDER BY p.sort_order";
}

if (isset($data['order']) && ($data['order'] == 'DESC')) {
$sql .= " DESC, LCASE(pd.name) DESC";
} else {
$sql .= " ASC, LCASE(pd.name) ASC";
}

a tento kód uprav takto:

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY p.date_available";
}
} else {
$sql .= " ORDER BY p.sort_order";
}

if (isset($data['order']) && ($data['order'] == 'ASC')) {
$sql .= " DESC, LCASE(p.date_available) DESC";
} else {
$sql .= " ASC, LCASE(p.date_available) ASC";
}


To je všetko. Teraz máš nastavené zobrazovanie produktov na p.date_available s ASC. Ale môžeš to zmeniť podľa vlastnej potreby.


Pokiaľ ti to "nefunguje", nájdi rovnaký súbor v system/storage/modification/catalog/model/catalog/product.php a sprav s ním rovnaké úpravy.

opencart, radenie produktov
Web
14.6.2016

Najnovšie z notesu