function smart_ip_admin_settings_submit in Smart IP 7
Same name and namespace in other branches
- 6.2 includes/smart_ip.admin.inc \smart_ip_admin_settings_submit()
- 6 includes/smart_ip.admin.inc \smart_ip_admin_settings_submit()
- 7.2 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 374 - 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' => $location['country'],
'%region' => $location['region'],
'%city' => $location['city'],
'%zip' => $location['zip'],
'%long' => $location['longitude'],
'%lat' => $location['latitude'],
'%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'])) {
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);
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,
)));
}
}