Enable Sub-Menus for plugins

Anything that you think should be in Cacti.

Moderators: Moderators, Developers

Post Reply
User avatar
Cacti Guru User
Posts: 2725
Joined: Thu Jan 31, 2008 6:39 am
Location: Kressbronn, Germany

Enable Sub-Menus for plugins

#1 Post by phalek » Mon Mar 10, 2008 4:15 am


For plugins it would be great to be able to also generate sub-menus like the "Graph Management". Unfortunately, the draw_menu code functions ( /lib/html.php) prevents this by doing the following:

Code: Select all

/* if the current page exists in the sub-items array, draw each sub-item */
if (array_key_exists(basename($_SERVER["PHP_SELF"]), $item_title) == true) {
    $draw_sub_items = true;
    $draw_sub_items = false;
due to the usage of basename, it is not possible to have a menu like this:

Code: Select all

    $temp = array(
        "plugins/nmidPhpip/display.php" => array(
            "plugins/nmidPhpip/display.php" => "NMID phpIP",
            "plugins/nmidPhpip/cidr_add.php" => "CIDR Add",
            "plugins/nmidPhpip/cidr_remove.php" => "CIDR Remove",
            "plugins/nmidPhpip/cidr_desc.php" => "CIDR Description",
            "plugins/nmidPhpip/prefix_add.php" => "Prefix Add",
            "plugins/nmidPhpip/prefix_remove.php" => "Prefix Remove",
            "plugins/nmidPhpip/prefix_desc.php" => "Prefix Description",
            "plugins/nmidPhpip/subnetSummary.php" => "Subnet Summary",

	if (isset($menu["NMID"]))
		$menu["NMID"] = array_merge($temp, $menu["NMID"]);
		$menu["NMID"] = $temp;

can it be changed to something like ( only works with 0.8.7b ):

Code: Select all

$current_url = preg_replace("/(^\/(cacti\/)?)()/","$3",$_SERVER["PHP_SELF"]);

if (array_key_exists($current_url, $item_title) == true) {
		$draw_sub_items = true;
		$draw_sub_items = false;

so plugins can also use sub-menus ? This would make the menu to the left more user-friendly.
nmid_submenu.jpg (13.43 KiB) Viewed 4080 times

Post Reply