/** * * @global array $submenu * @param string $tmpl * @param mvb_Model_Manager $parent * @return string */ public static function render($tmpl, $parent) { global $submenu; $sorted_menu = $parent->getRoleMenu(); $item_tmpl = mvb_Model_Template::retrieveSub('MAIN_MENU_ITEM', $tmpl); $sublist_tmpl = mvb_Model_Template::retrieveSub('MAIN_MENU_SUBLIST', $item_tmpl); $subitem_tmpl = mvb_Model_Template::retrieveSub('MAIN_MENU_SUBITEM', $sublist_tmpl); $list = ''; foreach ($sorted_menu as $menu) { if (self::isSeperator($menu)) { continue; } //render submenu $sub_list = ''; if (isset($submenu[$menu[2]]) && is_array($submenu[$menu[2]])) { foreach ($submenu[$menu[2]] as $sub_menu) { $markers = array('###submenu_name###' => utf8_encode(mvb_Model_Helper::removeHTML($sub_menu[0])), '###value###' => $sub_menu[2], '###checked###' => $parent->getConfig()->hasSubMenu($menu[2], $sub_menu[2]) ? 'checked' : ''); $sub_list .= mvb_Model_Template::updateMarkers($markers, $subitem_tmpl); } $sub_list = mvb_Model_Template::replaceSub('MAIN_MENU_SUBITEM', $sub_list, $sublist_tmpl); } $temp = mvb_Model_Template::replaceSub('MAIN_MENU_SUBLIST', $sub_list, $item_tmpl); $whole = $parent->getConfig()->getMenu($menu[2]); $markers = array('###name###' => utf8_encode(mvb_Model_Helper::removeHTML($menu[0])), '###id###' => $menu[5], '###menu###' => $menu[2], '###whole_checked###' => isset($whole['whole']) ? 'checked' : ''); $list .= mvb_Model_Template::updateMarkers($markers, $temp); } return mvb_Model_Template::replaceSub('MAIN_MENU_ITEM', $list, $tmpl); }