// First try to get from local cache (avoid external api requests) $name = Stats::get_cached_place_name($latitude, $longitude); if (empty($name)) { foreach (Plugin::get_plugins('get_location_name') as $plugin_name) { $plugin = new Plugin($plugin_name); if ($plugin->load($GLOBALS['user'])) { $name = $plugin->_plugin->get_location_name($latitude, $longitude); if (!empty($name)) { break; } } } } } // Better to check for bugged values here and keep previous user good location // Someone listing music at 0.0,0.0 location would need a waterproof music player btw if ($latitude > 0 && $longitude > 0) { Session::update_geolocation(session_id(), $latitude, $longitude, $name); } } } else { debug_event('stats.ajax.php', 'Geolocation not enabled for the user.', 3); } break; default: $results['rfc3514'] = '0x1'; break; } // switch on action; // We always do this echo xoutput_from_array($results);