Athos99, PHP et développement WEB

Un site consacré au développement web en php

Le login de drupal en mode popup

Date: 
5 avr 2013

Il est possible de remplacer le login traditionnel de drupal par un pop-up ou overlay qui se présente sous forme de boîte de dialogue. Il existe une mutlitude de modules et plugins pour ajouter cette fonctionnalité. A remarquer que Drupal utilise des fonctions d'overlay pour ses outils d'administrations et il est possible de les utiliser pour le login.

Overlay path

Le module "overlay path" permet de transfomer n'importe qu'elle page de drupal en overlay. 

Installation et configuration

  • Installer le module "Overlay path", http://drupal.org/project/overlay_paths
  • Activer les modules "Overlay paths" et "Overlay paths UI"
  • Depuis l'administration de Drupal, configurer "overlay path". Menu "configuration", "System", "Overlay path" (admin/config/system/overlay_paths_ui)
  • Configurer "Non-admin overlay paths" comme suit
user
user/*
users
users/*
  • En étant non connecté, en utilisant le lien /home/#overlay=user/login qui présente le login, celui-ci n'est pas dans un overlay mais présenté sous une forme de page classique. Le problème est dû au fait qu'il faut autoriser l'utilisation des overlays pour les utilisateurs anonymes.
  • Depuis l'administration de Drupal, configurer les droits des personnes. Menu "People", "Permission" (admin/people/permissions). A la ligne "overlay", cocher pour les rôles "Anonymous user" et "Authenticated user".
  • En étant non connecté, en utilisant le lien /home/#overlay=user/login on peut maintenant se connecter en utilisant un pop-up.
 

Problème avec certains thèmes

Par exemple, avec les thèmes basés sur Omega thème, l'overlay contient tout le contenu de la page y compris l'entête et le pied de page. Pour afficher seulement le formulaire sans l'entête et le pied de page, il faut ajouter dans le thème un handler qui enlève l'entête et le pied de page pour les overlay.

Dans le fichier template qui se trouve dans le répertoire de votre thème ajouter la fonction suivante

function mytheme_preprocess_page(&$vars)
{
    if (isset($vars['page']['#theme_wrappers'][0]) && $vars['page']['#theme_wrappers'][0] == 'overlay') {
        unset($vars['page']['header']);
        unset($vars['page']['footer']);
    }
}

 

Le lien pour le login

Il vous faut changer le lien de login en remplaçant /user par home/#overlay=user/login. Il se peut que vous rencontrez  des difficultés pour changer ce lien, dans le cas des boutons des commentaires qui permettent de se connecter.  Vous pouvez utiliser le module de traduction pour changer les liens, il suffit de modifier les phrases suivantes.

<a href="@login">Log in</a> or <a href="@register">register</a> to post comments ->   <a href="#overlay=user/login">Connectez-vous</a> ou <a href="#overlay=user/register">inscrivez-vous</a> pour publier un commentaire

<a href="@login">Log in</a> to post comments -> <a href="#overlay=user/login">Identifiez-vous</a> pour poster des commentaires

<a href="@login">Log in</a> to post new content in the forum. -> <a href="#overlay=user/login">Connectez-vous</a> pour poster un nouveau message dans le forum.

 

Rubrique: 
Drupal
Tags: 
Module