Extra menus event

From LimeSurvey Manual

Description of the event to generate extra menus at top bar (besides configuration, logout, etc).

Two types of menus:

  • Dropdown
  • Link

For dropdown, we have two kinds of menu items:

  • Link
  • Divider

The event itself is called beforeAdminMenuRender.

Plugin will set property extraMenus. Each element in that array must implement interface ExtraMenuInterface.


This example with create a dropdown menu with three empty menu items and one divider:

$event = $this->getEvent();
$event->set('extraMenus', array(
  new ExtraMenu(array(
    'isDropDown' => true,
    'menuItems' => array(
        new ExtraMenuItem(null),
        new ExtraMenuItem(null),
        new ExtraMenuItem(array('isDivider' => true)),
        new ExtraMenuItem(null)

How it would look:



Method Description
isDropDown Returns true if this menu is a dropdown menu
isSmallText Returns true if this item is a small text header (uses label as text)
getLabel Returns the actual name of the menu
getIconClass Return CSS class for icon to display left of link
getHref If it's not a dropdown menu, this is just for the link
getMenuItems Return array of dropdown menu items

Each menu item returned by getMenuItems must implement the interface ExtraMenuItemInterface

Method Description
getHref As above, used for link in dropdown item
getLabel The text for the link
isDivider Return true if the item is a divider