sites_group_overrides-1.x-dev/src/Plugin/DataType/EntityAdapter.php

src/Plugin/DataType/EntityAdapter.php
<?php

namespace Drupal\sites_group_overrides\Plugin\DataType;

use Drupal\Core\Entity\Plugin\DataType\EntityAdapter as EntityAdapterCore;
use Drupal\sites_group_overrides\SitesGroupOverridesServiceInterface;

/**
 * Defines the "entity" data type.
 */
class EntityAdapter extends EntityAdapterCore {

  /**
   * The sites group overides service.
   *
   * @var SitesGroupOverridesServiceInterface
   */  
  protected SitesGroupOverridesServiceInterface $sitesGroupOverrideService;

  /**
   * {@inheritdoc}
   */
  public function getValue() {
    if ($this->entity && !$this->entity->isSyncing() && $this->getSitesGroupOverrideService()->entityIsOveridable($this->entity) && $group_relationship = $this->getSitesGroupOverrideService()->getRelationship($this->entity)) {
      $this->entity = $this->getSitesGroupOverrideService()->syncFieldsToEntity($group_relationship, $this->entity);
    }

    return parent::getValue();
  }

  /**
   * Get the ites_group_overrides.service
   *
   * @return SitesGroupOverridesServiceInterface
   */
  protected function getSitesGroupOverrideService(): SitesGroupOverridesServiceInterface {
    if (!isset($this->sitesGroupOverrideService)) {
      $this->sitesGroupOverrideService = \Drupal::service('sites_group_overrides.service');
    }

    return $this->sitesGroupOverrideService;
  }

}

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

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