Ну тогда по порядку:
1. Открываем файл catalog/controller/common/header.php, и добавляем текст,
сразу после
class ControllerCommonHeader extends Controller {
protected function index() {
if (!isset($this->session->data['language_change'])) { $this->session->data['language_change'] = '0'; } //print $this->session->data['language_change']; //print $this->data['language_change']; if ($this->session->data['language_change']=='0') { $ipList = new IPGeo; $text_client_ip = $ipList->getRealIpAddr(); $this->data['text_geoip_country']=$ipList->get_user_country($text_client_ip); //Здесь можно подставить любой другой IP "XX.XX.XX.XX" Для теста $this->session->data['language_change']='1'; if ($this->data['text_geoip_country']=='RU') //Здесь проверка на регион, список регионов берем на сайте http://www.wipmania.com/ru/ { $_SESSION['language'] = 'ru'; $this->session->data['language']='ru'; $this->session->data['language_code']='ru'; } else { $_SESSION['language'] = 'en'; $this->session->data['language']='en'; $this->session->data['language_code']='en'; } $this->redirect($_SERVER['REQUEST_URI']); } }2. Создаем файл system/library/class-ipgeo.php, и кладем в него следующий код:
<?phpclass IPGeo { function get_user_country($ip) {//Возвращает двухбуквенный код страны посетителя $site_name = "www.overtune.ru"; $x=file_get_contents('http://api.wipmania.com/'.$ip.'?'.$site_name); return $x; } function getRealIpAddr() {//Возвращает реальный IP клиента if ( getenv ('REMOTE_ADDR')) {$user_ip = getenv ('REMOTE_ADDR');} elseif ( getenv ('HTTP_FORWARDED_FOR')) {$user_ip = getenv ('HTTP_FORWARDED_FOR');} elseif ( getenv ('HTTP_X_FORWARDED_FOR')) {$user_ip = getenv ('HTTP_X_FORWARDED_FOR');} elseif ( getenv ('HTTP_X_COMING_FROM')) {$user_ip = getenv ('HTTP_X_COMING_FROM');} elseif ( getenv ('HTTP_VIA')) {$user_ip = getenv ('HTTP_VIA');} elseif ( getenv ('HTTP_XROXY_CONNECTION')) {$user_ip = getenv ('HTTP_XROXY_CONNECTION');} elseif ( getenv ('HTTP_CLIENT_IP')) {$user_ip = getenv ('HTTP_CLIENT_IP');} else {$user_ip='unknown';} if (15 < strlen ($user_ip)){ $ar = split (', ', $user_ip); for ($i= sizeof ($ar)-1; $i> 0; $i--){ if ($ar[$i]!='' and !preg_match ('/[a-zA-Zа-яА-Я]/', $ar[$i])){ $user_ip = $ar[$i]; break; } if ($i== sizeof ($ar)-1){$user_ip = 'unknown';} } } if ( preg_match ('/[a-zA-Zа-яА-Я]/', $user_ip)){$user_ip = 'unknown';} return $user_ip; }}?>3. Открываем файл system/startup.php, и в самый его конец, перед ?> добавляем код:
require_once(DIR_SYSTEM . 'library/class-ipgeo.php');4. Радуемся жизни, т.к. теперь если пользователь зайдет с иностранного (не Российского) IP, То сайт у него будет на английском по умолчанию, для все Российских IP сайт будет по русски.Причем при переключении руками языка на сайте, уже ничего не меняется, а остается выбранный язык.
P.S. Данные берутся онлайн с сайта http://www.wipmania.com/