Personalizar página de acesso negado

11

Eu tenho muitas páginas básicas nas quais preciso que o usuário esteja logado para visualizá-las. Como personalizo a página de acesso negado ao site?

Youssef
fonte

Respostas:

7

Uma página de acesso negado personalizado pode ser definida em / admin / config / system / site-information. Por exemplo, uma página de erro 404 comum é fornecida pelo módulo Search404 .

Tudo o que você precisa fazer é definir sua própria página, talvez com um teaser da página solicitada e informar ao usuário que o acesso ao conteúdo completo requer que ele esteja logado.

Isso provavelmente exigirá que você coloque algum código php no corpo da página ou use o módulo Search404 como base para desenvolver seu próprio módulo para lidar com isso.

Edit: Quanto mais eu penso sobre isso, mais interessante a pergunta se torna. Acho que pode haver uma permissão para 'Visualizar teaser', além de 'Visualizar conteúdo publicado'. Em outras palavras, a página pode estar disponível para todos os usuários, mas o teaser será exibido em vez do conteúdo completo, e uma mensagem poderá ser exibida indicando que o usuário precisou fazer login para visualizar o conteúdo completo, da mesma forma que é feito para comentários agora. Talvez uma ideia para um modelo contribuído (não foi possível encontrar um no DO).

Triskelion
fonte
7

Eu acho que você pode usar a página - 403.tpl.php e página - 404.tpl.php e código em template.php via

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
fonte
Testado. Funciona. Mas lembre-se de que esse gancho é executado apenas após a limpeza do cache.
Ignacio Segura Postigo 07/02