Personalizar la página de acceso denegado

11

Tengo muchas páginas básicas donde necesito que el usuario inicie sesión para verlas. ¿Cómo personalizo la página de acceso denegado al sitio?

Youssef
fuente

Respuestas:

7

Se puede definir una página de acceso personalizado denegado en / admin / config / system / site-information. Por ejemplo, el módulo Search404 proporciona una página de error 404 común .

Todo lo que tiene que hacer es definir su propia página, tal vez con un avance de la página solicitada e informar al usuario que el acceso al contenido completo requiere que inicien sesión.

Probablemente esto requiera que coloque algún código php en el cuerpo de la página, o puede usar el módulo Search404 como base para desarrollar su propio módulo para manejar esto.

Editar: cuanto más pienso en esto, más interesante se vuelve la pregunta. Creo que podría hacerse un caso para un permiso 'Ver avance' además de 'Ver contenido publicado'. En otras palabras, la página podría estar disponible para todos los usuarios, pero el avance se mostraría en lugar del contenido completo, y se podría mostrar un mensaje que indica que el usuario tuvo que iniciar sesión para ver el contenido completo, al igual que se hace para comentarios ahora Quizás una idea para un modelo contribuido (no se pudo encontrar uno en DO).

Triskelion
fuente
7

Creo que puede usar la página - 403.tpl.php y la página - 404.tpl.php y el código en template.php a través de

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
fuente
Probado Funciona. Pero recuerde que este enlace solo se ejecuta justo después de vaciar la caché.
Ignacio Segura Postigo