function mymenus_admin_list($start = 0) { global $mymenusTpl, $menu_id; $this_handler =& xoops_getModuleHandler('menu', 'mymenus'); $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); //$criteria->add(new Criteria('pid', 0)); $count = $this_handler->getCount($criteria); $mymenusTpl->assign('count', $count); $criteria->setSort('weight'); $criteria->setOrder('ASC'); $menus = array(); $menusArray = array(); if ($count > 0) { $menus = $this_handler->getObjects($criteria); foreach ($menus as $menu) { $array[] = $menu->getValues(); } include_once $GLOBALS['xoops']->path('modules/mymenus/class/builder.php'); $builder = new MymenusBuilder($array); $menusArray = $builder->render(); $mymenusTpl->assign('menus', $menusArray); } $mymenusTpl->assign('addform', mymenus_admin_form()); return $mymenusTpl->fetch($GLOBALS['xoops']->path('modules/mymenus/templates/static/mymenus_admin_menu.html')); }
function mymenus_block_show($options) { $block = array(); global $xoopsTpl, $xoTheme, $xoopsUser, $xoopsConfig, $xoopsLogger; $xoopsLogger->startTime('My Menus Block'); $myts =& MyTextSanitizer::getInstance(); include_once $GLOBALS['xoops']->path('modules/mymenus/include/functions.php'); include_once $GLOBALS['xoops']->path('modules/mymenus/class/registry.php'); include_once $GLOBALS['xoops']->path('modules/mymenus/class/plugin.php'); include_once $GLOBALS['xoops']->path('modules/mymenus/class/builder.php'); $registry =& MymenusRegistry::getInstance(); $plugin =& MymenusPlugin::getInstance(); $plugin->triggerEvent('Boot'); $menu_id = $options[0]; $this_handler =& xoops_getModuleHandler('menu', 'mymenus'); $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); $criteria->setSort('weight'); $criteria->setOrder('ASC'); //get menus as an array with ids as keys $menus = $this_handler->getAll($criteria, null, false, false); unset($criteria); foreach ($menus as $key => $menu) { $registry->setEntry('menu', $menu); $registry->setEntry('has_access', 'yes'); $plugin->triggerEvent('HasAccess'); if ($registry->getEntry('has_access') == 'no') { unset($menus[$key]); } } $count = count($menus); if ($count == 0) { return $block; } foreach ($menus as $key => $menu) { $registry->setEntry('link_array', $menu); $plugin->triggerEvent('TitleDecoration'); $plugin->triggerEvent('AlttitleDecoration'); $plugin->triggerEvent('LinkDecoration'); $plugin->triggerEvent('ImageDecoration'); $menus[$key] = $registry->getEntry('link_array'); } $registry->setEntry('menus', $menus); $plugin->triggerEvent('End'); $menus = $registry->getEntry('menus'); $builder = new MymenusBuilder($menus); $block = $builder->render(); /*--------------------------------------------------------------*/ //default files to load $css = array(); $js = array(); //get extra files from skins $skin = $options[1]; $skin_info = mymenus_getSkinInfo($skin, $options[2]); if (isset($skin_info['css'])) { $css = array_merge($css, $skin_info['css']); } if (isset($skin_info['js'])) { $js = array_merge($js, $skin_info['js']); } $config = mymenus_getModuleConfig(); if ($config['assign_method'] == 'xoopstpl') { $tpl_vars = ''; foreach ($css as $file) { $tpl_vars .= "\n" . '<link rel="stylesheet" type="text/css" media="all" href="' . $file . '" />'; } foreach ($js as $file) { $tpl_vars .= "\n" . '<script type="text/javascript" src="' . $file . '"></script>'; } if (isset($skin_info['header'])) { $tpl_vars .= "\n" . $skin_info['header']; } $xoopsTpl->assign('xoops_module_header', $tpl_vars . @$xoopsTpl->get_template_vars("xoops_module_header")); } else { foreach ($css as $file) { $xoTheme->addStylesheet($file); } foreach ($js as $file) { $xoTheme->addScript($file); } if (isset($skin_info['header'])) { $xoopsTpl->assign('xoops_footer', @$xoopsTpl->get_template_vars("xoops_footer") . "\n" . $skin_info['header']); } } $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']); if ($options[3] == 'template') { $xoopsTpl->assign('xoops_menu_' . $options[4], $block['content']); $block = array(); } $registry->unsetAll(); unset($registry, $plugin); $xoopsLogger->stopTime('My Menus Block'); return $block; }