wse-1.0.x-dev/src/WseEntityUntranslatableFieldsConstraintValidator.php

src/WseEntityUntranslatableFieldsConstraintValidator.php
<?php

namespace Drupal\wse;

use Drupal\Core\Entity\Plugin\Validation\Constraint\EntityUntranslatableFieldsConstraintValidator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Validator\Constraint;

/**
 * Validator override.
 */
class WseEntityUntranslatableFieldsConstraintValidator extends EntityUntranslatableFieldsConstraintValidator {

  /**
   * The workspace information service.
   *
   * @var \Drupal\workspaces\WorkspaceInformationInterface
   */
  protected $workspaceInfo;

  /**
   * The workspace manager service.
   *
   * @var \Drupal\workspaces\WorkspaceManagerInterface
   */
  protected $workspaceManager;

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    $instance = parent::create($container);
    $instance->workspaceInfo = $container->get('workspaces.information');
    $instance->workspaceManager = $container->get('workspaces.manager');
    return $instance;
  }

  /**
   * {@inheritdoc}
   */
  public function validate($entity, Constraint $constraint): void {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    if ($this->workspaceInfo->isEntitySupported($entity) && $this->workspaceManager->hasActiveWorkspace()) {
      return;
    }

    parent::validate($entity, $constraint);
  }

}

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

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