ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
numeric_inputs.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 
46 function numeric_inputs()
47 {
48  //Step 0: Declare dependencies
49  global $DIC;
50  $ui = $DIC->ui()->factory();
51  $renderer = $DIC->ui()->renderer();
52  $request = $DIC->http()->request();
53  $refinery = $DIC->refinery();
54  $df = new \ILIAS\Data\Factory();
55  $query = $DIC->http()->wrapper()->query();
56  $here_uri = $df->uri($request->getUri()->__toString());
57  $url_builder = new URLBuilder($here_uri);
58  $example_namespace = ['input', 'numeric'];
59  list($url_builder, $example_name) = $url_builder->acquireParameters($example_namespace, "example_name");
60  $url_builder = $url_builder->withParameter($example_name, "numeric");
61 
62  //Step 1: Declare the numeric input
63  $number_input = $ui->input()->field()
64  ->numeric("Some Number", "Put in a number.")
65  ->withValue(133);
66 
67  $number_input2 = $number_input->withRequired(true)->withValue('');
68 
69  //Step 2, define form and form actions
70  $form_action = $url_builder->buildURI()->__toString();
71  $form = $ui->input()->container()->form()->standard($form_action, [
72  'n1' => $number_input,
73  'n2' => $number_input2
74  ]);
75 
76  //Step 3, implement some form data processing.
77  if ($query->has($example_name->getName())
78  && $query->retrieve($example_name->getName(), $refinery->custom()->transformation(fn($v) => $v === 'numeric'))
79  ) {
80  $form = $form->withRequest($request);
81  $result = $form->getData();
82  } else {
83  $result = "No result yet.";
84  }
85 
86  //Return the rendered form
87  return
88  "<pre>" . print_r($result, true) . "</pre><br/>" .
89  $renderer->render($form);
90 }
$renderer
global $DIC
Definition: shib_login.php:26
numeric_inputs()
description: > Base example showing how to plug a numeric input into a form.
URLBuilder.
Definition: URLBuilder.php:40