Opencart按最新产品排序

时间:2014-02-11 07:50:38

标签: php opencart

这个问题与randomize default products in opencart类似,但更简单。我想让我的产品最新上市。我在catalog/model/catalog/product.php中进行了以下更改:

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'] . ")";
    } else {
        $sql .= " ORDER BY " . $data['sort'];
    }
} else {
    $sql .= " ORDER BY p.date_added";
}

但我认为这对默认排序没有任何影响。

1 个答案:

答案 0 :(得分:0)

我不知道您拥有哪个版本的OC,但您还应该考虑修改订单部分。在OC 1.5.5中它是这样的:

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

在这种情况下,通过您的更改,如果未提供排序或订单数据,则产品将从最旧到最新(最早的第一个)进行排序。我建议将订单部分更改为以下内容:

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

如果您说没有变化,请尝试删除您的浏览器会话,因为排序,过滤和其他选项都存储在那里。