Noxter Опубликовано 22 февраля, 2019 Жалоба Поделиться Опубликовано 22 февраля, 2019 (изменено) Файл simpla/ProductsAdmin.php строка примерно 32: // Текущий бренд $brand_id = $this->request->get('brand_id', 'integer'); if($brand_id && $brand = $this->brands->get_brand($brand_id)) { $filter['brand_id'] = $brand->id; } else { $filter['brand_id'] = ''; } Далее в api/Products.php в двух функциях (get_products и count_products) найдите код: if(!empty($filter['brand_id'])) $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']);и поменяйте его на следующий: if(!empty($filter['brand_id'])) { $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); } elseif(isset($filter['brand_id'])) { $brand_id_filter = $this->db->placehold('AND p.brand_id IS NULL OR p.brand_id = ?', $filter['brand_id']); }Файл simpla/design/html/products.tpl в нужном месте пропишите ссылку: index.php?module=ProductsAdmin&brand_id= Изменено 22 февраля, 2019 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 22 февраля, 2019 Жалоба Поделиться Опубликовано 22 февраля, 2019 Файл simpla/ProductsAdmin.php строка примерно 32: // Текущий бренд $brand_id = $this->request->get('brand_id', 'integer'); if($brand_id && $brand = $this->brands->get_brand($brand_id)) { $filter['brand_id'] = $brand->id; } else { $filter['brand_id'] = ''; } Далее в api/Products.php в двух функциях (get_products и count_products) найдите код: if(!empty($filter['brand_id'])) $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); и поменяйте его на следующий: if(!empty($filter['brand_id'])) { $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); } elseif(isset($filter['brand_id'])) { $brand_id_filter = $this->db->placehold('AND p.brand_id IS NULL OR p.brand_id = ?', $filter['brand_id']); } Файл simpla/design/html/products.tpl в нужном месте пропишите ссылку:index.php?module=ProductsAdmin&brand_id= Интересный подход.Если это установить на стандартную Simpla, то при открытии админки вместо привычного списка товаров будет пустое место с сообщением 'Нет товаров'.Если кликать Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие, тоже 'Нет товаров'.Если кликать по категориям, тоже 'Нет товаров'.Админа от такого удар хватить может... Если чуть-чуть на код посмотреть, сразу пару грубых ошибок видно... Товарищи заказчики! Остерегайтесь подобных специалистов 'с большими скилами'... А может, это так и задумано - шутка гения? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 февраля, 2019 Автор Жалоба Поделиться Опубликовано 22 февраля, 2019 Так и задумано, специально для того чтобы ты сделал лучше и выложил для всех бесплатно P.S. Корс побесись ещё, уже 7к постов, прям соль тебе на рану Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 24 февраля, 2019 Жалоба Поделиться Опубликовано 24 февраля, 2019 (изменено) simpla/ProductsAdmin.php Заменить это // Текущий бренд $brand_id = $this->request->get('brand_id', 'integer'); if($brand_id && $brand = $this->brands->get_brand($brand_id)) $filter['brand_id'] = $brand->id; на это // Текущий бренд $brand_id = $this->request->get('brand_id', 'integer'); if($brand_id) { $filter['brand_id'] = $brand_id; $brand = $this->brands->get_brand($brand_id); } Далее в api/Products.php в двух функциях (get_products и count_products) заменить это if(!empty($filter['brand_id'])) $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); на это if(!empty($filter['brand_id'])) { if ($filter['brand_id'] < 999999) { $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); } else { $brand_id_filter = 'AND p.brand_id IS NULL OR p.brand_id = 0'; } } теперь по адресу site.ru/index.php?module=ProductsAdmin&brand_id=999999 будут выводиться товары без принадлежности к бренду.Ремарка. Если у вас 999999 брендов, то работать не будет. Изменено 24 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 28 февраля, 2019 Жалоба Поделиться Опубликовано 28 февраля, 2019 (изменено) if ($filter['brand_id'] < 999999) isset Изменено 28 февраля, 2019 пользователем osben Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 1 марта, 2019 Жалоба Поделиться Опубликовано 1 марта, 2019 if ($filter['brand_id'] < 999999) isset Это никак не поможет и даже навредит. Условие isset($filter['brand_id']) в этом месте будет всегда истинным (потому что оно внутри блока, в котором истинно !empty($filter['brand_id']) ), и, как следствие, товары без бренда просто никогда не покажет - вся цель доработки будет убита напрочь... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.