Dostosuj stronę odmowy dostępu

11

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?

Youssef
źródło

Odpowiedzi:

7

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).

Triskelion
źródło
7

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';
  }
}
Ruslan P.
źródło
Przetestowany. To działa. Pamiętaj jednak, że ten hak działa tylko po opróżnieniu pamięci podręcznej.
Ignacio Segura Postigo,