getquota("", true); // rebuild quota // Get menu objects $lsto = $hooks->invoke('hook_menu'); // Get system menu $sm = $this->system_menu(); // Merge it ! $lst = array_merge($sm, $lsto); // Sort it uasort($lst, 'm_menu::order_menu'); // Get user specific menu visibility options $mop = $mem->session_tempo_params_get('menu_toggle'); foreach ($lst as $k => $v) { if (empty($v)) { unset($lst[$k]); continue; } // Set the javascript toggle link for menu asking for it if ($v['link'] == 'toggle') { $lst[$k]['link'] = 'javascript:menu_toggle(\'menu-' . $k . '\');'; } // Be sure that the default visibility is true if (!isset($lst[$k]['visibility'])) { $lst[$k]['visibility'] = true; } // Set the user's specific visibility option if (isset($mop["menu-$k"])) { if ($mop["menu-$k"] == "hidden") { $lst[$k]['visibility'] = false; } if ($mop["menu-$k"] == "visible") { $lst[$k]['visibility'] = true; } } if (isset($mesq[$k])) { // if there are some quota for this class // Hide the menu if there are none and not allowed to create if ($mesq[$k]['t'] < 1 && $mesq[$k]['u'] < 1) { unset($lst[$k]); continue; } // Set the quota in the menu object $lst[$k]['quota_used'] = $mesq[$k]['u']; $lst[$k]['quota_total'] = $mesq[$k]['t']; } // end if there are some quota for this class } return $lst; } /** * utilitary function used by usort() to order menus */ function order_menu($a, $b) { return $a['pos'] > $b['pos']; } /** * some menus that don't have an attached class */ function system_menu() { global $help_baseurl, $lang_translation, $locales; $m = array( 'home' => array( 'title' => _("Home / Information"), 'link' => 'main.php', 'pos' => 0, ), 'logout' => array( 'title' => _("Logout"), 'link' => 'mem_logout.php', 'pos' => 170, ), 'help' => array( 'title' => _("Online help"), 'target' => 'help', 'link' => $help_baseurl, 'pos' => 140, ), 'lang' => array( 'title' => _("Languages"), 'visibility' => false, 'link' => 'toggle', 'links' => array(), 'pos' => 150, ) ); foreach ($locales as $l) { $m['lang']['links'][] = array('txt' => (isset($lang_translation[$l])) ? $lang_translation[$l] : $l, 'url' => "/login.php?setlang=$l"); } return $m; } } /* Class m_menu */