Exemple #1
0
/**
 * Checks if a menu is a managed menu
 *
 * @param string $menu_name name of the menu item to check
 *
 * @return bool
 */
function menu_builder_is_managed_menu($menu_name)
{
    if (empty($menu_name)) {
        return false;
    }
    $menus = menu_builder_get_managed_menus();
    return in_array($menu_name, $menus);
}
Exemple #2
0
 /**
  * Adds the menu name to the list of manageable menus
  *
  * @return void
  */
 public function save()
 {
     $menus = menu_builder_get_managed_menus();
     if (!is_array($menus)) {
         $menus = [];
     }
     if (in_array($this->name, $menus)) {
         // already exists
         return;
     }
     $menus[] = $this->name;
     elgg_set_plugin_setting('menu_names', json_encode($menus), 'menu_builder');
     elgg_reset_system_cache();
 }
Exemple #3
0
/**
 * 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);