function smart_ip_admin_settings_submit in Smart IP 6
Same name and namespace in other branches
- 6.2 includes/smart_ip.admin.inc \smart_ip_admin_settings_submit()
- 7.2 includes/smart_ip.admin.inc \smart_ip_admin_settings_submit()
- 7 includes/smart_ip.admin.inc \smart_ip_admin_settings_submit()
Process Forms submitted by IP to Country administration page
1 string reference to 'smart_ip_admin_settings_submit'
- smart_ip_admin_settings in includes/
smart_ip.admin.inc - Smart IP administration settings.
File
- includes/
smart_ip.admin.inc, line 316 - Admin interface callbacks/handlers to configure Smart IP.
Code
function smart_ip_admin_settings_submit($form, &$form_state) {
global $user;
// Save the roles to geolocate
$roles_to_geolocate = array();
foreach ($form_state['values']['smart_ip_roles_to_geolocate'] as $rid => $value) {
if ($rid == $value) {
$roles_to_geolocate[] = $rid;
}
}
variable_set('smart_ip_roles_to_geolocate', $roles_to_geolocate);
// Exclude unnecessary elements from being saved in variable table
unset($form_state['values']['smart_ip_lookup'], $form_state['values']['smart_ip_csv_source'], $form_state['values']['smart_ip_roles_to_geolocate']);
// Check to see if debug set
if ($form_state['values']['smart_ip_debug']) {
// Debug on
$ip = $form_state['values']['smart_ip_test_ip_address'];
$smart_ip_session = smart_ip_session_get('smart_ip');
$smart_ip_session['debug_mode'] = TRUE;
smart_ip_session_set('smart_ip', $smart_ip_session);
$location = smart_ip_get_location($ip);
}
else {
// Debug off - make sure we set/reset to their real values
$location = smart_ip_get_current_visitor_location_data();
$ip = $location['ip_address'];
}
if ($location) {
drupal_set_message(t('Using @type IP: %ip / Country: %country / Region: %region / City: %city / Postal code: %zip / Longitude: %long / Latitude: %lat / Time zone: %time_zone', array(
'@type' => $form_state['values']['smart_ip_debug'] ? 'debug' : 'actual',
'%ip' => $ip,
'%country' => isset($location['country']) ? $location['country'] : '',
'%region' => isset($location['region']) ? $location['region'] : '',
'%city' => isset($location['city']) ? $location['city'] : '',
'%zip' => isset($location['zip']) ? $location['zip'] : '',
'%long' => isset($location['longitude']) ? $location['longitude'] : '',
'%lat' => isset($location['latitude']) ? $location['latitude'] : '',
'%time_zone' => isset($location['time_zone']) ? $location['time_zone'] : '',
)));
$smart_ip_session = smart_ip_session_get('smart_ip');
// Finally if it has been determined, store the location in the $user object
if ($form_state['values']['smart_ip_debug']) {
smart_ip_set_user_data($user, $location);
$smart_ip_session['location'] = $location;
smart_ip_session_set('smart_ip', $smart_ip_session);
if (module_exists('device_geolocation')) {
smart_ip_session_set('device_geolocation', NULL);
device_geolocation_get_coordinates();
}
}
else {
if (isset($smart_ip_session['debug_mode']) && !is_null($smart_ip_session['debug_mode'])) {
$user_data = unserialize($user->data);
unset($user->data['geoip_location'], $smart_ip_session['debug_mode']);
$smart_ip_session['location'] = $location;
smart_ip_session_set('device_geolocation', NULL);
smart_ip_session_set('smart_ip', $smart_ip_session);
$user->data = serialize($user_data);
smart_ip_set_user_data($user, $location);
if (module_exists('device_geolocation')) {
device_geolocation_get_coordinates();
}
}
else {
smart_ip_set_session_data($location);
smart_ip_set_user_data($user, $smart_ip_session['location']);
}
}
}
else {
drupal_set_message(t('IP Address @ip is not assigned to any location.', array(
'@ip' => $ip,
)));
}
}