/** * Page setup function for Menu Builder * * @return void */ function menu_builder_pagesetup() { if (menu_builder_is_managed_menu('site')) { // take control of menu setup elgg_unregister_plugin_hook_handler('prepare', 'menu:site', '_elgg_site_menu_setup'); } $managed_menus = menu_builder_get_managed_menus(); foreach ($managed_menus as $menu_name) { elgg_register_plugin_hook_handler('register', "menu:{$menu_name}", '\\ColdTrick\\MenuBuilder\\MenuHooks::registerAllMenu', 999); elgg_register_plugin_hook_handler('prepare', "menu:{$menu_name}", '\\ColdTrick\\MenuBuilder\\MenuHooks::prepareAllMenu', 999); if (!elgg_in_context('admin')) { // extend view for cache output elgg_extend_view("navigation/menu/{$menu_name}", 'menu_builder/menu_cache', 400); elgg_register_plugin_hook_handler('view', "navigation/menu/{$menu_name}", '\\ColdTrick\\MenuBuilder\\MenuHooks::afterViewMenu', 9999); } } }
<?php elgg_require_js('menu_builder/manage_menu_items'); $menus = menu_builder_get_managed_menus(); $selected = get_input('menu_name'); if (!empty($selected) && !menu_builder_is_managed_menu($selected)) { $selected = null; } $tabs = []; if (!empty($menus)) { $menu_list = ''; foreach ($menus as $menu) { if (empty($selected)) { $selected = $menu; } $class = 'hidden'; if ($menu === $selected) { $class = ''; } $menu_list .= elgg_view('menu_builder/admin/edit_menu', ['menu' => $menu, 'class' => $class, 'rel' => $menu]); $tabs[] = ['text' => elgg_echo('menu:' . elgg_get_friendly_title($menu) . ':header:default'), 'selected' => $menu === $selected, 'rel' => $menu, 'href' => 'javascript:void(0)']; } } else { $menu_list = elgg_echo('notfound'); } $tabs[] = ['text' => ' <strong>+</strong> ' . elgg_echo('menu_builder:admin:menu:add'), 'id' => 'menu-builder-add-menu', 'href' => 'javascript:void(0)']; $menu_list = elgg_view('navigation/tabs', ['tabs' => $tabs, 'class' => 'menu-builder-admin-tabs']) . $menu_list; echo elgg_view_module('inline', elgg_echo('menu_builder:admin:menu:list'), $menu_list);
<?php /** * Site navigation menu */ if (menu_builder_is_managed_menu('site')) { if (!elgg_in_context('admin')) { elgg_load_css('menu_builder_site'); } if (empty($vars['menu']['default'])) { return; } echo elgg_view('navigation/menu/default', $vars); return; } // revert to default behaviour /** * Site navigation menu * * @uses $vars['menu']['default'] * @uses $vars['menu']['more'] */ $default_items = elgg_extract('default', $vars['menu'], array()); $more_items = elgg_extract('more', $vars['menu'], array()); echo '<ul class="elgg-menu elgg-menu-site elgg-menu-site-default clearfix">'; foreach ($default_items as $menu_item) { echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); } if ($more_items) { echo '<li class="elgg-more">'; $more = elgg_echo('more');