Правильное внедрение js-скрипта на страницу

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

Аватар пользователя bifrost bifrost 15 июля 2011 в 17:23

Здравствуйте. Необходимо правильно добавить js-скрипт на страницу только для зарегистрированного пользователя. Сразу возникла мысль создать блок который доступен только зарегистрированному пользователю и с помощью drupal_add_js внедрить таки свой скрипт. Но, это решение меня не устраивает с идеологической точки зрения. Почитав форум, нашёл ветку Запретить грузить один из core js скриптов на некот страницах. Также почитал документацию по данной теме. Возник вопрос, что бы добавить свой скрипт в переменную $scripts мне нужно редактировать функцию mytheme_preprocess_page() в файле template.php? Как то не очень корректно код темы чужой менять. Может можно как-то свой хук вставить? Спасибо.

Комментарии

Аватар пользователя Alex Bacart Alex Bacart 15 июля 2011 в 17:44

"bifrost" wrote:
Но, это решение меня не устраивает с идеологической точки зрения.

Вполне неплохое решение. Чем не устроило?

"bifrost" wrote:
Может можно как-то свой хук вставить?

Можно и хук вставить, возникает вопрос - на какой странице надо добавлять этот js? Или вообще на всех страницах сайта?

Аватар пользователя bifrost bifrost 15 июля 2011 в 23:30

Vydrin_AP wrote:

Вполне неплохое решение. Чем не устроило?

Блоки это стандартное средство, но увеличивающее программный код. Думаю что хуком будет проще решить дело. Меньше программного кода будет исполняться. За этой автоматикой и телемеханикой наверняка не хилый кусок кода стоит. А мне нужно что бы быстро работало. Подгружать скрипт нужно только на определённом url.

Аватар пользователя natbampo natbampo 16 июля 2011 в 7:48

1) в своем модуле, в hook_init

2)

"bifrost" wrote:
мне нужно редактировать функцию mytheme_preprocess_page() в файле template.php? Как то не очень корректно код темы чужой менять

да все нормально, можно менять. На уровне темы, многие вещи делаются и если вы выбрали "готовую", то она к сайту относится как "стартовая"