В руководстве по разработке модулей для системы управления сайтом HostCMS 5 нет описания всех типов полей, которые можно использовать для создания административной части. Если поискать в этом документе параменты, которые отвечают за отображение поля, то можно найти только: 0 – это поле ввода, 2 – выпадающий список, 4 – скрытое поле, 5 – поле ввода и всё. Да и то не совсем понятно, чем поле ввода 0 отличается от 5-ти. Давайте разберемся со всеми типами полей которые потребуются при разработке модулей для Host CMS 5.
Почти два месяца назад, мы рассматривали все константы, которые используются в этой CMS, теперь пришло время рассмотреть типы полей. Обратите внимание, что в версии Host CMS начиная с 5.9.23 — произошло изменение в структуре модулей. Поменялся принцип создания скрытого поля с идентификатором создаваемого объекта и в обработчиках кнопок форм JavaScript функция doSendForm() заменена на функцию SendForm().
Типы полей при работе с панелью администрирования
0 – тестовое поле, строка с максимальный количеством символов 255;
1 – чекбокс (галочка), type=checkbox;
2 – выпадающий список;
3 – нечего не отображается, если вы каким-то образом использовали это поле, напишите пожалуйста в комментариях (возможно это список с множественным выбором). По факту тип поля 3 зарезервирован для разделителя;
4 – скрытое поле, не отображается и в коде страницы не выводится;
5 – большое текстовое поле;
6 – текстовое поле стока, для паролей type=password;
7 — большое текстовое поле с визуальным редактором (WYSIWYG);
8 – текст сообщения, где заголовок – это название формы, а содержание обертывается в div и выводится как обычный текст, который из админки не редактируется;
9 – поле для прикрепления файла или изображение (большого, малого);
10 – поле дата (число, месяц, год) с выплывающим календарем;
11 – поле дата (число, месяц, год, часы, минуты, секунды) с календарем;
12 – рейтинг отображается в виде звезд (от 1 до 5);
13 — радиогруппа;
14 — компонент импорта из CSV-файла;
15 — как есть. Используется при необходимости добавить в форму HTML-код.
Почти все виды полей $param[‘type’] которые используются для для создания новых модулей в HostCMS 5 или редактирования / доработки уже существующих приведены на скриншоте ниже. Надеюсь вам будет полезен данный материал, и он сэкономит немного времени при расширении функционала своего сайта.
Например, для модуля интернет-магазина на базе которого разрабатывают магазины и доски объявлений Host CMS так же использует эти типы полей. С этим можно ознакомиться на демо-коде, приведеном ниже:
// Название $param = array(); $param['tab_id'] = $tab_id; $param['name'] = 'items_catalog_name'; $param['caption'] = $GLOBALS['MSG_shops']['items_catalog_add_form_name']; $param['type'] = 0; // поле ввода $param['value'] = $items_catalog_name; $param['attributes']['class'] = 'large'; $param['format']['minlen']['value'] = 1; $param['format']['maxlen']['value'] = 255; $admin_forms_fields->AddField($param); // Артикул $param = array(); $param['tab_id'] = $tab_id; $param['name'] = 'items_catalog_marking'; $param['caption'] = $GLOBALS['MSG_shops']['items_catalog_add_form_marking']; $param['type'] = 0; // textbox $param['value'] = $items_catalog_marking; $param['format']['maxlen']['value'] = 50; $param['div_attributes']['style'] = 'float: left;'; $admin_forms_fields->AddField($param); // Группа $param = array(); $param['tab_id'] = $tab_id; $param['name'] = 'shop_groups_parent_id2'; $param['caption'] = $GLOBALS['MSG_shops']['items_catalog_add_form_group']; $param['type'] = 2; // выпадающий список $param['items'] = array ('...') + GetDelimitedGroups(0, $aGroupsTree, '', false); $param['value'] = $shop_groups_parent_id; $param['div_attributes']['style'] = ''; $param['attributes']['style'] = 'width: 320px; float: left;'; $param['apply_filter'] = true; // Дата $param = array(); $param['tab_id'] = $tab_id; $param['name'] = 'shop_items_catalog_date_time'; $param['html_id'] = 'shop_items_catalog_date_time'; $param['caption'] = $GLOBALS['MSG_shops']['catalog_item_date']; $param['type'] = 11; // date-time $param['value'] = $shop_items_catalog_date_time; $param['format']['maxlen']['value'] = 255; $param['div_attributes']['style'] = 'float: left; margin-top: 5px'; $admin_forms_fields->AddField($param); // Изображение группы $param = array(); $param['tab_id'] = $tab_id; $param['name'] = 'items_catalog_image'; $param['caption'] = $GLOBALS['MSG_shops']['items_catalog_image']; $param['type'] = 9; // file
Спасибо, как раз думаю заняться разработкой модуля, для одного сайтика на Host CMS 5-ой версии. Конечно сейчас вышла уже 6-ая версия, но у многих ещё старая версия хорошо работает.
В документации перечислены все типы полей:
http://www.hostcms.ru/api/HostCMS_5/admin_forms_fields.html#methodAddField
Спасибо за внесение конкретики с admin_forms_fields::AddField
3 — Зарезервировано для разделителя.
13 — Радиогруппа.
14 — Компонент импорта из CSV-файла.
15 — Как есть. Используется при необходимости добавить в форму HTML-код.