Elgg  Version 4.3
item.php
Go to the documentation of this file.
1 <?php
9 $item = elgg_extract('item', $vars);
10 if (!$item instanceof ElggMenuItem) {
11  return;
12 }
13 
16 
17 $children = $item->getChildren();
18 if (!empty($children)) {
19  $link_class = 'elgg-menu-closed';
20  if ($item->getSelected()) {
21  $link_class = 'elgg-menu-opened';
22  }
23  $item->addLinkClass($link_class);
24 
25  $item->addLinkClass('elgg-menu-parent');
26 
27  $child_menu_vars = $item->getChildMenuOptions();
28  $child_menu_vars['items'] = $children;
29  $child_menu_vars['class'] = elgg_extract_class($child_menu_vars, ['elgg-menu', 'elgg-child-menu']);
30 
31  $display = elgg_extract('display', $child_menu_vars, 'default');
32  unset($child_menu_vars['display']);
33 
34  switch ($display) {
35  case 'dropdown' :
36  $item->addDeps(['elgg/menus/dropdown']);
37  $item->addItemClass('elgg-menu-item-has-dropdown');
38  break;
39 
40  case 'toggle' :
41  $item->addDeps(['elgg/menus/toggle']);
42  $item->addItemClass('elgg-menu-item-has-toggle');
43  break;
44  }
45 
46  $child_menu_view = elgg_view('navigation/menu/elements/section', $child_menu_vars);
47 } elseif ($item->getData('show_with_empty_children') === false) {
48  return;
49 }
50 
51 $deps = $item->getDeps();
52 if (elgg_extract('data-toggle', $item->getValues())) {
53  $deps[] = 'navigation/menu/elements/item_toggle';
54 }
55 
56 foreach ($deps as $module) {
57  elgg_require_js($module);
58 }
59 
60 $item_vars['data-menu-item'] = $item->getName();
61 
62 $item_vars['class'] = elgg_extract_class($vars, $item->getItemClass(), 'item_class');
63 if ($item->getSelected()) {
64  $item_vars['class'][] = 'elgg-state-selected';
65 }
66 
67 $item_view = elgg_view($item->getItemContentsView() ?: 'navigation/menu/elements/item/url', [
68  'item' => $item,
69 ]);
70 
72 
if(!$item instanceof ElggMenuItem) $item_vars
Definition: item.php:14
$module
Elgg login box.
Definition: login_box.php:8
if(!empty($children)) elseif($item->getData('show_with_empty_children')===false) $deps
Definition: item.php:51
$children
Definition: item.php:17
elgg_extract_class(array $array, $existing=[], $extract_key= 'class')
Extract class names from an array, optionally merging into a preexisting set.
Definition: elgglib.php:569
$item
A single element of a menu.
Definition: item.php:9
elgg_format_element($tag_name, array $attributes=[], $text= '', array $options=[])
Format an HTML element.
Definition: output.php:135
elgg_require_js($name)
Request that Elgg load an AMD module onto the page.
elgg_extract($key, $array, $default=null, $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
Definition: elgglib.php:547
if($item instanceof\ElggEntity) elseif($item instanceof\ElggRiverItem) elseif($item instanceof ElggRelationship) elseif(is_callable([$item, 'getType']))
Definition: item.php:48
$child_menu_view
Definition: item.php:15
elgg echo
Translates a string.
Definition: deprecated.js:530
$vars['head']
Definition: html.php:24
elgg_view($view, $vars=[], $viewtype= '')
Return a parsed view.
Definition: views.php:179
if($item->getSelected()) $item_view
Definition: item.php:67