You are here

protected function ImageStyleNormalizedFieldItemList::computeValue in JSON:API Image Styles 8

Same name and namespace in other branches
  1. 3.0.x src/Plugin/Field/FieldType/ImageStyleNormalizedFieldItemList.php \Drupal\jsonapi_image_styles\Plugin\Field\FieldType\ImageStyleNormalizedFieldItemList::computeValue()
  2. 2.0.x src/Plugin/Field/FieldType/ImageStyleNormalizedFieldItemList.php \Drupal\jsonapi_image_styles\Plugin\Field\FieldType\ImageStyleNormalizedFieldItemList::computeValue()

Computes the values for an item list.

Overrides ComputedItemListTrait::computeValue

File

src/Plugin/Field/FieldType/ImageStyleNormalizedFieldItemList.php, line 20

Class

ImageStyleNormalizedFieldItemList
Represents the computed image styles for a file entity.

Namespace

Drupal\jsonapi_image_styles\Plugin\Field\FieldType

Code

protected function computeValue() {
  $config = \Drupal::config('jsonapi_image_styles.settings');
  $styles = [];
  $entity = $this
    ->getEntity();
  $uri = $entity instanceof File ? $entity
    ->getFileUri() : FALSE;
  $defined_styles = $config
    ->get('image_styles') ? $config
    ->get('image_styles') : [];
  if (!empty(array_filter($defined_styles))) {
    foreach ($defined_styles as $key) {
      $styles[$key] = ImageStyle::load($key);
    }
  }
  else {
    $styles = ImageStyle::loadMultiple();
  }
  $offset = 0;
  foreach ($styles as $name => $style) {
    if ($style instanceof ImageStyle) {
      $this->list[] = $this
        ->createItem($offset, [
        'url' => [
          $name => $style
            ->buildUrl($uri),
        ],
      ]);
    }
    $offset++;
  }
}