2010-10-07 6 views
1

J'ai un site drupal, et je veux rediriger les visiteurs vers une page différente en fonction du pays. J'ai ce code:Différentes page d'accueil Drupal de différents pays

require_once "Net/GeoIP.php"; 
$geoip = Net_GeoIP::getInstance("Net/GeoIP.dat"); 
try { 
    $geocode = $geoip->lookupCountryCode($_SERVER['REMOTE_ADDR']); 
} catch (Exception $e) { 
    $geocode = 'EN'; 
} 
switch ($geocode) { 
    case 'HU': 
     header('Location: http://www.example.com/hu'); 
     break; 
    case 'GB': 
     header('Location: http://www.example.com/en'); 
     break; 
    case 'AT': 
     header('Location: http://www.example.com/at'); 
     break; 
    case 'CY': 
     header('Location: http://www.example.com/cy'); 
     break; 
    case 'DE': 
     header('Location: http://www.example.com/de'); 
     break; 
    case 'NL': 
     header('Location: http://www.example.com/nl'); 
     break; 
    case 'CH': 
     header('Location: http://www.example.com/ch'); 
     break; 
    case 'ES': 
     header('Location: http://www.example.com/es'); 
     break; 
    case 'US': 
     header('Location: http://www.example.com/us'); 
     break; 
    default: 
     header('Location: http://www.example.com/en'); 
} 

Cela fonctionne bien sur le fichier PHP. Comment puis-je cela en drupal? Comment puis-je rediriger les visiteurs vers le bon noeud?

+1

juste quelque chose à chose à propos: il y a 1 an j'étais en corée, et depuis, je sais qu'il n'y a rien plus ennuyeux puis rediriger vers un lieu spécifique par ip (non je ne peux pas lire coréen, alors arrêtez de me rediriger! donnez-moi le choix) – teemitzitrone

Répondre

0

Je ne comprends pas non plus pourquoi ne pas utiliser une solution existante mais quand même: avez-vous essayé de mettre votre extrait dans page.tpl.php? Assurez-vous simplement que le chemin d'accès à la bibliothèque requise est correct. Vous pourriez vouloir mettre Net/GeoIP.php dans votre dossier sites/all/libraries et ainsi changer require_once "Net/GeoIP.php" à require_once "../../libraries/Net/GeoIP.php". Cela suppose que votre page.tpl.php est situé à l'intérieur sites/all/thèmes/votretheme/

0

Vous pouvez utiliser http://drupal.org/project/ip2locale

Il prend en charge GeoIP.

+0

@turbod: était-ce utile? –

+0

Désolé, je peux rediriger les utilisateurs sans aucun module. Je veux appliquer mon code. Ce code fonctionne, mais je n'ai jamais utilisé de page drupal. – turbod

+0

Pourquoi voulez-vous appliquer votre propre code? Le but de Drupal est d'utiliser des modules préexistants, donc vous n'avez pas besoin de réinventer la roue. Le module que j'ai suggéré atteindra la même chose que vous voulez. Pourquoi ne pas essayer et voir si cela correspond à vos besoins? Si cela ne correspond pas à vos besoins, vous pouvez essayer d'utiliser votre code personnalisé. –

Questions connexes