select patch

main
Robert 2 months ago
parent 0b723efc60
commit 8e1cdc6551
  1. 22
      src/bootstrap/safer_io.php
  2. 8
      src/classes/enums/form_input_types.php
  3. 22
      src/classes/form_builder/html_form.php
  4. 1
      src/classes/form_builder/html_helper.php

@ -43,10 +43,11 @@ final class use_io {
public $input_var;
public string $field_description;
public FORM_INPUT_TYPES $form_type;
public array $form_data_list = [];
public bool $show_label = true;
public string $div_class = "";
public string $label_class = "";
public string $form_control_class = "";
public ?string $div_class = null;
public ?string $label_class = null;
public ?string $form_control_class = null;
public INPUTS $input_type;
public FIELD_FILTER $field_filter;
public HTML_FLAG $escape_html;
@ -109,6 +110,7 @@ final class safer_io {
$show_labels =[];
$form_type = [];
$required = [];
$form_data_list = [];
$classes = [];
foreach(self::esv($input['html']) as $html) {
$key = $html['name'] ?? "";
@ -116,9 +118,10 @@ final class safer_io {
$headers[$key] = $html['meta']['field_desc'][$key] ?? "";
$show_labels[$key] = $html['meta']['show_label'][$key] ?? true;
$form_type[$key] = $html['meta']['form_type'][$key] ?? FORM_TYPE::text->value;
$classes['label'][$key] = $html['meta']['label_class'] ?? "";
$classes['div'][$key] = $html['meta']['div_class'] ?? "";
$classes['ctrl'][$key] = $html['meta']['form_control_class'] ?? "";
$form_data_list[$key] = $html['meta']['form_data_list'][$key] ?? [];
$classes['label'][$key] = $html['meta']['label_class'][$key] ?? null;
$classes['div'][$key] = $html['meta']['div_class'][$key] ?? null;
$classes['ctrl'][$key] = $html['meta']['form_control_class'][$key] ?? null;
$required[$key] = $html['meta']['required'][$key] ?? false;
if (\CodeHydrater\common::get_count($html['errors'])) {
$errors[$key] = $html['errors'][$key];
@ -134,7 +137,8 @@ final class safer_io {
'errors'=>$errors,
'headers'=>$headers,
'show_labels'=>$show_labels,
'form_type'=>$form_type,
'form_type'=>$form_type,
'form_data_list'=>$form_data_list,
'required'=>$required
];
}
@ -525,6 +529,10 @@ final class safer_io {
$meta['field_desc'][$input_field_name] = $a->field_description;
}
if (isset($a->form_data_list)) {
$meta['form_data_list'][$input_field_name] = $a->form_data_list;
}
if (isset($a->show_label)) {
$meta['show_label'][$input_field_name] = $a->show_label;
}

@ -10,7 +10,13 @@ declare(strict_types = 1);
namespace CodeHydrater\enums;
enum form_input_types: string {
case none = "none"; // Don't Display control
case none = "none"; // Don't Display control
case textarea = "use_textarea";
case button = "use_button";
case select = "use_select";
case select_multi = "use_select_multi";
// Normal Inputs
case checkbox ="checkbox";
case color = "color";
case date = "date";

@ -49,6 +49,11 @@ class html_form {
$name = array_shift($arguments);
$options = array_shift($arguments) ?? [];
if (str_contains($type, "use_")) {
$use_type = str_replace("use_", "", $type);
return $this->$use_type($name, $options);
}
$options['type'] = $type;
return $this->input($name, $options);
@ -66,16 +71,21 @@ class html_form {
$r_a = ($is_required) ? ['required' => ""] : [];
$my_classes = $a['classes'] ?? [];
$my_div_class = $classes['div'][$name] ?? null;
$my_label_class = $classes['label'][$name] ?? null;
$my_ctrl_class = $classes['ctrl'][$name] ?? null;
$my_div_class = $my_classes['div'][$name] ?? null;
$my_label_class = $my_classes['label'][$name] ?? null;
$my_ctrl_class = $my_classes['ctrl'][$name] ?? null;
$form_control_class = $my_ctrl_class ?? $a['form-control-class'] ?? "form-control";
$fc = ['class'=> $form_control_class];
$div_class = $my_div_class ?? $a['div-class'] ?? "mb-3";
$label_class = $my_label_class ?? $a['label-class'] ?? "";
$data_lists = $a['form_data_list'][$name] ?? [];
if (count($data_lists)) {
$r_a['options'] = $data_lists;
}
$this->open_div(['class' => $div_class]);
$label = $a['headers'][$name] ?? null;
$show_label = $a['show_labels'][$name] ?? true;
@ -194,7 +204,7 @@ class html_form {
public function select_multi(string|null $name = null, array $options = []): string
{
$options[] = 'multiple';
return $this->append_out($this->select($name, $options));
return $this->select($name, $options);
}
public function textarea(string|null $name = null, array $options = []): string
@ -239,7 +249,7 @@ class html_form {
$html .= '<option'.$this->html->attributes($option).'>'.$this->html->escape($label).'</option>';
}
}
return $html;
}

@ -45,6 +45,7 @@ class html_helper {
'accept-charset',
'charset',
'style',
'selected',
];
protected string $charset = 'UTF-8';

Loading…
Cancel
Save