external_entities-8.x-2.x-dev/modules/xntt_file_field/src/Plugin/Validation/Constraint/ExternalFileValidationConstraintValidator.php

modules/xntt_file_field/src/Plugin/Validation/Constraint/ExternalFileValidationConstraintValidator.php
<?php

namespace Drupal\xntt_file_field\Plugin\Validation\Constraint;

use Drupal\file\Plugin\Validation\Constraint\FileValidationConstraintValidator;
use Drupal\xntt_file_field\ExternalFileStorageInterface;
use Symfony\Component\Validator\Constraint;

/**
 * Checks that an (external) file referenced in a file field is valid.
 */
class ExternalFileValidationConstraintValidator extends FileValidationConstraintValidator {

  /**
   * {@inheritdoc}
   */
  public function validate($value, Constraint $constraint): void {
    // Get the file to execute validators.
    $target = $value->get('entity')->getTarget();
    if (!$target) {
      return;
    }

    $id = $target->getEntity()->id() ?? NULL;
    if (!empty($id)
      && !is_numeric($id)
      && (preg_match(ExternalFileStorageInterface::XNTT_FILE_ID_REGEX, $id))
    ) {
      // Skip external files.
      return;
    }

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

}

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

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