ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
base.php
Go to the documentation of this file.
1<?php
7function base()
8{
9 //Step 0: Declare dependencies
10 global $DIC;
11 $ui = $DIC->ui()->factory();
12 $lng = $DIC->language();
13 $renderer = $DIC->ui()->renderer();
14 $request = $DIC->http()->request();
15 $data = new \ILIAS\Data\Factory();
16 $validation = new \ILIAS\Validation\Factory($data, $lng);
17 $trafo = new \ILIAS\Transformation\Factory();
18
19 //Step 1: Implement transformation and constraints
20 $sum = $trafo->custom(function ($vs) {
21 list($l, $r) = $vs;
22 $s = $l + $r;
23 return $s;
24 });
25 $equal_ten = $validation->custom(function ($v) {
26 return $v == 10;
27 }, "The sum must equal ten.");
28
29 //Step 2: Define inputs
30 $number_input = $ui->input()->field()->numeric("number", "Put in a number.");
31
32 //Step 3: Define the group, add the inputs to the group and attach the
33 //transformation and constraint
34 $group = $ui->input()->field()->group(
35 [ $number_input->withLabel("Left"), $number_input->withLabel("Right")]
36 )
37 ->withAdditionalTransformation($sum)
38 ->withAdditionalConstraint($equal_ten);
39
40 //Step 4: define form and form actions, attach the group to the form
41 $DIC->ctrl()->setParameterByClass(
42 'ilsystemstyledocumentationgui',
43 'example_name',
44 'numeric_inputs'
45 );
46 $form_action = $DIC->ctrl()->getFormActionByClass('ilsystemstyledocumentationgui');
47 $form = $ui->input()->container()->form()->standard($form_action, ["custom_group" => $group]);
48
49 //Step 4: Implement some form data processing.
50 if ($request->getMethod() == "POST"
51 && $request->getQueryParams()['example_name'] == 'numeric_inputs') {
52 //Step 4.1: Device some context dependant logic to display the potential
53 // constraint error on the group.
54 $form = $form->withRequest($request);
55 $group = $form->getInputs()["custom_group"];
56 if ($group->getError()) {
57 $result = $group->getError();
58 } else {
59 //The result is sumarized through the transformation
60 $result = $form->getData();
61 }
62 } else {
63 $result = "No result yet.";
64 }
65
66 //Step 5: Return the rendered form
67 return
68 "<pre>" . print_r($result, true) . "</pre><br/>" .
69 $renderer->render($form);
70}
base()
Definition: base.php:2
$result
global $l
Definition: afr.php:30
foreach($paths as $path) $request
Definition: asyncclient.php:32
An exception for terminatinating execution or to throw for unit testing.
$r
Definition: example_031.php:79
$s
Definition: pwgen.php:45
if(isset($_POST['submit'])) $form
global $DIC
Definition: saml.php:7
$lng
$data
Definition: bench.php:6