Menus
Jump to navigation
Jump to search
There are three types of menus in RT4: the main menu, the page menu, and the page widgets.
Modifying Menus
All of these menus can be altered, culled, and augmented by CustomizingWithCallbacks. The main RT menu can be modified from the "Menu" object in the callback. Here is an example of adding a new root menu item to RT:
local/html/Callbacks/*/Elements/Tabs/Privileged
<%init> # Add a brand new root menu item my $bps = Menu()->child( 'bps', # any unique identifier title => 'Corporate', path => 'http://bestpractical.com' ); #Add a submenu item to this root menu item $bps->child( 'wiki', title => 'Wiki', path => 'http://wiki.bestpractical.com', ); #Retrieve the 'actions' page menu item if (my $actions = PageMenu->child('actions')) { $actions->child( 'newitem', title => loc('New Action'), path => '/new/thing/here', ) } # Remove the 'home' root menu item (don't try this at home!) Menu->delete('home'); # The 'home' menu item key comes from the first argument to ->child where # the Home link is added in Elements/Tabs. The key for retrieving our new # Corporate link as above above would be 'bps'. </%init>
The objects returned by the functions Menu()
and PageMenu()
are RT::Interface::Web::Menu
instances. Documentation for the child
and delete
methods used above, plus more, is available by running perldoc /opt/rt4/lib/RT/Interface/Web/Menu.pm
.