Elgg  Version master
form.php
Go to the documentation of this file.
1 <?php
18  'method' => 'post',
19  'disable_security' => false,
20 ];
21 
22 $vars = array_merge($defaults, $vars);
23 
24 $ignore_empty_body = (bool) elgg_extract('ignore_empty_body', $vars, true);
25 unset($vars['ignore_empty_body']);
26 
28 unset($vars['body']);
29 
30 if (!$ignore_empty_body && empty($form_body)) {
31  return;
32 }
33 
34 $vars['class'] = elgg_extract_class($vars, 'elgg-form');
35 if (elgg_extract('prevent_double_submit', $vars, true)) {
36  elgg_import_esm('input/form-double-submit');
37  $vars['class'][] = 'elgg-form-prevent-double-submit';
38 }
39 
40 $vars['action'] = elgg_normalize_url((string) $vars['action']);
41 $vars['method'] = strtolower((string) $vars['method']);
42 
43 // Generate a security header
44 $body = '';
45 if (!$vars['disable_security']) {
46  $body .= elgg_view('input/securitytoken');
47 }
48 
49 // add automatic sticky form support
50 if ((bool) elgg_extract('sticky_enabled', $vars, false)) {
52  '#type' => 'hidden',
53  'name' => '__elgg_sticky_form_name',
54  'value' => (string) elgg_extract('sticky_form_name', $vars),
55  ]);
56 
57  $ignored_fields = (array) elgg_extract('sticky_ignored_fields', $vars);
58  if (!empty($ignored_fields)) {
60  '#type' => 'hidden',
61  'name' => '__elgg_sticky_ignored_fields',
62  'value' => implode(',', $ignored_fields),
63  ]);
64  }
65 }
66 
67 $body .= $form_body;
68 
69 unset($vars['disable_security']);
70 unset($vars['action_name']);
71 
72 echo elgg_format_element('form', $vars, $body);
elgg_extract_class(array $array, array|string $existing=[], string $extract_key='class')
Extract class names from an array, optionally merging into a preexisting set.
Definition: elgglib.php:273
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
Definition: elgglib.php:246
elgg_import_esm(string $name)
Helper functions for external files like css/js.
$vars
Definition: form.php:22
$ignore_empty_body
Definition: form.php:24
$defaults
Create a form for data submission.
Definition: form.php:17
$body
Definition: form.php:44
$form_body
Definition: form.php:27
elgg_view_field(array $params=[])
Renders a form field, usually with a wrapper element, a label, help text, etc.
Definition: views.php:1116
elgg_view(string $view, array $vars=[], string $viewtype='')
Return a parsed view.
Definition: views.php:156
elgg_normalize_url(string $url)
Definition: output.php:163
elgg_format_element(string $tag_name, array $attributes=[], string $text='', array $options=[])
Format an HTML element.
Definition: output.php:145