Файл .parameters.php — это «пульт управления» вашего компонента.
Он описывает, какие настройки будут доступны в визуальном редакторе при размещении компонента на странице.
Правильно составленный .parameters.php делает компонент гибким и удобным для контент-менеджеров.
Базовая структура
Файл должен возвращать массив $arComponentParameters, который имеет две основные секции: GROUPS (описание групп параметров) и PARAMETERS (описание самих параметров).
// /.parameters.php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = [
// 1. Группы параметров
"GROUPS" => [
"DATA_SOURCE" => [
"NAME" => "Источник данных",
"SORT" => 100,
],
"VISUAL" => [
"NAME" => "Внешний вид",
"SORT" => 200,
],
],
// 2. Сами параметры
"PARAMETERS" => [
// ... здесь описание каждого параметра ...
],
];
Описание одного параметра
Каждый параметр — это массив с набором ключей:
- PARENT: ID группы, к которой относится параметр (например, BASE, DATA_SOURCE).
- NAME: Название параметра (отображается в админке).
- TYPE: Тип поля для ввода.
- DEFAULT: Значение по умолчанию.
- REFRESH: Y или N. Если Y, страница настроек будет перезагружена после изменения этого параметра.
- MULTIPLE: Y или N. Позволяет выбирать несколько значений (для типа LIST).
Основные типы параметров (TYPE)
1. STRING — Строка
Обычное текстовое поле.
"MY_TITLE" => [
"PARENT" => "VISUAL",
"NAME" => "Заголовок блока",
"TYPE" => "STRING",
"DEFAULT" => "Наши новости",
]
2. CHECKBOX — Галочка (Да/Нет)
Возвращает Y или N.
"SHOW_DATE" => [
"PARENT" => "VISUAL",
"NAME" => "Показывать дату?",
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
]
3. LIST — Выпадающий список
Требует дополнительного ключа VALUES — массива с вариантами.
"SORT_ORDER" => [
"PARENT" => "BASE",
"NAME" => "Направление сортировки",
"TYPE" => "LIST",
"DEFAULT" => "DESC",
"VALUES" => [
"ASC" => "По возрастанию",
"DESC" => "По убыванию",
],
]
4. FILE — Выбор файла
Позволяет выбрать файл из медиабиблиотеки или загрузить новый.
"WATERMARK_FILE" => [
"PARENT" => "VISUAL",
"NAME" => "Файл водяного знака",
"TYPE" => "FILE",
"FD_TARGET" => "F", // F - файл, D - папка
"FD_EXT" => "png, jpg, jpeg, gif", // Ограничение по расширениям
]
Магия REFRESH => ‘Y’ (динамические параметры)
Это одна из самых мощных возможностей. Когда пользователь меняет параметр с REFRESH => ‘Y’, страница настроек перезагружается, и вы можете сформировать значения для других параметров на основе сделанного выбора.
Пример: Сначала пользователь выбирает тип инфоблока, а затем в другом списке появляются только инфоблоки этого типа.
// 1. Получаем текущие значения параметров (доступны после перезагрузки)
CModule::IncludeModule("iblock");
$iblockTypes = CIBlockParameters::GetIBlockTypes();
$iblocks = [];
if (!empty($arCurrentValues["IBLOCK_TYPE"])) {
$rsIblocks = CIBlock::GetList([], ["TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE" => "Y"]);
while ($arr = $rsIblocks->Fetch()) {
$iblocks[$arr["ID"]] = "[" . $arr["ID"] . "] " . $arr["NAME"];
}
}
// 2. Описываем параметры
$arComponentParameters["PARAMETERS"] = [
"IBLOCK_TYPE" => [
"PARENT" => "DATA_SOURCE",
"NAME" => "Тип инфоблока",
"TYPE" => "LIST",
"VALUES" => $iblockTypes,
"REFRESH" => "Y", // <-- Магия здесь!
],
"IBLOCK_ID" => [
"PARENT" => "DATA_SOURCE",
"NAME" => "Инфоблок",
"TYPE" => "LIST",
"VALUES" => $iblocks, // Этот массив формируется динамически
"ADDITIONAL_VALUES" => "Y",
],
];
- При первой загрузке $arCurrentValues[«IBLOCK_TYPE»] пуст, и список инфоблоков тоже пуст.
- Пользователь выбирает тип инфоблока. Так как у этого параметра REFRESH равен Y, страница перезагружается.
- При повторном выполнении .parameters.php переменная $arCurrentValues уже содержит выбранный тип, и мы можем отфильтровать инфоблоки и подставить их в VALUES для параметра IBLOCK_ID.
Вывод:
Файл .parameters.php — это не просто описание формы, а мощный инструмент для создания гибких и удобных компонентов.
Понимание работы разных типов полей, а особенно механизма REFRESH, позволяет создавать компоненты с динамическими, взаимозависимыми настройками, которые значительно упрощают жизнь контент-менеджерам.
.parameters.php, параметры компонента, TYPE, LIST, FILE, REFRESH, PARENT, Битрикс, кастомный компонент.