2013-07-19 6 views
0

Я пытаюсь добавить новый метод сортировки i'e «сортировать по высоте» в opencart.сортировать по размеру opencart

A.location является: каталог/модель/каталог/product.php -> добавил p.height здесь

$sort_data = array(
'pd.name', 

'p.model', 

'p.quantity', 

'p.price', 

'rating', 

'p.sort_order', 

'p.date_added', 

'p.height' 
); 

Б. в том же файле

elseif($data['sort'] == 'p.height'){ 

    $sql .= " ORDER BY(" . $data['sort'] . ")ASC"; 

     /*$sql .= "SELECT * FROM". DB_PREFIX . "product p ORDER BY p.height DESC";*/ 
} 

C. местоположение: /catalog/controller/product/category.php

 $this->data['sorts'][] = array(

      'text' => $this->language->get('text_size_asc'), 

      'value' => 'height-ASC', 

      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=height&order=ASC' . $url) 

     ); 

Результат: я могу видеть «сортировать по высоте» в опции, но ничего не происходит, когда я выбираю его, возвращается значение сортировки по умолчанию.

Может ли кто-нибудь предложить, где я делаю неправильно?

ответ

1

Его должно быть p.height-ASC не height-ASC Для ключа 'value' иначе оно не признает его. Вам также необходимо изменить &sort=height на &sort=p.height в 'url' ключ

+0

@sanki - см. Править выше –

+0

Вам не нужен код elseif, который у вас там есть. Просто используйте стандартный файл модели и добавьте «p.height» в массив sorts. Это все, что нужно –

+0

@sanki - проблем нет. Не забудьте нажать на галочку слева, чтобы отметить это как ответ –

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