function menus_mainmenu_show() { $block = array(); $xoops = Xoops::getInstance(); $helper = Xoops::getModuleHelper('menus'); $module_handler = $xoops->getHandlerModule(); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $criteria->add(new Criteria('weight', 0, '>')); $modules = $module_handler->getObjectsArray($criteria, true); $moduleperm_handler = $xoops->getHandlerGroupPermission(); $groups = $xoops->getUserGroups(); $read_allowed = $moduleperm_handler->getItemIds('module_read', $groups); $menus = array(); $menu = $helper->getHandlerMenu()->create(); $menu->setVar('id', 1); $menu->setVar('pid', 0); $menu->setVar('alt_title', _MB_MENUS_HOME); $menu->setVar('title', _MB_MENUS_HOME); $menu->setVar('link', \XoopsBaseConfig::get('url')); $menu->setVar('image', 'icon-home'); $menus[] = $menu->getValues(); foreach (array_keys($modules) as $i) { if (in_array($i, $read_allowed)) { /* @var $plugin MenusPluginInterface */ $menu = $helper->getHandlerMenu()->create(); $menu->setVar('id', $i); $menu->setVar('pid', 0); $menu->setVar('title', $modules[$i]->getVar('name')); $menu->setVar('alt_title', $modules[$i]->getVar('name')); $menu->setVar('link', \XoopsBaseConfig::get('url') . '/modules/' . $modules[$i]->getVar('dirname')); $menu->setVar('image', 'icon-tags'); $menus[] = $menu->getValues(); if ($xoops->isModule() && $xoops->module->getVar('dirname') == $modules[$i]->getVar('dirname') && ($plugin = \Xoops\Module\Plugin::getPlugin($modules[$i]->getVar('dirname'), 'menus'))) { $sublinks = $plugin->subMenus(); $j = -1; foreach ($sublinks as $sublink) { $menu = $helper->getHandlerMenu()->create(); $menu->setVar('id', $j); $menu->setVar('pid', $i); $menu->setVar('title', $sublink['name']); $menu->setVar('alt_title', $sublink['name']); $menu->setVar('link', \XoopsBaseConfig::get('url') . '/modules/' . $modules[$i]->getVar('dirname') . '/' . $sublink['url']); $menus[] = $menu->getValues(); $j--; } } } } $builder = new MenusBuilder($menus); $block = $builder->render(); $skin_info = $helper->getSkinInfo('mainmenu', false); $blockTpl = new XoopsTpl(); $blockTpl->assign('block', $block); $blockTpl->assign('config', $skin_info['config']); $blockTpl->assign('skinurl', $skin_info['url']); $blockTpl->assign('skinpath', $skin_info['path']); $block['content'] = $blockTpl->fetch($skin_info['template']); return $block; }
$obj->setVar('visible', $visible); $this_handler->insert($obj); $xoops->redirect('admin_menu.php?op=list&menu_id=' . $obj->getVar('mid'), 2, _AM_MENUS_SAVE); break; case 'list': default: $admin_page->addItemButton(_AM_MENUS_ADD_MENUS, 'admin_menu.php?op=add&menu_id=' . $menu_id, 'add'); $admin_page->renderButton(); $this_handler = $helper->getHandlerMenu(); $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); $count = $this_handler->getCount($criteria); $xoops->tpl()->assign('count', $count); $xoops->tpl()->assign('select', true); $criteria->setSort('weight'); $criteria->setOrder('ASC'); if ($count > 0) { $array = array(); $menus = $this_handler->getObjects($criteria); /* @var $menu MenusMenu */ foreach ($menus as $menu) { $array[] = $menu->getValues(); } $builder = new MenusBuilder($array); $menusArray = $builder->render(); $xoops->tpl()->assign('menus', $menusArray); } else { $xoops->tpl()->assign('error_message', _AM_MENUS_MSG_NOTFOUND); } break; } $xoops->footer();