Настроить доступ к запрещенной странице

11

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

Юсеф
источник

Ответы:

7

Пользовательская страница запрещенного доступа может быть определена в / admin / config / system / site-information. Например, одна страница с общей ошибкой 404 предоставляется модулем Search404 .

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

Это, вероятно, потребует, чтобы вы поместили некоторый php-код в тело страницы, или вы могли бы использовать модуль Search404 в качестве основы для разработки своего собственного модуля, чтобы справиться с этим.

Изменить: Чем больше я думаю об этом, тем интереснее становится вопрос. Я думаю, что в дополнение к «Просмотр опубликованного контента» может быть сделано разрешение на «Просмотр тизера». Другими словами, страница может быть доступна для всех пользователей, но тизер будет отображаться вместо полного контента, и может отображаться сообщение, указывающее, что пользователь должен войти в систему, чтобы просмотреть весь контент, очень похоже на то, как это делается для комментарии сейчас. Возможно, идея для внесенной модели (не может найти одну на DO).

Triskelion
источник
7

Я думаю, что вы можете использовать страницу - 403.tpl.php и страницу - 404.tpl.php и код в template.php через

function THEMENAME_preprocess_page(&$variables) {    
  $status = drupal_get_http_header("status");  
  if($status == '403 Forbidden') {
    $variables['theme_hook_suggestions'][] = 'page__403';
  }
  if($status == '404 Not Found') {
    $variables['theme_hook_suggestions'][] = 'page__404';
  }
}
Руслан П
источник
Проверено. Оно работает. Но помните, что этот хук запускается только после очистки кеша.
Игнасио Сегура Постиго