getSelected() public method

Get the selected menu item
public getSelected ( ) : ElggMenuItem
return ElggMenuItem
Example #1
0
/**
 * Prepare menu
 * Returns an array of section => items pairs
 *
 * @param ElggMenuItem[] $menu   Menu
 * @param array          $params Menu params
 * @return array
 */
function menus_api_prepare_menu($menu, array $params = [])
{
    $menu_name = elgg_extract('name', $params);
    $sort_by = elgg_extract('sort_by', $params, 'text');
    $builder = new \ElggMenuBuilder($menu);
    $params['menu'] = $builder->getMenu($sort_by);
    $params['selected_item'] = $builder->getSelected();
    return elgg_trigger_plugin_hook('prepare', "menu:{$menu_name}", $params, $params['menu']);
}
Example #2
0
/**
 * Build the select options for the edit form
 *
 * @param int $entity_guid the current entity being edited (optional)
 *
 * @return array the parent select dropdown options
 */
function menu_builder_get_parent_menu_select_options($entity_guid = 0)
{
    $result = false;
    $entity_guid = sanitise_int($entity_guid, false);
    // build the menu structure
    $vars = array();
    $menu = array();
    $menu = elgg_trigger_plugin_hook("register", "menu:site", $vars, $menu);
    $builder = new ElggMenuBuilder($menu);
    $vars["menu"] = $builder->getMenu("text");
    $vars["selected_item"] = $builder->getSelected();
    // Let plugins modify the menu
    $vars["menu"] = elgg_trigger_plugin_hook("prepare", "menu:site", $vars, $vars["menu"]);
    if (!empty($vars["menu"])) {
        $result = array();
        foreach ($vars["menu"] as $section => $menu_items) {
            if (!empty($menu_items) && is_array($menu_items)) {
                $result = menu_builder_get_menu_select_option($menu_items, $entity_guid);
            }
        }
    }
    return $result;
}
Example #3
0
/**
 * Render a menu
 *
 * @see elgg_register_menu_item() for documentation on adding menu items and
 * navigation.php for information on the different menus available.
 *
 * This function triggers a 'register', 'menu:<menu name>' plugin hook that enables
 * plugins to add menu items just before a menu is rendered. This is used by
 * dynamic menus (menus that change based on some input such as the user hover
 * menu). Using elgg_register_menu_item() in response to the hook can cause
 * incorrect links to show up. See the blog plugin's blog_owner_block_menu()
 * for an example of using this plugin hook.
 *
 * An additional hook is the 'prepare', 'menu:<menu name>' which enables plugins
 * to modify the structure of the menu (sort it, remove items, set variables on
 * the menu items).
 *
 * elgg_view_menu() uses views in navigation/menu
 *
 * @param string $menu_name The name of the menu
 * @param array  $vars      An associative array of display options for the menu.
 *                          Options include:
 *                              sort_by => string or php callback
 *                                  string options: 'name', 'priority', 'title' (default),
 *                                  'register' (registration order) or a
 *                                  php callback (a compare function for usort)
 *                              handler: string the page handler to build action URLs
 *                              entity: ElggEntity to use to build action URLs
 *                              class: string the class for the entire menu.
 *                              show_section_headers: bool show headers before menu sections.
 *
 * @return string
 * @since 1.8.0
 */
function elgg_view_menu($menu_name, array $vars = array())
{
    global $CONFIG;
    $vars['name'] = $menu_name;
    $sort_by = elgg_extract('sort_by', $vars, 'text');
    if (isset($CONFIG->menus[$menu_name])) {
        $menu = $CONFIG->menus[$menu_name];
    } else {
        $menu = array();
    }
    // Give plugins a chance to add menu items just before creation.
    // This supports dynamic menus (example: user_hover).
    $menu = elgg_trigger_plugin_hook('register', "menu:{$menu_name}", $vars, $menu);
    $builder = new ElggMenuBuilder($menu);
    $vars['menu'] = $builder->getMenu($sort_by);
    $vars['selected_item'] = $builder->getSelected();
    // Let plugins modify the menu
    $vars['menu'] = elgg_trigger_plugin_hook('prepare', "menu:{$menu_name}", $vars, $vars['menu']);
    if (elgg_view_exists("navigation/menu/{$menu_name}")) {
        return elgg_view("navigation/menu/{$menu_name}", $vars);
    } else {
        return elgg_view("navigation/menu/default", $vars);
    }
}
Example #4
0
			<?php 
//This needs it own function, should not be loaded from here
$menu_name = 'site';
$vars['name'] = $menu_name;
$sort_by = elgg_extract('sort_by', $vars, 'text');
if (isset($CONFIG->menus[$menu_name])) {
    $menu = $CONFIG->menus[$menu_name];
} else {
    $menu = array();
}
// Give plugins a chance to add menu items just before creation.
// This supports dynamic menus (example: user_hover).
$menu = elgg_trigger_plugin_hook('register', "menu:{$menu_name}", $vars, $menu);
$builder = new ElggMenuBuilder($menu);
$vars['menu'] = $builder->getMenu($sort_by);
$vars['selected_item'] = $builder->getSelected();
// Let plugins modify the menu
$vars['menu'] = elgg_trigger_plugin_hook('prepare', "menu:{$menu_name}", $vars, $vars['menu']);
$default_items = elgg_extract('default', $vars['menu'], array());
$more_items = elgg_extract('more', $vars['menu'], array());
$all_items = array_merge($default_items, $more_items);
foreach ($all_items as $menu_item) {
    echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
}
//Loggedin?
$user = elgg_get_logged_in_user_entity();
if ($user) {
    ?>
                    <li><a href="<?php 
    echo elgg_get_site_url();
    ?>