ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
form.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
24
39function form()
40{
41 global $DIC;
42 $factory = $DIC->ui()->factory();
43 $renderer = $DIC->ui()->renderer();
44
45 $df = new \ILIAS\Data\Factory();
46 $refinery = $DIC['refinery'];
47
48 $here_uri = $df->uri($DIC->http()->request()->getUri()->__toString());
49 $url_builder = new URLBuilder($here_uri);
50
51 //when expecting a state, we do not want to render other examples
52 $example_namespace = ['prompt', 'endpoints'];
53 list($url_builder, $endpointtoken) = $url_builder->acquireParameters($example_namespace, "endpoint");
54 $url_builder = $url_builder->withParameter($endpointtoken, "true");
55
56 //build the prompt
57 $query_namespace = ['prompt', 'example2'];
58 list($url_builder, $action_token) = $url_builder->acquireParameters($query_namespace, "action");
59 $url_builder = $url_builder->withParameter($action_token, "form");
60 $prompt = $factory->prompt()->standard($url_builder->buildURI());
61
62 //fill the state according to (query-)parameters
63 $query = $DIC->http()->wrapper()->query();
64 if ($query->has($action_token->getName())
65 && $query->has($action_token->getName())
66 && $query->retrieve($action_token->getName(), $refinery->kindlyTo()->string()) === 'form'
67 ) {
68
69 //setup a form.
70 $uri = $url_builder->buildURI()->__toString();
71 $form = $factory->input()->container()->form()->standard(
72 $uri,
73 [
74 $factory->input()->field()->text(
75 "Text Input",
76 "write 'close' to close the prompt."
77 )->withRequired(true)
78 ]
79 );
80
81 //set the response
82 $response = $factory->prompt()->state()->show($form);
83
84 $request = $DIC->http()->request();
85 if ($request->getMethod() === 'POST') {
86 $form = $form->withRequest($request);
87 $data = $form->getData();
88 if ($data !== null && reset($data) === 'close') {
93 $response = $factory->prompt()->state()->close();
94 } else {
95 $response = $factory->prompt()->state()->show($form);
96 }
97 }
98 $response = $response->withTitle('prompt form example');
99 echo($renderer->renderAsync($response));
100 exit();
101 }
102
103 if (!$query->has($endpointtoken->getName())) {
104 $show_button = $factory->button()->standard('Show Prompt with Form', $prompt->getShowSignal());
105 return $renderer->render([$prompt, $show_button]);
106 }
107}
$renderer
exit
global $DIC
Definition: shib_login.php:26
$response
Definition: xapitoken.php:93