Ejemplo n.º 1
0
function findCity($city_id, $nearbyResults = false)
{
    $geo = new Models_Geo();
    global $modelGeneral;
    $cityDetails = $geo->cityDetail($city_id);
    if (empty($cityDetails)) {
        return false;
    }
    $cityDetails['sql'] = $geo->sql;
    $lat = !empty($cityDetails['latitude']) ? $cityDetails['latitude'] : null;
    $lon = !empty($cityDetails['longitude']) ? $cityDetails['longitude'] : null;
    $radius = 30;
    $order = 'distance';
    $limit = 30;
    if ($nearbyResults) {
        if (empty($lat) || empty($lon)) {
            $cityDetails['nearby'] = array();
        } else {
            $cityDetails['nearby'] = $geo->get_nearby_cities($lat, $lon, $radius, $order, $limit);
        }
    }
    if (empty($cityDetails['extraDetails'])) {
        $etc = fetchCityXtraDetails($lat, $lon);
        if (!empty($etc)) {
            $d = array();
            $d['extraDetails'] = json_encode($etc);
            $d['lat_h'] = $etc['location']['lat_h'];
            $d['lat_m'] = $etc['location']['lat_m'];
            $d['lat_s'] = $etc['location']['lat_s'];
            $d['lon_h'] = $etc['location']['lon_h'];
            $d['lon_m'] = $etc['location']['lon_m'];
            $d['lon_e'] = $etc['location']['lon_e'];
            $d['zone_h'] = $etc['location']['zone_h'];
            $d['zone_m'] = $etc['location']['zone_m'];
            $d['dst'] = $etc['location']['dst'];
            $d['rawOffset'] = $etc['timezone']['rawOffset'];
            $d['dstOffset'] = $etc['timezone']['dstOffset'];
            $cityDetails = array_merge($cityDetails, $d);
            $where = sprintf('cty_id = %s', $modelGeneral->qstr($cityDetails['id']));
            $modelGeneral->updateDetails('geo_cities', $d, $where);
            $modelGeneral->clearCache($cityDetails['sql']);
        }
    } else {
        $etc = json_decode($cityDetails['extraDetails'], 1);
    }
    $cityDetails['etc'] = $etc;
    $cityDetails['url'] = HTTPPATH . '/city-' . url_name_v2($cityDetails['city']) . '-' . $cityDetails['id'];
    $cityDetails['pageTitle'] = $cityDetails['city'] . ', ' . $cityDetails['statename'] . ', ' . $cityDetails['countryname'];
    return $cityDetails;
}