2009-07-24 7 views
3

Quelqu'un sait comment revenir à la "dernière page" après qu'un utilisateur se voit présenter l'écran de connexion et décide de créer un nouveau compte?Redirection après enregistrement dans Drupal

Fondamentalement, la séquence est la suivante:

  1. utilisateur tente d'obtenir au contenu protégé
  2. Redirigé page de connexion
  3. S'il se connecte, il est redirigé vers la page originale
  4. S'il choisit " créer un nouveau compte "et le remplit, il est redirigé vers la page d'accueil

Comment on l'obtient automatiquement rouge lié à la page d'origine (pas une page statique).

Répondre

4

Il y a plusieurs façons de procéder. Le plus simple est d'avoir un lien de connexion quelque part dans la navigation qui ajoute la destination à l'URL. Le code pour cela est quelque chose comme:

<?php 
    if (user_is_anonymous()) { 
    $link = l(t('Login'), 'user/login', array('query' => drupal_get_destination())); 
    } 
?> 

Vous pouvez également définir une page refuser l'accès personnalisé à admin/paramètres/rapports d'erreurs qui pourraient soit aller à un rappel qui fournit le code ci-dessus, ou à un php simple, noeud qui génère ce code.

En outre, le bloc de connexion utilisateur fourni avec le noyau Drupal utilise la même méthode pour rediriger une connexion réussie vers la page d'origine.

Édition: Notez que les méthodes ci-dessus fonctionneront rarement pour l'enregistrement, car il y a plus d'étapes impliquées. Plus précisément, lorsqu'un utilisateur a besoin de vérifier une adresse e-mail, le passage de la destination d'origine via l'e-mail implique la modification du processus d'enregistrement de l'utilisateur principal.

Il est possible qu'il fonctionne toujours sur un site configuré pour ne pas vérifier les adresses électroniques. L'idée serait alors de fournir 2 liens: 1 pour la connexion et l'autre pour l'enregistrement, tous deux transmettant les informations de destination.

LoginToboggan peut également être la peine de poursuivre, même si elle ne propose pas encore l'enregistrement exact feature you're looking for.

+0

C'est presque exactement ce que j'ai fait. J'ai fondamentalement personnalisé le bloc de connexion de l'utilisateur avec un lien vers la page d'inscription qui incluait la destination (avec une syntaxe similaire). Semblait fonctionner très bien. – Jared

0

php droit serait d'inclure un en-tête de cette forme:

<?php header("Location: " . $_SERVER['HTTP_REFERER']); ?> 

pour plus d'informations, consultez le php manual

EDIT:

vous pouvez également inclure un champ caché votre formulaire et réglez-le sur

$url = $_SERVER['PHP_SELF']; // or HTTP_REFERER depending on the setup 

inclure le code d'en-tête coupé dans votre formulaire d'inscription.