2010-08-18 14 views
2

J'ai un site web sur what-i.com qui utilise le profil Drupal Commons. J'ai créé un thème personnalisé appelé 'whati' et l'ai placé dans le dossier/sites/all/themes. Mon page-front.tpl.php est censé conduire ma page d'accueil.Comment créer une redirection de page d'accueil personnalisée pour un utilisateur anonyme?

Il contient des instructions if-else pour 2 scénarios: utilisateurs connectés et non connectés. Pour les utilisateurs connectés, tout fonctionne bien: lors de la connexion, l'utilisateur voit ma page d'accueil personnalisée. Pour les utilisateurs non connectés (anonymes), il les transmet toujours à http://what-i.com/user?destination=home. Je ne sais pas comment remplacer cette redirection: elle ne reprend pas l'instruction if dans ma page-front.tpl.php, j'ai essayé d'utiliser le module frontpage sans succès, et j'ai aussi essayé de changer les paramètres de la page d'accueil sous Informations sur le site en vain.

Quelqu'un peut-il m'aider à résoudre ce problème: au lieu d'être redirigé vers l'utilisateur? Destination = home, je veux que mes utilisateurs anonymes voient une page d'accueil personnalisée que j'ai créée.

Répondre

2

Vous pouvez le faire à partir d'un fichier TPL ou d'un module init().

D'un x.tpl.php:

if (drupal_is_frontpage()) { 
    global $user; 
    if ($user->uid == 0) { 
     drupal_goto('some page'); 
    } 
} 

d'un module:

mymodule_init() { 
    global $user; 
    if ($user->uid == 0 && drupal_is_frontpage()) { 
     drupal_goto('some page'); 
    } 
} 
+1

Kevin, quand j'ai essayé votre solution et placé le code en haut du fichier page.tpl.php , ma page passe en boucle de redirection infinie. Comment cela peut-il être réparé? Merci. – user424370

+0

Désolé, enveloppez cette instruction entière avec if ($ is_front) {// code}. Cela devrait régler ça. Mise à jour ma réponse – Kevin

+0

Ce code peut être simplifié en utilisant la fonction drupal_is_front_page(): http://api.drupal.org/api/function/drupal_is_front_page/6 – jhedstrom