You are here

public function TaxonomyTermThemer::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 TaxonomyTermThemerUrl::getIcon

File

src/Plugin/GeofieldMapThemer/TaxonomyTermThemer.php, line 253

Class

TaxonomyTermThemer
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) {
  $taxonomy_field = isset($map_theming_values['taxonomy_field']) ? $map_theming_values['taxonomy_field'] : NULL;
  $fallback_icon_style = isset($map_theming_values['fields'][$taxonomy_field]['terms']['__default_value__']['image_style']) ? $map_theming_values['fields'][$taxonomy_field]['terms']['__default_value__']['image_style'] : NULL;
  $fallback_icon = isset($map_theming_values['fields'][$taxonomy_field]['terms']['__default_value__']['icon_file']) ? $map_theming_values['fields'][$taxonomy_field]['terms']['__default_value__']['icon_file']['fids'] : NULL;
  $image_style = $fallback_icon_style;
  $fid = $fallback_icon;
  if (isset($entity->{$taxonomy_field}) && !empty($entity->{$taxonomy_field}->target_id)) {
    $taxonomy_field_term = $entity->{$taxonomy_field}->target_id;
    $image_style = isset($map_theming_values['fields'][$taxonomy_field]['terms'][$taxonomy_field_term]['image_style']) ? $map_theming_values['fields'][$taxonomy_field]['terms'][$taxonomy_field_term]['image_style'] : $fallback_icon_style;
    $fid = isset($map_theming_values['fields'][$taxonomy_field]['terms'][$taxonomy_field_term]['icon_file']) && !empty($map_theming_values['fields'][$taxonomy_field]['terms'][$taxonomy_field_term]['icon_file']['fids']) ? $map_theming_values['fields'][$taxonomy_field]['terms'][$taxonomy_field_term]['icon_file']['fids'] : $fallback_icon;
  }
  return $this->markerIcon
    ->getFileManagedUrl($fid, $image_style);
}