landing.repo.register
Scope: landing Права на выполнение: для всех
Описание
landing.repo.register(code, fields, manifest)
Метод добавления блока в репозиторий. Возвращает ошибку или ID добавленного блока. Этот ID используется для добавления блока на создаваемые программно лендинги.
При добавлении происходит проверка. Если блок с данным кодом уже присутствует в системе, произойдет его удаление
Метод может вернуть ошибку об опасном содержимом блока. В этом случае требуется сначала проверить регистрируемое содержимое методом landing.repo.checkContent.
При разработке нового блока или изменении существующего может потребоваться быстрее увидеть изменение, чем это позволяет пере-добавление блока или флаг RESET. Рекомендуется для этих целей использовать метод landing.block.updatecontent. Метод передаёт в блок произвольный контент и отображает изменения практически "налету". После того как разработка закончена, разработчик может окончательно его зарегистрировать.
Метод подходит только для изменения контента. При изменении манифеста блок требуется перерегистрировать (без пере-добавления на страницу).
Параметры
Метод | Описание | С версии |
---|---|---|
code | Уникальный код вашего блока, по нему будет осуществляться удаление блока, если требуется. | |
fields | Массив полей, описывающих ваш блок, состоит из ключей:
Дополнительные параметры:
| |
manifest | Массив манифеста, которым описывается блок. |
Атрибут style может вырезаться встроенным санитайзером. Чтобы это обойти используйте вместо него атрибут bxstyle. При добавлении система конвертирует его в штатный style.
Пример
<? //для наглядности, передадим PHP-массив на исполнение JS $data = array( 'code' => 'myblockx', 'fields' => array( 'NAME' => 'Test block', 'DESCRIPTION' => 'Just try!', 'SECTIONS' => 'cover,about', 'PREVIEW' => 'https://www.bitrix24.ru/images/b24_screen.png', 'CONTENT' => ' <section class="landing-block"> <div class="text-center g-color-gray-dark-v3 g-pa-10"> <div class="g-width-600 mx-auto"> <div class="landing-block-node-text g-font-size-12 "> <p>© 2017 All right reserved. Developed by <a href="#" class="landing-block-node-link g-color-primary">Bitrix24</a></p> </div> </div> </div> </section>' ), 'manifest' => array( 'assets' => array( 'css' => array( 'https://site.com/aaa.css' ), 'js' => array( 'https://site.com/aaa.js' ) ), 'nodes' => array( '.landing-block-node-text' => array( 'name' => 'Text', 'type' => 'text', ), '.landing-block-node-link' => array( 'name' => 'Link', 'type' => 'link', ), ), 'style' => array( '.landing-block-node-text' => array( 'name' => 'Text', 'type' => 'typo', ), '.landing-block-node-link' => array( 'name' => 'Link', 'type' => 'typo', ), ), 'attrs' => array( '.landing-block-node-text' => array( 'name' => 'Настройка копирайта', 'type' => 'dropdown', 'attribute' => 'data-copy', 'items' => array( 'val1' => 'Значение 1', 'val2' => 'Значение 2' ) ), ), ), ); ?> // обратите внимание! далее идет JS код. BX24.callMethod( 'landing.repo.register', //абстрактный метод, превращающий PHP-массив в JS-объект <?= \CUtil::PhpToJSObject($data)?>, function(result) { if(result.error()) console.error(result.error()); else console.info(result.data()); } );