<?php use_helper('Field'); $activities = $document->getRaw('activities'); // put here meta tags for microdata that cannot be inside ul tags echo microdata_meta('name', $document->getName()); if (isset($nb_comments) && $nb_comments) { echo microdata_meta('interactionCount', $nb_comments . ' UserComments'); echo microdata_meta('discussionUrl', url_for('@document_comment?module=routes&id=' . $sf_params->get('id') . '&lang=' . $sf_params->get('lang'))); } ?> <ul class="data col_left col_33"> <?php li(field_activities_data($document)); li(field_data_range_if_set($document, 'min_elevation', 'max_elevation', array('separator' => 'elevation separator', 'suffix' => 'meters'))); $min_elevation = $document->get('min_elevation'); $difficulties_start_elevation = $document->get('elevation'); $has_approach_height = !empty($min_elevation) && !empty($difficulties_start_elevation); if (array_intersect(array(1, 2, 3, 6, 7), $activities) || !$has_approach_height) { li(field_data_range_if_set($document, 'height_diff_up', 'height_diff_down', array('separator' => 'height diff separator', 'prefix_min' => '+', 'prefix_max' => '-', 'suffix' => 'meters', 'range_only' => true))); } if (array_intersect(array(1, 2, 3, 4, 6, 7), $activities)) { li(field_data_if_set($document, 'route_length', array('suffix' => 'kilometers'))); } if (array_intersect(array(1, 2, 3, 4, 5), $activities)) { li(field_data_arg_if_set('difficulties_start_elevation', $difficulties_start_elevation, array('suffix' => 'meters'))); li(field_data_if_set($document, 'difficulties_height', array('suffix' => 'meters'))); if ($has_approach_height) { li(field_data_arg('approach_height', $difficulties_start_elevation - $min_elevation, array('suffix' => 'meters'))); } }
function field_coord_data_if_set($document, $name, $options = array()) { $microdata = _option($options, 'microdata', null); $raw_value = $document->get($name); if (empty($raw_value)) { return ''; } switch ($name) { case 'lat': $suffix = $raw_value < 0 ? '°S' : '°N'; break; case 'lon': $suffix = $raw_value < 0 ? '°W' : '°E'; break; default: $suffix = ''; } $value = abs($raw_value); $deg = floor($value); $minTemp = 60 * ($value - $deg); $min = floor($minTemp); $sec = floor(60 * 100 * ($minTemp - $min)) / 100; $value = $deg . '° ' . $min . "' " . $sec . '" ' . str_replace('°', '', $suffix); return _format_data($name, $value) . ($microdata ? microdata_meta($microdata, $raw_value) : ''); }