Example #1
0
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;
}
Example #2
0
        $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();