Можно ли реализовать "модульный" хук в template.php?

20 декабря 2010 в 12:27

Иногда при темизации сайта нужно реализовать "модульный" хук, например, hook_menu_alter.

Делать ради одной функции отдельный модуль ломает, хотелось бы его реализовать непосредственно в кастомной теме, но ВОТ КАК? Я что-то не могу придумать и ничего найти по этому поводу в гугле. Это вообще, принципиально возможно?

Комментарии

RxB wrote:
"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
отдельный модуль ломает

Потеря производительности?

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

20 декабря 2010 в 13:50

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

20 декабря 2010 в 16:53

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

Если бы немного подумал, то и сам догнал, что модульных хуков в теме быть не должно по друпальной идеологии. Но сильно хотелось извернуться.

OK. Дальше делаю все правильно. Параллельно теме создаю соответствующий модуль для "тяжелого" кода.

20 декабря 2010 в 22:27

<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a> wrote:
Параллельно теме создаю соответствующий модуль для "тяжелого" кода.

Главное не называть модуль и тему одним именем, иногда чревато последствиями.

20 декабря 2010 в 23:24

glu2006 wrote:
<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a> wrote:
Параллельно теме создаю соответствующий модуль для "тяжелого" кода.

Главное не называть модуль и тему одним именем, иногда чревато последствиями.


Своевременно предупредил, спасибо. На вскидку пришел в голову только конфликт имен в hook_theme, но собственно этого уже хватит за глаза. ))

21 декабря 2010 в 0:24

есть хуки, которые можно вызвать не в модуле, а в теме. например, hook_theme. в 7-ом друпале alter-хуки тоже можно там. но по всем хукам я не знаю, хотелось бы какой-то список.

22 июля 2012 в 23:25

Ну я бы поспорил...
Я сказал, что в 7-ом друпале alter-хуки можно вызывать в теме... там есть исключения. Например, hook_form_alter можно в теме вызывать, а hook_menu_alter - нет!
Где же логика?

23 июля 2012 в 13:51

"Neumann" wrote:
Где же логика?

Как минимум, у вас она отсутствует. Система меню относится к внутренней структуре системы, менять её из темы нельзя и чревато. Ещё советую спросить почему hook_schema_alter() в теме не вызывается

23 июля 2012 в 14:03

"Neumann" wrote:

Ну, ок. Но тогда почему в 6-ом друпале hook_form_alter вызывается только в модуле?

Седьмой друпал они делали года два вроде, логично же что должны появиться какие то небольшие улучшения? Smile

24 июля 2012 в 9:57