/** * Helper method. Retrieves invalid elements from fieldset the $element belongs to. * * @param ElementInterface $element * @param FieldsetInterface $fieldset * @return array|\Traversable */ protected function getInvalidFieldsetElements(ElementInterface $element, FieldsetInterface $fieldset) { $elementName = $this->normalizeElementName($element->getName()); $elements = $fieldset->getElements(); if (isset($elements[$elementName]) && $elements[$elementName] === $element) { if ($fieldset->getMessages()) { return $elements; } /* @var $fieldsetElement ElementInterface */ foreach ($elements as $fieldsetElement) { if ($fieldsetElement->getMessages() && ($fieldsetElement->getAttribute('type') === 'hidden' || $fieldsetElement instanceof Element\Captcha)) { return $elements; } } } foreach ($fieldset->getFieldsets() as $fieldsetElement) { if ($elements = $this->getInvalidFieldsetElements($element, $fieldsetElement)) { return $elements; } } return []; }
/** * @inheritdoc */ public function getMessages() { return $this->element->getMessages(); }