<?php /* ---------------------------------------------------------------------- AlternC - Web Hosting System Copyright (C) 2000-2012 by the AlternC Development Team. https://alternc.org/ ---------------------------------------------------------------------- LICENSE This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. To read the license please visit http://www.gnu.org/copyleft/gpl.html ---------------------------------------------------------------------- Purpose of file: Manage hook system. ---------------------------------------------------------------------- */ /** * This class manage menu. * * @copyright AlternC-Team 2002-2005 http://alternc.org/ */ class m_menu { /*---------------------------------------------------------------------------*/ /** Constructor * menu([$mid]) Constructeur de la classe menu, ne fait rien pour le moment */ function m_menu() { } function getmenu() { global $hooks, $quota, $mem; // Force rebuilding quota, in case of add or edit of the quota and cache not up-to-date $mesq = $quota->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; } //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; /* <div class="menu-box"> <a href="javascript:menu_toggle('menu-lang');"> <div class="menu-title"> <img src="/images/lang.png" alt="<?php __("Languages"); ?>" /> <?php __("Languages"); ?> <img src="/images/menu_moins.png" alt="" style="float:right;" id="menu-lang-img"/> </div> </a> <div class="menu-content" id="menu-lang"> <ul> <?php foreach($locales as $l) { ?> <li><a href="/login.php?setlang=<?php echo $l; ?>" target="_top"><?php if (isset($lang_translation[$l])) echo $lang_translation[$l]; else echo $l; ?></a></li> <?php } ?> </ul> </div> </div> */ } //system_menu } /* Class menu */