discoveri Опубліковано: 24 жовтня 2019 Share Опубліковано: 24 жовтня 2019 Хочу сделать небольшой модуль для магазина, работающий вне контента сайта. Для модуля требуется определить идентификатор магазина. Не могу найти таблицу, в которой хранятся записи о магазинах. У меня не мультимагазин на разных поддоменах, так что, в итоге, идентификатор 0, но на случай расширения магазина, чтоб потом не переделывать, хочется знать, в какой таблице хранится перечень магазинов, чтобы иметь возможность определить идентификатор магазина. Читал, что идентификатор можно определить таким кодом: $this->config->get('config_store_id'); Но не знаю, какие модули требуется подключить, чтобы этот код заработал. Не подключать же все Помогите, плиз, разобраться. Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 24 жовтня 2019 Share Опубліковано: 24 жовтня 2019 3 часа назад, discoveri сказал: в какой таблице хранится перечень магазинов, oc_store префикс oc у вас может быть другой Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 25 жовтня 2019 Автор Share Опубліковано: 25 жовтня 2019 Спасибо. У меня эта таблица пустая, видимо из-за того, что магазин только 1. Поэтому я там ничего и не нашел. Но теперь буду знать: если что, смотреть туда. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 25 жовтня 2019 Share Опубліковано: 25 жовтня 2019 В эту таблицу добавляются второй и последующие магазины. Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 26 жовтня 2019 Автор Share Опубліковано: 26 жовтня 2019 Спасибо, я уже понял после ответа fanatic, что, раз в моей таблице пусто, значит туда добавляются именно дополнительные магазины. Для задачи, которую я делаю, достаточно знать, что магазин по умолчанию имеет нулевой идентификатор. Но, раз уж системой предусмотрена возможность многих магазинов, хотелось учесть вероятность появления какого-то другого магазина в этой же базе. Лучше сразу учесть такие мелочи, чем потом вспоминать, что к чему и корректировать. Хотя, конечно, что-нибудь останется неучтенным . Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 26 жовтня 2019 Share Опубліковано: 26 жовтня 2019 смотрите как формируется массив данных о магазинах $data['stores'] в admin\controller\setting\store.php Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 43 минуты назад, discoveri сказал: А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? С какой целью спрашиваете? Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Понять, нужно ли там что-то корректировать скриптом, который делаю. Скрипт вносит изменения в категории. Нужно ли затрагивать category_path и category_to_layout - вот в чем вопрос. Но объяснять назначение скрипта долго. Проще узнать, что за таблицы такие... Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 6 минут назад, discoveri сказал: нужно ли там что-то корректировать скриптом, Все зависит от того что вы делаете category_path как таковое нигде во фронте не используется, только в даминке - строит дерево категорий Если вы меняете принадлежность кактегорий или добавляете, т о дерево нужно каждый раз перестраивать category_to_layout Если уж вы влезли в опенкрат, то попробуйте сами понять зачем эта эта таблица Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Имя таблицы с магазинами Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
discoveri Опубліковано: 25 жовтня 2019 Автор Share Опубліковано: 25 жовтня 2019 Спасибо. У меня эта таблица пустая, видимо из-за того, что магазин только 1. Поэтому я там ничего и не нашел. Но теперь буду знать: если что, смотреть туда. Надіслати Поділитися на інших сайтах More sharing options...
Yesvik Опубліковано: 25 жовтня 2019 Share Опубліковано: 25 жовтня 2019 В эту таблицу добавляются второй и последующие магазины. Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 26 жовтня 2019 Автор Share Опубліковано: 26 жовтня 2019 Спасибо, я уже понял после ответа fanatic, что, раз в моей таблице пусто, значит туда добавляются именно дополнительные магазины. Для задачи, которую я делаю, достаточно знать, что магазин по умолчанию имеет нулевой идентификатор. Но, раз уж системой предусмотрена возможность многих магазинов, хотелось учесть вероятность появления какого-то другого магазина в этой же базе. Лучше сразу учесть такие мелочи, чем потом вспоминать, что к чему и корректировать. Хотя, конечно, что-нибудь останется неучтенным . Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 26 жовтня 2019 Share Опубліковано: 26 жовтня 2019 смотрите как формируется массив данных о магазинах $data['stores'] в admin\controller\setting\store.php Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 43 минуты назад, discoveri сказал: А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? С какой целью спрашиваете? Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Понять, нужно ли там что-то корректировать скриптом, который делаю. Скрипт вносит изменения в категории. Нужно ли затрагивать category_path и category_to_layout - вот в чем вопрос. Но объяснять назначение скрипта долго. Проще узнать, что за таблицы такие... Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 6 минут назад, discoveri сказал: нужно ли там что-то корректировать скриптом, Все зависит от того что вы делаете category_path как таковое нигде во фронте не используется, только в даминке - строит дерево категорий Если вы меняете принадлежность кактегорий или добавляете, т о дерево нужно каждый раз перестраивать category_to_layout Если уж вы влезли в опенкрат, то попробуйте сами понять зачем эта эта таблица Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Имя таблицы с магазинами Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
discoveri Опубліковано: 26 жовтня 2019 Автор Share Опубліковано: 26 жовтня 2019 Спасибо, я уже понял после ответа fanatic, что, раз в моей таблице пусто, значит туда добавляются именно дополнительные магазины. Для задачи, которую я делаю, достаточно знать, что магазин по умолчанию имеет нулевой идентификатор. Но, раз уж системой предусмотрена возможность многих магазинов, хотелось учесть вероятность появления какого-то другого магазина в этой же базе. Лучше сразу учесть такие мелочи, чем потом вспоминать, что к чему и корректировать. Хотя, конечно, что-нибудь останется неучтенным . Надіслати Поділитися на інших сайтах More sharing options...
AlexDW Опубліковано: 26 жовтня 2019 Share Опубліковано: 26 жовтня 2019 смотрите как формируется массив данных о магазинах $data['stores'] в admin\controller\setting\store.php Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 43 минуты назад, discoveri сказал: А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? С какой целью спрашиваете? Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Понять, нужно ли там что-то корректировать скриптом, который делаю. Скрипт вносит изменения в категории. Нужно ли затрагивать category_path и category_to_layout - вот в чем вопрос. Но объяснять назначение скрипта долго. Проще узнать, что за таблицы такие... Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 6 минут назад, discoveri сказал: нужно ли там что-то корректировать скриптом, Все зависит от того что вы делаете category_path как таковое нигде во фронте не используется, только в даминке - строит дерево категорий Если вы меняете принадлежность кактегорий или добавляете, т о дерево нужно каждый раз перестраивать category_to_layout Если уж вы влезли в опенкрат, то попробуйте сами понять зачем эта эта таблица Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Имя таблицы с магазинами Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 43 минуты назад, discoveri сказал: А кто-то подскажет, что за таблицы category_path и category_to_layout? И вообще, где-то есть описание таблиц? С какой целью спрашиваете? Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Понять, нужно ли там что-то корректировать скриптом, который делаю. Скрипт вносит изменения в категории. Нужно ли затрагивать category_path и category_to_layout - вот в чем вопрос. Но объяснять назначение скрипта долго. Проще узнать, что за таблицы такие... Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 6 минут назад, discoveri сказал: нужно ли там что-то корректировать скриптом, Все зависит от того что вы делаете category_path как таковое нигде во фронте не используется, только в даминке - строит дерево категорий Если вы меняете принадлежность кактегорий или добавляете, т о дерево нужно каждый раз перестраивать category_to_layout Если уж вы влезли в опенкрат, то попробуйте сами понять зачем эта эта таблица Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Имя таблицы с магазинами Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Понять, нужно ли там что-то корректировать скриптом, который делаю. Скрипт вносит изменения в категории. Нужно ли затрагивать category_path и category_to_layout - вот в чем вопрос. Но объяснять назначение скрипта долго. Проще узнать, что за таблицы такие... Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 6 минут назад, discoveri сказал: нужно ли там что-то корректировать скриптом, Все зависит от того что вы делаете category_path как таковое нигде во фронте не используется, только в даминке - строит дерево категорий Если вы меняете принадлежность кактегорий или добавляете, т о дерево нужно каждый раз перестраивать category_to_layout Если уж вы влезли в опенкрат, то попробуйте сами понять зачем эта эта таблица Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Имя таблицы с магазинами
discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 11 минут назад, discoveri сказал: Мне кажется, дерево категорий должно строиться по oc_ca tegory. Для этого там есть поле parent_id так и есть, но для быстрого дерева используется именно эта таблица Тут даже не сколько дерево, а его ветка от кончика до столба SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
discoveri Опубліковано: 28 жовтня 2019 Автор Share Опубліковано: 28 жовтня 2019 Непонятно, почему это не берется из таблицы oc_category, но, ладно, по ходу пьесы разберусь. Спасибо за пояснение использования. Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 28 жовтня 2019 Share Опубліковано: 28 жовтня 2019 10 минут назад, discoveri сказал: Непонятно, почему это не берется из таблицы oc_category, потому что ветка строится рекурсивными запросами, вы знаете простую рекурсию в mySQL Данный запрос избавляет от рекрусии Посмотрите в код опенкрата, например различные меню категорий Вложенность чисто порядковая - т.е. уровень 1, уровень 2, уровень 3 А вот о более глубоких уровнях - полное молчание.. т.е. это становиться ресурсоемким Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) В 28.10.2019 в 17:05, chukcha сказал: SELECT GROUP_CONCAT(c1.category_id ORDER BY level SEPARATOR '_') path FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id GROUP BY cp.category_id; Это интересное решение, хотя я предпочел бы обходиться без лишней таблицы и высчитывать ветки в реальном времени, так как думаю, чем меньше информации дублируется в базе, тем лучше. Но тут каждый делает по своему вкусу. Да и GROUP_CONCAT там вряд ли нужен. SELECT c1.category_id FROM oc_category_path cp LEFT JOIN oc_category c1 ON (cp.path_id = c1.category_id) WHERE cp.category_id = :category_id ORDER BY level Дает тот же результат, только не объединенный в строку. Соответственно, потом не нужно её делить. Сразу можно делать обход по результатам выборки... Хотя... Может где-то и удобней получить строкой... Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options...
discoveri Опубліковано: 29 жовтня 2019 Автор Share Опубліковано: 29 жовтня 2019 (змінено) Кстати... В oc_category есть поле "top". Насколько я понял, просто глядя в базу, не анализируя код OpenCart в этом направлении, единица в поле указывает истинность значения и определяет, что категория находится на верхнем уровне. Поскольку тип поля tinyint(1), то, даже не внося изменения в базу, можно задавать там 10 уровней (от 0 до 9). Можно подправить скрипты, чтоб топ был нулевым, а можно начинать счет от единицы, думаю, 9 уровней достаточно для любого магазина. И отмечать уровень вложенности в этом поле, избавившись от лишней таблицы. Но это так - в порядке теоретических рассуждений. На самом-то деле я бы и таблицу oc_category_path убрал и поле top, сделав расчеты деревьев в реальном времени. Змінено 29 жовтня 2019 користувачем discoveri Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts