diff --git a/src/Form/Form.php b/src/Form/Form.php index aa68acc..585f06a 100644 --- a/src/Form/Form.php +++ b/src/Form/Form.php @@ -15,6 +15,7 @@ class TField public $error = false; public $require = false; public $hint = null; + public $fieldset = null; // Блоки (Убрать в отдельный класс!!!) public $_title = array(); public $description = ""; @@ -27,6 +28,9 @@ class TField if (isset($input['validate'])) { $this->require = strpos($input['validate'], 'require') !== false; } + if (isset($input['fieldset'])) { + $this->fieldset = $input['fieldset']; + } // Инициализация свойст обьетка foreach (array('label', 'name', 'type', 'description') as $name) { if (isset($input[$name])) { @@ -213,8 +217,12 @@ class OptionFactory { } else if (isset($input['options.db'])) { list($table, $keyvalue) = explode(":", $input['options.db']); list($key, $value) = explode(",", $keyvalue); - - $field->options = $this->optionsDB($key, $value, $this->db->executeQuery("SELECT * FROM $table")); + try{ + $query_result = $this->db->executeQuery("SELECT * FROM $table"); + }catch(Exception $ex){ + $query_result = []; + } + $field->options = $this->optionsDB($key, $value, $query_result); } elseif (isset($input['options.pair'])) { $field->options = $this->optionsPair($input['options.pair']); } else { @@ -251,7 +259,9 @@ class OptionFactory { * Форма для ввода */ class Form_Form extends View_View { - public $field = array(); + public $field = array(); //Поля формы + public $fieldsets = array(); //Группы полей (fieldset). Некоторые поля могут не принадлежать никаким группам + public $action = ""; public $method = 'post'; public $header; @@ -313,8 +323,6 @@ class Form_Form extends View_View { { assert(isset($init['type'])); assert(isset($init['name'])); - -// print_r($init); $constructor = $this->constructor[$init['type']]; $el = new $constructor($init, $factory); @@ -330,6 +338,26 @@ class Form_Form extends View_View { return $el; } + /** + * Добавление fieldset на форму + */ + + public function addFieldSet(array $fieldset) + { + $this->fieldsets[$fieldset['name']] = $fieldset; + } + + /** + * Добавление массива fieldset на форму + */ + + public function addFieldSetList(array $list) + { + foreach ($list as $fieldset) { + $this->addFieldSet($fieldset); + } + } + /** * Добавляет список полей для формы * @param array $list