Exemple #1
0
 /**
  * 
  * 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;
 }
Exemple #2
0
 public function isValid($data)
 {
     $this->time->setRequired($data['timepoint'] != 'now');
     $this->date->setRequired($data['timepoint'] != 'now');
     return parent::isValid($data);
 }
Exemple #3
0
 public function __construct($options = null, $backendApplicationId = 0)
 {
     parent::__construct($options, $backendApplicationId);
     $this->setDecorators(array(array('ViewScript', array('viewScript' => '_form/smsstandardsend.phtml'))));
 }