ifthenelse-8.x-1.x-dev-no-core/modules/contrib/default_content/src/Normalizer/TermEntityNormalizer.php

modules/contrib/default_content/src/Normalizer/TermEntityNormalizer.php
<?php

namespace Drupal\default_content\Normalizer;

use Drupal\hal\Normalizer\ContentEntityNormalizer;

/**
 * Defines a class for normalizing terms to ensure parent is stored.
 */
class TermEntityNormalizer extends ContentEntityNormalizer {

  /**
   * {@inheritdoc}
   */
  protected $supportedInterfaceOrClass = 'Drupal\taxonomy\TermInterface';

  /**
   * The taxonomy term storage.
   *
   * @var \Drupal\taxonomy\TermStorageInterface
   */
  protected $termStorage;

  /**
   * {@inheritdoc}
   */
  public function normalize($entity, $format = NULL, array $context = []) {
    if ($parents = $this->getTermStorage()->loadParents($entity->id())) {
      $entity->parent->setValue(array_keys($parents));
    }
    return parent::normalize($entity, $format, $context);
  }

  /**
   * Returns taxonomy term storage.
   *
   * Prevents circular reference when used with multiversion.
   *
   * @return \Drupal\taxonomy\TermStorageInterface
   *   The taxonomy term storage.
   */
  protected function getTermStorage() {
    if (!$this->termStorage) {
      $this->termStorage = $this->entityManager->getStorage('taxonomy_term');
    }
    return $this->termStorage;
  }

}

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

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