This commit is contained in:
origami11 2017-05-04 15:52:26 +03:00
commit f14d35df6e
2 changed files with 34 additions and 6 deletions

View file

@ -1,5 +1,5 @@
<?php
///<reference path="database/pdostatement.php" />
///<reference path="Database/PDOStatement.php" />
require_once "Database/PDOStatement.php";
/**
* Класс оболочка для PDO для замены Creole

View file

@ -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