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; }