/** * @param string $name */ public function loadLanguage($name) { $helper = Menus::getInstance(); $language = XoopsLocale::getLegacyLanguage(); $path = $helper->path("decorators/{$name}/language"); if (!($ret = XoopsLoad::loadFile("{$path}/{$language}/decorator.php"))) { $ret = XoopsLoad::loadFile("{$path}/english/decorator.php"); } return $ret; }
/** * @param MenusMenu $obj */ public function __construct(MenusMenu $obj) { global $menu_id; $xoops = Xoops::getInstance(); $helper = Menus::getInstance(); $this_handler = $helper->getHandlerMenu(); $decorators = MenusDecorator::getAvailableDecorators(); $title = $obj->isNew() ? sprintf(_AM_MENUS_ADD_MENUS) : sprintf(_AM_MENUS_EDIT_MENUS); parent::__construct($title, 'form', 'admin_menu.php', 'post', true); $this->addElement(new Xoops\Form\Text(_AM_MENUS_MENU_TITLE, 'title', 50, 255, $obj->getVar('title'), ''), true); $this->addElement(new Xoops\Form\Text(_AM_MENUS_MENU_ALTTITLE, 'alt_title', 50, 255, $obj->getVar('alt_title'), '')); $this->addElement(new Xoops\Form\Text(_AM_MENUS_MENU_LINK, 'link', 50, 255, $obj->getVar('link'), '')); $this->addElement(new Xoops\Form\Text(_AM_MENUS_MENU_IMAGE, 'image', 50, 255, $obj->getVar('image'), '')); $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); $criteria->add(new Criteria('id', $obj->getVar('id'), '<>')); $criteria->setSort('weight'); $criteria->setOrder('ASC'); $results = $this_handler->getAll($criteria, array('title', 'id', 'pid')); $parent_tree = new XoopsObjectTree($results, 'id', 'pid'); $parent_select = $parent_tree->makeSelBox('pid', 'title', '-- ', $obj->getVar('pid'), true); $this->addElement(new Xoops\Form\Label(_AM_MENUS_MENU_PARENT, $parent_select)); $formvis = new Xoops\Form\Select(_AM_MENUS_MENU_VISIBLE, "visible", $obj->getVar('visible')); $formvis->addOption("0", XoopsLocale::NO); $formvis->addOption("1", XoopsLocale::YES); $this->addElement($formvis); $formtarget = new Xoops\Form\Select(_AM_MENUS_MENU_TARGET, "target", $obj->getVar('target')); $formtarget->addOption("_self", _AM_MENUS_MENU_TARG_SELF); $formtarget->addOption("_blank", _AM_MENUS_MENU_TARG_BLANK); $formtarget->addOption("_parent", _AM_MENUS_MENU_TARG_PARENT); $formtarget->addOption("_top", _AM_MENUS_MENU_TARG_TOP); $this->addElement($formtarget); $formgroups = new Xoops\Form\SelectGroup(_AM_MENUS_MENU_GROUPS, "groups", true, $obj->getVar('groups'), 5, true); $formgroups->setDescription(_AM_MENUS_MENU_GROUPS_HELP); $this->addElement($formgroups); $formhooks = new Xoops\Form\Select(_AM_MENUS_MENU_ACCESS_FILTER, "hooks", $obj->getVar('hooks'), 5, true); $accessFilter = array(); foreach ($decorators as $decorator) { $decorator->accessFilter($accessFilter); } foreach ($accessFilter as $result) { $formhooks->addOption($result['method'], $result['name']); } $this->addElement($formhooks); $formcss = new Xoops\Form\Text(_AM_MENUS_MENU_CSS, 'css', 50, 255, $obj->getVar('css')); $this->addElement($formcss); $this->addElement(new Xoops\Form\Hidden('id', $obj->getVar('id'))); $this->addElement(new Xoops\Form\Hidden('mid', $obj->getVar('mid'))); $this->addElement(new Xoops\Form\Hidden('op', 'save')); $this->addElement(new Xoops\Form\Button('', 'submit', XoopsLocale::A_SUBMIT, 'submit')); }
protected function getModuleMenus($dirname, $pid) { static $id = -1; $xoops = Xoops::getInstance(); $helper = Menus::getInstance(); $ret = array(); /* @var $plugin MenusPluginInterface */ if ($plugin = \Xoops\Module\Plugin::getPlugin($dirname, 'menus')) { if (is_array($subMenus = $plugin->subMenus())) { foreach ($subMenus as $menu) { $obj = $helper->getHandlerMenu()->create(); $obj->setVar('title', $menu['name']); $obj->setVar('alt_title', $menu['name']); $obj->setVar('link', $xoops->url("modules/{$dirname}/{$menu['url']}")); $obj->setVar('id', $id); $obj->setVar('pid', $pid); $ret[] = $obj->getValues(); $id--; } } } return $ret; }
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ use Xoops\Core\Request; /** * @copyright XOOPS Project (http://xoops.org) * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html) * @package Menus * @since 1.0 * @author trabis <*****@*****.**> * @version $Id$ */ include_once __DIR__ . '/header.php'; $xoops = Xoops::getInstance(); $helper = Menus::getInstance(); // Call Header & ... $xoops->header('admin:menus/menus_admin_menus.tpl'); $admin_page = new \Xoops\Module\Admin(); $admin_page->renderNavigation('admin_menus.php'); $xoops->theme()->addStylesheet('modules/system/css/admin.css'); // Get $_GET, $_POST, ... $op = Request::getCmd('op', 'list'); $id = Request::getInt('id', 0); $limit = Request::getInt('limit', 15); $start = Request::getInt('start', 0); switch ($op) { case 'add': $admin_page->addItemButton(_AM_MENUS_LIST_MENUS, 'admin_menus.php', 'application-view-detail'); $admin_page->renderButton(); // Create form
} } else { echo $xoops->confirm(array('ok' => 1, 'id' => $id, 'op' => 'del', 'menu_id' => $menu_id), $helper->url('admin/admin_menu.php'), _AM_MENUS_MSG_SUREDEL . '<br /><strong>' . $obj->getVar('title') . '</strong>'); } break; case 'move': $this_handler = Menus::getInstance()->getHandlerMenu(); $obj = $this_handler->get($id); $obj->setVar('weight', $weight); $this_handler->insert($obj); $this_handler->update_weights($obj); $xoops->redirect('admin_menu.php?op=list&menu_id=' . $obj->getVar('mid'), 2, _AM_MENUS_SAVE); break; case 'toggle': $visible = $visible == 1 ? 0 : 1; $this_handler = Menus::getInstance()->getHandlerMenu(); $obj = $this_handler->get($id); $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');
function menus_mainmenu_show() { $block = array(); $xoops = Xoops::getInstance(); $helper = Menus::getInstance(); $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->getHandlerGroupperm(); $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; }