Редактирование блока
Описание
На данный момент разработчики имеют возможность внедриться в пункты редактирования любого блока. В случае такой регистрации рядом с кнопками блока "Редактировать" и "Дизайн" появится кнопка вызова вашего приложения.
Код для встройки приложения зависит от кода блока и в общем виде выглядит так: LANDING_BLOCK_<CODE>
. Если в случае системного блока все понятно, и вместо <CODE>
нужно вставить код блока (примеры ниже), то в случае встраивания в зарегистрированный вами же блок нужно подставить его идентификатор.
Например:
- Регистрируем блок. Метод вернет ID блока. Пусть он равен 1132, для примера.
- При регистрации места встраивания указываем код:
LANDING_BLOCK_repo_1132
(илиLANDING_BLOCK_REPO_1132
, регистр не важен)
Параметры
Для данного места встраивания доступны параметры:
Параметр | Описание | С версии |
---|---|---|
ID | – идентификатор блока. | |
CODE | – символьный код блока. | |
LID | – идентификатор страницы. |
Получить параметры можно из PLACEMENT_OPTIONS:
$placement = isset($_REQUEST['PLACEMENT_OPTIONS']) ? json_decode($_REQUEST['PLACEMENT_OPTIONS'], true) : [];
Пример
BX24.callMethod( 'landing.repo.bind', { fields: { PLACEMENT: 'LANDING_BLOCK_04.1.one_col_fix_with_title', PLACEMENT_HANDLER: 'https://cpe/rt/placement.php', TITLE: 'My block' } }, function(result) { if(result.error()) console.error(result.error()); else console.info(result.data()); } );
Если вы хотите встроить универсальное приложение для каждого блока, следует указывать код со *:
BX24.callMethod( 'landing.repo.bind', { fields: { PLACEMENT: 'LANDING_BLOCK_*', PLACEMENT_HANDLER: 'https://cpe/rt/placement.php', TITLE: 'My block' } }, function(result) { if(result.error()) console.error(result.error()); else console.info(result.data()); } )
Обновление блока из приложения
В открывающемся приложении доступна команда на обновление конкретного блока. Подразумевается, что после работы с блоком, из которого вызвано приложение, вам может потребоваться его обновить. Делается это через команду refreshBlock.
Пример
BX24.placement.call( 'refreshBlock', { id: 123//блок с идентификатором 123 }, function() { console.log('Блок успешно обновлен'); //закрываем слайдер } );