/** * Get form elements as array from specified container element recursively * * @param HtmlElement $container * @return array */ protected function _getFormElements(HtmlElement $container) { $ret = array(); foreach ($container->getNodes() as $elem) { if ($elem instanceof FormElement) { $ret[] = $elem; } else { if ($elem instanceof FormLayoutAbstract) { $ret = array_merge($ret, $elem->getFormElements()); } else { if ($elem instanceof HtmlElement) { $ret = array_merge($ret, $this->_getFormElements($elem)); } } } } return $ret; }
/** * Search and get FormElement instances under specified element * * @param HtmlElement $element * @return array */ protected function _searchFormElement(HtmlElement $element) { $formElems = array(); $elems = $element->getNodes(); foreach ($elems as $elem) { if ($elem instanceof FormElement) { $formElems[] = $elem; } else { if ($elem instanceof HtmlElement) { $result = $this->_searchFormElement($elem); $formElems = array_merge($formElems, $result); } } } return $formElems; }