Створення модуля для 1с бітрікс

1. Застосуємо handler 'и. щоб зловити і заблокувати подія редагування елемента.

2. обернём ці handler 'и в модуль, щоб наш функціонал можна було застосувати на будь-якому сайті.

Цей шлях буде корисний, коли
1. При збереженні елемента Інфоблоки потрібно особливо перевіряти дані.
2. При збереженні або зміні змісту. потрібно задіяти інше. наприклад:
- запостив веб-форму - змінили щось в Інфоблоки
- змінили секцію - необхідно змінити щось в її елементах або інших секціях і т.п.)
- змінили елемент в Інфоблоки - необхідно створити агент, який в зазначений час відправить листи.
і т.п.
3. За результатом якогось події, потрібно кинути подія в модуль статистики.
4. Ви хочете навчитися робити модулі для 1С Бітрікс і викладати їх на Маркетплейс.

Дія 1: пишемо handler

У цій дії все до банальності просто і якісно задокументовано.
використовуючи Хендлер OnBeforeIBlockElementAdd
і схожих на нього ми зробимо функцію, яка блокує редагування в певний час.

Винесемо напис в налаштування модуля, щоб навчитися це робити.
Отже, для зберігання налаштувань модулів існує клас COption. Додамо це в нашу функцію:

Запам'ятайте:
Після того, як напишете код, який збираєтеся застосувати в компонент - виділіть в ньому настройки.

нижче ми розглянемо, як зробити адміністративну панель. що дозволяє редагувати настройки модуля. Також хочеться попередити, що клас COption вміє зберігати тільки два види установок - integer і string. На жаль, підтримки масивів не існує і в разі необхідності її доведеться реалізовувати манівцями, наприклад, за допомогою таблиці.

Дія 2: розробка заготовки модуля.

Створюємо в папці bitrix / modules папку russianpostjoke. Це буде папка нашого модуля.

Можливі помилки:
Якщо створити модуль і в назві буде присутній точка, можливо Ви не побачите його в списку модулів в адміністративній панелі. Бітрікс змінить точку в підкреслення в назві класу і функцій. Уважно вивчіть вихідні Бітрікс і / або чужі модулі, якщо збираєтеся використовувати точку.

Отже, замінивши в вищенаведеної заготівлі назву модуля на russianpostjoke всюди, де це потрібно, отримаємо нашу заготовку.
Перейдемо до наполененію її необхідним функціоналом.

Дія 3: заповнимо модуль функціоналом


Створимо клас cBlocker і розмістимо його в папці russianpostjoke / classes / general / cMainRPJ.php - туди ми впровадимо наш handler як методу.

Запам'ятайте:
Намагайтеся розміщувати класи, використовувані в своєму модулі саме в папці / classes /, слідуючи стандартам, заданим вже стандартними модулями Бітрікс.

Тепер, нам необхідно написати установку модуля. скористаємося файлом
russianpostjoke / install / index.php в якому є методи DoInstall () і DoUninstall ().
При цьому в нашому випадку необхідно виконати три умови:
а) Використовувати функцію RegisterModuleDependences. щоб встановити в систему наш Хендлер з класу cBlocker. прив'язавши його до штатних OnBeforeIBlockElementAdd і подібним.
б) Повідомити системі, що модуль встановлений. Нам допоможе RegisterModule ($ this-> MODULE_ID);
в) Викликати висновок повідомлення для користувача:

Звернемо увагу, що цей виклик повинен здійснюватися останнім, прямо перед конструкції return.

У слідстві, ми побачимо у себе в адміністративній панелі щось схожим з цим:

Створення модуля для 1с бітрікс

Крок 4. адміністративна панель

Схожі статті