2016-03-12 5 views
1

Я хочу, чтобы мои товары отсортированы по двум параметрам: сначала по порядку сортировки, который имеет каждый продукт; а затем по количеству.Сортировать по двум параметрам в Opencart

Вот что у меня есть в файле /catalog/controller/product/category.php (OpenCart 1.5.6.4), и я считаю, что здесь должна быть каким-то образом изменилось:

if (isset($this->request->get['sort'])) { 
    $sort = $this->request->get['sort']; 
} else { 
    $sort = 'p.sort_order'; 
} 

Каждый имеет какие-либо идеи? Заранее спасибо

ответ

2

По умолчанию для сортировки по умолчанию используется только одно поле. Чтобы выполнить то, что вы описали, вам нужно будет изменить запрос для метода getProducts(), который построен в /catalog/model/catalog/product.php. Найдите строку 196, где она читает:

$sql .= " ORDER BY p.sort_order"; 

Это порядок сортировки по умолчанию, если ни один не указан. Для того, чтобы добавить вторичные критерии сортировки вы можете изменить его на:

$sql .= " ORDER BY p.sort_order, p.quantity"; 

Если вы всегда хотите использовать quantity в качестве вторичного поля сортировки, вы можете добавить после всего блока, как это:

} else { 
     $sql .= " ORDER BY p.sort_order"; 
    } 

    $sql .= ", p.quantity"; 

Это будет сортировать по количеству в качестве вторичного поля независимо от того, какое основное поле поля было указано.

+0

Спасибо, биллиноа! – Aaviya

+0

Вы больше всего приветствуетесь – billynoah

Смежные вопросы