コード例 #1
0
ファイル: UserCountry.php プロジェクト: nomoto-ubicast/piwik
 /**
  * @param Piwik_Event_Notification $notification  notification object
  */
 public function getVisitorLocation($notification)
 {
     require_once PIWIK_INCLUDE_PATH . "/plugins/UserCountry/LocationProvider.php";
     $location =& $notification->getNotificationObject();
     $visitorInfo = $notification->getNotificationInfo();
     $id = Piwik_Common::getCurrentLocationProviderId();
     $provider = Piwik_UserCountry_LocationProvider::getProviderById($id);
     if ($provider === false) {
         $id = Piwik_UserCountry_LocationProvider_Default::ID;
         $provider = Piwik_UserCountry_LocationProvider::getProviderById($id);
         printDebug("GEO: no current location provider sent, falling back to default '{$id}' one.");
     }
     $location = $provider->getLocation($visitorInfo);
     // if we can't find a location, use default provider
     if ($location === false) {
         $defaultId = Piwik_UserCountry_LocationProvider_Default::ID;
         $provider = Piwik_UserCountry_LocationProvider::getProviderById($defaultId);
         $location = $provider->getLocation($visitorInfo);
         printDebug("GEO: couldn't find a location with Geo Module '{$id}', using Default '{$defaultId}' provider as fallback...");
         $id = $defaultId;
     }
     printDebug("GEO: Found IP location (provider '" . $id . "'): " . var_export($location, true));
 }