[Помогите] сортировка "возврат товара"

Тема в разделе "OpenCart", создана пользователем AnOcToJI, 20 фев 2013.

  1. AnOcToJI

    AnOcToJI

    Регистрация:
    28 дек 2012
    Сообщения:
    309
    Симпатии:
    188
    Как сделать сортировку по ID, а не по алфавиту(причин возврата) в возврате товара?
    Буду признателен за помощь)
     
  2. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    \catalog\model\localisation\return_reason.php

    PHP:

    public function getReturnReasons($data = array()) {
    if (
    $data) {
    $sql "SELECT * FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "'";

    $sql .= " ORDER BY name"

    if (isset(
    $data['return']) && ($data['return'] == 'DESC')) {
    $sql .= " DESC";
    } else {
    $sql .= " ASC";
    }

    if (isset(
    $data['start']) || isset($data['limit'])) {
    if (
    $data['start'] < 0) {
    $data['start'] = 0;


    if (
    $data['limit'] < 1) {
    $data['limit'] = 20;


    $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];


    $query $this->db->query($sql);

    return 
    $query->rows;
    } else {
    $return_reason_data $this->cache->get('return_reason.' . (int)$this->config->get('config_language_id'));

    if (!
    $return_reason_data) {
    $query $this->db->query("SELECT return_reason_id, name FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name");

    $return_reason_data $query->rows;

    $this->cache->set('return_reason.' . (int)$this->config->get('config_language_id'), $return_reason_data);


    return 
    $return_reason_data
    }
    }



    Заменяете на

    PHP:

    public function getReturnReasons($data = array()) {
    if (
    $data) {
    $sql "SELECT * FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "'";

    $sql .= " ORDER BY return_reason_id"

    if (isset(
    $data['return']) && ($data['return'] == 'DESC')) {
    $sql .= " DESC";
    } else {
    $sql .= " ASC";
    }

    if (isset(
    $data['start']) || isset($data['limit'])) {
    if (
    $data['start'] < 0) {
    $data['start'] = 0;


    if (
    $data['limit'] < 1) {
    $data['limit'] = 20;


    $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];


    $query $this->db->query($sql);

    return 
    $query->rows;
    } else {
    $return_reason_data $this->cache->get('return_reason.' . (int)$this->config->get('config_language_id'));

    if (!
    $return_reason_data) {
    $query $this->db->query("SELECT return_reason_id, name FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name");

    $return_reason_data $query->rows;

    $this->cache->set('return_reason.' . (int)$this->config->get('config_language_id'), $return_reason_data);


    return 
    $return_reason_data
    }
    }



    Тоесть внутри этой функции вместо строки $sql .= " ORDER BY name";

    вставляете строку $sql .= " ORDER BY return_reason_id";
     
    AnOcToJI нравится это.
  3. AnOcToJI

    AnOcToJI

    Регистрация:
    28 дек 2012
    Сообщения:
    309
    Симпатии:
    188
    хм, результата нет
    хотя если продело тоже самое для админской части, то сортируется в админке, а вот пользовательская часть не сортируется почему-то....
     
  4. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    Сразу не заметил. Внутри этой же функции строку
    PHP:
    $query $this->db->query("SELECT return_reason_id, name FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name");
    замени на
    PHP:
    $query $this->db->query("SELECT return_reason_id, name FROM " DB_PREFIX "return_reason WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY return_reason_id");
    и почисти кешь в папке system/cache
     
    AnOcToJI нравится это.
  5. AnOcToJI

    AnOcToJI

    Регистрация:
    28 дек 2012
    Сообщения:
    309
    Симпатии:
    188
    Спасибо огромное, дело с кэшем было, второй запрос я заметил сам, когда сразу не пошло и исправил) чистка кэша дала результат)