Settings - andreyryabin/sprint.editor GitHub Wiki
Позволяют добавлять дополнительные параметры к блокам, для создания таких настроек надо создать произвольный файл с настройками в директории /bitrix/admin/sprint.editor/settings/ или /local/admin/sprint.editor/settings/ за основу можно взять файл example.php
$settings = array(
'title' => 'Пример настройки',
'block_settings' => array(
'text' => array(
'myparam1' => array(
'type' => 'select',
'value' => array(
'style1' => 'Цитата',
'style2' => 'Сноска',
)
),
'myparam2' => array(
'type' => 'select',
'value' => array(
'style4' => 'Яркий фон',
)
),
),
),
);Разные виды настроек, порддерживается text, dropdown, select
$settings = [
'title' => 'Пример настройки 2',
'block_settings' => [
'htag' => [
'param110' => [
'type' => 'text',
'title' => 'Текстовый',
'default' => '',
],
'param222' => [
'type' => 'dropdown',
'value' => [
'var1' => 'Вариант 1',
'var2' => 'Вариант 2',
],
'title' => 'Список',
'default' => 'var2',
],
'param333' => [
'type' => 'select',
'value' => [
'var1' => 'в1',
'var2' => 'в2',
'var3' => 'в3',
],
'default' => 'var2',
],
],
]
];
Эти настройки теперь отображаются в админке у заданных блоков, их можно включать-выключать и они сохраняются при сохранении материала, в объекте settings.
Пример:
"name": "text"
"value":"Текст блока"
"settings": {"myparam1": "style1"},
Однако на сайте эти настройки никак не проявляют себя, шаблон блока никак не использует эту информацию, ведь это ваша произвольная настройка, научите его:
Правим шаблон блока к которому добавили параметров bitrix/templates/.default/components/sprint.editor/blocks/.default/text.php
<?php /** @var $block array */
$settings = !empty($block['settings']) ? $block['settings'] : [];
$myparam1 = !empty($settings['myparam1']) ? $settings['myparam1'] : '';
$myparam2 = !empty($settings['myparam2']) ? $settings['myparam2'] : '';
?>
<?php if ($myparam1 == 'style1') { //выводим текст блока в каком-либо оформлении ?>
<div class="text-block-style1">
<?= $block['value'] ?>
</div>
<?php } else { //выводим текст блока без какого-либо оформления?>
<?= $block['value'] ?>
<?php } ?>Теперь блоки с настройкой myparam1 = style1 будут обёрнуты в div с классом text-block-style1
$settings = array(
'title' => 'Пример настройки',
'block_enabled' => array(
'htag',
'text',
'gallery',
'layout_1',
'layout_2',
),
);$settings = array(
'block_titles' => array(
'text' => 'Супертекст',
'htag' => 'Суперзаголовок',
),
);После создания такого файла он появится в выпадающем списке пользовательских настроек и после сохранения эти настройки можно увидеть уже у блоков в редакторе.
Отображение пользовательских настроек для текстовых блоков
файл с настройками local/admin/sprint.editor/settings/myexample.php
global $USER;
$userGroups = $USER->GetUserGroupArray();
$moderatorGroup1 = 5;
$moderatorGroup2 = 6;
if (in_array($moderatorGroup1, $userGroups)) {
$settings = [
'block_enabled' => [
'htag',
'text',
'gallery',
],
];
} elseif (in_array($moderatorGroup2, $userGroups)) {
$settings = [
'block_enabled' => [
'htag',
'text',
'gallery',
'image',
'twitter'
],
];
}В каждом блоке админки есть файл config.json в котором задано его название, сортировка, текст подсказки и некоторые общие настройки, отвечающие за отображение блока Их можно переопределить всё в том же файле пользовательских настроек
Параметры:
- title - Название блока (его также можно переопределить через block_titles)
- hint - Подсказка всплывающая при наведении на название блока
- button - html-кнопка вставки блока, в которой можно указать например картинку
- description -Описание, которое отображается под блоком в админке
$settings = array(
'title' => 'Пример настройки',
'block_configs' => [
'text' => [
'title' => 'Текст',
'hint' => 'Подсказка',
'button' => 'Текст',
'description' => 'Обратите внимание на этот текст',
],
'htag' => [
'description' => 'Обратите внимание на этот текст',
],
],
);Результат



