function ip_language_negotiation_from_ip in IP Language Negotiation 7
Callback function for ip_language_negotiation_language_negotiation_info().
1 string reference to 'ip_language_negotiation_from_ip'
File
- ./
ip_language_negotiation.module, line 49 - Main module file for the IP Language Negotiation.
Code
function ip_language_negotiation_from_ip($languages) {
// Disable caching for this page. This only happens when negotiating
// based on IP. Once the redirect took place to the correct domain
// or language prefix, this function is not reached anymore and
// caching works as expected.
drupal_page_is_cacheable(FALSE);
$current_ip = ip_address();
$language_settings = variable_get('ip_language_negotiation_countries', array());
drupal_load('module', 'ip2country');
// Check for debug settings. If enabled, use it.
if (variable_get('ip2country_debug', 0) == 1) {
if (variable_get('ip2country_test_type', 0) == 0) {
// Debug Country entered.
$country_code = variable_get('ip2country_test_country', 'US');
}
else {
// Debug IP entered.
$ip = variable_get('ip2country_test_ip_address', $current_ip);
$country_code = ip2country_get_country($ip);
}
}
else {
// Check if the country code can be determined by the IP.
$country_code = ip2country_get_country($current_ip);
}
if (!empty($country_code)) {
// Check if a language is set for the determined country.
if (!empty($language_settings[$country_code])) {
return $language_settings[$country_code];
}
}
}