Расширение функционала Bitrix 24/Модуль
Базовая структура модуля для Битрикс описана тут, 1.
Внимание! Модуль необходимо создавать в кодировке windows-1251, при установке его на сайт с кодировкой UTF-8 происходит автоматическая перекодировка. |
Внимание! Директория classes больше не используется, используйте автоподключаемые классы в своем пространстве имен |
Копируем пустой шаблон и добавляем нужные файлы, например .settings.php и .settings_extra.php.
После замены синтаксических плейсхолдеров вида: , можно устанавливать модуль. Для этого нужно перейти по адресу https://bx24_host_name/bitrix/admin/ и авторизоваться в административной части bx24. Установка локальных модулей производится из раздела "Marketplace" -> "Установленные решения".
В файле options.php нужно убрать:
use Bitrix\Main\Text\String;
и заменить
String::htmlEncode
на \Bitrix\Main\Text\HtmlFilter::encode
Добавить:
if (CAutoSave::Allowed()) {
$AUTOSAVE = new CAutoSave();
$AUTOSAVE->Init();
}
Для хранения настроек пользователя используется таблица b_option и файлы настроек по умолчанию, такие как default_option.php. Доступ к настройкам по умолчанию осуществляется через метод getDefaults. Более подробную информацию о хранении настроек можно прочитать тут.
Для размещения своего компонента в пространстве имен Битрикс [|используется копирование] на этапе установки[1]:
public function installFiles() {
// копируем файлы компонентов, которые устанавливаем вместе с модулем;
// пространством имен для компонентов будет имя модуля, т.е. infoblock
CopyDirFiles(
__DIR__.'/assets/components',
Application::getDocumentRoot().'/local/components/'.$this->MODULE_ID.'/',
true,
true
);
}
Расширение API Битрикс
правитьКак добавить в REST API новые методы описано тут.
Создание разделов
правитьКак создавать директории при установке модуля описано тут.
Для вывода табличных данных можно использовать встроенные компоненты и набор JS библиотек.
Модель БД (ORM)
правитьТаблицы в БД создаются классами производными от DataManager
Типы данных:
EnumField DateField DatetimeField BooleanField TextField FloatField ArrayField
Описание поля с валидацией и маской формата:
new Entity\StringField('ISBN', array(
'required' => true,
'column_name' => 'ISBNCODE',
'format' => '/^\d{12}$/',
'validation' => function() {
return array(
new Entity\Validator\RegExp('/\d{13}/'),
function ($value, $primary, $row, $field) {
// проверяем последнюю цифру
// ...
// если цифра неправильная - возвращаем особую ошибку
return new Entity\FieldError(
$field, 'Контрольная цифра ISBN не сошлась', 'MY_ISBN_CHECKSUM'
);
}
);
}
)),
К таблицам модуля можно обращаться через getList:
$mList = ModuleTable::getList(array(
'select' =>array('ID', 'NAME'),
'order' => array('NAME' =>'ASC'),
'filter'=>array('=CHARSET'=>'Windows-1251'),
));
while($cult = $mList->fetch()) var_dump($cult);
Для выборки одной записи по первичному ключу может применяться метод getById():
$cultureDb = CultureTable::getById($cultureId);
Предусмотрено не только хранение данных как есть, но и их преобразование при выборке:
new Entity\ExpressionField('AGE_DAYS', 'DATEDIFF(NOW(), %s)', array('PUBLISH_DATE') )
Также можно устанавливать отношения между сущностными
Обновление модуля
правитьОбновление происходит путем выполнения файла updater.php
См. также
править- Кастомизация bx24
- Пустой WireFrame для модуля Битрикс
- Заготовка модуля Битрикс [1]
- Конструктор модулей
- Все медоды API Битрикс
- Написание модуля на D7+ORM
- 1С:Битрикс пример создания модуля D7
- Модуль 0 обработчики событий