diff --git a/.gitattributes b/.gitattributes index ce830896..f0591e74 100644 --- a/.gitattributes +++ b/.gitattributes @@ -360,6 +360,7 @@ bureau/class/m_hta.php -text bureau/class/m_log.php -text bureau/class/m_mail.php -text bureau/class/m_mem.php -text +bureau/class/m_menu.php -text bureau/class/m_mysql.php -text bureau/class/m_piwik.php -text bureau/class/m_quota.php -text diff --git a/bureau/class/m_menu.php b/bureau/class/m_menu.php new file mode 100644 index 00000000..6fa6aad1 --- /dev/null +++ b/bureau/class/m_menu.php @@ -0,0 +1,170 @@ +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 ) { + + // 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; + } //getmenu + + function order_menu($a, $b) { + // Use to order the menu with a usort + return $a['pos'] > $b['pos']; + } + + function system_menu() { + // Here some needed menu who don't have a class + global $help_baseurl, $lang_translation, $locales; + + $m = + array( + 'home' => + array( + 'title' => _("Home / Information"), + 'ico' => 'images/home.png', + 'link' => 'main.php', + 'pos' => 0, + ), + 'logout' => + array( + 'title' => _("Logout"), + 'ico' => 'images/exit.png', + 'link' => 'mem_logout.php', + 'pos' => 170, + ), + 'help' => + array( + 'title' => _("Online help"), + 'ico' => 'images/help.png', + 'target' => 'help', + 'link' => $help_baseurl, + 'pos' => 140, + ), + 'lang' => + array( + 'title' => _("Languages"), + 'ico' => '/images/lang.png', + '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; + + +/* + + + + + + + +*/ + } //system_menu + +} /* Class menu */ +