Пример #1
0
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'));
}
Пример #2
0
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;
}