J'essaie d'ajouter un formulaire de connexion à la page d'accès refusé et je me demande si cela est possible via l'interface utilisateur.
Des suggestions / idées?
J'essaie d'ajouter un formulaire de connexion à la page d'accès refusé et je me demande si cela est possible via l'interface utilisateur.
Des suggestions / idées?
Réponses:
Une autre solution ici est le module LoginToboggan . Il fournit un certain nombre d'améliorations différentes à la fonctionnalité de connexion.
Le module logintoboggan propose plusieurs modifications du système de connexion drupal dans un module externe en offrant les fonctionnalités et améliorations d'utilisation suivantes:
- autoriser les utilisateurs à se connecter en utilisant leur nom d'utilisateur ou leur adresse e-mail.
- permettre aux utilisateurs de se connecter immédiatement.
- fournir un formulaire de connexion sur les pages d'accès refusé pour les utilisateurs non connectés (anonymes).
- le module propose deux options de bloc de connexion: l'une utilise javascript pour afficher le formulaire dans le bloc immédiatement après avoir cliqué sur "se connecter". l'autre amène l'utilisateur sur une page distincte, mais renvoie l'utilisateur à sa page d'origine lors de la connexion.
- personnaliser le formulaire d'inscription avec deux champs e-mail pour garantir l'exactitude.
- redirigez éventuellement l'utilisateur vers une page spécifique lorsque vous utilisez la fonction de «connexion immédiate».
- redirigez éventuellement l'utilisateur vers une page spécifique lors de la validation de son adresse e-mail.
- afficher éventuellement un message utilisateur indiquant une connexion réussie.
- combiner éventuellement le formulaire de connexion et d'inscription sur une seule page.
- éventuellement, les utilisateurs non validés sont purgés du système à un intervalle prédéfini (veuillez lire la section mises en garde du fichier install.txt pour des informations importantes sur la configuration de cette fonction!).
- s'intègre au module de règles pour effectuer diverses tâches lorsqu'un utilisateur valide via un processus de validation par courrier électronique (voir http://drupal.org/node/880904 pour un exemple)
Le formulaire de configuration des paramètres comporte une option appelée Présenter le formulaire de connexion en cas d'accès refusé (403) qui active / désactive cette fonctionnalité exacte.
Le module CustomError permet à l'administrateur du site de créer des pages d'erreur personnalisées pour les codes d'état HTTP 403 (accès refusé) et 404 (introuvable), sans avoir à créer de nœuds pour chacun d'eux. Quelques détails supplémentaires sur ses fonctionnalités (à partir de sa page de projet):
- Titre et descriptions des pages configurables.
- Il n'y a pas d'en-tête auteur et date / heure comme avec les nœuds normaux.
- Tout texte au format HTML peut être placé dans le corps de la page.
- Les pages d'erreur sont thématiques.
- Les utilisateurs qui ne sont pas connectés et tentent d'accéder à une zone nécessitant une connexion seront redirigés vers la page à laquelle ils tentaient d'accéder après leur connexion.
- Permet des redirections personnalisées pour 404s.
Vous devriez être intéressé par la partie " Les utilisateurs qui ne sont pas connectés et tentent d'accéder à une zone qui nécessite une connexion seront redirigés vers la page à laquelle ils tentaient d'accéder après leur connexion. ".
"Ajouter des paramètres pour la" page d'accès refusé "et afficher le bloc" Connexion utilisateur "sur cette page" est en effet une solution qui devrait fonctionner. Cependant, vous pouvez aller un peu plus loin et améliorer l'expérience utilisateur AbitMORE. En utilisant une variante de l'approche décrite dans la réponse à la question sur " Comment rediriger les utilisateurs anonymes vers la page de connexion en utilisant le module Rules? ".
Pour ce faire, supposez que le chemin de la page "Default 403" est défini sur "no_access" (via /admin/config/system/site-information
, près du bas de cette page d'administration). Créez ensuite une règle à l'aide du module Rules , avec comme événement quelque chose comme "Après avoir visité le noeud 'no_access'". Pour que la règle entière ressemble à ceci:
Conditions:
Parameter: User: [site:current-user], Roles: anonymous user
Parameter: Text: [site:current-page:url], Matching text: user/login
Actions: Redirection de page -Parameter: URL: user/login
Si vous le souhaitez, vous pouvez même ajouter une autre action pour afficher également un message (informatif) dans la zone de message Drupal, avec quelque chose comme "Vous avez essayé de visiter une page pour laquelle une connexion est requise ...".
Certes, cela peut vous obliger à activer un module supplémentaire contribué ( règles ). Mais, comme l'indique également sa popularité croissante, ce module est probablement déjà activé dans la plupart des sites (similaire au module Views ), car il existe des dizaines de cas d'utilisation pour ce module. Juste une variante de cette question: que diriez-vous d'améliorer l'expérience utilisateur pour "Page non trouvée" d'une manière similaire?
Une autre variante, comme alternative aux règles "Action" (pour rediriger vers user/login
), consiste à créer un nœud désigné, disons avec un chemin comme "my_login_page_with_login_block". Et puis combinez cela avec la configuration du bloc "Connexion utilisateur" (via admin/structure/block
) comme ceci:
configure
lien " " à droite de ce bloc de connexion utilisateur, pour définir les " Paramètres de visibilité " pour " Pages ". Par exemple, changez l'option pour " Afficher le bloc sur des pages spécifiques " en " Uniquement les pages répertoriées " et spécifiez le chemin ( my_login_page_with_login_block
) dans la zone de texte en dessous. Si, pour une raison quelconque, vous ne souhaitez pas utiliser de chemin, spécifiez simplement node / nid (nid = id du nœud) à la place.Sans le module LoginToboggan, on peut configurer le bloc de connexion utilisateur pour qu'il soit visible sur les pages désignées et limité aux utilisateurs anonymes. Dans le bloc Paramètres de visibilité du bloc de connexion utilisateur:
Dans l'onglet "pages", définissez "Afficher le bloc sur des pages spécifiques" sur "Uniquement les pages répertoriées" et entrez les pages.
Dans l'onglet "Rôles", cochez "Utilisateur anonyme" pour le paramètre Afficher le bloc pour des rôles spécifiques.
En théorie, vous pouvez définir la page 403 par défaut (accès refusé) sous Informations sur le site sur utilisateur / connexion dans / admin / config / system / site-information.
Je ne l'ai jamais essayé mais c'est juste une idée?