minchenko Опубликовано: февраля 23, 2016 Жалоба Поделиться Опубликовано: февраля 23, 2016 Нужно решение. У меня в карточке товара на вкладке "связи" - "главная категория" список категорий отображается не по алфавиту, а самым хаотичным образом. Как можно решить? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
admin Опубликовано: февраля 23, 2016 Жалоба Поделиться Опубликовано: февраля 23, 2016 если мне не изменяет память там сортировка по ид категории Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
minchenko Опубликовано: февраля 24, 2016 Автор Жалоба Поделиться Опубликовано: февраля 24, 2016 а как сделать хотя бы по алфавиту? а еще лучше в таком порядке как на странице "категории". Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
admin Опубликовано: марта 2, 2016 Жалоба Поделиться Опубликовано: марта 2, 2016 добавить нечто вроде $filter_data = array( 'sort' => 'name', 'order' => 'DESC', ); перед строкой $categories = $this->model_catalog_category->getAllCategories(); а ее поменять на $categories = $this->model_catalog_category->getAllCategories($filter_data); Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
minchenko Опубликовано: марта 2, 2016 Автор Жалоба Поделиться Опубликовано: марта 2, 2016 /admin/controller/catalog/product.php? не заработало Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Это популярное сообщение. savage4pro Опубликовано: марта 2, 2016 Это популярное сообщение. Жалоба Поделиться Опубликовано: марта 2, 2016 (изменено) немного не то правите для сортировки "по алфавиту" следует заменить $categories = $this->model_catalog_category->getAllCategories(); $data['categories'] = $this->model_catalog_category->getCategories($categories); на $filter_data = array( 'sort' => 'name', ); $data['categories'] = $this->model_catalog_category->getCategories($filter_data); а строка $categories = $this->model_catalog_category->getAllCategories(); не нужна, т.к. ее данные не соответствуют принимаемым методом модели getCategories, а далее переменная $categories все равно переопределяется и в нагрузку: если хочется, чтобы было как в списке категорий, тогда правим еще и метод getCategories модели ModelCatalogCategory меняем $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, c1.parent_id, c1.sort_order, c1.noindex FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c1 ON (cp.category_id = c1.category_id) LEFT JOIN " . DB_PREFIX . "category c2 ON (cp.path_id = c2.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"; на $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, REPLACE(RPAD(GROUP_CONCAT(c2.sort_order ORDER BY cp.level SEPARATOR '-'),10,'-0'),'-','')+0 AS basesort, c1.parent_id, c1.sort_order, c1.noindex FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c1 ON (cp.category_id = c1.category_id) LEFT JOIN " . DB_PREFIX . "category c2 ON (cp.path_id = c2.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"; и $sort_data = array( 'name', 'sort_order', 'noindex' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY sort_order"; } на $sort_data = array( 'name', 'sort_order', 'noindex', 'basesort' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'basesort') { $sql .= " ORDER BY basesort " . ((isset($data['order']) && ($data['order'] == 'DESC'))?'DESC':'') . ", " . $data['sort']; } else { $sql .= " ORDER BY " . $data['sort']; } } else { $sql .= " ORDER BY sort_order"; } и в контроллере вместо 'sort' => 'name' пишем 'sort' => 'basesort' но тут следует иметь в виду, что порядок сортировки должен быть явно задан для категорий, иначе в выборке будет бардак Изменено марта 2, 2016 пользователем savage4pro изменения в модели - обратная сортировка admin и bazilio 2 Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
minchenko Опубликовано: марта 2, 2016 Автор Жалоба Поделиться Опубликовано: марта 2, 2016 чет ничего не происходит, без изменений Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
savage4pro Опубликовано: марта 2, 2016 Жалоба Поделиться Опубликовано: марта 2, 2016 кэш модификаторов? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
minchenko Опубликовано: марта 2, 2016 Автор Жалоба Поделиться Опубликовано: марта 2, 2016 да, спасибо работает Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
PGanz Опубликовано: ноября 4, 2018 Жалоба Поделиться Опубликовано: ноября 4, 2018 Добрый день, такой же вопрос, Версия 2.3.0.2.3 Подсказка выше не помогла, походу потому что что то поменяли в коде, как сделать, чтоб в Связи -> Категории были по алфавитуи как сделать чтобы в Опциях (выбор цвета) тоже были по алфавиту. Заранее спасибо Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.