Topics

Custom Exponent Menu

It may be desirable to create a custom menu within the Exponent system menu to allow quick access to commands in your module (or any action within Exponent CMS).

  • The .php file will exist within the theme subfolder, 'modules/administration/menus' folder. 
  • The filename will determine where in the system menu, the custom menu will appear (alphabetical sort).
    • The existing system menus begin with the letters 'a' thru 'f'
    • The 'Pages' system menu filename begins with the letter 'y' to place it next to last, though the last left justified menu
    • The user account system menu filename begins with the letter 'z' to place it as the last menu and right justified.
  • The file is auto-loaded with the rest of the system menu arrays and creates an additional mult-dimentional array of the menu and submenu items.
  • The array for the main menu items consists of:
    • 'text' to display in the menu
    • 'classname' is a classname for for a traditional system icon for non-bootstrap icons
    • 'icon' is a bs3/fa4 classname for the item
    • 'icon5' is a bs4/fa5 bs5/fa6 classname for the item
    • 'iconbs' is the bs5/boostrapicon classname for the item
    • 'id' is an optional id to allow for javascript or css identification
    • NOTE: you may not need to include all the classname, icon, icon5, and iconbs entries since only the framework for your theme will be used.
  • The sub-arry for menu items adds an item in addition to the above
    • 'url' the url of the menu item
<?php

if (!defined('EXPONENT')) exit('');

global $user;  // needed to access user record

if (!($user->isAdmin())) {  // for this particular menu, only admin accounts allowed to view/access
    return false;
}

/////////////////////////////////////////////////////////////////////////
// BUILD THE MENU
/////////////////////////////////////////////////////////////////////////

$items = array(
    array(
        'text'      => gt('Manage Help Versions'),
        'icon'      => 'fa-list-ol',
        'classname' => 'manage',
        'url'       => makeLink(
            array(
                'controller' => 'help',
                'action' => 'manage_versions'
            )
        ),
        'id'        => 'versions-manage',
    ),
    array(
        'text'      => gt('Manage Help Docs'),
        'icon'      => 'fa-file',
        'classname' => 'manage',
        'url'       => makeLink(
            array(
                'controller' => 'help',
                'action' => 'manage',
                'version' => 'current'
            )
        ),
        'id'        => 'manage_help',
    ),
);

return array(
    'text'      => gt('Help Docs'),
    'icon' => 'fa-info-circle',
    'classname' => 'helpdocs',
    'submenu'   => array(
        'id'       => 'helpdocs',
        'itemdata' => $items,
    )
);

?>

 

Loading Help