next-1.0.0-alpha2/modules/next_extras/src/Plugin/Field/FieldType/ContentTranslationsFieldItemList.php

modules/next_extras/src/Plugin/Field/FieldType/ContentTranslationsFieldItemList.php
<?php

namespace Drupal\next_extras\Plugin\Field\FieldType;

use Drupal\Core\Field\FieldItemList;
use Drupal\Core\TypedData\ComputedItemListTrait;

/**
 * A list of field item objects with translations.
 */
class ContentTranslationsFieldItemList extends FieldItemList {

  use ComputedItemListTrait;

  /**
   * {@inheritdoc}
   */
  protected function computeValue() {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity();

    if (!$entity->isTranslatable() || !$entity->id()) {
      return NULL;
    }

    $langcodes = array_keys($entity->getTranslationLanguages());
    foreach ($langcodes as $delta => $langcode) {
      $translation = $entity->getTranslation($langcode);
      $this->list[$delta] = $this->createItem($delta, [
        'label' => $translation->label(),
        'path' => $translation->toUrl()->toString(),
        'langcode' => $langcode,
      ]);
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc