<?php
/***************************************************************************
- * Copyright (C) 2003-2007 Polytechnique.org *
+ * Copyright (C) 2003-2008 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
return $html;
}
-function _geoloc_country_smarty($params)
-{
- echo "miqjfmeij";
- if(!isset($params['country'])) {
- return;
- }
- return geoloc_country($params['country'], @$params['available']);
-}
-
-$GLOBALS['page']->register_function('geoloc_country', '_geoloc_country_smarty');
-
/** donne la liste deroulante des regions pour un pays
* @param $pays le pays dont on veut afficher les regions
* @param $current la region actuellement selectionnee
}
return $html;
}
-
-function _geoloc_region_smarty($params, &$smarty)
-{
- if(!isset($params['country']) || !isset($params['region'])) {
- return;
- }
- return geoloc_region($params['country'], $params['region'], @$params['available']);
-}
-$GLOBALS['page']->register_function('geoloc_region', '_geoloc_region_smarty');
// }}}
// {{{ get_address_infos($txt)
}
}
if (isset($infos['sql']) && $infos['sql'])
- XDB::execute("REPLACE INTO geoloc_city VALUES ".$infos['sql']);
+ XDB::execute("REPLACE INTO geoloc_city
+ VALUES ".$infos['sql']);
if (isset($infos['display']) && $infos['display'])
- XDB::execute("UPDATE geoloc_pays SET display = {?} WHERE a2 = {?}", $infos['display'], $infos['country']);
- if (isset($infos['cityid']))
+ XDB::execute("UPDATE geoloc_pays
+ SET display = {?}
+ WHERE a2 = {?}", $infos['display'], $infos['country']);
+ if (isset($infos['cityid'])) {
fix_cities_not_on_map(1, $infos['cityid']);
+ if (floatval($infos['precise_lat']) && floatval($infos['precise_lon'])) {
+ $res = XDB::query("SELECT c.lat / 100000, c.lon / 100000
+ FROM geoloc_city AS c
+ WHERE c.id = {?}", $infos['cityid']);
+ if ($res->numRows()) {
+ list($glat, $glng) = $res->fetchOneRow();
+ $infos['precise_lat'] = $glat;
+ $infos['precise_lon'] = $glng;
+ }
+ }
+ }
return $infos;
}
// }}}
"region" => "",
"regiontxt" => "",
"country" => "00",
- "countrytxt" => "");
+ "countrytxt" => "",
+ "precise_lat" => "",
+ "precise_lon" => "");
}
// create a simple address from a text without geoloc
$values .= ",($cityid, $map_id, '')";
}
}
- XDB::execute("REPLACE INTO geoloc_city_in_maps
- VALUES ".substr($values, 1));
+ if (strlen($values) > 1) {
+ XDB::execute("REPLACE INTO geoloc_city_in_maps
+ VALUES ".substr($values, 1));
+ }
} else {
return false;
}
$where . ($direct ? "gcim.infos = 'smallest'" : '1'),
'gc.id, gc.alias',
'pop DESC');
- while ($c = $cityres->next()) {
+ foreach($cityres as $c) {
if ($c['pop'] > 0) {
$city = $c;
$city['x'] = geoloc_to_x($c['x'], $c['y']);
'NULL');
$maxpop = 0;
- $nbentities = $nbcities + $countryres->total();
- while ($c = $countryres->next()) {
+ $nbentities = $nbcities + count($countryres);
+ foreach ($countryres as $c) {
$c['latPop'] /= $c['nbPop'];
$c['lonPop'] /= $c['nbPop'];
$c['rad'] = size_of_territory($c['nbPop']);
}
foreach ($countries as $i => $c) {
- if ($c['nbPop'] > 0) {
+ if (@$c['nbPop'] > 0) {
$lambda = pow($c['nbPop'] / $maxpop,0.3);
$countries[$i]['color'] = 0x0000FF + round((1-$lambda) * 0xFF)*0x010100;
}