main
Robert 2 months ago
parent fb08e66d55
commit 2fcf6e56c8
  1. 5
      protected/src/inputs/app/home/val_tests_in.php
  2. 2
      protected/src/outputs/app/home/alt_val_tests_out.php
  3. 57
      protected/src/outputs/app/home/val_tests_out.php
  4. 2
      protected/src/views/twig/app/val_tests.html.twig

@ -47,6 +47,11 @@ class val_tests_in {
return [
'method' => $app->request->get_method(),
'html' => $html,
'classes' => [
'div-class' => 'mb-3',
'form-control-class' => 'form-control',
'label-class' => '',
],
];
}
}

@ -22,7 +22,7 @@ class alt_val_tests_out {
$o = ['class'=> 'form-control'];
$f->open_div(['class'=>'mb-3']);
$label = $headers[$i] ?? "Out of Bounds!";
$f->label($label, array_merge($o, ['for'=>$name]));
$f->label($label, ['for'=>$name]);
$f->close_div();
$f->open_div(['class'=>'mb-3']);
if ($name === "age") {

@ -16,34 +16,14 @@ use \CodeHydrater\form_builder\html_form as Form;
use \CodeHydrater\enums\form_input_types as FORM_TYPE;
class val_tests_out {
private static function build_group(array $a, Form & $f): void {
foreach($a['html'] as $name => $v) {
// Fix Values, so they are always a String!
$value = ($v === false || $v === null) ? "" : $v;
$type_of_form_input = $a['form_type'][$name]->value ?? FORM_TYPE::text->value;
if ($type_of_form_input === "none") {
continue; // Skip none controls
}
$is_required = $a['required'][$name] ?? false;
$r_a = ($is_required) ? ['required' => ""] : [];
$fc = ['class'=> 'form-control'];
$f->open_div(['class'=>'mb-3']);
$label = $a['headers'][$name] ?? "Header not set.";
$f->label($label, array_merge($fc, ['for'=>$name]));
$f->$type_of_form_input($name, array_merge($fc, ['id'=>$name, 'value'=>$value], $r_a));
$f->close_div();
}
}
private static function build_form(array $a): ?string {
$form_builder = new Form();
$form_builder->set_escape(false);
$form_builder->open(options: ['autocomplete'=>'off']);
$form_builder->fieldset_open(['style'=>'width: 200px;']);
$form_builder->legend("News Letter");
self::build_group($a, $form_builder);
$form_builder->open_div(['class'=>'mb-3']);
$form_builder->build_group($a);
$form_builder->open_div(['class'=>$a['div-class']]);
$form_builder->submit("go", ['class'=>'btn btn-primary']);
$form_builder->close_div();
$form_builder->fieldset_close();
@ -52,39 +32,22 @@ class val_tests_out {
}
public static function entry(object $app, array $input): array {
$html_output = [];
$errors = [];
$headers = [];
$form_type = [];
$required = [];
foreach(SafeIO::esv($input['html']) as $html) {
$key = $html['name'] ?? "";
$html_output[$key] = $html['html'];
$headers[$key] = $html['meta']['field_desc'][$key] ?? "Unknown";
$form_type[$key] = $html['meta']['form_type'][$key] ?? FORM_TYPE::text->value;
$required[$key] = $html['meta']['required'][$key] ?? false;
if (\CodeHydrater\common::get_count($html['errors'])) {
$errors[$key] = $html['errors'][$key];
}
// dump($html);
}
$a = ['html'=>$html_output, 'headers'=>$headers, 'form_type'=>$form_type, 'required'=>$required];
$a = SafeIO::build_html($input);
$did_submit = ($input['method'] === "POST");
$name = $html_output['name'] ?? "Anonymous";
// $name = $app->request->get_post_data()->get("name") ?? "Annon.";
$data = [
$twig_data = [
'form_builder' => self::build_form($a),
'table_options' => ['helper' => 'single-row','escape' => false],
'safe_html' => $html_output,
'safe_html' => $a['html'],
'did_submit' => $did_submit,
'table_headers' => $headers,
'safe_name' => \CodeHydrater\bootstrap\safer_io::h($name),
'a_errors' => $errors,
'table_headers' => $a['headers'],
// 'safe_name' => \CodeHydrater\bootstrap\safer_io::h($name),
'a_errors' => $a['errors'],
];
unset($html_output, $errors, $headers, $form_type, $required);
$app->view->set('twig_data', $data);
$app->view->set('twig_data', $twig_data);
$app->view->set('twig_functions', [
'show_table' => '\CodeHydrater\html::show_table_from',
'show_errors' => '\CodeHydrater\html::show_errors',

@ -4,7 +4,7 @@
{% if did_submit and a_errors is empty %}
<p>{{ safe_name|raw }}, you Rock!</p>
<p>{{ safe_html.name|raw }}, you Rock!</p>
{{ show_table(table_headers, safe_html, table_options) }}

Loading…
Cancel
Save