Здравствуйте, други и подруги !
Претендовать на открытие и соотв. патент изобретения не буду, но создам тему, которая поможет, по крайней мере, мне самому, не искать или писать с "0", а открыть и просто скопипастить код.
Итак, задача в ТЗ такова:
Выводить иконку категории в горизонтальном меню для родительских категорий.
Самым оптимальныйм решением, было бы прописать иконки под category_id в контроллере меню, НО, мы не говнокодеры и костыли не применяем, + учитываем тот момент, что завтра, клиент захочет самостоятельно поменять иконки или добавить новый родительский элемент с новой иконкой, а мы - как прогеры уровня "гуру" должны (от слова ДОЛГ) поставить все на автоматику и минимальную зависимость от масштабирования.
После согласования пункта с заказчиком, было принято следующее решение:
Добавить дополнительное поле, в таблицу категории, с названием menu_icon, в которое и будем вносить путь рисунка, по аналогии с полем рисунка категории image.
Но, есть одна проблема: "клиент отказывается дать доступ к SQL серверу, в связи с параноидальным отношением к миру, отсутствием репутации моей или ещё по какой то непонятной для меня причины, использовать же adminer или его аналоги я не предпочитаю, для таких задач, посему вот мое решение:
где мы альтеруем таблицу категории, добавляя после поля `image` - необходимое нам поле с параметрами: `menu_icon` varchar(255) DEFAULT NULL
далее вся магия как бы по теме исчерпана, данный код вставить однократно в нужном контроллере, один раз вызвать и удалить строку.
UPD: Обновление
Так же набросал код при динамической проверке наличия поля в конкретной таблице, мож. кому то пригодится:
Приятного пользования и хорошего кода !
Претендовать на открытие и соотв. патент изобретения не буду, но создам тему, которая поможет, по крайней мере, мне самому, не искать или писать с "0", а открыть и просто скопипастить код.
Итак, задача в ТЗ такова:
Выводить иконку категории в горизонтальном меню для родительских категорий.
Самым оптимальныйм решением, было бы прописать иконки под category_id в контроллере меню, НО, мы не говнокодеры и костыли не применяем, + учитываем тот момент, что завтра, клиент захочет самостоятельно поменять иконки или добавить новый родительский элемент с новой иконкой, а мы - как прогеры уровня "гуру" должны (от слова ДОЛГ) поставить все на автоматику и минимальную зависимость от масштабирования.
После согласования пункта с заказчиком, было принято следующее решение:
Добавить дополнительное поле, в таблицу категории, с названием menu_icon, в которое и будем вносить путь рисунка, по аналогии с полем рисунка категории image.
Но, есть одна проблема: "клиент отказывается дать доступ к SQL серверу, в связи с параноидальным отношением к миру, отсутствием репутации моей или ещё по какой то непонятной для меня причины, использовать же adminer или его аналоги я не предпочитаю, для таких задач, посему вот мое решение:
PHP:
$this->db->query( "ALTER TABLE " . DB_PREFIX . "category ADD `menu_icon` varchar(255) DEFAULT NULL AFTER `image`" );
далее вся магия как бы по теме исчерпана, данный код вставить однократно в нужном контроллере, один раз вызвать и удалить строку.
UPD: Обновление
Так же набросал код при динамической проверке наличия поля в конкретной таблице, мож. кому то пригодится:
PHP:
$give_me_colum = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . "category` LIKE 'menu_icon'");
if (!$give_me_colum->num_rows) {
$this->db->query("ALTER TABLE `" . DB_PREFIX . "category` ADD COLUMN `menu_icon` varchar(255) DEFAULT NULL AFTER `image`");
}
Останнє редагування: