Геолокация с помощью Sypex Geo

Добрый день.

Задался вопросом использовать возможности автоматического определения местоположения пользователя для развития одного интернет-ресурса. В частности, интересовала возможность реализации автоматической подстановки города в метатеги и заголовки сайта.

Для этого использовал базу SypexGeo. Код сниппета [[!SypexGeo]]:

<?php
$ip = $_SERVER['REMOTE_ADDR'];
require_once($modx->config['base_path']."sxgeo/SxGeo.php");
$SxGeo = new SxGeo($modx->config['base_path'].'sxgeo/SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY);
$region = $SxGeo->getCityFull($ip);

$regionname = $region["region"]["name_ru"];
$regioncity = $region["city"]["name_ru"];
switch ($regioncity) {
case 'Москва':$output = "1"; break;
default:
    $output = "0";
};
$modx->setPlaceholder('regionname',$regionname);
$modx->setPlaceholder('regioncity',$regioncity);
Таким образом, на сайте мы можем использовать плейсхолдер [[+regioncity]], который даст нам название города? а также плейсхолдер [[++regionname]], в который попадает название области, края, республики.

Все работает хорошо. Но вот как быть со склонениями? Кто подскажет как модифицировать данный срипт для того, чтобы можно было без труда вставлять названия города и области со склонениями? Ведь к примеру он дает нам «в Москв(а)», а нам нужно «в Москв(е)».
Андрей
10 декабря 2015, 08:23
modx.pro
1
4 811
0

Комментарии: 4

Володя
10 декабря 2015, 12:40
0
самый простой и быстрый вариант завести или в сниппете или в базе таблицу соответствия названия => склонение
    Андрей
    10 декабря 2015, 12:49
    0
    Типа такого?
    case 'Москва':$output = "в Москве"; break;
    Но городов масса. получается кода будет ооочень много.
    И в БД носить тоже можно. Но по идее можно ограничиться только крупными городами и областными центрами.

    Подскажите как с БД связать, мне кажется будет лучше через БД.
      Володя
      10 декабря 2015, 13:20
      0
      есть компонент на основе базы Sypex Geo, там есть возможность редактировать описание. Можно его поставить и брать данные оттуда. Или создать свою страничку в админке и там все редактировать.

      ps. Описание компонента сейчас добавлю.
        Володя
        10 декабря 2015, 13:36
        0
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4