Personnaliser la page d'accès refusé

11

J'ai de nombreuses pages de base sur lesquelles j'ai besoin que l'utilisateur soit connecté pour les visualiser. Comment personnaliser la page d'accès refusé au site?

Youssef
la source

Réponses:

7

Une page d'accès refusé personnalisée peut être définie sous / admin / config / system / site-information. Par exemple, une page d'erreur 404 commune est fournie par le module Search404 .

Tout ce que vous avez à faire est de définir votre propre page, peut-être avec un teaser de la page demandée et d'informer l'utilisateur que l'accès au contenu complet nécessite qu'il soit connecté.

Cela nécessitera probablement que vous mettiez du code php dans le corps de la page, ou vous pouvez utiliser le module Search404 comme base pour développer votre propre module pour gérer cela.

Edit: Plus j'y pense, plus la question devient intéressante. Je pense qu'un cas pourrait être fait pour une autorisation «Afficher l'accroche» en plus de «Afficher le contenu publié». En d'autres termes, la page pourrait être disponible pour tous les utilisateurs, mais l'accroche s'afficherait à la place du contenu complet, et un message pourrait s'afficher indiquant que l'utilisateur devait être connecté pour afficher le contenu complet, tout comme pour commentaires maintenant. Peut-être une idée de modèle contribué (impossible d'en trouver un sur DO).

Triskelion
la source
7

Je pense que vous pouvez utiliser la page - 403.tpl.php et la page - 404.tpl.php et le code dans 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
la source
Testé. Ça marche. Mais rappelez-vous que ce hook n'est exécuté que juste après avoir vidé le cache.
Ignacio Segura Postigo