Какое написание id модуля для bitrix framework является правильным

Обновлено: 07.07.2024

Где хранятся значения по умолчанию параметров модуля?
-в файле /bitrix/modules/ID_модуля/options.php
-в базе данных
-в файле /bitrix/modules/ID_модуля/include.php
+в файле /bitrix/modules/ID_модуля/default_option.php

Создание собственного модуля оправданно в случае:
- разработки сайта «под заказ» с набором индивидуальных для данного проекта компонентов
+создания специализированного решения для 1С-Битрикс, в том числе с возможностью платного распространения
+централизованного распространения своей разработки через систему обновлений 1С-Битрикс
+объединения набора разработанных вами компонентов в модуль – единый блок для управления ими

Название модуля для полноценной поддержки его через систему обновлений "1С-Битрикс"
-может быть любым
+ должно начинаться с буквы и содержать не менее 3-х символов (латинских букв или цифр)
-должно иметь вид prefix.name, где prefix – идентификатор партнера, выпустившего модуль

При программировании в Bitrix Framework:
-модуль подключается автоматически только при использовании компонентов модуля
-модули подключаются автоматически.
+ необходимо подключать модуль, к которому обращается код

Подключаемым файлом модуля является следующий файл в папке модуля
- index.php
-install/index.php
-ни один из перечисленных
+include.php

Партнерская система обновлений позволяет
-распространять только платные модули
-распространять только бесплатные модули
+распространять как платные, так и бесплатные модули

Какие названия ID модуля «1C-Битрикс» являются правильными?
-my_module
+mymodule2
+mymodule
-MyMoDuLe
-2mymodule
+my2module

Класс инсталяции и деинсталяции модуля должен быть описан в файле:
+/bitrix/modules/ID_модуля/install/index.php
-/bitrix/modules/ID_модуля/options.php
-/bitrix/modules/ID_модуля/admin/menu.php

Способ влиять на работу одного модуля из другого:
-подключение файлов одного модуля в другом
+инициализация событий
-непосредственный вызов метода класса или функции модуля
-подключение модуля с помощью функции CModule::IncludeModule

Если модуль будет удален из системы, то:
- установка модуля повторно требует загрузки модуля с сайта «1С-Битрикс» ;
++ при деинсталляции некоторых модулей могут сохраняться накопленные модулем данные (таблицы модуля)
++ дистрибутив модуля остается в системе, и он в любое время может быть снова установлен;
- файлы модуля удаляются из системы с целью экономии дискового пространства.

Административные скрипты - это
+скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/admin/
-скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/lang/ID языка/admin/
-скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/

Проводить модификацию ядра «1C-Битрикс»
-невозможно, т. к. проактивная защита системы не даст этого сделать
+нужно убедиться, что без этого не обойтись, и с осторожностью, т. к. после обновления придется вносить все изменения заново
-запрещено лицензионным соглашением
+ не запрещено лицензионным соглашением

Увидеть ответ на вопрос: Если вам необходимо разместить на сайте собственный функционал, наиболее правильным с точки зрения Bitrix Framework будет:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

При разработке шаблона компонента разработчик

Увидеть ответ на вопрос: При разработке шаблона компонента разработчик, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Папки и файлы минимально необходимые для работы компонента с языковыми фразами:

Увидеть ответ на вопрос: Папки и файлы минимально необходимые для работы компонента с языковыми фразами:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Если информация отдается из кэша до тех пор, пока она не поменяется в базе данных и кэш сбросится автоматически, то это:

Увидеть ответ на вопрос: Если информация отдается из кэша до тех пор, пока она не поменяется в базе данных и кэш сбросится автоматически, то это:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Функция для регистрации обработчиков событий, расположенных в модулях

Увидеть ответ на вопрос: Функция для регистрации обработчиков событий, расположенных в модулях, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Для обеспечения внешней авторизации в продукте «1С-Битрикс» необходимо установить обработчик события

Увидеть ответ на вопрос: Для обеспечения внешней авторизации в продукте «1С-Битрикс» необходимо установить обработчик события, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Для реализации внешней авторизации необходимо создать обработчик соответствующего события в файле

Увидеть ответ на вопрос: Для реализации внешней авторизации необходимо создать обработчик соответствующего события в файле, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

- располагаться в специальных языковых файлах в кодировке UTF-8
- располагаться в любом месте кода модуля в кодировке Windows-1251
+ располагаться в специальных языковых файлах в кодировке Windows-1251
- располагаться в любом месте кода модуля в кодировке UTF-8

3. Административные скрипты - это

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

+ скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/admin/
- скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/
- скрипты, используемые модулем в административной части системы и располагающиеся в каталоге /bitrix/modules/ID модуля/lang/ID языка/admin/

4. Партнерская система обновлений позволяет

- распространять только бесплатные модули
- распространять только платные модули
+ распространять как платные, так и бесплатные модули

5. При программировании в Bitrix Framework:

- модули подключаются автоматически.
+ необходимо подключать модуль, к которому обращается код
- модуль подключается автоматически только при использовании компонентов модуля

6. Подключаемым файлом модуля является следующий файл в папке модуля

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

+ include.php
- ни один из перечисленных
- index.php
- install/index.php

7. Где хранятся значения по умолчанию параметров модуля?

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

- в файле /bitrix/modules/ID_модуля/options.php
- в базе данных
+ в файле /bitrix/modules/ID_модуля/default_option.php
- в файле /bitrix/modules/ID_модуля/include.php

8. Способ влиять на работу одного модуля из другого:

+ инициализация событий
- подключение файлов одного модуля в другом
- непосредственный вызов метода класса или функции модуля
- подключение модуля с помощью функции CModule::IncludeModule

9. Если модуль будет удален из системы, то:

- файлы модуля удаляются из системы с целью экономии дискового пространства.
+ дистрибутив модуля остается в системе, и он в любое время может быть снова установлен;
+ при деинсталляции некоторых модулей могут сохраняться накопленные модулем данные (таблицы модуля)
- установка модуля повторно требует загрузки модуля с сайта «1С-Битрикс»;

10. Название модуля для полноценной поддержки его через систему обновлений «1С-Битрикс»;

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

+ через систему партнерских обновлений
+ скачан в виде архива и распакован в папку /bitrix/modules/, а затем установлен в административной части сайта
- с помощью стандартного мастера установки демо-данных

12. Какие названия ID модуля «1C-Битрикс» являются правильными?

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

+ mymodule2
- моймодуль
- MyMoDuLe
- 2mymodule
- my_module
+ my2module
+ mymodule

13. Проводить модификацию ядра «1C-Битрикс»

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

+ нужно убедиться, что без этого не обойтись, и с осторожностью, т.к. после обновления придется вносить все изменения заново
- запрещено лицензионным соглашением
+ не запрещено лицензионным соглашением
- невозможно, т.к. проактивная защита системы не даст этого сделать

14. Создание собственного модуля оправданно в случае

+ объединения набора разработанных вами компонентов в модуль – единый блок для управления ими
+ создания специализированного решения для 1С-Битрикс, в том числе с возможностью платного распространения
+ централизованного распространения своей разработки через систему обновлений 1С-Битрикс
- разработки сайта «под заказ» с набором индивидуальных для данного проекта компонентов

15. Класс инсталяции и деинсталяции модуля должен быть описан в файле:

Внимание! На этот вопрос нужно обязательно дать правильный ответ. Если ответ будет не правильным, то тест не будет пройден, даже если вы наберёте нужное число баллов.

Совсем недавно, а точнее несколько месяцев назад, моя деятельность переплелась с системой управления содержимым 1С-Битрикс. И хотя в начале я был не восторге, а многие вещи мне казались запутанными и местами нелогичными, но чем дольше я работал с 1С-Битрикс, тем больше убеждался, что 1С-Битрикс – это система, которая позволяет реализовать проект любого уровня сложности. Если после установки одной из редакций движка, возникает необходимость в дополнительной функциональности, её можно расширить при помощи платных или бесплатных модулей. Сегодня же я расскажу, как написать такой модуль самому.

После прочтение документации, статей и просмотра видео уроков можно определено сказать, что после написания собственного модуля – степень понимания работы 1С-Битрикс вырастит на существенный уровень. По крайней мере, раньше я считал Битрикс просто CMS, но сейчас, он развивается как платформа для разработки веб-приложений - Bitrix Framework. Поработав определенное время с относительно крупными проектами на 1С-Битрикс, могу сказать, что как по мне, мало «это» напоминает фреймворк, больше мешанину (эта одна из причин по которой многие из моих знакомых отказываются работать с Битрикс), особенно, где код не переработан под новое ядро D7.

Итак, давайте притупим, и для начала нужно определиться, что и как писать. Первое и самое важное - разрабатывать модуль мы будем с максимальным использованием нового ядра D7, поэтому я не поленюсь потратить время на документацию. Использование D7 делает код более красивым и логичным. Во-вторых, в этой статье мы рассмотрим создание простого модуля, а в будущем эти наработки я хочу использовать для написания более интересных штук.

Что же написать? Тут я решил не мудрить и залез на маркетплейс и наткнулся:

marketplejs-1s-bitriks

Что интересно, казалось бы, добавить к себе кнопку наверх по сути пару минут, но есть платные решения и у некоторых из них более 300 скачек. В общем, говоря, выбор у меня для первого модуля пал именно на данную кнопку с набором настроек, которые можно будет менять через админку сайта.

Структура модуля

Разрабатываемый модуль рекомендуется помещать в папку local, так мы и поступим, это позволит его отделить от других решений и работать будет немного приятнее и проще. Какие файлы и папки могут и должны быть, можно изучить в соответствующем разделе документации Битрикс . Для реализации нашей задумки структура будет выглядеть так:

  • Пака модуля falbar.totop – название её в системе используется как индификатор, так что рекомендуется добавлять помимо названия и имя партнера. Соответственно falbar – имя партнера, totop – название модуля;
  • Внутри лежат три папки: install – набор скриптов для установки и удаления модуля, lang – набор языковых файлов, lib – набор файлов, в которых реализуется логика решения;
  • И осталось два файла: include.php – файл, подключаемый при вызове модуля в коде (его мы использовать не будем и оставим пустым), options.php – страница настроек, подключаемая в административной части.

Теперь рассмотрим папку install поподробнее:

  • assets – в этой папке я разместил JavaScript и CSS нашей кнопки, которые будут подключаться в пользовательской части;
  • index.php – файл в котором содержится описание модуля и реализуется установка и удаление его;
  • step.php и unset.php – соответственно шаги установки и удаления, их может быть сколько угодно, а также мы можем и не использовать их;
  • version.php – в нем указывается версия и время обновления нашего модуля.

Для нашего решения все языковые параметры я вынес в соответствующие ленговые файлы, хотя можно было бы их и сократить, но для меня удобнее делать так. В дальнейшем в статье я буду приводить примеры только для русской локализации во избежание дублирования кода в статье.

struktura-modulya-bitriks-main

Модуль кнопка наверх не требует сложной логики, мы больше будем заниматься оформлением его для системы, но параметры, которые нам нужны для настройки кнопки на стороне клиента необходимо как то получить, вот для этого и понадобиться класс Main, который мы разместим в соответствующем файле Main.php.

Установка и удаление модуля Битрикс

Вот мы и приступили непосредственно к написанию кода. Первое, что стоит заполнить это файл version.php:

Указываем в массиве два параметра версию и время обновление модуля и переходим к описанию главного файла index.php:

В новом ядре D7 широко используются пространства имен, поэтому подключаем все необходимые для нашего файла. Далее загружаем языковые файлы:

Теперь нам нужно написать класс, в котором будет реализована установка и удаление модуля:

Имя класса должно соответствовать папке модуля и являться наследником от CModule, только вместо точки стоит прописать нижние подчеркивание, после чего в адмике мы увидим, что система определила наш модуль:

sistema-opredelila-nash-modul

Двигаемся дальше и сообщим системе больше информации, о нашем модуле, указав основные свойства, делать это я буду в конструкторе класса:

Рассмотрев несколько примеров решений, я пришел к выводу, что конструктор лучше всего подходит для выполнения такого рода задач. В нем мы подключили наш файл version.php и заполнили основные свойства для нашего класса. Перед тем, как посмотреть результат этих действий, нам нужно заполнить соответствующий языковой файл:

Вернемся в админку и посмотрим, как теперь выглядит модуль:

sistema-opredelila-nash-modul-s-parametrami

Следующий метод, который мы напишем, реализует процесс установки:

Добавим ещё несколько переменных в языковой файл:

Опишем три метода, к которым мы обратились из установочного DoInstall():

Копируем наши скрипты и стили в систему.

Так как мы не работаем с базой, оставляем этот метод пустым.

Регистрируем событие OnBeforeEndBufferContent. Перед тем, как страница будет отрисоваться, мы добавим свой HTML код, в котором сохраним настройки для нашей кнопки. Этот весь механизм далее напишем в файле Main.php.

С установкой мы закончили теперь опишем процесс удаления, заключаться он будет в нескольких методах:

Вызываем uninstall методы, удаляем регистрационную запись о модуле из базы данных и подключаем файл unstep.php, о котором мы выше уже говорили.

Мы описали ещё одну языковую переменную, добавим её в соответствующий файл:

А теперь поговорим о методах:

Удаляем добавленные скрипты и стили из системы.

Удаляем из базы настройки нашего модуля.

И в последнем методе удаляем регистрационную запись обработчика события OnBeforeEndBufferContent. Чтобы увидеть результат нам осталось описать два файла step.php и unstep.php так и сделаем.

И посмотрим, что получилось:

modul-ustanovlen

В принципе, он не сильно отличается от варианта в первом файле, добавим новые языковые переменные в соответствующий файл и проверим удаление модуля Битрикс:

modul-udalen

Пишем страницу настроек для модуля Битрикс

Выше мы уже узнали, что страница настроек находится в файле options.php, сейчас он пуст и в административной части эта страница выглядит так:

pustaya-stranitsa-nastroek

Первым делам подключим все необходимые классы, языковые файлы и получим id модуля.

Что теперь? Надо описать настройки модуля и поместить их в массив.

Через административную часть мы позволим пользователю изменять:

  • Включать/выключать модуль;
  • Изменять ширину/высоту/радиус кнопки;
  • Менять цвет;
  • Менять положение кнопки и скорость анимации.

Для примера думаю, этих параметров хватит с головой, напишем массив настроек:

Вот у нас получился такой массив, со значениями по умолчанию. Как его заполнять можно изучить в документации, но там информации мало. Из примеров чуть больше можно найти на этой странице . Добавим в соответствующий языковой файл новые элементы массива MESS:

Нам осталось отрисовать форму, для этого создадим новый экземпляр класса CAdminTabControl, куда и передаём массив с настройками:

И обозначим конец отрисовки формы:

У нас появилось ещё две языковые переменные, добавим и их:

Скажу сразу, такой способ формирования формы один из самых простых, фактически, мы можем создать любой вариант форм, не пользуясь для этого Битриксовым функционалом. Вернемся в админку и посмотрим теперь на нашу страницу:

stranitsa-nastroek

Как видите, получилось весьма годно, нам осталось только добавить код для сохранения настроек. Поместим его после массива с параметрами:

В обработчике мы также используем массив с параметрами для удобства сохранения, хотя это один из способов, в конце, конечно, нужно сделать редирект. Все настройки мы сохраняем при помощи статического метода set() у класса Option, который нужен именно для работы с настройками модуля. Вот мы и закончили со страницей настроек, теперь нам осталось подкинуть их в пользовательскую часть и обработать на стороне клиента.

Подключаем скрипты и стили кнопки, передаем настройки на страницу пользователя

Тут могут быть разные пути для решения этой задачи. В самом начале статьи, когда мы описывали код установки модуля, мы привязались к событию перед отрисовкой страницы и указали метод appendScriptsToPage() класса Main как обработчик. Теперь нам его нужно написать:

В методе мы определили, что он будет отрабатывать только на стороне клиента. Далее сформировали HTML код с набором настроек в json формате для удобства и добавили его в HEAD документа. В конце подключили скрипты и стили нашего Битрикс модуля кнопка наверх.

skripty-i-stili-bitriks-modulya-knopka-naverh

Вот и всё - параметры переданы, осталось их обработать на стороне клиента.

JavaScript и CSS кнопки наверх Битрикс модуля

Вот мы и подобрались к финальной части и осталось самое простое, на мой взгляд. Опишем стандартные стили нашей кнопки по умолчанию:

Незабываем код упаковать и добавить в style.min.css. Для работы кнопки нам нужна библиотека jQuery, качаем её с официального сайта и также добавляем её в соответствующий файл. Теперь напишем JavaScript, который и будет добавлять кнопку с учетом настроек:

В результате у нас получился такой код. Сам принцип написания кнопки я уже рассматривал в статье: Плавная кнопка прокрутки «Наверх», если вам интересен сам механизм. Осталось увидеть плоды нашей работы:

Перед тем, как смотреть, нужно удалить и заново установить модуль

modul-knopka-naverh

Казалось бы, столько времени потратили на добавление кнопки, но после прочтения этой статьи, я думаю, написать более сложный модуль не составит труда, а на этом я ставлю точку.


В официальной док-ии есть подробное описание. Наверно в этом его и недостаток, что оно какое то слишком подробное. Сам я учился создавать модуль на примере других модулей, но натыкался на подводные камни, присущие именно bx.

Подводные камни создания модуля:

Создадим модуль Excel на основе плагина javascript SpreadSheet . Для большинства CMS этот плагин уже есть, для битрикса как раз нет.


Но обязательны только include.php и install/index.php

автоматом тянется этот файл. Чаще всего вся логика в нем и сосредоточена, но бывает что он выполняет лишь роль autoloader. Это уже как вы сами решите. Можно даже оставить пустым.

Наш модуль spreadsheet ,он же excel, содержит минимум логики и весь функционал в папке codebase, которую мы установим в стандартную папку js модулей битрикса /bitrix/js/excel/

Как видите скрипт ничего особенного не делает как просто подключает класс модуля. Тем не мении лоигка может быть сосредоточена тут.

Файл меню для модуля.

Наконец папка Install. Многие файлы отсюда копируются в директории admin, js, tools, images.

Это главный установочный файл модуля. Он отвечает за перемещение файлов в админ дир-ю, создание таблиц, подключение событий. Класс установщика обязательно именуется по id модуля.

Установщик стандартный, единственное я добавил замену конфига spreadsheet, где в шаге 1 вы сами заполняете свои данные. Замена происходит в методе DoInstall(), к-й отрабатывает при нажатии кнопки Установить .

Шаг 1 это форма где заполняем свои данные подключения к БД и проч. Необязателен.

Необходимо передавать id удаляемого модуля.

После удаления модуля, он может показываться как не удаленный. Дело в кеше.

В админке же мы обратимся к нему как
/bitrix/admin/excel.php?lang=ru

куда он и скопировался.

Создание таблиц. все просто

Ну и остался сам плагин spreadsheet, к-й у нас перекочует в папку admin/js

С папкой install все.

Остались языковые файлы. Они зеркально копируют структуру модуля, с содержимым в виде

Не забываем подключать

Вот и все. Осталось
Закинуть в папку /bitrix/modules/

3 Comments

Читайте также: