fix Классы для полей формы вынесены в отдельные файлы

This commit is contained in:
origami11@yandex.ru 2022-12-08 18:40:00 +03:00
parent aaba3d7585
commit 7fd7c4fd12
8 changed files with 74 additions and 49 deletions

View file

@ -234,7 +234,7 @@ class Action
* Ajax определяется автоматически mode = ajax используется для смены layout
* @param $name
* @param array $param
* @return array|null
* @return Url|null
*
* @example ?action=$name&mode=ajax
* {$param[i].key = $param[i].value}

14
src/Form/CheckBox.php Normal file
View file

@ -0,0 +1,14 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Field;
class Checkbox extends Field
{
public $checked = false;
function setValue($value)
{
$this->value = $value;
$this->checked = $value;
}
}

7
src/Form/DateTime.php Normal file
View file

@ -0,0 +1,7 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Input;
class DateTime extends Input {
}

View file

@ -12,44 +12,6 @@ use ctiso\Form\Field,
ctiso\Validator\Validator,
ctiso\HttpRequest;
class TCheckbox extends Field
{
public $checked = false;
function setValue($value)
{
$this->value = $value;
$this->checked = $value;
}
}
class TQuestionType extends Select
{
function setValue($value)
{
// Установить selected у options
$this->value = $value;
foreach ($this->options as &$option) {
$option['selected'] = ($option['value'] == $value);
}
}
}
class TDateTime extends Input {
}
/**
* Поле для ввода пароля
*/
class TSecret extends Field {
}
class TUpload extends Field {
}
class THidden extends Input {
public $hidden = true;
}
/**
* Форма для ввода
*/
@ -75,29 +37,30 @@ class Form extends View {
{
$this->constructor = array(
'input' => 'ctiso\\Form\\Input',
'inputreq' => 'ctiso\\Form\\Input', // input с проверкой на заполненность
// input с проверкой на заполненность
'inputreq' => 'ctiso\\Form\\Input',
'date' => 'ctiso\\Form\\Date',
'datereq' => 'ctiso\\Form\\Date',
'datetime' => 'TDateTime',
'datetime' => 'ctiso\\Form\\DateTime',
'color' => 'ctiso\\Form\\Color',
'textarea' => 'ctiso\\Form\\TextArea',
'text' => 'ctiso\\Form\\TextArea',
'multiselect' => 'ctiso\\Form\\SelectMany',
// 'selectmany' => 'TSelectMany',
'select1' => 'ctiso\\Form\\SelectOne',
'select' => 'ctiso\\Form\\SelectOne',
'questiontype'=> 'TQuestionType',
'secret' => 'TSecret',
'upload' => 'TUpload',
'image' => 'TUpload',
'checkbox' => 'TCheckbox',
'questiontype'=> 'ctiso\\Form\\QuestionType',
'secret' => 'ctiso\\Form\\Secret',
'upload' => 'ctiso\\Form\\Upload',
'image' => 'ctiso\\Form\\Upload',
'checkbox' => 'ctiso\\Form\\CheckBox',
'checkmany' => 'ctiso\\Form\\SelectMany',
'hidden' => 'THidden',
'hidden' => 'ctiso\\Form\\Hidden',
'radio' => 'ctiso\\Form\\SelectOne',
'filebrowser' => 'ctiso\\Form\\BrowserInput',
'documents' => 'ctiso\\Form\\BrowserInput',
'documents' => 'ctiso\\Form\\BrowserInput',
'chooser' => 'ctiso\\Form\\Input',
'select_chooser' => 'ctiso\\Form\\SelectOne'
);

8
src/Form/Hidden.php Normal file
View file

@ -0,0 +1,8 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Input;
class Hidden extends Input {
public $hidden = true;
}

16
src/Form/QuestionType.php Normal file
View file

@ -0,0 +1,16 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Select;
class QuestionType extends Select
{
function setValue($value)
{
// Установить selected у options
$this->value = $value;
foreach ($this->options as &$option) {
$option['selected'] = ($option['value'] == $value);
}
}
}

10
src/Form/Secret.php Normal file
View file

@ -0,0 +1,10 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Field;
/**
* Поле для ввода пароля
*/
class Secret extends Field {
}

7
src/Form/Upload.php Normal file
View file

@ -0,0 +1,7 @@
<?php
namespace ctiso\Form;
use ctiso\Form\Field;
class TUpload extends Field {
}