Расширение функционала Bitrix 24/Модуль: различия между версиями
пппп |
→Модель БД: dfgdfg |
||
Строка 53: | Строка 53: | ||
Для вывода табличных данных можно использовать [https://prominado.ru/blog/gridy-i-filtry-v-bitrix/ встроенные компоненты] и [https://prominado.ru/blog/bitriks-js/ набор JS библиотек]. |
Для вывода табличных данных можно использовать [https://prominado.ru/blog/gridy-i-filtry-v-bitrix/ встроенные компоненты] и [https://prominado.ru/blog/bitriks-js/ набор JS библиотек]. |
||
== Модель БД == |
== Модель БД (ORM) == |
||
Таблицы в БД создаются классами производными от DataManager |
Таблицы в БД создаются классами производными от DataManager |
||
Строка 110: | Строка 110: | ||
* https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2244&LESSON_PATH=3913.5062.5748.2244 |
* https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2244&LESSON_PATH=3913.5062.5748.2244 |
||
* [https://dev.1c-bitrix.ru/community/blogs/vad/orm.php CRUD Битрикс] |
* [https://dev.1c-bitrix.ru/community/blogs/vad/orm.php CRUD Битрикс] |
||
* [https://github.com/sidigi/bitrix-info/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-ORM Основная работа с ORM] |
|||
== Обновление модуля == |
== Обновление модуля == |
Версия от 10:16, 26 февраля 2020
Базовая структура модуля для Битрикс описана тут, 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') )
Также можно устанавливать отношения между сущностными
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=4803&LESSON_PATH=3913.5062.5748.4803
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2244&LESSON_PATH=3913.5062.5748.2244
- CRUD Битрикс
- Основная работа с ORM
Обновление модуля
Обновление происходит путем выполнения файла updater.php
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=101&LESSON_ID=3218
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=101&LESSON_ID=3216
См. также
- Кастомизация bx24
- Пустой WireFrame для модуля Битрикс
- Заготовка модуля Битрикс [1]
- Конструктор модулей
- Все медоды API Битрикс
- Написание модуля на D7+ORM
- 1С:Битрикс пример создания модуля D7
- Модуль 0 обработчики событий