function initMenu($id, $params) { $loadExtJs = (bool) $params->get('loadExtJS', true); $loadMethod = $params->get('loadMethod', 'ready'); AriExtMenuHelper::loadAssets($loadExtJs); $defMenuConfig = array('direction' => 'horizontal', 'delay' => 0.2, 'autoWidth' => true, 'transitionType' => 'fade', 'transitionDuration' => 0.3, 'animate' => true); $config = array(); foreach ($defMenuConfig as $key => $defValue) { $value = AriUtils::parseValueBySample($params->get($key, $defValue), $defValue); if ($value != $defValue) { $config[$key] = $value; } } $zIndex = intval($params->get('zIndex', -1), 10); if ($zIndex > 0) { $config['zIndex'] = $zIndex; } $doc =& JFactory::getDocument(); if ($loadMethod == 'load') { $doc->addScriptDeclaration(sprintf(';Ext.EventManager.on(window, "load", function() { new Ext.ux.Menu("' . $id . '", %1$s); Ext.get("' . $id . '").select(".ux-menu-sub").removeClass("ux-menu-init-hidden"); });', AriJSONHelper::encode($config))); } else { $doc->addScriptDeclaration(sprintf(';(function() { var _menuInit = function() { new Ext.ux.Menu("' . $id . '", %1$s); Ext.get("' . $id . '").select(".ux-menu-sub").removeClass("ux-menu-init-hidden"); }; if (!Ext.isIE || typeof(MooTools) == "undefined" || typeof(MooTools.More) == "undefined") Ext.onReady(_menuInit); else window.addEvent("domready", _menuInit); })();', AriJSONHelper::encode($config))); } AriExtMenuHelper::addCustomStyles($id, $params); }
/* * ARI Ext menu Joomla! module * * @package ARI Ext Menu Joomla! module. * @version 1.0.0 * @author ARI Soft * @copyright Copyright (c) 2009 www.ari-soft.com. All rights reserved * @license GNU/GPL (http://www.gnu.org/copyleft/gpl.html) * */ defined('_JEXEC') or die('Restricted access'); require_once dirname(__FILE__) . '/mod_ariextmenu/kernel/class.AriKernel.php'; AriKernel::import('Utils.Utils'); AriKernel::import('Menu.Menu'); AriKernel::import('Web.HtmlHelper'); AriKernel::import('ExtMenu.ExtMenu'); AriKernel::import('Template.Template'); $menu = new AriMenu($params->get('menutype', 'mainmenu')); $menuLevel = $menuStartLevel = intval($params->get('startLevel', 0), 10); $menuEndLevel = intval($params->get('endLevel', 0), 10); $uniqueId = (bool) $params->get('uniqId', false); $activeMenuItem = $menu->getActive(); // Template parameters $menuDirection = $params->get('direction'); $menuId = !$uniqueId ? 'ariext' . $module->id : uniqid('aext', false); $hlCurrentItem = (bool) $params->get('highlightCurrent', true) && !is_null($activeMenuItem); $hlOnlyActiveItems = (bool) $params->get('onlyActiveItems', false); $activeTopId = $activeMenuItem ? $activeMenuItem->id : 0; AriExtMenuHelper::initMenu($menuId, $params); require JModuleHelper::getLayoutPath('mod_ariextmenu');