Блог Горошко Андрея 1C-Битрикс,Разработка Файл .parameters.php: Полное руководство по настройкам компонента Битрикс

Файл .parameters.php: Полное руководство по настройкам компонента Битрикс

Средний рейтинг
Еще нет оценок

Файл .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, Битрикс, кастомный компонент.

Мой рейтинг:

Добавить комментарий

Related Post

Обновление количества товара на складе в BitrixОбновление количества товара на складе в Bitrix

Средний рейтинг Еще нет оценок Обновление количества товара на складе в Bitrix можно сделать так В коде ниже происходит следующее: Мой рейтинг:

Работа с пользователями в Битрикс: CUser::GetList, Add, UpdateРабота с пользователями в Битрикс: CUser::GetList, Add, Update

Средний рейтинг Еще нет оценок Управление пользователями — одна из ключевых задач любой CMS. В Битрикс для этого предназначен класс CUser. Глобальный объект $USER (экземпляр этого класса) доступен на каждой странице и содержит

События в D7 ORM: OnBeforeAdd, OnAfterUpdate и другие. Полный контроль над даннымиСобытия в D7 ORM: OnBeforeAdd, OnAfterUpdate и другие. Полный контроль над данными

Средний рейтинг Еще нет оценок D7 ORM предоставляет мощный механизм событий, который позволяет вмешиваться в процесс сохранения, обновления или удаления данных. Это правильный способ добавить бизнес-логику (например, проверку, отправку уведомлений,