You are here

public function ListFieldThemerUrl::getIcon in Geofield Map 8.2

Retrieve the icon for theming definition.

Parameters

array $datum: The geometry feature array definition.

\Drupal\geofield_map\Plugin\views\style\GeofieldGoogleMapViewStyle $geofieldMapView: The Geofield Map View dispaly object.

\Drupal\Core\Entity\EntityInterface $entity: The entity generating the datum.

mixed $map_theming_values: The Map themer mapping values.

Return value

mixed The icon definition.

Overrides MapThemerInterface::getIcon

1 method overrides ListFieldThemerUrl::getIcon()
ListFieldThemer::getIcon in src/Plugin/GeofieldMapThemer/ListFieldThemer.php
Retrieve the icon for theming definition.

File

src/Plugin/GeofieldMapThemer/ListFieldThemerUrl.php, line 296

Class

ListFieldThemerUrl
Style plugin to render a View output as a Leaflet map.

Namespace

Drupal\geofield_map\Plugin\GeofieldMapThemer

Code

public function getIcon(array $datum, GeofieldGoogleMapViewStyle $geofieldMapView, EntityInterface $entity, $map_theming_values) {
  $list_field = isset($map_theming_values['list_field']) ? $map_theming_values['list_field'] : NULL;
  $fallback_icon = isset($map_theming_values['fields'][$list_field]['options']['__default_value__']['icon_file']) ? $map_theming_values['fields'][$list_field]['options']['__default_value__']['icon_file'] : NULL;
  $file_uri = $fallback_icon;
  if (isset($entity->{$list_field})) {
    $list_field_option = $entity->{$list_field}->value;
    $file_uri = isset($map_theming_values['fields'][$list_field]['options'][$list_field_option]['icon_file']) && $map_theming_values['fields'][$list_field]['options'][$list_field_option]['icon_file'] != 'none' ? $map_theming_values['fields'][$list_field]['options'][$list_field_option]['icon_file'] : ($fallback_icon != 'none' ? $fallback_icon : NULL);
  }
  return $this->markerIcon
    ->getFileSelectedUrl($file_uri);
}