Хочу доработать пункты главного меню. Иметь возможность категориям, которым я захочу, добавлять иконки.
Что я уже сделал:
- Создал модуль module_name
- В папке шаблонов админки создал хуки:
/design/backend/templates/addons/module_name/hooks/static_data/tabs_content.pre.tpl
/design/backend/templates/addons/module_name/hooks/static_data/tabs_list.pre.tpl
Теперь в админке, в popup’e редактирования пунктам меню появилась вкладка “Иконка”. И в ней поле загрузки картинки.
Файл tabs_content.pre.tpl содержит такой код:
{include
file="common/attach_images.tpl"
image_name="menu_icon"
image_object_type="menu_icon"
image_pair=$static_data.menu_icon
no_detailed="Y"
hide_titles="Y"
image_key=$id
image_object_id=$id
}
Но вот с сохранением данных в базу у меня проблема. Правильно я понимаю что я должен создать в таблице static_data дополнительную колонку и записывать туда id загруженного изображения? Только вот как мне убедится что изображение загрузилось на сервер?
Направьте пожалуйста.
(В документации cs-cart используется пример по записи в БД текстового поля. С этим проблем нет. А вот с файлом сложности)
Честно говоря так и не получилось разобраться.
Застрял в первом же предложении
Чтобы добавить картинки к некоему объекту (пусть он будет называться “mod”) без создания новых таблиц связей и хранения, необходимо:
Что в cs-cart является объектом? В моем случае это пункт меню? Или само меню? О чем речь?
Может быть есть в cs-cart уже подобный блок где подобным образом добавляется картинка? Я бы посмотрел конкретный пример и может быть тогда понял
Еще меня смущает то, что в контроллере /var/www/html/theme_name/app/controllers/backend/static_data.php, в mod=“update” уже есть некий код работы с иконкой:
if (!empty($section_data['icon'])) {
$static_data['icon'] = fn_get_image_pairs($static_data['param_id'], $section_data['icon']['type'], 'M', true, true, DESCR_SL);
}
Сделайте проще
расширьте схему аpp/schemas/static_data/schema.php, добавив для меню
'icon' => array(
'type' => 'menu_item',
'title' => __('icon')
)
Точно не помню. Вроде должно быть достаточно
1 лайк
Спасибо, получилось!
В шаблоне я получил массив таким образом:
{assign var="menu_icon" value=$item.param_id|fn_get_image_pairs:'menu_item':'M':true:true}
И вывел вот так:
{include
file="common/image.tpl"
obj_id=$menu_icon.image_id
images=$menu_icon.icon
image_width=24
image_height=24
}
1 лайк