/** * {@inheritdoc} */ public function setLimitValidationErrors($limit_validation_errors) { $add_subkeys = function(array $path) { return array_merge($this->subKeys, $path); }; $limit_validation_errors = array_map($add_subkeys, $limit_validation_errors); $this->mainFormState->setLimitValidationErrors($limit_validation_errors); return $this; }
/** * Validate callback for alt and title field, if the user wants them required. * * This is separated in a validate function instead of a #required flag to * avoid being validated on the process callback. */ public static function validateRequiredFields($element, FormStateInterface $form_state) { // Only do validation if the function is triggered from other places than // the image process form. if (!in_array('file_managed_file_submit', $form_state->getTriggeringElement()['#submit'])) { // If the image is not there, we do not check for empty values. $parents = $element['#parents']; $field = array_pop($parents); $image_field = NestedArray::getValue($form_state->getUserInput(), $parents); // We check for the array key, so that it can be NULL (like if the user // submits the form without using the "upload" button). if (!array_key_exists($field, $image_field)) { return; } } else { $form_state->setLimitValidationErrors([]); } }
/** * {@inheritdoc} */ public function setLimitValidationErrors($limit_validation_errors) { $this->decoratedFormState->setLimitValidationErrors($limit_validation_errors); return $this; }
/** * @covers ::setLimitValidationErrors * * @dataProvider providerLimitValidationErrors * * @param array[]|null $limit_validation_errors * Any valid value for * \Drupal\Core\Form\FormStateInterface::setLimitValidationErrors()'s * $limit_validation_errors argument; */ public function testSetLimitValidationErrors($limit_validation_errors) { $this->decoratedFormState->setLimitValidationErrors($limit_validation_errors)->shouldBecalled(); $this->assertSame($this->formStateDecoratorBase, $this->formStateDecoratorBase->setLimitValidationErrors($limit_validation_errors)); }