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 {