There are two main menus in Horde. The topbar contains links to all different horde applications, configuration and administration options available to the user.
If the application has a search facility, the topbar will also provide a search field.
The sidebar on the left contains module-specific entries.
You can regroup applications into submenus by adding heading and menu_parent entries to the registry.local.php file.
For example, let's group nag and whups into a "chores" menu.
$this->applications['chores'] = array('name' => 'chores', 'status' => 'heading' ); $this->applications['nag']['menu_parent'] = 'chores'; $this->applications['whups']['menu_parent'] = 'chores';
The chores-menu will only be displayed if either nag or whups are available and active. You can also add an 'url' parameter to a 'heading' to make it clickable. Unfortunately, headings which have no apps below them will not be shown.
Horde 5.1 adds 'link' items which allow proper external URLs
<?php /* Example registry.local.php file*/ $this->applications['mywebsite'] = array('name' => 'Website', 'status' => 'link', 'url' => 'http://www.ralf-lang.de', 'menu_parent' => 'others', 'target' => '_new');
Prior to Horde 5.1 you can use a workaround: Register your links as apps.
// Custom Menus 'intranet' => array( 'name' => _("Intranet Links"), 'status' => 'heading', ), 'xyz' => array( 'webroot' => 'http://applications.horde.org/', 'name' => _("Application 1"), 'status' => 'active', 'target' => '_blank', 'menu_parent' => 'intranet', 'fileroot' => '/tmp', 'icon' => '' ),
There are two main menus in Horde. Each module has its own application menu on the top. And then there is what is called the "Sidebar", the menu on the left in a separate browser frame, which is always the same and contains links to the different Horde applications.
The application menus are aggregated from several places. You can configure menus in three places:
To add new items to the sidebar menu, you need to edit config/registry.php. Make sure to read the comments at the top of registry.php carefully. The only required configuration values for a menu entry are 'name' and 'status', but 'webroot' and 'fileroot' are useful entries.
Let's say you want to add a link to your intranet:
// Custom Menus $this->applications['intranet'] = array( 'name' => _('Intranet Links'), 'status' => 'heading', 'icon' => '', ); $this->applications['intranet_link_1'] = array( 'webroot' => 'https://www.example.com', 'name' => _("Example Link"), 'status' => 'active', 'target' => '_parent', 'menu_parent' => 'intranet', 'fileroot' => '/tmp', 'icon' => '', );
Following works in Horde 4.
// Custom Menus 'intranet' => array( 'name' => _("Intranet Links"), 'status' => 'heading', ), 'xyz' => array( 'webroot' => 'http://applications.horde.org/', 'name' => _("Application 1"), 'status' => 'notoolbar', 'target' => '_blank', 'menu_parent' => 'intranet', 'fileroot' => '/tmp', 'icon' => '' ),