openfed-8.x-8.5/modules/openfed_features/partial_date/src/Plugin/Validation/Constraint/ValidDayConstraintValidator.php

modules/openfed_features/partial_date/src/Plugin/Validation/Constraint/ValidDayConstraintValidator.php
<?php

namespace Drupal\partial_date\Plugin\Validation\Constraint;

use Drupal\partial_date\DateTools;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

/**
 * Validates a valid day constraint.
 */
class ValidDayConstraintValidator extends ConstraintValidator {

  /**
   * {@inheritdoc}
   */
  public function validate($value, Constraint $constraint) {
    /** @var \Drupal\Core\Field\FieldItemInterface $value */
    if ($value->isEmpty()) {
      return;
    }

    $property = $constraint->property;
    $date = $value->$property;

    $day   = empty($date['day'])   ? 0 : $date['day'];
    $month = empty($date['month']) ? 0 : $date['month'];
    $year  = empty($date['year'])  ? 0 : $date['year'];

    $maxDay = 31;
    $months = DateTools::monthMatrix($year);
    if ($month > 0 && !isset($months[$month - 1])) {
      $maxDay = $months[$month - 1];
    }
    if ($day < 0 || $day > $maxDay) {
      $this->context->addViolation('The specified day is invalid.');
    }
  }

}

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

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