Расширение функционала Bitrix 24/Модуль: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 58: Строка 58:


Типы данных:
Типы данных:
<pre>
<blockquote>EnumField
EnumField
DateField
DateField
DatetimeField
DatetimeField
BooleanField
BooleanField
TextField
TextField
FloatField</blockquote>
FloatField
</pre>


К таблицам модуля можно обращаться через getList:
К таблицам модуля можно обращаться через getList:

Версия от 09:42, 26 февраля 2020

Базовая структура модуля для Битрикс описана тут, 1.


Копируем пустой шаблон и добавляем нужные файлы, например .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 библиотек.

Модель БД

Таблицы в БД создаются классами производными от DataManager

Типы данных:

EnumField
DateField
DatetimeField
BooleanField
TextField
FloatField

К таблицам модуля можно обращаться через 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

См. также

  1. https://tokmakov.msk.ru/blog/item/208