Можно ли сделать клон модуля, состоящего из одного файла, путем простого переименования этого файла?
Я использую модуль og_promote, который при вступлении пользователя в определенную группу присваивает ему опр. роль. Беда в том, что модуль позволяет это делать только для одной группы, а мне нужно для участников разных групп присваивать разные роли.
Так вот, можно ли просто клонировать этот модуль или нужно править в нем код? Файл прилагаю.
Вложение | Размер |
---|---|
og_promote-4.7.x-1.x-dev.tar_.gz | 7.29 КБ |
Комментарии
Нет, простого переименования не достаточно и это проблема архитектуры друпала, завязанная в свою очередь на особенности PHP. В PHP используется общее пространство имён для функций (и это имхо хреново, хотя на первый взгляд упрощает код), поэтому для разделения имён обработчиков событий в разных модулях используются разные префиксы к именам функций. По друпаловскому соглашению обработчики начинаются всегда с имени модуля. Т.е. для модуля example все публичные функции будут начинаться с 'example_'. Одинаковые имена функций в разных модулях невозможны, PHP выдаст ошибку - это как раз из-за общего пространства имён.
Теоретически модуль можно клонировать переименовав все названия функций. Напримре example_ в new_example_. Если модуль не хранит данных в БД, то этого достаточно для получения отдельных экземпляров.
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Понял, спасибо.