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 "
"; echo ""; if(!empty($this->fields)) { foreach($this->fields as $obj) { // Получаем название поля, и его HTML-представление list($caption, $tag, $help, $alternative) = $obj->get_html(); if(is_array($tag)) $tag = implode("
",$tag); switch($obj->type) { case "hidden": // Скрытое поле echo $tag; break; case "paragraph": case "title": echo "\n"; break; /* case "city": echo "\n"; echo "\n"; break;*/ default: // Элементы управления по умолчанию echo "\n"; if(!empty($help)) { echo ""; } break; } } } // Выводим кнопку подтверждения echo "\n"; echo "
$tag
$caption: $tag
Если города
нет в списке:
$alternative $help
$caption: $tag
  $help
button_name, ENT_QUOTES)."\">
"; 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; } } ?>