fields = $flds; $this->button_name = $button_name; $this->css_td_class = $css_td_class; $this->css_td_style = $css_td_style; $this->css_fld_class = $css_fld_class; $this->css_fld_style = $css_fld_style; // Проверяем, является ли элементы массива $flds // производными класса field foreach($flds as $key => $obj) { if(!is_subclass_of($obj, "field")) { throw new ExceptionObject($key, "\"$key\" не является элементом управления"); } } } // Вывод HTML-формы в окно браузера public function print_form() { $enctype = ""; if(!empty($this->fields)) { foreach($this->fields as $obj) { // Назначаем всем элементам управления единый стиль if(!empty($this->css_fld_class)) { $obj->css_class = $this->css_fld_class; } if(!empty($this->css_fld_class)) { $obj->css_style = $this->css_fld_style; } // Проверяем нет ли среди элементов управления // поля file, если имеется, включаем строку // enctype='multipart/form-data' if($obj->type == "file") { $enctype = "enctype='multipart/form-data'"; } } } // Если элементы оформления не пусты - учитываем их if(!empty($this->css_td_style)) { $style = "style=\"".$this->css_td_style."\""; } else $style = ""; if(!empty($this->css_td_class)) { $class = "class=\"".$this->css_td_class."\""; } else $class = ""; // Выводим HTML-форму echo "
"; } // Перегрузка специального метода __toString() public function __toString() { $this->print_form(); } // Метод, проверяющий корректность ввода данных в форму public function check() { // Последовательно вызываем метод check для каждого // объекта field, принадлежащих классу $arr = array(); if(!empty($this->fields)) { foreach($this->fields as $obj) { $str = $obj->check(); if(!empty($str)) $arr[] = $str; } } return $arr; } } ?>