Ответы:
Пользовательская страница запрещенного доступа может быть определена в / admin / config / system / site-information. Например, одна страница с общей ошибкой 404 предоставляется модулем Search404 .
Все, что вам нужно сделать, это определить свою собственную страницу, возможно, с помощью тизера с запрошенной страницы и информирования пользователя о том, что для доступа к полному контенту требуется, чтобы он вошел в систему.
Это, вероятно, потребует, чтобы вы поместили некоторый php-код в тело страницы, или вы могли бы использовать модуль Search404 в качестве основы для разработки своего собственного модуля, чтобы справиться с этим.
Изменить: Чем больше я думаю об этом, тем интереснее становится вопрос. Я думаю, что в дополнение к «Просмотр опубликованного контента» может быть сделано разрешение на «Просмотр тизера». Другими словами, страница может быть доступна для всех пользователей, но тизер будет отображаться вместо полного контента, и может отображаться сообщение, указывающее, что пользователь должен войти в систему, чтобы просмотреть весь контент, очень похоже на то, как это делается для комментарии сейчас. Возможно, идея для внесенной модели (не может найти одну на DO).
Я думаю, что вы можете использовать страницу - 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';
}
}
Я использую модуль Custom error для этого.
Чтобы перенаправить на первоначально запрошенную страницу после 403, я создал этот патч .
Вот два примера моего использования модуля: