function theme_getlocations_fields_show in Get Locations 7
Same name and namespace in other branches
- 7.2 modules/getlocations_fields/getlocations_fields.module \theme_getlocations_fields_show()
Parameters
array $variables:
Return value
Returns $output
1 theme call to theme_getlocations_fields_show()
- getlocations_fields_field_formatter_view in modules/
getlocations_fields/ getlocations_fields.module - Implements hook_field_formatter_view(). Build a renderable array for a field value.
File
- modules/
getlocations_fields/ getlocations_fields.module, line 4183 - getlocations_fields.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
Code
function theme_getlocations_fields_show($variables) {
$locations = $variables['locations'];
$settings = $variables['settings'];
if ($settings['display_onemap']) {
$minmaxes = array(
'minlat' => 0,
'minlon' => 0,
'maxlat' => 0,
'maxlon' => 0,
);
}
else {
$minmaxes = '';
}
$output = '';
$location_ct = 0;
foreach ($locations as $location) {
$output .= '<div class="location vcard">';
if (!empty($location['name']) && $settings['display_name']) {
$output .= '<h4>' . $location['name'] . '</h4>';
}
$output .= '<div class="adr">';
if (!empty($location['street']) && $settings['display_street']) {
$output .= '<div class="street-address">' . $location['street'];
if (!empty($location['additional']) && $settings['display_additional']) {
$output .= ' ' . '<span class="extended-address">' . $location['additional'] . '</span>';
}
$output .= '</div>';
}
if (!empty($location['city']) && $settings['display_city']) {
$output .= '<span class="locality">' . $location['city'] . '</span>';
if (!empty($location['province']) && $settings['display_province']) {
$output .= ", ";
}
else {
$output .= " ";
}
}
if (!empty($location['province']) && $settings['display_province']) {
$output .= '<span class="region">' . $location['province'] . '</span>';
if (!empty($location['postal_code']) && $settings['display_postal_code']) {
$output .= " ";
}
}
if (!empty($location['postal_code']) && $settings['display_postal_code']) {
$output .= '<span class="postal-code">' . drupal_strtoupper($location['postal_code']) . '</span>';
}
if (!empty($location['country']) && $settings['display_country']) {
if ($settings['country_full'] && drupal_strlen($location['country']) == 2) {
// this is a 2 letter code, we want the full name
$countries = getlocations_get_countries_list();
$country = $countries[$location['country']];
if (empty($country)) {
$country = $location['country'];
}
}
else {
$country = $location['country'];
}
$output .= '<div class="country-name">' . $country . '</div>';
}
$output .= '</div>';
if ($location['phone'] && $settings['display_phone'] || $location['mobile'] && $settings['display_mobile'] || $location['fax'] && $settings['display_fax']) {
$output .= '<div class="phones">';
if ($location['phone'] && $settings['display_phone']) {
$output .= '<div class="phone"><span class="phone_label">' . t('Phone') . '</span>' . $location['phone'] . '</div>';
}
if ($location['mobile'] && $settings['display_mobile']) {
$output .= '<div class="mobile"><span class="mobile_label">' . t('Mobile') . '</span>' . $location['mobile'] . '</div>';
}
if ($location['fax'] && $settings['display_fax']) {
$output .= '<div class="fax"><span class="fax_label">' . t('Fax') . '</span>' . $location['fax'] . '</div>';
}
$output .= '</div>';
}
$output .= '</div>';
// what3words
$what3words_lic = variable_get('getlocations_what3words_lic', array(
'key' => '',
'url' => 'http://api.what3words.com',
));
if ($what3words_lic['key'] && isset($location['what3words']) && $location['what3words'] && $settings['what3words_display']) {
$output .= '<div class="w3w"><span class="w3w_label">' . t('What3Words') . '</span>' . $location['what3words'] . '</div>';
}
if ($settings['display_latlong']) {
$lat = $location['latitude'];
$lng = $location['longitude'];
if ($settings['display_geo_microformat'] > 0) {
$lat_dms = theme('getlocations_latitude_dms', array(
'latitude' => $lat,
));
$lng_dms = theme('getlocations_longitude_dms', array(
'longitude' => $lng,
));
if ($settings['display_geo_microformat'] == 1) {
$output .= '<div class="geo">';
$output .= '<abbr class="latitude" title="' . $lat . '">' . $lat_dms . '</abbr> ';
$output .= '<abbr class="longitude" title="' . $lng . '">' . $lng_dms . '</abbr>';
$output .= '</div>';
}
else {
$output .= '<div itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">';
$output .= t('Latitude') . ' ' . $lat_dms . '<br />';
$output .= t('Longitude') . ' ' . $lng_dms;
$output .= '<meta itemprop="latitude" content="' . $lat . '" />';
$output .= '<meta itemprop="longitude" content="' . $lng . '" />';
$output .= '</div>';
}
$output .= '<br />';
}
else {
if ($settings['display_dms']) {
$lat = theme('getlocations_latitude_dms', array(
'latitude' => $lat,
));
$lng = theme('getlocations_longitude_dms', array(
'longitude' => $lng,
));
}
$nomap = '';
if (!$settings['display_showmap']) {
$nomap = '_nomap';
}
$output .= '<div class="getlocations_fields_latlon_wrapper_themed' . $nomap . '">';
$output .= '<div class="getlocations_fields_lat_wrapper_themed' . $nomap . '">';
$output .= t('Latitude') . ": " . $lat . '</div>';
$output .= '<div class="getlocations_fields_lon_wrapper_themed' . $nomap . '">';
$output .= t('Longitude') . ": " . $lng . '</div>';
$output .= '</div>';
$output .= '<br />';
}
}
// smuggle these in from location data
// map_settings_allow
if (isset($location['map_settings_allow'])) {
$map_settings_allow = $location['map_settings_allow'];
}
else {
$map_settings_allow = getlocations_fields_map_settings_allow();
}
if ($map_settings_allow) {
if (isset($location['mapzoom']) && is_numeric($location['mapzoom'])) {
$settings['nodezoom'] = $location['mapzoom'];
}
if (isset($location['map_maptype']) && $location['map_maptype']) {
$settings['maptype'] = $location['map_maptype'];
}
}
// streetview
if (isset($location['streetview_settings_allow'])) {
$streetview_settings_allow = $location['streetview_settings_allow'];
}
else {
$streetview_settings_allow = getlocations_fields_streetview_settings_allow();
}
if ($streetview_settings_allow) {
if (isset($location['sv_enable'])) {
$settings['sv_enable'] = $location['sv_enable'] == 1 ? 1 : 0;
}
if (isset($location['sv_showfirst'])) {
$settings['sv_showfirst'] = $location['sv_showfirst'] == 1 ? 1 : 0;
}
if (isset($location['sv_heading']) && is_numeric($location['sv_heading'])) {
$settings['sv_heading'] = $location['sv_heading'];
}
if (isset($location['sv_zoom']) && is_numeric($location['sv_zoom'])) {
$settings['sv_zoom'] = $location['sv_zoom'];
}
if (isset($location['sv_pitch']) && is_numeric($location['sv_pitch'])) {
$settings['sv_pitch'] = $location['sv_pitch'];
}
$settings += getlocations_fields_get_display_settings($location);
}
else {
$settings['sv_enable'] = 0;
$settings['sv_showfirst'] = 0;
}
if ($location['longitude'] && $location['latitude']) {
if ($settings['display_showmap']) {
$name = htmlspecialchars_decode(isset($location['name']) && $location['name'] ? strip_tags($location['name']) : (isset($location['title']) && $location['title'] ? strip_tags($location['title']) : ''), ENT_QUOTES);
$base = '';
if ($location['nid']) {
$base = 'nid';
}
elseif ($location['uid']) {
$base = 'uid';
}
elseif ($location['tid']) {
$base = 'tid';
}
elseif ($location['cid']) {
$base = 'cid';
}
$marker = $settings['map_marker'];
if ($base == 'nid') {
// term markers, nodes only
$marker = getlocations_get_term_marker($location['nid'], $marker);
}
// per location marker
if (isset($location['marker']) && !empty($location['marker'])) {
$marker = $location['marker'];
}
// onemap
if ($settings['display_onemap']) {
$latlons[] = array(
$location['latitude'],
$location['longitude'],
$location['glid'],
$name,
$marker,
$base,
'',
'',
);
$minmaxes = getlocations_do_minmaxes($location_ct, $location, $minmaxes);
}
else {
$latlons = array(
$location['latitude'],
$location['longitude'],
$location['glid'],
$name,
$marker,
$base,
'',
'',
);
$map = getlocations_fields_getmap_show($settings, $latlons);
$output .= $map;
}
}
else {
if ($settings['display_maplink']) {
if (count($locations) > 1) {
$output .= '<p>' . l(t('Show on a map'), 'getlocations/lids/' . $location['glid']) . '</p>';
}
else {
if ($location['nid']) {
$output .= '<p>' . l(t('Show on a map'), 'getlocations/node/' . $location['nid']) . '</p>';
}
elseif ($location['uid']) {
$output .= '<p>' . l(t('Show on a map'), 'getlocations/user/' . $location['uid']) . '</p>';
}
elseif ($location['tid']) {
$output .= '<p>' . l(t('Show on a map'), 'getlocations/term/' . $location['tid']) . '</p>';
}
elseif ($location['cid']) {
$output .= '<p>' . l(t('Show on a map'), 'getlocations/comment/' . $location['cid']) . '</p>';
}
}
}
}
$location_ct++;
}
}
// onemap
if ($settings['display_showmap'] && $settings['display_onemap'] && isset($latlons)) {
if ($location_ct < 2) {
unset($minmaxes);
$minmaxes = '';
}
$map = getlocations_fields_getmap_show($settings, $latlons, $minmaxes);
$output .= $map;
}
return $output;
}