ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
form.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 
39 function 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 }
form()
description: > This shows a Form being used in a Prompt.
Definition: form.php:39
$renderer
$response
Definition: xapitoken.php:93
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
global $DIC
Definition: shib_login.php:22
URLBuilder.
Definition: URLBuilder.php:40
exit
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...