sss
This commit is contained in:
parent
fb37605942
commit
fd39285e41
@ -8,6 +8,7 @@ use itguild\forms\ActiveForm;
|
|||||||
use itguild\forms\inputs\TextArea;
|
use itguild\forms\inputs\TextArea;
|
||||||
use itguild\forms\inputs\TextInput;
|
use itguild\forms\inputs\TextInput;
|
||||||
use itguild\forms\inputs\Select;
|
use itguild\forms\inputs\Select;
|
||||||
|
use Itguild\PhpCgSelect\CGSelect;
|
||||||
|
|
||||||
$form = new ActiveForm()
|
$form = new ActiveForm()
|
||||||
?>
|
?>
|
||||||
@ -23,6 +24,7 @@ $form = new ActiveForm()
|
|||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||||
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous" />
|
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous" />
|
||||||
<link href="https://cdn.jsdelivr.net/npm/vanillajs-datepicker/dist/css/datepicker.min.css" rel="stylesheet">
|
<link href="https://cdn.jsdelivr.net/npm/vanillajs-datepicker/dist/css/datepicker.min.css" rel="stylesheet">
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.bd-placeholder-img {
|
.bd-placeholder-img {
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
@ -164,8 +166,8 @@ $form = new ActiveForm()
|
|||||||
$form->field(class: Select::class, name: 'select2', params: ['value' => 2, 'class' => "form-control"])
|
$form->field(class: Select::class, name: 'select2', params: ['value' => 2, 'class' => "form-control"])
|
||||||
->setOptions(['1' => 'bbb1', 2 => 'vvv3', 3 => 'ggg3', 4 => 'fgfgfgfg4'])
|
->setOptions(['1' => 'bbb1', 2 => 'vvv3', 3 => 'ggg3', 4 => 'fgfgfgfg4'])
|
||||||
->render();
|
->render();
|
||||||
$form->field(\itguild\forms\inputs\Radio::class, name: "radio1", params: ["id" => "1"])->setLabel("sds?") ->render();
|
$form->field(\itguild\forms\inputs\RadioButton::class, name: "radio1", params: ["id" => "1"])->setLabel("sds?") ->render();
|
||||||
$form->field(\itguild\forms\inputs\Radio::class, name: "radio1", params: ["id" => "3"])->render();
|
$form->field(\itguild\forms\inputs\RadioButton::class, name: "radio1", params: ["id" => "3"])->render();
|
||||||
$form->field(\itguild\forms\inputs\Checkbox::class, name: "checkbox1", params: ["value" => "1"])->render();
|
$form->field(\itguild\forms\inputs\Checkbox::class, name: "checkbox1", params: ["value" => "1"])->render();
|
||||||
$form->field(\itguild\forms\inputs\Checkbox::class, name: "checkbox2", params: ["value" => "1"])->render();
|
$form->field(\itguild\forms\inputs\Checkbox::class, name: "checkbox2", params: ["value" => "1"])->render();
|
||||||
$form->field(\itguild\forms\inputs\Button::class, name: "checkbox2", params: ["value" => "Submit"])->render();
|
$form->field(\itguild\forms\inputs\Button::class, name: "checkbox2", params: ["value" => "Submit"])->render();
|
||||||
|
32
example_json.php
Normal file
32
example_json.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
ini_set("display_errors", 1);
|
||||||
|
error_reporting(-1);
|
||||||
|
require_once "vendor/autoload.php";
|
||||||
|
?>
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<link rel="stylesheet" href="vendor/twbs/bootstrap/dist/css/bootstrap.css">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||||
|
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous" />
|
||||||
|
<title>Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<?php
|
||||||
|
$form = new \itguild\forms\JsonForm(file_get_contents("form.json"));
|
||||||
|
$form->convertHTML();
|
||||||
|
$form->render();
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
38
form.json
38
form.json
@ -1,18 +1,30 @@
|
|||||||
{
|
{
|
||||||
"textInpt": {
|
"meta": {
|
||||||
|
"action": "some",
|
||||||
|
"id": "id_form"
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"type": "textInput",
|
||||||
"name": "email",
|
"name": "email",
|
||||||
"placeholder": "Email",
|
"placeholder": "Email",
|
||||||
"id": "EmailId"
|
"label": {
|
||||||
|
"title": "Email", "for": "emailId", "class": "form-label"
|
||||||
},
|
},
|
||||||
"email": "dsadas@dsadsa",
|
"class": "form-control"
|
||||||
"name": "1",
|
},
|
||||||
"lastname": "edas",
|
{
|
||||||
"button": "3",
|
"type": "textInput",
|
||||||
"radio1": "on",
|
"name": "phone",
|
||||||
"textarea": "dsadasads",
|
"placeholder": "Телефон",
|
||||||
"select": "class3",
|
"class": "form-control",
|
||||||
"one": "ads",
|
"style": "color:RED;"
|
||||||
"two": "dsa",
|
},
|
||||||
"radio2": "on",
|
{
|
||||||
"select2": "1"
|
"type": "textArea",
|
||||||
|
"name": "description",
|
||||||
|
"class": "form-control",
|
||||||
|
"placeholder": "Описание"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use itguild\forms\Form;
|
use itguild\forms\Form;
|
||||||
use \itguild\forms\inputs\TextInput;
|
use \itguild\forms\inputs\TextInput;
|
||||||
use \itguild\forms\inputs\Radio;
|
use \itguild\forms\inputs\RadioButton;
|
||||||
use \itguild\forms\inputs\Select;
|
use \itguild\forms\inputs\Select;
|
||||||
use \itguild\forms\ActiveForm;
|
use \itguild\forms\ActiveForm;
|
||||||
|
|
||||||
@ -37,13 +37,13 @@ $activeForm->field(class: TextInput::class, name: 'one', params: ["style" => "co
|
|||||||
$activeForm->field(class: TextInput::class, name: 'two', params: [])
|
$activeForm->field(class: TextInput::class, name: 'two', params: [])
|
||||||
->render();
|
->render();
|
||||||
|
|
||||||
$activeForm->field(class: Radio::class, name: 'radio2',params: ["style" => "color:RED;display:flex"])
|
$activeForm->field(class: RadioButton::class, name: 'radio2',params: ["style" => "color:RED;display:flex"])
|
||||||
->setOptions(['1' => 'bbb1', '2' => 'vvv3', 3 => 'ggg3', 4 => 'fgfgfgfg4'])
|
->setOptions(['1' => 'bbb1', '2' => 'vvv3', 3 => 'ggg3', 4 => 'fgfgfgfg4'])
|
||||||
->setTemplate("<div class='form-group'>{label}{input}</div>")
|
->setTemplate("<div class='form-group'>{label}{input}</div>")
|
||||||
->setLabel("bbb222bbb")
|
->setLabel("bbb222bbb")
|
||||||
->render();
|
->render();
|
||||||
|
|
||||||
$activeForm->field(class: Radio::class, name: 'radio2',params: ["style" => "color:RED;display:flex"])
|
$activeForm->field(class: RadioButton::class, name: 'radio2',params: ["style" => "color:RED;display:flex"])
|
||||||
->setLabel("bbbbbb")
|
->setLabel("bbbbbb")
|
||||||
->render();
|
->render();
|
||||||
|
|
||||||
|
@ -4,14 +4,18 @@ namespace itguild\forms;
|
|||||||
|
|
||||||
use itguild\forms\builders\ButtonBuilder;
|
use itguild\forms\builders\ButtonBuilder;
|
||||||
use itguild\forms\builders\CheckBoxBuilder;
|
use itguild\forms\builders\CheckBoxBuilder;
|
||||||
|
use itguild\forms\builders\RadioButtonBuilder;
|
||||||
use itguild\forms\builders\SelectBuilder;
|
use itguild\forms\builders\SelectBuilder;
|
||||||
use itguild\forms\builders\TextAreaBuilder;
|
use itguild\forms\builders\TextAreaBuilder;
|
||||||
|
use itguild\forms\builders\TextInputBuilder;
|
||||||
use itguild\forms\debug\Debug;
|
use itguild\forms\debug\Debug;
|
||||||
use itguild\forms\inputs\BaseInput;
|
use itguild\forms\inputs\BaseInput;
|
||||||
use itguild\forms\inputs\Button;
|
use itguild\forms\inputs\Button;
|
||||||
use itguild\forms\inputs\Checkbox;
|
use itguild\forms\inputs\Checkbox;
|
||||||
|
use itguild\forms\inputs\RadioButton;
|
||||||
use itguild\forms\inputs\Select;
|
use itguild\forms\inputs\Select;
|
||||||
use itguild\forms\inputs\TextArea;
|
use itguild\forms\inputs\TextArea;
|
||||||
|
use itguild\forms\inputs\TextInput;
|
||||||
use itguild\forms\templates\Template;
|
use itguild\forms\templates\Template;
|
||||||
|
|
||||||
class ActiveForm
|
class ActiveForm
|
||||||
@ -42,6 +46,9 @@ class ActiveForm
|
|||||||
if ($class === Select::class){
|
if ($class === Select::class){
|
||||||
$this->fieldObject = SelectBuilder::build($name, $params);
|
$this->fieldObject = SelectBuilder::build($name, $params);
|
||||||
}
|
}
|
||||||
|
elseif ($class === TextInput::class){
|
||||||
|
$this->fieldObject = TextInputBuilder::build($name, $params);
|
||||||
|
}
|
||||||
elseif ($class === TextArea::class){
|
elseif ($class === TextArea::class){
|
||||||
$this->fieldObject = TextAreaBuilder::build($name, $params);
|
$this->fieldObject = TextAreaBuilder::build($name, $params);
|
||||||
}
|
}
|
||||||
@ -51,6 +58,9 @@ class ActiveForm
|
|||||||
elseif ($class === Button::class) {
|
elseif ($class === Button::class) {
|
||||||
$this->fieldObject = ButtonBuilder::build($name, $params);
|
$this->fieldObject = ButtonBuilder::build($name, $params);
|
||||||
}
|
}
|
||||||
|
elseif ($class === RadioButton::class){
|
||||||
|
$this->fieldObject = RadioButtonBuilder::build($name, $params);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$this->fieldObject = new $class($name, $params);
|
$this->fieldObject = new $class($name, $params);
|
||||||
}
|
}
|
||||||
@ -85,4 +95,10 @@ class ActiveForm
|
|||||||
$this->fieldObject->render();
|
$this->fieldObject->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function fetch()
|
||||||
|
{
|
||||||
|
$this->fieldObject->create();
|
||||||
|
return $this->fieldObject->fetch();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ use itguild\forms\inputs\Checkbox;
|
|||||||
use itguild\forms\inputs\Select;
|
use itguild\forms\inputs\Select;
|
||||||
use itguild\forms\inputs\TextInput;
|
use itguild\forms\inputs\TextInput;
|
||||||
use itguild\forms\inputs\Label;
|
use itguild\forms\inputs\Label;
|
||||||
use itguild\forms\inputs\Radio;
|
use itguild\forms\inputs\RadioButton;
|
||||||
use itguild\forms\inputs\TextArea;
|
use itguild\forms\inputs\TextArea;
|
||||||
use itguild\forms\inputs\Button;
|
use itguild\forms\inputs\Button;
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ class Form {
|
|||||||
*/
|
*/
|
||||||
public function radio(string $name, array $paramsArray = []): void
|
public function radio(string $name, array $paramsArray = []): void
|
||||||
{
|
{
|
||||||
Radio::build($name, $paramsArray);
|
RadioButton::build($name, $paramsArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
69
src/JsonForm.php
Normal file
69
src/JsonForm.php
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms;
|
||||||
|
|
||||||
|
use itguild\forms\builders\Builder;
|
||||||
|
use itguild\forms\builders\LabelBuilder;
|
||||||
|
use itguild\forms\debug\Debug;
|
||||||
|
use itguild\forms\mappers\JsonInputMapper;
|
||||||
|
use itguild\forms\inputs\BaseInput;
|
||||||
|
use itguild\forms\ActiveForm;
|
||||||
|
|
||||||
|
class JsonForm
|
||||||
|
{
|
||||||
|
private $jsonData;
|
||||||
|
|
||||||
|
private $html = '';
|
||||||
|
|
||||||
|
public function __construct($json)
|
||||||
|
{
|
||||||
|
$this->jsonData = json_decode($json, true);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function convertHTML(): void
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach ($this->jsonData['data'] as $item) {
|
||||||
|
|
||||||
|
if (isset($item["type"]) and isset($item["name"])) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var $builder Builder
|
||||||
|
*/
|
||||||
|
$builder = JsonInputMapper::getBuilder($item["type"]);
|
||||||
|
unset($item["type"]);
|
||||||
|
$name = $item["name"];
|
||||||
|
unset($item["name"]);
|
||||||
|
$label = '';
|
||||||
|
if (isset($item['label'])) {
|
||||||
|
$label = $this->createLabel($item['label']);
|
||||||
|
}
|
||||||
|
unset($item['label']);
|
||||||
|
$input = $builder::build($name, $item);
|
||||||
|
$input->setLabel($label)->create();
|
||||||
|
$this->html .= $input->fetch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//return $this->fetch($html);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createLabel($labelParams)
|
||||||
|
{
|
||||||
|
$title = '';
|
||||||
|
if(isset($labelParams['title'])){
|
||||||
|
$title = $labelParams['title'];
|
||||||
|
unset($labelParams['title']);
|
||||||
|
}
|
||||||
|
return LabelBuilder::build($title, $labelParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render(): void
|
||||||
|
{
|
||||||
|
echo $this->html;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
12
src/builders/Builder.php
Normal file
12
src/builders/Builder.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms\builders;
|
||||||
|
|
||||||
|
use itguild\forms\inputs\BaseInput;
|
||||||
|
|
||||||
|
interface Builder
|
||||||
|
{
|
||||||
|
|
||||||
|
public static function build(string $name, array $params = []): BaseInput;
|
||||||
|
|
||||||
|
}
|
14
src/builders/LabelBuilder.php
Normal file
14
src/builders/LabelBuilder.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms\builders;
|
||||||
|
|
||||||
|
use itguild\forms\inputs\Label;
|
||||||
|
use itguild\forms\inputs\RadioButton;
|
||||||
|
|
||||||
|
class LabelBuilder
|
||||||
|
{
|
||||||
|
public static function build(string $title, array $params = [])
|
||||||
|
{
|
||||||
|
return new Label(title: $title, paramsArray: $params);
|
||||||
|
}
|
||||||
|
}
|
14
src/builders/RadioButtonBuilder.php
Normal file
14
src/builders/RadioButtonBuilder.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms\builders;
|
||||||
|
|
||||||
|
use itguild\forms\inputs\RadioButton;
|
||||||
|
|
||||||
|
class RadioButtonBuilder
|
||||||
|
{
|
||||||
|
public static function build(string $name, array $params = [])
|
||||||
|
{
|
||||||
|
|
||||||
|
return new RadioButton(name: $name, paramsArray: $params);
|
||||||
|
}
|
||||||
|
}
|
@ -2,18 +2,16 @@
|
|||||||
|
|
||||||
namespace itguild\forms\builders;
|
namespace itguild\forms\builders;
|
||||||
|
|
||||||
use itguild\forms\inputs\Select;
|
|
||||||
use itguild\forms\inputs\TextArea;
|
use itguild\forms\inputs\TextArea;
|
||||||
|
|
||||||
class TextAreaBuilder
|
class TextAreaBuilder
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function build(string $name, array $params = [])
|
public static function build(string $name, array $params = [])
|
||||||
{
|
{
|
||||||
$value = $params['value'] ?? null;
|
$value = $params['value'] ?? "";
|
||||||
unset($params['value']);
|
unset($params['value']);
|
||||||
|
|
||||||
return new TextArea(name: $name, value: $value, paramsArray: $params);
|
return new TextArea(name: $name, value: $value, paramsArray: $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
15
src/builders/TextInputBuilder.php
Normal file
15
src/builders/TextInputBuilder.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms\builders;
|
||||||
|
|
||||||
|
|
||||||
|
use itguild\forms\inputs\BaseInput;
|
||||||
|
use itguild\forms\inputs\TextInput;
|
||||||
|
|
||||||
|
class TextInputBuilder implements Builder
|
||||||
|
{
|
||||||
|
public static function build(string $name, array $params = []): BaseInput
|
||||||
|
{
|
||||||
|
return new TextInput(name: $name, paramsArray: $params);
|
||||||
|
}
|
||||||
|
}
|
@ -8,8 +8,8 @@ abstract class BaseInput
|
|||||||
{
|
{
|
||||||
protected Template $inputTemplate;
|
protected Template $inputTemplate;
|
||||||
protected bool $hasLabel = false;
|
protected bool $hasLabel = false;
|
||||||
protected string $html;
|
protected string $html = '';
|
||||||
protected string $labelTitle = "";
|
protected string|Label $label = "";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return void
|
* @return void
|
||||||
@ -19,16 +19,21 @@ abstract class BaseInput
|
|||||||
echo $this->html;
|
echo $this->html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function fetch(): string
|
||||||
|
{
|
||||||
|
return $this->html;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract function create();
|
public abstract function create();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $title
|
* @param string|Label $title
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setLabel(string $title): self
|
public function setLabel(string|Label $title): self
|
||||||
{
|
{
|
||||||
$this->hasLabel = true;
|
$this->hasLabel = true;
|
||||||
$this->labelTitle = $title;
|
$this->label= $title;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Button extends BaseInput
|
|||||||
{
|
{
|
||||||
$paramsString = $this->createParams($this->paramsArray);
|
$paramsString = $this->createParams($this->paramsArray);
|
||||||
$label = "";
|
$label = "";
|
||||||
$button = "<button name='$this->name' $paramsString>$this->value</button>";
|
$button = "<input type='button' name='$this->name' $paramsString>$this->value";
|
||||||
if($this->hasLabel == true) {
|
if($this->hasLabel == true) {
|
||||||
$label = "<label>$this->labelTitle</label>";
|
$label = "<label>$this->labelTitle</label>";
|
||||||
}
|
}
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace itguild\forms\inputs;
|
|
||||||
use itguild\forms\inputs\BaseInput;
|
|
||||||
class CgSelectInput extends BaseInput
|
|
||||||
{
|
|
||||||
|
|
||||||
private string $selector;
|
|
||||||
private array $params;
|
|
||||||
private $params;
|
|
||||||
public function __construct(string $selector, array $params = [])
|
|
||||||
{
|
|
||||||
$this->selector = $selector;
|
|
||||||
$this->params = $params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
$paramsString = $this->createParams($this->paramsArray);
|
|
||||||
$optionsString = $this->createOption($this->options, $this->value);
|
|
||||||
$label = "";
|
|
||||||
$select = "<select name='$this->name' $paramsString>$optionsString</select>";
|
|
||||||
if($this->hasLabel == true) {
|
|
||||||
$label = "<label>$this->labelTitle</label>";
|
|
||||||
}
|
|
||||||
$this->html = str_replace('{input}', $select, $this->inputTemplate->getInputTemplate());
|
|
||||||
$this->html = str_replace('{label}', $label, $this->html);
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function build(string $name, array $options = [], $value = null, array $paramsArray = []): void
|
|
||||||
{
|
|
||||||
$select = new self($name, $options, $value, $paramsArray);
|
|
||||||
$select->create()->render();
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,7 +5,7 @@ use itguild\forms\templates\Simple\SimpleTemplate;
|
|||||||
use itguild\forms\traits\CreateOption;
|
use itguild\forms\traits\CreateOption;
|
||||||
use itguild\forms\traits\CreateParams;
|
use itguild\forms\traits\CreateParams;
|
||||||
use itguild\forms\inputs\BaseInput;
|
use itguild\forms\inputs\BaseInput;
|
||||||
class Radio extends BaseInput
|
class RadioButton extends BaseInput
|
||||||
{
|
{
|
||||||
use CreateParams;
|
use CreateParams;
|
||||||
use CreateOption;
|
use CreateOption;
|
@ -39,8 +39,13 @@ class TextInput extends BaseInput
|
|||||||
$label = "";
|
$label = "";
|
||||||
$input = "<input name='$this->name' $paramsString >";
|
$input = "<input name='$this->name' $paramsString >";
|
||||||
if($this->hasLabel == true) {
|
if($this->hasLabel == true) {
|
||||||
|
if(is_string($this->label)){
|
||||||
$label = "<label>$this->labelTitle</label>";
|
$label = "<label>$this->labelTitle</label>";
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$label = $this->create()->fetch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->html = str_replace('{input}', $input, $this->inputTemplate->getInputTemplate());
|
$this->html = str_replace('{input}', $input, $this->inputTemplate->getInputTemplate());
|
||||||
$this->html = str_replace('{label}', $label, $this->html);
|
$this->html = str_replace('{label}', $label, $this->html);
|
||||||
|
35
src/mappers/JsonInputMapper.php
Normal file
35
src/mappers/JsonInputMapper.php
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace itguild\forms\mappers;
|
||||||
|
|
||||||
|
use itguild\forms\builders\Builder;
|
||||||
|
use itguild\forms\builders\ButtonBuilder;
|
||||||
|
use itguild\forms\builders\LabelBuilder;
|
||||||
|
use itguild\forms\builders\RadioButtonBuilder;
|
||||||
|
use itguild\forms\builders\SelectBuilder;
|
||||||
|
use itguild\forms\builders\TextAreaBuilder;
|
||||||
|
use itguild\forms\builders\TextInputBuilder;
|
||||||
|
use itguild\forms\inputs\TextInput;
|
||||||
|
|
||||||
|
class JsonInputMapper
|
||||||
|
{
|
||||||
|
private static function getBuilders(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"textInput" => TextInputBuilder::class,
|
||||||
|
"textArea" => TextAreaBuilder::class,
|
||||||
|
"radio" => RadioButtonBuilder::class,
|
||||||
|
"select" => SelectBuilder::class,
|
||||||
|
"button" => ButtonBuilder::class
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getBuilder(string $type): string
|
||||||
|
{
|
||||||
|
if(isset(self::getBuilders()[$type])){
|
||||||
|
return self::getBuilders()[$type];
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user