/** * * Konfiguruje wewnętrzene dekoratory. * * @return type Logic_Form_DynamicForm_Abstract */ protected function setupInternalDecorators() { if (count($this->_dynamics) != 0) { if ($this->getDecorator('TemplateReorganize') === false) { $this->addDecorator(array('TemplateReorganize' => 'callback'), array('callback' => function ($content, $element, array $options) { $html = new DOMDocument(); @$html->loadHTML('<?xml encoding="UTF-8">' . $content); $divs = $html->getElementsByTagName('div'); $internals = array(); foreach ($divs as $div) { if ($div->hasAttribute('class')) { if (array_search(Logic_Form_DynamicForm_DynamicGroup::TEMPLATE_DIV_WRAPPER_CSS_CLASS, explode(' ', $div->getAttribute('class'))) !== false) { $internals[] = $div; } } } $inputs = $html->getElementsByTagName('input'); foreach ($inputs as $input) { if ($input->hasAttribute('type') && $input->getAttribute('type') == 'hidden') { if ($input->hasAttribute('id') && $input->getAttribute('id')) { if (substr($input->getAttribute('id'), -strlen(Logic_Form_DynamicForm_DynamicGroup::COUNT_FIELD_NAME_SUFFIX)) === Logic_Form_DynamicForm_DynamicGroup::COUNT_FIELD_NAME_SUFFIX) { $internals[] = $input; } else { if (substr($input->getAttribute('id'), -strlen(Logic_Form_DynamicForm_DynamicGroup::DELETED_IDENTITIES_FIELD_NAME_SUFFIX)) === Logic_Form_DynamicForm_DynamicGroup::DELETED_IDENTITIES_FIELD_NAME_SUFFIX) { $internals[] = $input; } } } } } $form = $html->getElementsByTagName('form')->item(0); foreach ($internals as $internal) { $internal = $internal->parentNode->removeChild($internal); $form->appendChild($internal); } $content = $html->saveHTML(); $start = stripos($content, '<body>') + 6; $len = stripos($content, '</body>') - $start; return substr($content, $start, $len); }, 'placement' => false)); } else { // przenieś dekorator na koniec łańcucha $decorator = $this->getDecorator('TemplateReorganize'); parent::removeDecorator('TemplateReorganize'); $this->addDecorators(array('TemplateReorganize' => $decorator)); $this->getDecorator('TemplateReorganize')->placement = null; } } return $this; }
public function isValid($data) { $this->time->setRequired($data['timepoint'] != 'now'); $this->date->setRequired($data['timepoint'] != 'now'); return parent::isValid($data); }
public function __construct($options = null, $backendApplicationId = 0) { parent::__construct($options, $backendApplicationId); $this->setDecorators(array(array('ViewScript', array('viewScript' => '_form/smsstandardsend.phtml')))); }