Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


delovoy

Recommended Posts

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

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

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

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

P.S.

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

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

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

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

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

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

Змінено користувачем tim21701
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Ну видимо сортировка по алфавиту. надо менять запрос в 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 будет первой

Надіслати
Поділитися на інших сайтах

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

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

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

Надіслати
Поділитися на інших сайтах


  • 1 year later...

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

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

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

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

Надіслати
Поділитися на інших сайтах


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

 

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.