Можно ли клонировать модули?

Главные вкладки

Аватар пользователя romantaran romantaran 6 января 2007 в 16:27

Можно ли сделать клон модуля, состоящего из одного файла, путем простого переименования этого файла?

Я использую модуль og_promote, который при вступлении пользователя в определенную группу присваивает ему опр. роль. Беда в том, что модуль позволяет это делать только для одной группы, а мне нужно для участников разных групп присваивать разные роли.

Так вот, можно ли просто клонировать этот модуль или нужно править в нем код? Файл прилагаю.

ВложениеРазмер
Двоичные данные og_promote-4.7.x-1.x-dev.tar_.gz7.29 КБ

Комментарии

Аватар пользователя axel axel 6 января 2007 в 16:37

Нет, простого переименования не достаточно и это проблема архитектуры друпала, завязанная в свою очередь на особенности PHP. В PHP используется общее пространство имён для функций (и это имхо хреново, хотя на первый взгляд упрощает код), поэтому для разделения имён обработчиков событий в разных модулях используются разные префиксы к именам функций. По друпаловскому соглашению обработчики начинаются всегда с имени модуля. Т.е. для модуля example все публичные функции будут начинаться с 'example_'. Одинаковые имена функций в разных модулях невозможны, PHP выдаст ошибку - это как раз из-за общего пространства имён.

Теоретически модуль можно клонировать переименовав все названия функций. Напримре example_ в new_example_. Если модуль не хранит данных в БД, то этого достаточно для получения отдельных экземпляров.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!