Elgg  Version master
tags.php
Go to the documentation of this file.
1 <?php
13 $vars['class'] = elgg_extract_class($vars, 'elgg-input-tags');
14 
16  'value' => '',
17  'disabled' => false,
18  'autocapitalize' => 'off',
19  'type' => 'text',
20 ];
21 
22 if (isset($vars['entity'])) {
23  $defaults['value'] = elgg_extract('entity', $vars)->tags;
24  unset($vars['entity']);
25 }
26 
27 $vars = array_merge($defaults, $vars);
28 
29 // set tagify options
30 if (!isset($vars['data-tagify-opts']) && isset($vars['tagify_options'])) {
31  $vars['data-tagify-opts'] = json_encode($vars['tagify_options']);
32 }
33 
34 unset($vars['tagify_options']);
35 
36 if (is_array($vars['value'])) {
37  $tags = [];
38 
39  foreach ($vars['value'] as $tag) {
40  if (is_string($tag)) {
41  $tags[] = $tag;
42  } else {
43  $tags[] = $tag->value;
44  }
45  }
46 
47  $vars['value'] = implode(', ', $tags);
48 }
49 
50 echo elgg_format_element('input', $vars);
51 
52 if (isset($vars['id'])) {
53  $selector = "#{$vars['id']}";
54 } else {
55  $name = elgg_extract('name', $vars);
56  $selector = ".elgg-input-tags[name='{$name}']";
57 }
58 
59 ?>
60 <script>
61  require(['input/tags'], function (tags) {
62  tags.init(<?= json_encode($selector) ?>);
63  });
64 </script>
if(!$user||!$user->canDelete()) $name
Definition: delete.php:22
$defaults
Definition: tags.php:15
elgg_extract_class(array $array, $existing=[], $extract_key= 'class')
Extract class names from an array, optionally merging into a preexisting set.
Definition: elgglib.php:276
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:254
$selector
Definition: tags.php:56
$tag
Definition: title.php:21
$vars['class']
Elgg tag input Displays a tag input field.
Definition: tags.php:13
elgg_format_element(string $tag_name, array $attributes=[], string $text= '', array $options=[])
Format an HTML element.
Definition: output.php:145
$tags
Output object tags.
Definition: tags.php:9