Mam wiele podstawowych stron, na których muszę się zalogować, aby je wyświetlić. Jak dostosować stronę, na której odmówiono dostępu do witryny?
Stronę odmowy dostępu niestandardowego można zdefiniować w / admin / config / system / site-information. Na przykład jedna wspólna strona błędów 404 jest udostępniana przez moduł Search404 .
Wszystko, co musisz zrobić, to zdefiniować własną stronę, być może za pomocą zwiastuna z żądanej strony i poinformować użytkownika, że dostęp do pełnej treści wymaga zalogowania się.
Prawdopodobnie będzie to wymagać umieszczenia kodu php w treści strony, lub możesz użyć modułu Search404 jako podstawy do opracowania własnego modułu do obsługi tego.
Edycja: Im więcej o tym myślę, tym ciekawsze staje się pytanie. Wydaje mi się, że oprócz „Wyświetl opublikowaną treść” można uzasadnić zezwolenie na „Wyświetl zwiastun”. Innymi słowy, strona może być dostępna dla wszystkich użytkowników, ale zwiastun wyświetli się zamiast pełnej treści, a może zostać wyświetlony komunikat wskazujący, że użytkownik musiał być zalogowany, aby wyświetlić pełną treść, podobnie jak w przypadku komentarze teraz. Być może pomysł na model wniesiony (nie można go znaleźć na DO).
Myślę, że możesz użyć strony - 403.tpl.php i strony - 404.tpl.php oraz kodu w template.php poprzez
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';
}
}
Używam do tego niestandardowego modułu błędów .
Aby uzyskać przekierowanie do pierwotnie żądanej strony po 403 do pracy, stworzyłem tę poprawkę .
Oto dwa przykłady moich zastosowań modułu:
źródło