function geojson_geometry($item) { $geometry = json_decode(gisQuery::EWKT2GeoJSON(doctrine_value($item->get('geom_wkt')))); if ($geometry->type === 'Point' && doctrine_value($item['elevation'])) { $geometry->coordinates[] = $item['elevation']; } return $geometry; }
} $properties = array_merge($properties, array('outingRouteDesc' => $outing_route_desc, 'conditionsLevels' => $conditions_levels, 'conditions' => $conditions, 'avalancheDesc' => $avalanche_desc, 'weather' => $weather, 'timing' => $timing)); } } if ($add_all_fields) { $track_statuses = sfConfig::get('mod_outings_track_statuses_list'); $hut_statuses = sfConfig::get('mod_outings_hut_statuses_list'); $lift_statuses = sfConfig::get('mod_outings_lift_statuses_list'); $track_status = doctrine_value($item['track_status']); $hut_status = doctrine_value($item['hut_status']); $lift_status = doctrine_value($item['lift_status']); $partial_trip = doctrine_value($item['partial_trip']); $partial_trip = empty($partial_trip) ? false : true; $outing_with_public_transportation = doctrine_value($item['outing_with_public_transportation']); $outing_with_public_transportation = empty($outing_with_public_transportation) ? false : true; $properties = array_merge($properties, array('minElevation' => doctrine_value($item['min_elevation']), 'heightDiffDown' => doctrine_value($item['height_diff_down']), 'outingLength' => doctrine_value($item['outing_length']), 'partialTrip' => $partial_trip, 'usePublicTransportation' => $outing_with_public_transportation, 'trackStatus' => $use_keys ? $track_status : @$track_statuses[$track_status], 'hutStatus' => $use_keys ? $hut_status : @$hut_statuses[$hut_status], 'liftStatus' => $use_keys ? $lift_status : @$lift_statuses[$lift_status])); if ($add_text) { $access_comments = $item_i18n['access_comments']; if (check_not_empty($access_comments) && !$access_comments instanceof sfOutputEscaperObjectDecorator) { if ($text_html) { $access_comments = parse_links(parse_bbcode($description, null, false, false)); } } else { $access_comments = null; } $hut_comments = $item_i18n['hut_comments']; if (check_not_empty($hut_comments) && !$hut_comments instanceof sfOutputEscaperObjectDecorator) { if ($text_html) { $hut_comments = parse_links(parse_bbcode($hut_comments, null, false, false)); } } else {
<?php $item_i18n = $item->getRaw('ParkingI18n'); $item_i18n = $item_i18n[0]; $sc = sfConfig::get('mod_parkings_snow_clearance_ratings_list'); $ptr = sfConfig::get('app_parkings_public_transportation_ratings'); $ptt = sfConfig::get('app_parkings_public_transportation_types'); echo json_encode(array('type' => 'Feature', 'geometry' => geojson_geometry($item), 'id' => $item['id'], 'properties' => array('module' => 'parkings', 'name' => $item_i18n['name'], 'url' => jsonlist_url($item_i18n, 'parkings'), 'elevation' => $item['elevation'], 'lowestElevation' => doctrine_value($item['lowest_elevation']), 'snowClearance' => @$sc[doctrine_value($item['snow_clearance_rating'])], 'publicTransportationRating' => @$ptr[doctrine_value($item['public_transportation_rating'])], 'publicTransportationTypes' => BaseDocument::convertStringToArrayTranslate($item['public_transportation_types'], $ptt, 0), 'nbLinkedImage' => isset($item['nb_images']) ? $item['nb_images'] : 0, 'nbLinkedRoutes' => isset($item['nb_linked_docs']) ? $item['nb_linked_docs'] : 0, 'nbComments' => isset($item['nb_comments']) ? $item['nb_comments'] : 0, 'linkedAreas' => json_decode(get_partial('documents/regions4jsonlist', array('geoassociations' => $item['geoassociations']))))));
<?php $item_i18n = $item->getRaw('BookI18n'); $item_i18n = $item_i18n[0]; $bt = sfCOnfig::get('mod_books_book_types_list'); $a = sfConfig::get('app_activities_list'); echo json_encode(array('type' => 'Feature', 'geometry' => null, 'id' => $item['id'], 'properties' => array('module' => 'books', 'name' => $item_i18n['name'], 'url' => jsonlist_url($item_i18n, 'books'), 'types' => BaseDocument::convertStringToArrayTranslate($item['book_types'], $bt, 0), 'author' => doctrine_value($item->get('author')), 'editor' => doctrine_value($item->get('editor')), 'publicationDate' => doctrine_value($item['publication_date']), 'activities' => BaseDocument::convertStringToArrayTranslate($item['activities'], $a, 0), 'languages' => BaseDocument::convertStringToArray($item['langs'], 0), 'nbLinkedImages' => isset($item['nb_images']) ? $item['nb_images'] : 0, 'nbComments' => isset($item['nb_comments']) ? $item['nb_comments'] : 0)));
<?php $item_i18n = $item->getRaw('ProductI18n'); $item_i18n = $item_i18n[0]; $pt = sfConfig::get('mod_products_types_list'); echo json_encode(array('type' => 'Feature', 'geometry' => geojson_geometry($item), 'id' => $item['id'], 'properties' => array('module' => 'products', 'name' => $item_i18n['name'], 'url' => jsonlist_url($item_i18n, 'products'), 'elevation' => doctrine_value($item['elevation']), 'productTypes' => BaseDocument::convertStringToArrayTranslate($item['product_type'], $pt, 0), 'website' => doctrine_value($item['url']), 'nbLinkedImages' => isset($item['nb_images']) ? $item['nb_images'] : 0, 'nbComments' => isset($item['nb_comments']) ? $item['nb_comments'] : 0, 'linkedAreas' => json_decode(get_partial('documents/regions4jsonlist', array('geoassociations' => $item['geoassociations']))), 'linkedParkings' => json_decode(get_partial('parkings/parkings4jsonlist', array('parkings' => isset($item['linked_docs']) ? $item['linked_docs'] : array()))))));
<?php $item_i18n = $item->getRaw('SummitI18n'); $item_i18n = $item_i18n[0]; $st = sfConfig::get('app_summits_summit_types'); echo json_encode(array('type' => 'Feature', 'geometry' => geojson_geometry($item), 'id' => $item['id'], 'properties' => array('module' => 'summits', 'name' => $item_i18n['name'], 'url' => jsonlist_url($item_i18n, 'summits'), 'elevation' => $item['elevation'], 'type' => @$st[doctrine_value($item['summit_type'])], 'nbLinkedImages' => isset($item['nb_images']) ? $item['nb_images'] : 0, 'nbLinkedRoutes' => isset($item['nb_linked_docs']) ? $item['nb_linked_docs'] : 0, 'nbComments' => isset($item['nb_comments']) ? $item['nb_comments'] : 0, 'linkedAreas' => json_decode(get_partial('documents/regions4jsonlist', array('geoassociations' => $item['geoassociations']))))));
<?php $item_i18n = $item->getRaw('UserI18n'); $item_i18n = $item_i18n[0]; $a = sfConfig::get('app_activities_list'); $c = sfConfig::get('mod_users_category_list'); // note that only public profiles are listed when no credential is provided echo json_encode(array('type' => 'Feature', 'geometry' => null, 'id' => $item['id'], 'properties' => array('module' => 'users', 'name' => $item_i18n['name'], 'activities' => BaseDocument::convertStringToArrayTranslate($item['activities'], $a, 0), 'category' => @$c[doctrine_value($item['category'])])));
<?php $item_i18n = $item->getRaw('HutI18n'); $item_i18n = $item_i18n[0]; $st = sfConfig::get('mod_huts_shelter_types_list'); $a = sfConfig::get('app_activities_list'); echo json_encode(array('type' => 'Feature', 'geometry' => geojson_geometry($item), 'id' => $item['id'], 'properties' => array('module' => 'huts', 'name' => $item_i18n['name'], 'url' => jsonlist_url($item_i18n, 'huts'), 'elevation' => $item['elevation'], 'type' => $st[$item['shelter_type']], 'staffedCapacity' => doctrine_value($item['staffed_capacity']), 'unstaffedCapacity' => doctrine_value($item['unstaffed_capacity']), 'activities' => BaseDocument::convertStringToArrayTranslate($item['activities'], $a, 0), 'phone' => doctrine_value($item['phone']), 'website' => doctrine_value($item['url']), 'nbLinkedImages' => isset($item['nb_images']) ? $item['nb_images'] : 0, 'nbLinkedRoutes' => isset($item['nb_linked_docs']) ? $item['nb_linked_docs'] : 0, 'nbComments' => isset($item['nb_comments']) ? $item['nb_comments'] : 0, 'linkedAreas' => json_decode(get_partial('documents/regions4jsonlist', array('geoassociations' => $item['geoassociations']))), 'linkedParkings' => json_decode(get_partial('parkings/parkings4jsonlist', array('parkings' => isset($item['linked_docs']) ? $item['linked_docs'] : array()))))));
$sub_activities_list = sfConfig::get('mod_routes_sub_activities_list'); $route_type = doctrine_value($item['route_type']); $duration = doctrine_value($item['duration']); $configuration = $use_keys ? BaseDocument::convertStringToArray($item['configuration']) : BaseDocument::convertStringToArrayTranslate($item['configuration'], $configurations_list); $sub_activities = BaseDocument::convertStringToArray($item['sub_activities']); $snowboarding = in_array(2, $sub_activities); $beginner_proof = in_array(4, $sub_activities); $mountain_bike_approach = in_array(6, $sub_activities); $lift_approach = in_array(8, $sub_activities); $is_on_glacier = doctrine_value($item['is_on_glacier']); $is_on_glacier = empty($is_on_glacier) ? false : true; $slope = $item->getRaw('slope'); if (!check_not_empty($slope) || $slope instanceof sfOutputEscaperObjectDecorator) { $slope = null; } $properties = array_merge($properties, array('minElevation' => doctrine_value($item['min_elevation']), 'heightDiffDown' => doctrine_value($item['height_diff_down']), 'routeType' => $use_keys ? $route_type : @$route_types_list[$route_type], 'duration' => $use_keys ? $duration : @$durations_list[$duration], 'configuration' => $configuration, 'snowboardingProof' => $snowboarding, 'beginnerProof' => $beginner_proof, 'mountainBikeApproach' => $mountain_bike_approach, 'liftApproach' => $lift_approach, 'requiresGlacierGear' => $is_on_glacier, 'slope' => $slope)); if ($add_text) { $description = $item_i18n['description']; if (check_not_empty($description) && !$description instanceof sfOutputEscaperObjectDecorator) { if ($text_html) { $description = parse_links(parse_bbcode($description, null, false, false)); } } else { $description = null; } $remarks = $item_i18n['remarks']; if (check_not_empty($remarks) && !$remarks instanceof sfOutputEscaperObjectDecorator) { if ($text_html) { $remarks = parse_links(parse_bbcode($remarks, null, false, false)); } } else {