Вы не зашли.
Страницы 1
Ситуация следующая:
1). есть плагин, ответственный за геолокацию пользователей на сайте. Определяет где находится пользователь по его IP адресу.
2). Есть другие плагины, которые непротив использовать полученную плагином №1 информацию.
Вопрос:
1). Как сделать так, чтобе плагин геолокации вызвался самым первым? Предложение с патчением файлов CMS не принимаются.
2). Наличие плагина определяю по наличию папки в каталоге плагинов с именем мне нужного. Может есть какие функции ядра систем, используя которые можно получить ту-же информацию? Данная функция используется мной для получения доступа из плагинов к API плагина геолокации.
Не в сети
vitaliy1978, установить плагину action который срабатывает раньше остальных, ну а если ты посмотришь на реализацию функции add_act, то увидишь, что можно и приоритет задавать при вызове плагинов, подписанных на один action.
Покажешь плагин, подскажу более подробней.
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Плагин выложу в ближайшее время. Сейчас пишу и тестирую его, плюс люди чистят помаленьку геобазу. Если в 2-х словах, то основной файл плагина идет так:
<?php
бла бла бла
add_act('index', 'plugin_geo_main');
function plugin_geo_main(){
global $mysql;
if(!isset($_SESSION['geodata'])){
$ip=ip2int(plugin_geo_get_real_ip());
$rec = $mysql->record('select country_id,region_id,city_id from '.prefix.'_geo_ipaddr where '.db_squote($ip).'>=ip_start and '.db_squote($ip).'<=ip_end and deleted=0 order by is_zone asc limit 1');
if($rec){
$_SESSION['geodata']['country_id']=$rec['country_id'];
$_SESSION['geodata']['region_id']=$rec['region_id'];
$_SESSION['geodata']['city_id']=$rec['city_id'];
}else{
$_SESSION['geodata']['country_id']=0;
$_SESSION['geodata']['region_id']=0;
$_SESSION['geodata']['city_id']=0;
}
}
}
?>
Так вот, значения сохраненные в сессии используется например плагином погоды, плагином интернет-магазина, моим плагином вывода новостей. И вопрос возник от того, что к моменту вызова этих плагинов геоплагин уже должен идентифицировать местоположение пользователя.
Не в сети
vitaliy1978, делаешь так
В файле version
Actions: all; файл_твоего_плагина.php
Если ты используешь Acts, значит
Acts: all
В файле файл_твоего_плагина.php
Вместо add_act('index', 'plugin_geo_main');
Пишешь add_act('core', 'plugin_geo_main');
Таким образом твой плагин будет вызван сразу после авторизации, если надо раньше и хочешь без хаков, надо переписывать плагин авторизации, ну а если еще раньше, то без хака не обойтись.
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
vitaliy1978, посмотри, может пригодится База GeoIP – страны и города
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Спасибо. Гляну. В настоящее время я закачал и использую базу http://ipgeobase.ru/ там правда только россия. Попробую maxmind тоже залить и объединить.
Не в сети
Страницы 1