/** * if coordinates were changed, update altitude * @param array $oldCacheRecord * @param integer $cacheId * @param integer $altitude */ function updateAltitudeIfNeeded($oldCacheRecord, $cacheId, $altitude = NULL) { /* add cache altitude altitude */ $geoCache = new GeoCache(array('cacheId' => $cacheId)); if ($geoCache->getCoordinates()->getLatitude() != $oldCacheRecord['latitude'] || $geoCache->getCoordinates()->getLongitude() != $oldCacheRecord['longitude']) { $geoCache->getAltitude()->pickAndStoreAltitude($altitude); } }
/** * Call OKAPI, parse response and display the results * @param array $params - params of the cache to search and display */ private function htmlFormat(array $params) { //call OKAPI $okapi_resp = \okapi\Facade::service_call('services/caches/shortcuts/search_and_retrieve', $this->user_id, $params); if (!is_a($okapi_resp, "ArrayObject")) { // strange OKAPI return !? error_log(__METHOD__ . ": ERROR: strange OKAPI response - not an ArrayObject"); exit(0); } \okapi\OkapiErrorHandler::disable(); if ($okapi_resp->count() == 0) { // no caches found exit(0); } // get the first object from the list $arrayCopy = $okapi_resp->getArrayCopy(); $geoCache = new \lib\Objects\GeoCache\GeoCache(array('okapiRow' => array_pop($arrayCopy))); //generate the results if ($this->screenWidth < 400) { tpl_set_tplname('map/map_cacheinfo_small'); } else { tpl_set_tplname('map/map_cacheinfo'); } tpl_set_var('cache_lat', $geoCache->getCoordinates()->getLatitude()); tpl_set_var('cache_lon', $geoCache->getCoordinates()->getLongitude()); tpl_set_var('cache_name', $geoCache->getCacheName()); tpl_set_var('cache_icon', $geoCache->getCacheIcon()); $is_event = $geoCache->getCacheType() == $geoCache::TYPE_EVENT ? '1' : '0'; // be aware: booleans not working here tpl_set_var('is_event', $is_event, false); $is_scored = $geoCache->getRatingId() != 0 && $geoCache->getRatingVotes() > 2 ? '1' : '0'; tpl_set_var('is_scored', $is_scored, false); tpl_set_var('rating_desc', tr($geoCache->getRatingDesc())); $is_recommended = $geoCache->getRecommendations() > 0 ? '1' : '0'; tpl_set_var('is_recommended', $is_recommended, false); tpl_set_var('cache_recommendations', $geoCache->getRecommendations(), false); tpl_set_var('cache_code', $geoCache->getWaypointId()); tpl_set_var('cache_founds', $geoCache->getFounds()); tpl_set_var('cache_not_founds', $geoCache->getNotFounds()); tpl_set_var('cache_rating_votes', $geoCache->getRatingVotes()); tpl_set_var('cache_willattends', $geoCache->getWillattends()); tpl_set_var('cache_url', $geoCache->getCacheUrl()); tpl_set_var('user_name', $geoCache->getOwner()->getUserName()); tpl_set_var('user_profile', $geoCache->getOwner()->getProfileUrl()); tpl_set_var('cache_size_desc', tr($geoCache->getSizeDesc())); $is_powertrail_part = $geoCache->isPowerTrailPart() ? '1' : '0'; tpl_set_var('is_powertrail_part', $is_powertrail_part, false); if ($geoCache->isPowerTrailPart()) { tpl_set_var('pt_name', $geoCache->getPowerTrail()->getName()); tpl_set_var('pt_image', $geoCache->getPowerTrail()->getImage()); tpl_set_var('pt_icon', $geoCache->getPowerTrail()->getFootIcon()); tpl_set_var('pt_url', $geoCache->getPowerTrail()->getPowerTrailUrl()); } $is_titled = $geoCache->isTitled() ? 'true' : 'false'; tpl_set_var('is_titled', $is_titled, false); //tpl_set_var('is_titled', $geoCache->isTitled(), false); // make the template and send it out tpl_BuildTemplate(false, false, true); }
} else { $show_edit = false; } $show_ignore = true; $show_watch = true; } $orig_coord_info_lon = ''; //use to determine whether icon shall be displayed $coords_correct = true; $mod_coords_modified = false; $cache_type = $geocache->getCacheType(); $mod_coord_delete_mode = isset($_POST['resetCoords']); $cache_mod_lat = 0; $cache_mod_lon = 0; if ($usr != false && ($cache_type == GeoCache::TYPE_QUIZ || $cache_type == GeoCache::TYPE_OTHERTYPE || $cache_type == GeoCache::TYPE_MULTICACHE)) { $orig_cache_lon = $geocache->getCoordinates()->getLongitude(); $orig_cache_lat = $geocache->getCoordinates()->getLatitude(); $cache_modifiable = true; $thatquery = "SELECT `cache_mod_cords`.`id` AS `mod_cords_id`,\n `cache_mod_cords`.`longitude` AS `mod_lon`, `cache_mod_cords`.`latitude` AS `mod_lat`\n FROM `cache_mod_cords` INNER JOIN `caches` ON (`caches`.`cache_id` = `cache_mod_cords`.`cache_id` AND\n `cache_mod_cords`.`user_id` = :v1)\n WHERE `caches`.`cache_id`=:v2"; $params['v1']['value'] = (int) $usr['userid']; $params['v1']['data_type'] = 'integer'; $params['v2']['value'] = (int) $cache_id; $params['v2']['data_type'] = 'integer'; $s = $dbc->paramQuery($thatquery, $params); unset($params); //clear to avoid overlaping on next paramQuery (if any)) $cache_mod_coords = $dbc->dbResultFetchOneRowOnly($s); if ($cache_mod_coords != 0) { if ($mod_coord_delete_mode == false) { $orig_coord_info_lon = htmlspecialchars(help_lonToDegreeStr($orig_cache_lon), ENT_COMPAT, 'UTF-8'); $orig_coord_info_lat = htmlspecialchars(help_latToDegreeStr($orig_cache_lat), ENT_COMPAT, 'UTF-8');