} $params = explode(',', $_GET['msg']); if (count($params) == 2) { $manual = org_routamc_positioning_importer::create('manual'); $manual_position = array(); $manual_position['city'] = trim($params[0]); $manual_position['country'] = trim($params[1]); $manual_position['person'] = $person->id; $import = $manual->import($manual_position); if (!$import) { // Send error message to user org_routamc_positioning_send_sms($person->handphone, "Failed to store position, reason {$manual->error}", $config->get('smslib_from'), $config); } else { // Get current coordinates $user_position = new org_routamc_positioning_person($person); $latest_log = $user_position->seek_log(); $latest_coord = array('latitude' => $latest_log->latitude, 'longitude' => $latest_log->longitude); $previous_log = $latest_log->get_previous(); $message = "New location is " . org_routamc_positioning_utils::pretty_print_coordinates($latest_log->latitude, $latest_log->longitude) . "."; if ($previous_log) { $previous_coord = array('latitude' => $previous_log->latitude, 'longitude' => $previous_log->longitude); $message .= " Previous was " . org_routamc_positioning_utils::get_distance($previous_coord, $latest_coord) . "km " . org_routamc_positioning_utils::get_bearing($latest_coord, $previous_coord) . "."; } org_routamc_positioning_send_sms($person->handphone, $message, $config->get('smslib_from'), $config); } } midcom::get('auth')->drop_sudo(); midcom::get()->finish(); _midcom_stop_request(); } midcom::get('auth')->require_valid_user();