Закрытый сайт

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

Аватар пользователя dd210 dd210 4 декабря 2011 в 2:06

Всем доброго дня!

Посоветуйте, пожалуйста, как можно (наиболее просто) запретить доступ к сайту? Хочется чтобы это выглядело так: заходишь на сайт, и Анонимус не видит ничего, кроме формы с логином и паролем в центре экрана.

В принципе, я знаю как это сделать кривым способом - добавить в html.tpl.php проверку аутентификации пользователя, и если он не залогинился, то выводить форму с логином и паролем. Но это как то не очень изящно)

Хочется чтобы это выглядело именно как модуль, а мне какие то извращения с файлами темы. Но тут у меня даже идей никаких нет, как этот модуль писать. Пробовал использовать hook_boot - выводить форму по этому хуку, но там видимо еще не все функции ядра загружены, поэтому как делать верификацию логина и пароля непонятно.

Поиск использовал.. сюда не отправляйте: http://www.drupal.ru/node/13382 . Smile

Комментарии

Аватар пользователя dd210 dd210 4 декабря 2011 в 2:33

Не, ну я просто совсем новичок, поэтому хз.. Мне казалось, что раз в Друпале такая продвинутая "модульная" система, то best practice это не корежить файлы, а пытаться какую то функциональность, которой изначально нет, запихать в модуль, чтобы потом в любом проекте можно было использовать.

Я понимаю, что в принципе можно обозвать это новой "темой" и все ок, но тут скорее просто любопытно, как так технически сделать, с помощью хуков.

Аватар пользователя Lotar Lotar 4 декабря 2011 в 2:58

Чота ерунду вы городите. В настройках доступа запретить доступ к материалу и ко всему остальному анонимусу. Разрешить только блок логина.

Аватар пользователя alex_shut alex_shut 4 декабря 2011 в 3:09

"dd210" wrote:
Мне казалось, что раз в Друпале такая продвинутая "модульная" система,

Когда кажется - крестится надо)

Разве не очевидно какие задачи решает модуль? Задачу можно решить написав кучу строк кода, создав дополнительно кучку файлов (не выходя за рамки api, конечно). Но модуль - это уже кемто написанные строчки кода в нужных файликах. Вот и все. Модуль - работа сделанная за тебя. Поставил и не паришься. Но разницы между готовым модулем и лично написанным - по сути никакой, кроме личных затрат времени и ума))

Аватар пользователя dd210 dd210 4 декабря 2011 в 3:35

Ладно. Видимо, нечетко вопрос задал. Четкий вопрос:

Какой хук в модуле использовать, чтобы перехватить загрузку страницы?

hook_boot - не подходит, т.к. при этом еще не загружены некоторые функции (например user_authenticate) и сделать аутентификацию сложно.

orion76 - в след. раз может не стоит тратить свое драгоценное время, зачем? Wink

Lotar - если я правильно понял, имеется в виду настройка разрешений, вкладка People на панели администрирования? Если да, то я пробовал это, даже если Анонимусу убрать все галки, он все равно будет видеть меню и панель навигации, хотя и не сможет просматривать материал, да. Но исходная постановка задачи была другая (см. первый пост).

Аватар пользователя _Igor_ _Igor_ 4 декабря 2011 в 9:16

"dd210" wrote:
Lotar - если я правильно понял, имеется в виду настройка разрешений, вкладка People на панели администрирования? Если да, то я пробовал это, даже если Анонимусу убрать все галки, он все равно будет видеть меню и панель навигации, хотя и не сможет просматривать материал, да. Но исходная постановка задачи была другая (см. первый пост).

А зайти в настройки блоков и выставить там опцию "показывать только для зарегистрированных пользователей" - не проще ли, чем писать хуки?

Аватар пользователя dd210 dd210 4 декабря 2011 в 14:15

Спасибо!! То что надо. Я пробовал его использовать, но не поставил bootstrap=1, поэтому не работало нифига..
На всякий случай напишу для тех у кого возникнет такой же вопрос:

hook_init вызывается до загрузки страницы. Для модуля, где используется hook_init, нужно поставить в таблице system параметр bootstrap=1.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 4 декабря 2011 в 14:21

"dd210" wrote:

hook_init вызывается до загрузки страницы. Для модуля, где используется hook_init, нужно поставить в таблице system параметр bootstrap=1.


Месье забил гвоздь микроскопом только что

Аватар пользователя Orion76 Orion76 4 декабря 2011 в 14:31

"dd210" wrote:
orion76 - в след. раз может не стоит тратить свое драгоценное время, зачем? ;)

"Айдар" wrote:
hook_init

http://api.drupal.ru/api/function/hook_init/6 - Обратите внимание на адрес страницы и сравните его с :

"orion76" wrote:
а сюда - api.drupal.ru ?

Где я был неправ?

---------------
Дай человеку рыбу, он будент сыт один день,
Науйчи его рыбачить, он будет сыт всю жизнь.