Перейти к содержанию
delovoy

Как отсортировать Регионы не по умолчанию (алфавиту)?

Рекомендуемые сообщения

Стоит задача, изменить порядок вывода и отображения Регионов для покупателя

Для примера, хочется видеть Россию, Украину и Казахстан вверху списка.

Соответственно в списке Россия - первыми города Москва и Московская область, потом Питер и тп, как я хочу

Возможно ли задать какой то приоритет или как изменить этот порядок?

P.S.

Есть какой то просто способ или модификация, или нужно править в SQL?

Залез в базу данных и что я вижу, в таблице country первым идет Афганистан!

Но в самом опенкарте в поле страна первым стоит Австралия! Хотя в таблице SQL она стоит №13

Может мне кто объяснить алгоритм, вывода регионов и стран? Я никак понять не могу! По алфавиту чтоли?

А как сделать по # ID или принудительно?

Читал тут некоторые темы, конкретных ответов так и не нашел

Изменено пользователем tim21701
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну видимо сортировка по алфавиту. надо менять запрос в model\checkout\ где то sql запрос на выборку данных. Ждите, кто разбирается в этом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну видимо сортировка по алфавиту. надо менять запрос в model\checkout\ где то sql запрос на выборку данных. Ждите, кто разбирается в этом.

Вот и жду! :( И где копать

Хоть по ID сделать сортировку, так хоть в базе поменять местами можно, или задать список приоритетов в PHP но где? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по дефоту сортировка по названию.

public function getZonesByCountryId($country_id) {
       $zone_data = $this->cache->get('zone.' . (int)$country_id);

       if (!$zone_data) {
           $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$country_id . "' AND status = '1' ORDER BY name");

           $zone_data = $query->rows;

           $this->cache->set('zone.' . (int)$country_id, $zone_data);
       }

       return $zone_data;
   }

что бы определенный регион был первым в списке можно добавить его id в order таким образом

ORDER BY zone_id!=555, name

булевское выражение zone_id != 555 == true для всех id, кроме 555. false>true потому запись с id =555 будет первой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо спасибо, но если мне нужно, несколько стран, видеть в списке первыми?

И где аналогичное произвести с регионами?

И к сожалению я не понял, куда последний пункт, прикручивать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо спасибо, но если мне нужно, несколько стран, видеть в списке первыми?

И где аналогичное произвести с регионами?

И к сожалению я не понял, куда последний пункт, прикручивать?

мне нужно сделать вверху один город, наверное может как-то по аналогии сортировки товара сделать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по дефоту сортировка по названию.

 

public function getZonesByCountryId($country_id) {
        $zone_data = $this->cache->get('zone.' . (int)$country_id);
    
        if (!$zone_data) {
            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$country_id . "' AND status = '1' ORDER BY name");
    
            $zone_data = $query->rows;
            
            $this->cache->set('zone.' . (int)$country_id, $zone_data);
        }
    
        return $zone_data;
    }
что бы определенный регион был первым в списке можно добавить его id в order таким образом
ORDER BY zone_id!=555, name
булевское выражение zone_id != 555 == true для всех id, кроме 555. false>true потому запись с id =555 будет первой

 

не дошло как это правильно написать

https://opencartforum.com/topic/29801-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D1%80%D0%B5%D0%B3%D0%B8%D0%BE%D0%BD%D0%BE%D0%B2-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%B6%D0%B5%D0%BB%D0%B0%D0%BD%D0%B8%D1%8E/ воспользовалась этим, но спасибо Фрилансеру тоже, погуглила его совет и нашла ту ссылку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.