function _ip_geoloc_plugin_style_get_differentiator_value in IP Geolocation Views & Maps 7
1 call to _ip_geoloc_plugin_style_get_differentiator_value()
- _ip_geoloc_plugin_style_set_marker_color in views/
ip_geoloc_plugin_style.inc - Set the marker color based on the differentiator, if any.
File
- views/
ip_geoloc_plugin_style.inc, line 1128 - ip_geoloc_plugin_style.inc
Code
function _ip_geoloc_plugin_style_get_differentiator_value($row, $differentiator, $view_args) {
if (preg_match('/^!([0-9])/', $differentiator, $matches)) {
// Check if an argument was appended to the URL. Internal count is from 0.
$position = $matches[1] - 1;
if (isset($view_args[$position])) {
$differentiator_value = $view_args[$position];
}
}
elseif (isset($row->{$differentiator})) {
$differentiator_value = $row->{$differentiator};
}
elseif (!empty($row->{'field_' . $differentiator})) {
$differentiator_values = $row->{'field_' . $differentiator};
if (is_array($differentiator_values)) {
// Count > 1 for taxonomy term with lineage.
$num_values = count($differentiator_values);
if (isset($differentiator_values[0]['raw'])) {
$differentiator_value = $differentiator_values[$num_values - 1]['raw'];
}
elseif (isset($differentiator_values[0]['rendered']['#markup'])) {
$differentiator_value = $differentiator_values[$num_values - 1]['rendered']['#markup'];
}
}
}
elseif (!empty($row->_field_data[$differentiator]['entity'])) {
$differentiator_value = '';
// Retrieve first value, regardless of language.
$v = reset($row->_field_data[$differentiator]['entity']->{$differentiator});
if (is_array($v)) {
$v = reset($v);
if (is_array($v)) {
$differentiator_value = isset($v['value']) ? $v['value'] : reset($v);
}
}
}
elseif (!empty($row->_entity_properties)) {
// Search API
$differentiator_value = _ip_geoloc_plugin_style_get_search_api_value($row, $differentiator);
}
else {
$differentiator_value = '';
if (!isset($row->{'field_' . $differentiator})) {
drupal_set_message(t('IPGV&M: no differentiator values found for %diff. Cannot assign marker images.', array(
'%diff' => $differentiator,
)), 'warning', FALSE);
}
}
return $differentiator_value;
}