Всем доброго дня!
Посоветуйте, пожалуйста, как можно (наиболее просто) запретить доступ к сайту? Хочется чтобы это выглядело так: заходишь на сайт, и Анонимус не видит ничего, кроме формы с логином и паролем в центре экрана.
В принципе, я знаю как это сделать кривым способом - добавить в html.tpl.php проверку аутентификации пользователя, и если он не залогинился, то выводить форму с логином и паролем. Но это как то не очень изящно)
Хочется чтобы это выглядело именно как модуль, а мне какие то извращения с файлами темы. Но тут у меня даже идей никаких нет, как этот модуль писать. Пробовал использовать hook_boot - выводить форму по этому хуку, но там видимо еще не все функции ядра загружены, поэтому как делать верификацию логина и пароля непонятно.
Поиск использовал.. сюда не отправляйте: http://www.drupal.ru/node/13382 .
Комментарии
А модули типа не те-же извращения с файлами делают? )
Не, ну я просто совсем новичок, поэтому хз.. Мне казалось, что раз в Друпале такая продвинутая "модульная" система, то best practice это не корежить файлы, а пытаться какую то функциональность, которой изначально нет, запихать в модуль, чтобы потом в любом проекте можно было использовать.
Я понимаю, что в принципе можно обозвать это новой "темой" и все ок, но тут скорее просто любопытно, как так технически сделать, с помощью хуков.
а сюда - api.drupal.ru ?
вверху справа - Поиск
Чота ерунду вы городите. В настройках доступа запретить доступ к материалу и ко всему остальному анонимусу. Разрешить только блок логина.
Когда кажется - крестится надо)
Разве не очевидно какие задачи решает модуль? Задачу можно решить написав кучу строк кода, создав дополнительно кучку файлов (не выходя за рамки api, конечно). Но модуль - это уже кемто написанные строчки кода в нужных файликах. Вот и все. Модуль - работа сделанная за тебя. Поставил и не паришься. Но разницы между готовым модулем и лично написанным - по сути никакой, кроме личных затрат времени и ума))
Ладно. Видимо, нечетко вопрос задал. Четкий вопрос:
Какой хук в модуле использовать, чтобы перехватить загрузку страницы?
hook_boot - не подходит, т.к. при этом еще не загружены некоторые функции (например user_authenticate) и сделать аутентификацию сложно.
orion76 - в след. раз может не стоит тратить свое драгоценное время, зачем?
Lotar - если я правильно понял, имеется в виду настройка разрешений, вкладка People на панели администрирования? Если да, то я пробовал это, даже если Анонимусу убрать все галки, он все равно будет видеть меню и панель навигации, хотя и не сможет просматривать материал, да. Но исходная постановка задачи была другая (см. первый пост).
Тогда только в api копать, как и советовал Орион)
А зайти в настройки блоков и выставить там опцию "показывать только для зарегистрированных пользователей" - не проще ли, чем писать хуки?
[ru-api=hook_init]hook_init[/ru-api]
Спасибо!! То что надо. Я пробовал его использовать, но не поставил bootstrap=1, поэтому не работало нифига..
На всякий случай напишу для тех у кого возникнет такой же вопрос:
hook_init вызывается до загрузки страницы. Для модуля, где используется hook_init, нужно поставить в таблице system параметр bootstrap=1.
Месье забил гвоздь микроскопом только что
попробуй, очень удобно)
http://api.drupal.ru/api/function/hook_init/6 - Обратите внимание на адрес страницы и сравните его с :
Где я был неправ?
---------------
Дай человеку рыбу, он будент сыт один день,
Науйчи его рыбачить, он будет сыт всю жизнь.
Понял, учитэл!