параметри компонента
Файл .parameters.php повинен знаходитися в папці компонента. Мовний файл підключається автоматично (повинен лежати в папці / lang /<язык>/.parameters.php. щодо папки компонента).
У файлі визначається масив $ arComponentParameters. який описує вхідні параметри компонента. Якщо необхідно, проводиться вибірка будь-яких додаткових даних. Наприклад, для формування списку типів інформаційних блоків (вхідний параметр IBLOCK_TYPE_ID) вибираються всі активні типи.
Структура типового файлу .parameters.php (на прикладі компонентів, які працюють з модулем Інформаційні блоки):
Наведемо ключі масиву $ arComponentParameters докладніше.
Перелік стандартних груп:
- ADDITIONAL_SETTINGS (сортування - 700). Ця група з'являється, наприклад, при вказівці параметра SET_TITLE.
- CACHE_SETTINGS (сортування - 600). З'являється при вказівці параметра CACHE_TIME.
- SEF_MODE (сортування 500). Група для всіх параметрів, пов'язаних з використанням ЧПУ.
- URL_TEMPLATES (сортування 400). шаблони посилань
- VISUAL (сортування 300). Рідко яка використовується група. Сюди передбачається заганяти параметри, що відповідають за зовнішній вигляд.
- DATA_SOURCE (сортування 200). Тип і ID Інфоблоки.
- BASE (сортування 100). Основні параметри.
- AJAX_SETTINGS (сортування 550). Все, що стосується ajax.
PARAMETERS
Значення цього ключа є масив параметрів компонента. У кожній групі параметрів параметри розташовуються в тому порядку, в якому задані у файлі. Масив звичайних параметрів компонента складається з елементів такого вигляду:
Для типу елемента управління TYPE є значення:
- LIST - вибір зі списку значень. Для типу LIST ключ VALUES містить масив значень такого вигляду:
- STRING - текстове поле введення.
- CHECKBOX - так / ні.
- CUSTOM - дозволяє створювати кастомниє елементи управління.
- FILE - вибір файлу.
Зовнішній вигляд списку змінюється в залежності від наявності / відсутності ключів MULTIPLE і ADDITIONAL_VALUES:
- Якщо MULTIPLE і ADDITIONAL_VALUES відсутні або рівні "N", то виводиться просто список, ніяких значень в списку не додається.
- Якщо ADDITIONAL_VALUES = "Y", MULTIPLE = "N", то в список додається значення "інше" і поруч доп.поле для введення значення вручну:
Примітка. Скріншоти робилися для значення SIZE = 9. Якщо цей ключ не вказувати, список буде випадає.
Параметр REFRESH дозволяє після вибору значення перевантажити всю форму з параметрами. Робиться це, наприклад, для вибору Інфоблоки конкретного типу. Тобто маємо два параметра - тип Інфоблоки і код Інфоблоки. Початкове положення - в першому список всіх типів Інфоблоки, у другому - список всіх Інфоблоки даного сайту, а після вибору потрібного типу Інфоблоки параметри компонента перевантажуються і ми бачимо тільки Інфоблоки потрібного типу.
Зовні для параметрів типу LIST цей ключ проявляється як кнопка з написом ОК біля параметра (див. Скріншоти вище).
Якщо потрібно, щоб якийсь параметр з'являвся чи ні в залежності від іншого, робиться це так. Нехай нам необхідно показати список властивостей Інфоблоки. Припустимо, що ID Інфоблоки міститься в параметрі компонента IBLOCK_ID. а параметр, де буде список властивостей назвемо PROP_LIST. У параметра IBLOCK_ID повинен бути виставлений ключ REFRESH = 'Y'. код:
Існують особливі параметри, які стандартизовані і які немає необхідності описувати повністю. Досить вказати, що вони є. наприклад,
Перший із зазначених параметрів вказує, чи слід компоненту встановити заголовок сторінки, а другий - всі налаштування, пов'язані з кешуванням.
Тільки комплексні компоненти можуть працювати в режимі ЧПУ або перевизначати змінні, які приходять з HTTP запиту. В цьому випадку необхідно серед параметрів вказати ще два особливих параметра:
- "VARIABLE_ALIASES" - масив, що описує змінні, які компонент може отримувати з HTTP запиту. Кожен елемент масиву має вигляд:
- "SEF_MODE" - масив, що описує шаблони шляхів в режимі ЧПУ. Кожен елемент масиву має вигляд:
Починаючи з 12 версії продукту (нове ядро D7) з'явилася можливість додавання в параметри компонента елемента управління, що дозволяє вказувати колір (COLORPICKER).
Для цього необхідно вказати наступне в файлі параметрів компонента .parameters.php:
Важливо. Найбільш правильний варіант кастомізації компонента - скопіювати його в окремий простір імен і працювати вже з копією компонента. При цьому потрібно враховувати наслідки:- Збільшується загальна кількість компонентів, відповідно зростає і кількість виділених на їх підтримку ресурсів.
- Складність в освоєнні нових розробником: спочатку йому потрібно буде знайти в чому відмінність від вже існуючого стандартного компонента.