From: <be...@us...> - 2015-01-23 13:05:22
|
Revision: 12944 http://sourceforge.net/p/xoops/svn/12944 Author: beckmi Date: 2015-01-23 13:05:09 +0000 (Fri, 23 Jan 2015) Log Message: ----------- Adding changes from Zyspec Modified Paths: -------------- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/about.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_about.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_footer.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_header.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_links.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_menus.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/index.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/menu.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/css/admin.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/hoverIntent.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/order.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/superfish.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/supersubs.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/blocks/mymenus_block.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/about.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/builder.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/links.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/menus.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/plugin.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/class/registry.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/docs/changelog.txt XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/include/functions.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/include/update.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/include/xoops.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/language/english/admin.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/plugins/constant/constant.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/plugins/dynamic/dynamic.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/plugins/mymenus/mymenus.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/plugins/smarty/smarty.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/bootstrap/skin_version.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/bootstrap/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/breadcrumb/skin_version.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/clean/skin_version.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/default/stuHover.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/default/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/mainmenu/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/multiblack/stuHover.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/multiblack/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish/css/superfish-navbar.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish/css/superfish-vertical.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish/css/superfish.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish/skin_version.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish_navbar/css/superfish-navbar.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish_navbar/css/superfish-vertical.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish_navbar/css/superfish.css XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish_navbar/skin_version.php XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/superfish_navbar/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/tw_blue/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/templates/static/mymenus_admin_links.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/templates/static/mymenus_admin_menus.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/xoops_version.php Added Paths: ----------- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/jquery-1.11.2.min.js XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/breadcrumb/templates/ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/breadcrumb/templates/index.html XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/breadcrumb/templates/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/clean/templates/ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/clean/templates/index.html XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/clean/templates/template.tpl Removed Paths: ------------- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/breadcrumb/template.tpl XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/skins/clean/template.html Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/about.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/about.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/about.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -12,13 +12,13 @@ /** * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU Public License - * @package Mytabs + * @package Mymenus * @since 1.0 * @author trabis <lus...@gm...> * @version $Id$ */ -include_once dirname(__FILE__) . '/admin_header.php'; +include_once __DIR__ . '/admin_header.php'; xoops_cp_header(); @@ -27,4 +27,4 @@ echo $aboutAdmin->addNavigation('about.php'); echo $aboutAdmin->renderAbout('6KJ7RW5DR3VTJ', false); -include 'admin_footer.php'; +include __DIR__ . '/admin_footer.php'; Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_about.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_about.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_about.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,8 +18,8 @@ * @version $Id$ */ -include_once dirname(__FILE__) . '/admin_header.php'; -include_once XOOPS_ROOT_PATH . '/modules/mymenus/class/about.php'; +include_once __DIR__ . '/admin_header.php'; +include_once $GLOBALS['xoops']->path('/modules/mymenus/class/about.php'); $aboutObj = new MymenusAbout(); $aboutObj->render(); Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_footer.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_footer.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_footer.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -19,10 +19,10 @@ */ echo "<div class='adminfooter'>\n" - ." <div style='text-align: center;'>\n" + ." <div class='txtcenter'>\n" ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" ." </div>\n" ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n" - ."</div>"; + ."</div>\n"; xoops_cp_footer(); Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_header.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_header.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_header.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,7 +18,7 @@ * @version $Id$ */ -require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/include/cp_header.php'; +require_once dirname(dirname(dirname(__DIR__))) . '/include/cp_header.php'; if ( !@include_once $GLOBALS['xoops']->path('/Frameworks/moduleclasses/moduleadmin/moduleadmin.php') ) { redirect_header("../../../admin.php", 5, _AM_MODULEADMIN_MISSING, false); @@ -38,11 +38,12 @@ include_once $GLOBALS['xoops']->path('modules/mymenus/class/plugin.php'); $mymenusTpl = new XoopsTpl(); -if (!isset($xoopsTpl) || !is_object($xoopsTpl)) { - include_once(XOOPS_ROOT_PATH."/class/template.php"); - $xoopsTpl = new XoopsTpl(); +if (!isset($GLOBALS['xoopsTpl']) || !($GLOBALS['xoopsTpl'] instanceof XoopsTpl)) { + include_once $GLOBALS['xoops']->path("/class/template.php"); + $GLOBALS['xoopsTpl'] = new XoopsTpl(); } -$xoopsTpl->assign('pathIcon16', $pathIcon16); +$GLOBALS['xoopsTpl']->assign('pathIcon16', $pathIcon16); xoops_load('XoopsFormLoader'); +xoops_load('XoopsRequest'); xoops_loadLanguage('modinfo', 'mymenus'); Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_links.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_links.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_links.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,7 +18,7 @@ * @version $Id$ */ -include_once dirname(__FILE__) . '/admin_header.php'; +include_once __DIR__ . '/admin_header.php'; $menus_handler =& xoops_getModuleHandler('menus', 'mymenus'); $criteria = new CriteriaCompo(); @@ -26,26 +26,36 @@ $criteria->setOrder('ASC'); $menus_list = $menus_handler->getList($criteria); -$indexAdmin = new ModuleAdmin(); +//$indexAdmin = new ModuleAdmin(); if (empty($menus_list)) { redirect_header('admin_menus.php', 1, _AM_MYMENUS_MSG_NOMENUS); exit; } -if (isset($_REQUEST['menu_id']) && in_array($_REQUEST['menu_id'], array_keys($menus_list))) { - $menu_id = $_REQUEST['menu_id']; +$valid_menu_ids = array_keys($menus_list); +if (isset($_REQUEST['mid']) && in_array($_REQUEST['mid'], $valid_menu_ids)) { + $menu_id = (int) $_REQUEST['mid']; $menu_title = $menus_list[$menu_id]; } else { $keys = array_keys($menus_list); - $menu_id = $keys[0]; - $menu_title = $menus_list[$menu_id]; + $menu_id = $valid_menu_ids[0]; //force menu id to first valid menu id in the list + $menu_title = $menus_list[$menu_id]; // and get it's title } - -$mymenusTpl->assign('menu_id', $menu_id); +$mymenusTpl->assign('mid', $menu_id); $mymenusTpl->assign('menu_title', $menu_title); $mymenusTpl->assign('menus_list', $menus_list); +$op = XoopsRequest::getCmd('op', 'list'); +$id = XoopsRequest::getInt('id', 0); +$pid = XoopsRequest::getInt('pid', 0); +$limit = XoopsRequest::getInt('limit', 15); +$start = XoopsRequest::getInt('start', 0); +$redir = XoopsRequest::getString('redir', null); +$weight = XoopsRequest::getInt('weight', 0); +$visible = XoopsRequest::getInt('visible', 0); + +/* $op = isset($_GET['op']) ? trim($_GET['op']) : (isset($_POST['op']) ? trim($_POST['op']) : 'list'); $id = isset($_GET['id']) ? intval($_GET['id']) : (isset($_POST['id']) ? intval($_POST['id']) : null); @@ -57,24 +67,25 @@ $weight = isset($_GET['weight']) ? intval($_GET['weight']) : (isset($_POST['weight']) ? intval($_POST['weight']) : 0); $visible = isset($_GET['visible']) ? intval($_GET['visible']) : (isset($_POST['visible']) ? intval($_POST['visible']) : 0); +*/ $mymenus_adminpage = 'admin_links.php'; switch ($op) { case 'add': - mymenus_admin_add(); + mymenus_admin_add($menu_id); break; case 'form': xoops_cp_header(); echo $indexAdmin->addNavigation('admin_links.php'); echo mymenus_admin_form(null, $pid); - include 'admin_footer.php'; + include __DIR__ . '/admin_footer.php'; break; case 'edit': echo mymenus_admin_form($id); break; case 'editok': - mymenus_admin_edit($id); + mymenus_admin_edit($id, $menu_id); break; case 'del': mymenus_admin_confirmdel($id, $redir); @@ -92,8 +103,8 @@ xoops_cp_header(); echo $indexAdmin->addNavigation('admin_links.php'); mymenus_admin_move($id, $weight); - echo mymenus_admin_list($start); - include 'admin_footer.php'; + echo mymenus_admin_list($start, $menu_id); + include __DIR__ . '/admin_footer.php'; break; case 'toggle': mymenus_admin_toggle($id, $visible); @@ -123,8 +134,13 @@ case 'list': default: xoops_cp_header(); + $module_handler =& xoops_gethandler('module'); + $system =& $module_handler->getByDirname('system'); + $systemConfigHandler =& xoops_gethandler('config'); + $systemConfig =& $systemConfigHandler->getConfigsByCat(0, $system->getVar('mid')); + // Add module stylesheet - $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/ui/' . xoops_getModuleOption('jquery_theme', 'system') . '/ui.all.css'); + $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/ui/' . $systemConfig['jquery_theme'] . '/ui.all.css'); $xoTheme->addStylesheet(XOOPS_URL . '/modules/mymenus/assets/css/admin.css'); $xoTheme->addStylesheet(XOOPS_URL . '/Frameworks/moduleclasses/moduleadmin/css/admin.css'); // Define scripts @@ -134,41 +150,45 @@ $xoTheme->addScript(XOOPS_URL . '/modules/mymenus/assets/js/order.js'); echo $indexAdmin->addNavigation('admin_links.php'); - echo mymenus_admin_list($start); + echo mymenus_admin_list($start, $menu_id); /* Disable xoops debugger in dialog window */ - include_once XOOPS_ROOT_PATH . '/class/logger/xoopslogger.php'; + include_once $GLOBALS['xoops']->path('/class/logger/xoopslogger.php'); $xoopsLogger =& XoopsLogger::getInstance(); $xoopsLogger->activated = true; error_reporting(-1); - include 'admin_footer.php'; - break; + include __DIR__ . '/admin_footer.php'; + break; } /** - * @param int $start + * Display the links in a menu * + * @param integer $start + * @param integer $menu_id + * * @return bool|mixed|string */ -function mymenus_admin_list($start = 0) +function mymenus_admin_list($start = 0, $menu_id) { - global $mymenusTpl, $menu_id; + global $mymenusTpl; - $this_handler =& xoops_getModuleHandler('links', 'mymenus'); + $links_handler =& xoops_getModuleHandler('links', 'mymenus'); - $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); + $criteria = new CriteriaCompo(new Criteria('mid', (int) $menu_id)); - $count = $this_handler->getCount($criteria); - $mymenusTpl->assign('count', $count); + $count_links = $links_handler->getCount($criteria); + $mymenusTpl->assign('count', $count_links); $criteria->setSort('weight'); $criteria->setOrder('ASC'); $menus = array(); $menusArray = array(); - if ($count > 0) { - $menus = $this_handler->getObjects($criteria); + if (($count_links > 0) && ($count_links >= (int) $start)) { + $criteria->setStart((int) $start); + $menus = $links_handler->getObjects($criteria); foreach ($menus as $menu) { $array[] = $menu->getValues(); } @@ -193,13 +213,14 @@ redirect_header($GLOBALS['mymenus_adminpage'], 1, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } + $id = (int) $id; if ($id <= 0) { redirect_header($GLOBALS['mymenus_adminpage'], 1); } $this_handler =& xoops_getModuleHandler('links' , 'mymenus'); $obj = $this_handler->get($id); - if (!is_object($obj)) { + if ((empty($obj)) || !($obj instanceof MymenusLinks)) { redirect_header($GLOBALS['mymenus_adminpage'], 1); } @@ -209,12 +230,12 @@ $criteria->add(new Criteria('pid', $id),'OR'); //first delete links level 2 - global $xoopsDB; - $query = "DELETE FROM ".$xoopsDB->prefix("mymenus_links")." WHERE pid = ( +// global $xoopsDB; + $query = "DELETE FROM " . $GLOBALS['xoopsDB']->prefix("mymenus_links")." WHERE pid = ( SELECT id FROM ( - SELECT * FROM ".$xoopsDB->prefix("mymenus_links")." WHERE pid = ".$id.") AS sec + SELECT * FROM " . $GLOBALS['xoopsDB']->prefix("mymenus_links")." WHERE pid = {$id}) AS sec );"; - $result = $xoopsDB->queryF($query); + $result = $GLOBALS['xoopsDB']->queryF($query); //delete links level 0 and 1 if (!$this_handler->deleteAll($criteria)) { xoops_cp_header(); @@ -252,9 +273,9 @@ function mymenus_admin_confirmdel($id = null, $redir = null, $op = 'delok') { - $arr = array(); - $arr['op'] = $op; - $arr['id'] = $id; + $arr = array('op' => $op, + 'id' => $id + ); if (!is_null($redir)) { $arr['redir'] = $redir; } @@ -264,67 +285,83 @@ xoops_cp_footer(); } -function mymenus_admin_add() +function mymenus_admin_add($menu_id) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header($GLOBALS['mymenus_adminpage'], 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } - $this_handler =& xoops_getModuleHandler('links','mymenus'); - $criteria = new CriteriaCompo(new Criteria('mid', $_POST['mid'])); + $links_handler =& xoops_getModuleHandler('links','mymenus'); +// $criteria = new CriteriaCompo(new Criteria('mid', $_POST['mid'])); + $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); $criteria->setSort('weight'); $criteria->setOrder('DESC'); $criteria->setLimit(1); - $menus = $this_handler->getObjects($criteria); + $menus = $links_handler->getObjects($criteria); $weight = 1; - if (isset($menus[0]) && is_object($menus[0])) { + if (isset($menus[0]) && ($menus[0] instanceof MymenusLinks)) { $weight = $menus[0]->getVar('weight') + 1; } - $obj = $this_handler->create(); + $link_obj = $links_handler->create(); if (!isset($_POST['hooks'])) { $_POST['hooks'] = array(); } - $obj->setVars($_POST); - $obj->setVar('weight', $weight); + //@TODO: clean incoming POST vars + $link_obj->setVars($_POST); + $link_obj->setVar('weight', $weight); - if (!$this_handler->insert($obj)) { + if (!$links_handler->insert($link_obj)) { $msg = _AM_MYMENUS_MSG_ERROR; } else { - $this_handler->update_weights($obj); + $links_handler->update_weights($link_obj); $msg = _AM_MYMENUS_MSG_SUCCESS; } - redirect_header($GLOBALS['mymenus_adminpage'] . '?op=list&menu_id=' . $obj->getVar('mid'), 2, $msg); + redirect_header($GLOBALS['mymenus_adminpage'] . '?op=list&mid=' . $link_obj->getVar('mid'), 2, $msg); } /** - * @param $id + * @param integer $id + * @param integer $menu_id */ -function mymenus_admin_edit($id) +function mymenus_admin_edit($id, $menu_id) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header($GLOBALS['mymenus_adminpage'], 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } - global $menu_id; + if (empty($menu_id)) { + redirect_header($GLOBALS['mymenus_adminpage'] . "?op=list", 2, _AM_MYMENUS_MSG_MENU_INVALID_ERROR); + } + + $menu_id = (int) $menu_id; + $links_handler =& xoops_getModuleHandler('links','mymenus'); + $link_obj = $links_handler->get((int) $id); + + //if this was moved then parent could be in different menu, if so then set parent to top level + if (!empty($_POST['pid'])) { + $parent_obj = $links_handler->get($link_obj->getVar('pid')); //get the parent oject + if(($parent_obj instanceof MylinksLinks) && ($link_obj->getVar('mid') != $parent_obj->getVar('mid'))) { + $link_obj->setVar('pid', 0); + } + } /* Disable xoops debugger in dialog window */ - include_once XOOPS_ROOT_PATH.'/class/logger/xoopslogger.php'; + include_once $GLOBALS['xoops']->path('/class/logger/xoopslogger.php'); $xoopsLogger =& XoopsLogger::getInstance(); $xoopsLogger->activated = false; error_reporting(0); - $this_handler =& xoops_getModuleHandler('links','mymenus'); - $obj = $this_handler->get($id); - $obj->setVars($_POST); + // @TODO: clean incoming POST vars + $link_obj->setVars($_POST); - if (!$this_handler->insert($obj)) { + if (!$links_handler->insert($link_obj)) { $msg = _AM_MYMENUS_MSG_ERROR; } else { $msg = _AM_MYMENUS_MSG_SUCCESS; } - redirect_header($GLOBALS['mymenus_adminpage'] . "?op=list&menu_id=$menu_id", 2, $msg); + redirect_header($GLOBALS['mymenus_adminpage'] . "?op=list&mid={$menu_id}", 2, $msg); } /** @@ -333,15 +370,15 @@ * * @return string */ -function mymenus_admin_form($id = null, $pid = null) +function mymenus_admin_form($id = null, $pid = null, $menu_id = null) { /* Disable xoops debugger in dialog window */ - include_once XOOPS_ROOT_PATH.'/class/logger/xoopslogger.php'; + include_once $GLOBALS['xoops']->path('/class/logger/xoopslogger.php'); $xoopsLogger =& XoopsLogger::getInstance(); $xoopsLogger->activated = false; error_reporting(0); - global $menu_id; + global $pathIcon16; $registry =& MymenusRegistry::getInstance(); $plugin =& MymenusPlugin::getInstance(); @@ -351,7 +388,7 @@ if (isset($id)) { $ftitle = _EDIT; - $obj = $this_handler->get($id); + $obj = $this_handler->get((int) $id); $objArray = $obj->getValues(); } else { @@ -359,33 +396,42 @@ $obj = $this_handler->create(); $objArray = $obj->getValues(); if (isset($pid)) { - $objArray['pid'] = $pid; + $objArray['pid'] = (int) $pid; } + if (isset($menu_id)) { + $objArray['mid'] = (int) $menu_id; + } } - $form = new XoopsThemeForm($ftitle, 'admin_form', $GLOBALS['mymenus_adminpage'], "post", true); $formtitle = new XoopsFormText(_AM_MYMENUS_MENU_TITLE, 'title', 50, 255, $objArray['title']); $formalttitle = new XoopsFormText(_AM_MYMENUS_MENU_ALTTITLE, 'alt_title', 50, 255, $objArray['alt_title']); - + // display menu options (if more than 1 menu available + $menus_handler =& xoops_getmodulehandler('menus', 'mymenus'); + $criteria = new CriteriaCompo(); + $criteria->setSort('title'); + $criteria->setOrder('ASC'); + $menus_list = $menus_handler->getList($criteria); + if (count($menus_list > 1)) { + if (null == $objArray['mid']) { // initial menu value not set + $menu_values = array_flip($menu_list); + $formmid = new XoopsFormSelect('Menu', 'mid', array_shift($menu_values)); + } else { + $formmid = new XoopsFormSelect('Menu', 'mid', $objArray['mid']); + } + $formmid->addOptionArray($menus_list); + } else { + $menu_keys = array_keys($menu_list); + $menu_title = array_shift($menu_list); + $formmid = new XoopsFormElementTray('Menu'); + $formmid->addElement(new XoopsFormHidden('mid', $menu_keys[0])); + $formmid->addElement(new XoopsFormLabel('', $menu_title, 'menu_title')); + } $formlink = new XoopsFormText(_AM_MYMENUS_MENU_LINK, 'link', 50, 255, $objArray['link']); $formimage = new XoopsFormText(_AM_MYMENUS_MENU_IMAGE, 'image', 50, 255, $objArray['image']); - $criteria = new CriteriaCompo(new Criteria('mid', $menu_id)); - $criteria->add(new Criteria('id', $id, '<>')); - $criteria->setSort('weight'); - $criteria->setOrder('ASC'); - - global $xoopsModule; - $pathIcon16 = '../'.$xoopsModule->getInfo('icons16'); - - $statontxt - = " <img src=". $pathIcon16 .'/1.png'.' '. "alt='" ._YES . "' /> " . _YES - . " "; - $statofftxt - = " <img src=". $pathIcon16 .'/0.png' .' '."alt='" . _NO . "' /> " - . _NO . " "; + $statontxt = " <img src='{$pathIcon16}/1.png' alt='" ._YES . "' /> " . _YES . " "; + $statofftxt = " <img src='{$pathIcon16}/0.png' alt='" . _NO . "' /> " . _NO . " "; $formvis = new XoopsFormRadioYN(_AM_MYMENUS_MENU_VISIBLE, 'visible', $objArray['visible'], $statontxt, $statofftxt); -//---------------mamba $formtarget = new XoopsFormSelect(_AM_MYMENUS_MENU_TARGET, "target", $objArray['target']); $formtarget->addOption("_self", _AM_MYMENUS_MENU_TARG_SELF); @@ -400,6 +446,7 @@ $form->addElement($formtitle, true); $form->addElement($formalttitle); + $form->addElement($formmid); $form->addElement($formlink); $form->addElement($formimage); $form->addElement($formparent); @@ -415,9 +462,9 @@ $btn = new XoopsFormButton('', 'reset', _CANCEL, 'button'); if (isset($id)) { - $btn->setExtra('onclick="document.location.href=\'' . $GLOBALS['mymenus_adminpage'] . '?op=list&menu_id=' . $menu_id . ' \'"'); + $btn->setExtra("onclick=\"document.location.href='" . $GLOBALS['mymenus_adminpage'] . "?op=list&mid={$menu_id}'\""); } else { - $btn->setExtra('onclick="document.getElementById(\'addform\').style.display = \'none\'; return false;"'); + $btn->setExtra("onclick=\"document.getElementById('addform').style.display = 'none'; return false;\""); } $tray->addElement($btn); @@ -430,21 +477,21 @@ $form->addElement(new XoopsFormHidden('op', 'add')); } - $form->addElement(new XoopsFormHidden('mid', $menu_id)); - $form->addElement(new XoopsFormHidden('menu_id', $menu_id)); - return $form->render(); } /** - * @param $id - * @param $weight + * + * Update the {@see MymenusLinks} weight (order) + * + * @param integer $id of links object + * @param integer $weight */ function mymenus_admin_move($id, $weight) { $this_handler =& xoops_getModuleHandler('links', 'mymenus'); - $obj = $this_handler->get($id); - $obj->setVar('weight', $weight); + $obj = $this_handler->get((int) $id); + $obj->setVar('weight', (int) $weight); $this_handler->insert($obj); $this_handler->update_weights($obj); } @@ -455,14 +502,14 @@ */ function mymenus_admin_toggle($id, $visible) { - include_once XOOPS_ROOT_PATH.'/class/logger/xoopslogger.php'; + include_once $GLOBALS['xoops']->path('/class/logger/xoopslogger.php'); $xoopsLogger =& XoopsLogger::getInstance(); $xoopsLogger->activated = true; error_reporting(0); $this_handler =& xoops_getModuleHandler('links', 'mymenus'); - $obj = $this_handler->get($id); - $visible = ($obj->getVar('visible') == 1) ? 0 : 1; + $obj = $this_handler->get((int) $id); + $visible = (1 == $obj->getVar('visible')) ? 0 : 1; $obj->setVar('visible', $visible); $this_handler->insert($obj); echo $obj->getVar('visible'); Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_menus.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_menus.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/admin_menus.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,8 +18,14 @@ * @version $Id$ */ -include_once dirname(__FILE__) . '/admin_header.php'; +include_once __DIR__ . '/admin_header.php'; +$op = XoopsRequest::getCmd('op', 'list'); +$id = XoopsRequest::getInt('id', null); +$limit = XoopsRequest::getInt('limit', 15); +$start = XoopsRequest::getInt('start', 0); +$redir = XoopsRequest::getString('redir', null); +/* $op = isset($_GET['op']) ? trim($_GET['op']) : (isset($_POST['op']) ? trim($_POST['op']) : 'list'); $id = isset($_GET['id']) ? intval($_GET['id']) : (isset($_POST['id']) ? intval($_POST['id']) : null); @@ -27,7 +33,7 @@ $limit = isset($_GET['limit']) ? intval($_GET['limit']) : (isset($_POST['limit']) ? intval($_POST['limit']) : 15); $start = isset($_GET['start']) ? intval($_GET['start']) : (isset($_POST['start']) ? intval($_POST['start']) : 0); $redir = isset($_GET['redir']) ? $_GET['redir'] : (isset($_POST['redir']) ? $_POST['redir'] : null); - +*/ $mymenus_adminpage = 'admin_menus.php'; switch ($op) { @@ -60,24 +66,27 @@ default: xoops_cp_header(); echo $indexAdmin->addNavigation('admin_menus.php'); - echo mymenus_admin_list($start); + echo mymenus_admin_list($start, $limit); include 'admin_footer.php'; break; } /** - * @param int $start + * @param integer $start + * @param integer $limit * * @return bool|mixed|string */ -function mymenus_admin_list($start = 0) +function mymenus_admin_list($start = 0, $limit) { - global $mymenusTpl, $limit; + global $mymenusTpl; $myts =& MyTextSanitizer::getInstance(); + $limit = (int) $limit; $this_handler =& xoops_getModuleHandler('menus', 'mymenus'); - $query = isset($_POST['query']) ? $_POST['query'] : null; + $query = XoopsRequest::getString('query', null, 'POST'); +// $query = isset($_POST['query']) ? $_POST['query'] : null; $mymenusTpl->assign('query', $query); $criteria = new CriteriaCompo(); @@ -98,7 +107,7 @@ if ($count > $limit) { xoops_load('XoopsPagenav'); $nav = new XoopsPageNav($count, $limit, $start, 'start', 'op=list'); - $mymenusTpl->assign('pag', '<div style="float:left; padding-top:2px;" align="center">' . $nav->renderNav() . '</div>'); + $mymenusTpl->assign('pag', '<div style="float:left; padding-top:2px; vertical-align: center;">' . $nav->renderNav() . '</div>'); } else { $mymenusTpl->assign('pag', ''); } @@ -129,19 +138,19 @@ redirect_header($GLOBALS['mymenus_adminpage'], 1, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } - if ($id <= 0) { + if ((int) $id <= 0) { redirect_header($GLOBALS['mymenus_adminpage'], 1); } $this_handler =& xoops_getModuleHandler('menus' , 'mymenus'); - $obj = $this_handler->get($id); + $obj = $this_handler->get((int) $id); if (!is_object($obj)) { redirect_header($GLOBALS['mymenus_adminpage'], 1); } if (!$this_handler->delete($obj)) { xoops_cp_header(); - xoops_error(_AM_MYMENUS_MSG_ERROR, $obj->getVar('id')); + xoops_error(_AM_MYMENUS_MSG_DELETE_MENU_ERROR, $obj->getVar('id')); xoops_cp_footer(); exit(); } @@ -151,7 +160,7 @@ $this_handler->deleteAll($criteria); unset($criteria); - redirect_header(!is_null($redir) ? base64_decode($redir) : $GLOBALS['mymenus_adminpage'] , 2, _AM_MYMENUS_MSG_SUCCESS); + redirect_header(!is_null($redir) ? base64_decode($redir) : $GLOBALS['mymenus_adminpage'] , 2, _AM_MYMENUS_MSG_DELETE_MENU_SUCCESS); } /** @@ -163,7 +172,7 @@ redirect_header($GLOBALS['mymenus_adminpage'], 1, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } - $this_handler =& xoops_getModuleHandler('menus' , 'mymenus'); + $this_handler =& xoops_getModuleHandler('menus', 'mymenus'); if (!$this_handler->deleteAll()) { redirect_header(!is_null($redir) ? base64_decode($redir) : $GLOBALS['mymenus_adminpage'] , 2, _AM_MYMENUS_MSG_ERROR); @@ -180,8 +189,8 @@ function mymenus_admin_confirmdel($id = null, $redir = null, $op = 'delok') { $arr = array(); - $arr['op'] = $op; - $arr['id'] = $id; + $arr['op'] = XoopsFilterInput::clean($op, 'CMD'); + $arr['id'] = XoopsFilterInput::clean($id, 'INT'); if (!is_null($redir)) { $arr['redir'] = $redir; } @@ -198,12 +207,16 @@ $this_handler =& xoops_getModuleHandler('menus','mymenus'); $obj = $this_handler->create(); - $obj->setVars($_POST); + $obj->setVars(array('title' => XoopsRequest::getString('title', '', 'POST'), + 'css' => XoopsRequest::getString('css', '', 'POST')) + ); +// $obj->setVars($_POST); + if (!$this_handler->insert($obj)) { - $msg = _AM_MYMENUS_MSG_ERROR; + $msg = _AM_MYMENUS_MSG_ADD_MENU_ERROR; } else { - $msg = _AM_MYMENUS_MSG_SUCCESS; + $msg = _AM_MYMENUS_MSG_ADD_MENU_SUCCESS; } redirect_header($GLOBALS['mymenus_adminpage'] . '?op=list', 2, $msg); @@ -218,13 +231,17 @@ redirect_header($GLOBALS['mymenus_adminpage'], 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); } $this_handler =& xoops_getmodulehandler('menus','mymenus'); - $obj = $this_handler->get($id); - $obj->setVars($_POST); + $obj = $this_handler->get((int) $id); + $obj->setVars(array('title' => XoopsRequest::getString('title', '', 'POST'), + 'css' => XoopsRequest::getString('css', '', 'POST')) + ); +// $obj->setVars($_POST); + if (!$this_handler->insert($obj)) { - $msg = _AM_MYMENUS_MSG_ERROR; + $msg = _AM_MYMENUS_MSG_EDIT_MENU_ERROR; } else { - $msg = _AM_MYMENUS_MSG_SUCCESS; + $msg = _AM_MYMENUS_MSG_EDIT_MENU_SUCCESS; } redirect_header($GLOBALS['mymenus_adminpage'] . '?op=list', 2, $msg); @@ -238,13 +255,13 @@ function mymenus_admin_form($id = null) { $this_handler =& xoops_getmodulehandler('menus','mymenus'); - $objArray = array(); +// $objArray = array(); if (isset($id)) { $ftitle = _EDIT; + $id = (int) $id; $obj = $this_handler->get($id); $objArray = $obj->getValues(); - } else { $ftitle = _ADD; $obj = $this_handler->create(); @@ -254,29 +271,25 @@ $form = new XoopsThemeForm($ftitle, 'admin_form', $GLOBALS['mymenus_adminpage'], "post", true); $form->addElement(new XoopsFormText(_AM_MYMENUS_MENU_TITLE, 'title', 50, 255, $objArray['title']), true); // - $form->addElement(new XoopsFormText(_AM_MYMENUS_MENU_CSS, 'css', 50, 255, $objArray['css']),false); + $form->addElement(new XoopsFormText(_AM_MYMENUS_MENU_CSS, 'css', 50, 255, $objArray['css']), false); // - $tray = new XoopsFormElementTray('' ,''); + $tray = new XoopsFormElementTray('', ''); $tray->addElement(new XoopsFormButton('', 'submit_button', _SUBMIT, 'submit')); $btn = new XoopsFormButton('', 'reset', _CANCEL, 'button'); if (isset($id)) { + $form->addElement(new XoopsFormHidden('op', 'editok')); + $form->addElement(new XoopsFormHidden('id', $id)); $btn->setExtra('onclick="document.location.href=\'' . $GLOBALS['mymenus_adminpage'] . '?op=list\'"'); } else { + $form->addElement(new XoopsFormHidden('op', 'add')); $btn->setExtra('onclick="document.getElementById(\'addform\').style.display = \'none\'; return false;"'); } $tray->addElement($btn); $form->addElement($tray); - if (isset($id)) { - $form->addElement(new XoopsFormHidden('op', 'editok')); - $form->addElement(new XoopsFormHidden('id', $id)); - } else { - $form->addElement(new XoopsFormHidden('op', 'add')); - } - return $form->render(); } Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/index.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/index.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/index.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,12 +18,12 @@ * @version $Id$ */ -//require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/include/cp_header.php'; -include_once dirname(__FILE__) . '/admin_header.php'; +//require_once dirname(dirname(dirname(__DIR__))) . '/include/cp_header.php'; +include_once __DIR__ . '/admin_header.php'; - xoops_cp_header(); +xoops_cp_header(); - echo $indexAdmin->addNavigation('index.php'); - echo $indexAdmin->renderIndex(); +echo $indexAdmin->addNavigation('index.php'); +echo $indexAdmin->renderIndex(); - include 'admin_footer.php'; +include __DIR__ . '/admin_footer.php'; Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/menu.php =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/menu.php 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/admin/menu.php 2015-01-23 13:05:09 UTC (rev 12944) @@ -18,32 +18,30 @@ * @version $Id$ */ -defined("XOOPS_ROOT_PATH") or die("XOOPS root path not defined"); +defined("XOOPS_ROOT_PATH") || exit("Restricted access"); -$dirname = basename(dirname(dirname(__FILE__))); +$dirname = basename(dirname(__DIR__)); $module_handler = xoops_gethandler('module'); -$module = $module_handler->getByDirname($dirname); -$pathIcon32 = $module->getInfo('icons32'); +$module = $module_handler->getByDirname($dirname); +$pathIcon32 = $module->getInfo('icons32'); xoops_loadLanguage('admin', $dirname); -$i = 0; -++$i; -$adminmenu[$i]["title"] = _MI_MYMENUS_ADMMENU0; -$adminmenu[$i]["link"] = 'admin/index.php'; -$adminmenu[$i]["icon"] = $pathIcon32.'/home.png'; -++$i; -$adminmenu[$i]['title'] = _MI_MYMENUS_MENUSMANAGER; -$adminmenu[$i]['link'] = "admin/admin_menus.php"; -$adminmenu[$i]["icon"] = $pathIcon32.'/manage.png'; -++$i; -$adminmenu[$i]['title'] = _MI_MYMENUS_MENUMANAGER; -$adminmenu[$i]['link'] = "admin/admin_links.php"; -$adminmenu[$i]["icon"] = $pathIcon32.'/insert_table_row.png'; -++$i; -$adminmenu[$i]['title'] = _MI_MYMENUS_ABOUT; -$adminmenu[$i]['link'] = "admin/about.php"; -$adminmenu[$i]["icon"] = $pathIcon32.'/about.png'; +$adminmenu = array(array('title' => _MI_MYMENUS_ADMMENU0, + 'link' => 'admin/index.php', + 'icon' => "{$pathIcon32}/home.png"), + array('title' => _MI_MYMENUS_MENUSMANAGER, + 'link' => "admin/admin_menus.php", + 'icon' => "{$pathIcon32}/manage.png"), + + array('title' => _MI_MYMENUS_MENUMANAGER, + 'link' => "admin/admin_links.php", + 'icon' => "{$pathIcon32}/insert_table_row.png"), + + array('title' => _MI_MYMENUS_ABOUT, + 'link' => "admin/about.php", + 'icon' => "{$pathIcon32}/about.png") +); + //$mymenus_adminmenu = $adminmenu; -unset($i); Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/css/admin.css =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/css/admin.css 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/css/admin.css 2015-01-23 13:05:09 UTC (rev 12944) @@ -1,115 +1,115 @@ /* Sortable link list*/ .mjs-nestedSortable-error { - background: #fbe3e4; - border-color: transparent; + background: #fbe3e4; + border-color: transparent; } - ol { - margin: 0; + ol { + margin: 0; padding: 0 0 0 30px; } - ol.sortable, ol.sortable ol { - margin: 0 0 0 25px; - padding: 0; - list-style-type: none; - } + ol.sortable, ol.sortable ol { + margin: 0 0 0 25px; + padding: 0; + list-style-type: none; + } - ol.sortable { - margin: 2em 0 4em 0; - } + ol.sortable { + margin: 2em 0 4em 0; + } - .sortable li { - margin: 5px 0 0 0; - padding: 0; - list-style: none; - } + .sortable li { + margin: 5px 0 0 0; + padding: 0; + list-style: none; + } - .sortable li div { - border: 1px solid #d4d4d4; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - border-color: #D4D4D4 #D4D4D4 #BCBCBC; - padding: 6px; - line-height: 16px; - margin: 0; - cursor: move; - background: #f6f6f6; - background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #ededed 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(47%,#f6f6f6), color-stop(100%,#ededed)); - background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); - background: -o-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); - background: -ms-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); - background: linear-gradient(to bottom, #ffffff 0%,#f6f6f6 47%,#ededed 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ededed',GradientType=0 ); - } + .sortable li div { + border: 1px solid #d4d4d4; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + border-color: #D4D4D4 #D4D4D4 #BCBCBC; + padding: 6px; + line-height: 16px; + margin: 0; + cursor: move; + background: #f6f6f6; + background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #ededed 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(47%,#f6f6f6), color-stop(100%,#ededed)); + background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); + background: -o-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); + background: -ms-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); + background: linear-gradient(to bottom, #ffffff 0%,#f6f6f6 47%,#ededed 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ededed',GradientType=0 ); + } - .sortable li.mjs-nestedSortable-branch div { - background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #f0ece9 100%); - background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#f0ece9 100%); + .sortable li.mjs-nestedSortable-branch div { + background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #f0ece9 100%); + background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#f0ece9 100%); - } + } - .sortable li.mjs-nestedSortable-leaf div { - background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #bcccbc 100%); - background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#bcccbc 100%); + .sortable li.mjs-nestedSortable-leaf div { + background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #bcccbc 100%); + background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#bcccbc 100%); - } + } - li.mjs-nestedSortable-collapsed.mjs-nestedSortable-hovering div { - border-color: #999; - background: #fafafa; - } + li.mjs-nestedSortable-collapsed.mjs-nestedSortable-hovering div { + border-color: #999; + background: #fafafa; + } - .disclose { - cursor: pointer; - width: 10px; - display: none; - } + .disclose { + cursor: pointer; + width: 10px; + display: none; + } - .sortable li.mjs-nestedSortable-collapsed > ol { - display: none; - } + .sortable li.mjs-nestedSortable-collapsed > ol { + display: none; + } - .sortable li.mjs-nestedSortable-branch > div > .disclose { - display: inline-block; - } + .sortable li.mjs-nestedSortable-branch > div > .disclose { + display: inline-block; + } - .sortable li.mjs-nestedSortable-collapsed > div > .disclose > span:before { - content: '+ '; - } + .sortable li.mjs-nestedSortable-collapsed > div > .disclose > span:before { + content: '+ '; + } - .sortable li.mjs-nestedSortable-expanded > div > .disclose > span:before { - content: '- '; - } + .sortable li.mjs-nestedSortable-expanded > div > .disclose > span:before { + content: '- '; + } - .ui-state-highlight{height: 2.2em; line-height: 1.7em} - .ui-state-hover, button:hover{padding: 0;} - .ui-xbutton, button:hover .ui-xbutton{ - border: 1px solid #D3D3D3; - color: #555555; - font-weight: normal; - padding: 5px !important; - margin-right: 0 !important; + .ui-state-highlight{height: 2.2em; line-height: 1.7em} + .ui-state-hover, button:hover{padding: 0;} + .ui-xbutton, button:hover .ui-xbutton{ + border: 1px solid #D3D3D3; + color: #555555; + font-weight: normal; + padding: 5px !important; + margin-right: 0 !important; } - li.ui-state-default {list-style:none outside none !important;} - li.ui-state-default > div{overflow: hidden;} - #changemenu{float:right;} - .select-options{ + li.ui-state-default {list-style:none outside none !important;} + li.ui-state-default > div{overflow: hidden;} + #changemenu{float:right;} + .select-options{ background: #FFFFFF none; border: 1px solid #D3D3D3 !important; - border-radius: 4px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset; - color: #555555; - font-size: 12px; - height: 30px; - line-height: 1.42857; - padding: 6px 12px; - transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; - vertical-align: middle; - display: block; - margin-bottom: 3px; - } + border-radius: 4px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset; + color: #555555; + font-size: 12px; + height: 30px; + line-height: 1.42857; + padding: 6px 12px; + transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; + vertical-align: middle; + display: block; + margin-bottom: 3px; + } -.discrete{color: #9D9D9D; text-align:right;} +.discrete{color: #9D9D9D; text-align: right;} Modified: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/hoverIntent.js =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/hoverIntent.js 2015-01-21 18:02:19 UTC (rev 12943) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/hoverIntent.js 2015-01-23 13:05:09 UTC (rev 12944) @@ -1,84 +1,115 @@ -(function($){ - /* hoverIntent by Brian Cherne */ - $.fn.hoverIntent = function(f,g) { - // default configuration options - var cfg = { - sensitivity: 7, - interval: 100, - timeout: 0 - }; - // override configuration options with user supplied object - cfg = $.extend(cfg, g ? { over: f, out: g } : f ); +/*! + * hoverIntent v1.8.1 // 2014.08.11 // jQuery v1.9.1+ + * http://cherne.net/brian/resources/jquery.hoverIntent.html + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007, 2014 Brian Cherne + */ - // instantiate variables - // cX, cY = current X and Y position of mouse, updated by mousemove event - // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval - var cX, cY, pX, pY; +/* hoverIntent is similar to jQuery's built-in "hover" method except that + * instead of firing the handlerIn function immediately, hoverIntent checks + * to see if the user's mouse has slowed down (beneath the sensitivity + * threshold) before firing the event. The handlerOut function is only + * called after a matching handlerIn. + * + * // basic usage ... just like .hover() + * .hoverIntent( handlerIn, handlerOut ) + * .hoverIntent( handlerInOut ) + * + * // basic usage ... with event delegation! + * .hoverIntent( handlerIn, handlerOut, selector ) + * .hoverIntent( handlerInOut, selector ) + * + * // using a basic configuration object + * .hoverIntent( config ) + * + * @param handlerIn function OR configuration object + * @param handlerOut function OR selector for delegation OR undefined + * @param selector selector OR undefined + * @author Brian Cherne <brian(at)cherne(dot)net> + */ +(function($) { + $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { - // A private function for getting mouse position - var track = function(ev) { - cX = ev.pageX; - cY = ev.pageY; - }; + // default configuration values + var cfg = { + interval: 100, + sensitivity: 6, + timeout: 0 + }; - // A private function for comparing current and previous mouse position - var compare = function(ev,ob) { - ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); - // compare mouse positions to see if they've crossed the threshold - if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { - $(ob).unbind("mousemove",track); - // set hoverIntent state to true (so mouseOut can be called) - ob.hoverIntent_s = 1; - return cfg.over.apply(ob,[ev]); - } else { - // set previous coordinates for next time - pX = cX; pY = cY; - // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) - ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); - } - }; + if ( typeof handlerIn === "object" ) { + cfg = $.extend(cfg, handlerIn ); + } else if ($.isFunction(handlerOut)) { + cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); + } else { + cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); + } - // A private function for delaying the mouseOut function - var delay = function(ev,ob) { - ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); - ob.hoverIntent_s = 0; - return cfg.out.apply(ob,[ev]); - }; + // instantiate variables + // cX, cY = current X and Y position of mouse, updated by mousemove event + // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval + var cX, cY, pX, pY; - // A private function for handling mouse 'hovering' - var handleHover = function(e) { - // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut - var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; - while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } } - if ( p == this ) { return false; } + // A private function for getting mouse position + var track = function(ev) { + cX = ev.pageX; + cY = ev.pageY; + }; - // copy objects to be passed into t (required for event object to be passed in IE) - var ev = jQuery.extend({},e); - var ob = this; + // A private function for comparing current and previous mouse position + var compare = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + // compare mouse positions to see if they've crossed the threshold + if ( Math.sqrt( (pX-cX)*(pX-cX) + (pY-cY)*(pY-cY) ) < cfg.sensitivity ) { + $(ob).off("mousemove.hoverIntent",track); + // set hoverIntent state to true (so mouseOut can be called) + ob.hoverIntent_s = true; + return cfg.over.apply(ob,[ev]); + } else { + // set previous coordinates for next time + pX = cX; pY = cY; + // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) + ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); + } + }; - // cancel hoverIntent timer if it exists - if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } + // A private function for delaying the mouseOut function + var delay = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + ob.hoverIntent_s = false; + return cfg.out.apply(ob,[ev]); + }; - // else e.type == "onmouseover" - if (e.type == "mouseover") { - // set "previous" X and Y position based on initial entry point - pX = ev.pageX; pY = ev.pageY; - // update "current" X and Y position based on mousemove - $(ob).bind("mousemove",track); - // start polling interval (self-calling timeout) to compare mouse coordinates over time - if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + // A private function for handling mouse 'hovering' + var handleHover = function(e) { + // copy objects to be passed into t (required for event object to be passed in IE) + var ev = $.extend({},e); + var ob = this; - // else e.type == "onmouseout" - } else { - // unbind expensive mousemove event - $(ob).unbind("mousemove",track); - // if hoverIntent state is true, then call the mouseOut function after the specified delay - if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} - } - }; + // cancel hoverIntent timer if it exists + if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } - // bind the function to the two event listeners - return this.mouseover(handleHover).mouseout(handleHover); - }; - -})(jQuery); \ No newline at end of file + // if e.type === "mouseenter" + if (e.type === "mouseenter") { + // set "previous" X and Y position based on initial entry point + pX = ev.pageX; pY = ev.pageY; + // update "current" X and Y position based on mousemove + $(ob).on("mousemove.hoverIntent",track); + // start polling interval (self-calling timeout) to compare mouse coordinates over time + if (!ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + + // else e.type == "mouseleave" + } else { + // unbind expensive mousemove event + $(ob).off("mousemove.hoverIntent",track); + // if hoverIntent state is true, then call the mouseOut function after the specified delay + if (ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} + } + }; + + // listen for mouseenter and mouseleave + return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); + }; +})(jQuery); Added: XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/jquery-1.11.2.min.js =================================================================== --- XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/jquery-1.11.2.min.js (rev 0) +++ XoopsModules/modulepacks/x257basicmodulepack/trunk/modules/mymenus/assets/js/jquery-1.11.2.min.js 2015-01-23 13:05:09 UTC (rev 12944) @@ -0,0 +1,4 @@ +/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.lengt... [truncated message content] |