Як зробити модуль 1с-бітрікс, savepearlharbor

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

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

Крок 1: пишемо Хендлер

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

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

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

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

Крок 2: створимо "болванку" модуля.

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

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

Крок 3: наповнюємо модуль функціоналом

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

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

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

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

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

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

Крок 4: Адаменко

замість висновку

Ми розглянули найпростіший модуль, є про що розповісти ще мінімум на 3 статті. Якщо тобі,% username%, виявився корисним цей матеріал, або ти, як і я, хочеш поліпшення рівня розробників під 1С-Бітрікс, підтримай статтю. Дякуємо.

Схожі статті