You are here

protected function ImageStyleNormalizedFieldItemList::computeValue in JSON:API Image Styles 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/Field/FieldType/ImageStyleNormalizedFieldItemList.php \Drupal\jsonapi_image_styles\Plugin\Field\FieldType\ImageStyleNormalizedFieldItemList::computeValue()
  2. 3.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 && substr($entity
    ->getMimeType(), 0, 5) === 'image' ? $entity
    ->getFileUri() : FALSE;
  if ($uri) {
    $defined_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++;
    }
  }
}