Створення компонента Бітрікс

У цій статті мова піде про розробку компонентів для Бітрікс з нуля. Я розповім про те, як правильно написати компонент, зробити опис до нього, а також налаштувати параметри компонента, щоб можна було користуватися вашим компонентам як стандартними компонентами Бітрікс. Раніше я вже писав про компоненти Бітрікс. Будемо вважати, що ту статтю ви вже прочитали. Тож почнемо.

Структура папки компонента має вигляд:

Розберемо кожен файл окремо.

файл .description.php

З точки зору програмування файл .description.php потрібен для визначення масиву $ arComponentDescription, в якому визначаються основні параметри опису.

Типова структура цього масиву така:

Ключі компонента означають наступне:

файл .parameters.php

У цьому файлі міститься опису параметрів, що вводяться компонента. Опис проводитися шляхом завдання масиву $ arComponentParameters, який має вигляд:

Масив має наступні ключі:

  • GROUPS - всі параметри розділені на групи. Групи задаються масивом наступного виду:

Перелік стандартних груп:
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 - список елементів
    • CHECKBOX - прапорець так / ні
    • STRING - рядок символів
    • FILE - файл
    • COLORPICKER - колір
    • CUSTOM - Прикладом для користувача (CUSTOM) типу параметрів є параметр MAP_DATA в компоненті bitrix: map.google.view

    Для типу LIST ключ VALUES містить масив значень такого вигляду:

    файл component.php

    Отже, поглянемо на основний файл компонента. Базова структура така:

    Перший рядок потрібна для обмеження прямого доступу до файлу компонента. Далі йде визначення масиву $ arResult, який ми повинні передати шаблоном.

    Метод StartResultCache повертає true, якщо кеш бути діючим, а його дані застаріли. Дані заносяться в кеш при виклику шаблону. За додатковою інформацією щодо цієї функції краще звернутися до документації.

    Функція IncludeComponentTemplate виводить шаблон компонента. Також при виклику цієї функції оновлюється кеш.

    Створення компонента Бітрікс

    Тепер давайте створимо простий компонент, який би виводив записи з Інфоблоки. Компонент буде розташовуватися в окремому просторі імен mir. Вхідними параметрами будуть ID інфлоблока з якого брати елементи і величина вибірки елементів.

    Створимо в папці / bitrix / components нову папку mir. Це буде наше нове простір імен.

    Визначимо основні файли компонента.

    Ви напевно помітили функції GetMessage? Тепер треба створити мовні файли. Лежати вони повинні в папці lang / ru / і називатися повинні як і файли, змінні для котого в них визначаються.

    Відмінно! Тепер в папці компонента створіть папку templates. У ній будуть зберігатися шаблони. Кожна папка - окремий шаблон. Шаблон за замовчуванням називається .default, створіть таку папку і додайте в неї файл template.php. Нехай він буде поки порожній.

    Тепер просто перетягніть компонент на сторінку. Він повинен з'явиться в області редагування.

    Зробіть подвійне клацання на ньому, з'явиться вікно параметрів.

    Як бачите, все вийшло. Але наш компонент нічого не робити. Виправимо це.

    Логіка компонента така, що спочатку він повинен здійснити вибірку з призначеного нами Інфоблоки, а потім передати цим дані в шаблон, який з виведе на екран. Тут як раз і проявляється поділ логіки та інтерфейсу. У файлі компонента component.php повинна задаватися логіка. Вихідні дані повинні бути поміщені в масив $ arResults. З цим масивом повинен працювати шаблон. В ідеалі шаблон не повинен робити ніяких маніпуляцій з цим масивом, тільки задавати спосіб виведення його на екран.

    Параметри передаються як в сам компонент, так і в шаблон за допомогою масиву $ arParams. Можна додати наступний рядок в файл компонента:

    Ви побачите на сторінці компонента наступне:

    Структура масиву дуже проста. Тепер створимо основну логіку компонента.

    Файл компонента повинен прийняти вигляд:

    Ми спочатку зробили вибірку з Інфоблоки стандартними методами API Бітрікс. Потім ми додали інформацію про кожен елемент в масив $ arResult і викликали шаблон компонента.

    Відредагуємо файл template.php наступним чином:

    Як ми бачимо, у нас є тільки шаблон для відображення інформації, в який ми підставляємо значення з Інфоблоки. Результат наступний:

    Якщо ви хочете окремі стилі для свого компонента, то додайте в папку компонента файл style.css. Бітрікс його автоматично підключить.

    Точно також Бітрікс автоматично підключить файл script.js.

    Схожі статті