public function SmartIpEventSubscriber::processQuery in Smart IP 8.2
Same name and namespace in other branches
- 8.4 modules/smart_ip_ipinfodb_web_service/src/EventSubscriber/SmartIpEventSubscriber.php \Drupal\smart_ip_ipinfodb_web_service\EventSubscriber\SmartIpEventSubscriber::processQuery()
- 8.3 modules/smart_ip_ipinfodb_web_service/src/EventSubscriber/SmartIpEventSubscriber.php \Drupal\smart_ip_ipinfodb_web_service\EventSubscriber\SmartIpEventSubscriber::processQuery()
Act on \Drupal\smart_ip\SmartIp::query() when executed and if selected as Smart IP data source, query the IP address against its database.
Parameters
\Drupal\smart_ip\GetLocationEvent $event:
Overrides SmartIpDataSourceInterface::processQuery
File
- modules/
smart_ip_ipinfodb_web_service/ src/ EventSubscriber/ SmartIpEventSubscriber.php, line 52 - Contains \Drupal\smart_ip_ipinfodb_web_service\EventSubscriber\SmartIpEventSubscriber.
Class
- SmartIpEventSubscriber
- Core functionalty of this Smart IP data source module. Listens to Smart IP override events.
Namespace
Drupal\smart_ip_ipinfodb_web_service\EventSubscriberCode
public function processQuery(GetLocationEvent $event) {
if ($event
->getDataSource() == self::sourceId()) {
$location = $event
->getLocation();
$ipAddress = $location
->get('ipAddress');
$record = WebServiceUtility::getGeolocation($ipAddress);
$config = \Drupal::config($this
->configName());
$version = $config
->get('version');
if ($version == 2) {
$region = '';
if (isset($record->{'RegionCode'}) && isset($record->{'CountryCode'})) {
$regionResult = smart_ip_get_region_static($record->{'CountryCode'}, $record->{'RegionCode'});
$region = $regionResult[$record->{'CountryCode'}][$record->{'RegionCode'}];
}
elseif (isset($record->{'RegionName'})) {
$region = $record->{'RegionName'};
}
$location
->set('originalData', $record);
$location
->set('country', isset($record->{'CountryName'}) ? $record->CountryName : '');
$location
->set('countryCode', isset($record->{'CountryCode'}) ? $record->CountryCode : '');
$location
->set('region', $region);
$location
->set('regionCode', isset($record->{'RegionCode'}) ? $record->RegionCode : '');
$location
->set('city', isset($record->{'City'}) ? $record->City : '');
$location
->set('zip', isset($record->{'ZipPostalCode'}) ? $record->ZipPostalCode : '');
$location
->set('latitude', isset($record->{'Latitude'}) ? $record->Latitude : '');
$location
->set('longitude', isset($record->{'Longitude'}) ? $record->Longitude : '');
$location
->set('timeZone', '');
}
elseif ($version == 3) {
$location
->set('originalData', $record);
$location
->set('country', isset($record->{'countryName'}) ? $record->countryName : '');
$location
->set('countryCode', isset($record->{'countryCode'}) ? $record->countryCode : '');
$location
->set('region', isset($record->{'regionName'}) ? $record->regionName : '');
$location
->set('regionCode', '');
$location
->set('city', isset($record->{'cityName'}) ? $record->cityName : '');
$location
->set('zip', isset($record->{'zipCode'}) ? $record->zipCode : '');
$location
->set('latitude', isset($record->{'latitude'}) ? $record->latitude : '');
$location
->set('longitude', isset($record->{'longitude'}) ? $record->longitude : '');
$location
->set('timeZone', isset($record->{'timeZone'}) ? $record->timeZone : '');
}
}
}