Использование модуля GeoIP в TPL-шаблонизаторе

Материал из Umicms
Версия от 13:13, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Как работать с модуле GeoIP в XSLT-шаблонизаторе было рассказано в данной статье Использование модуля GeoIP в XSLT-шаблоне. Работать с модулем GeoIP, в TPL-шаблонизаторе на клиентской части можно только с помощью кастомного метода. Рассмотрим следующий пример метода, который добавляется в файл classes/modules/custom.php:

  
        public function info_geoip() {
            $cmsController = cmsController::getInstance();
            $geoip = $cmsController->getModule("geoip");
            $geoinfo = $geoip->lookupIp();
                /*
                   'country'    =>$geoinfo['country'],
                    'region'    => $geoinfo['region'],
                    'city'        => $geoinfo['city'],
                    'latitude'    => $geoinfo['lat'],
                    'longitude'    => $geoinfo['lon']
                */
            if($geoinfo['city']) return $geoinfo['city'];
      }

Данный метод возвращает название Города текущего посетителя, если в базе данных модуля GeoIP было найдено соответствие для текущего IP-адреса. Вызов метода в tpl-шаблоне следующий:

%custom info_geoip()%

Если в метод lookupIp передавать ip, то будет получен массив данных для указанного ip, а не для ip посетителя сайта.