function fetchElement($name, $value, &$node, $control_name) { jimport( 'joomla.filesystem.folder' ); jimport( 'joomla.filesystem.file' ); $filter = $node->attributes('filter'); $exclude = $node->attributes('exclude'); $options = array (); // Load 2x Catalog Themes require_once(dirname(__FILE__) . "/../RokNavMenu.php"); RokNavMenu::setFrontSideTemplate(); RokNavMenu::loadCatalogs(); foreach(RokNavMenu::$themes as $theme_name => $theme_info){ $options[] = JHTML::_('select.option', $theme_name, $theme_info['fullname']); } // path to directory $template_themes_path = '/templates/'.$this->_getFrontSideTemplate().'/html/mod_roknavmenu/themes'; $template_themes_full_path = JPath::clean(JPATH_ROOT.$template_themes_path); $template_theme_text = JText::_("Template theme"); $module_themes_path = '/modules/mod_roknavmenu/themes'; $module_themes_full_path = JPath::clean(JPATH_ROOT.$module_themes_path); $module_theme_text = JText::_("Default theme"); /** * check for old school formatter and layout */ if ($this->_getOldFormatter() || $this->_getOldLayout()) { return JText::sprintf("ROKNAVMENU.MSG.USING_OLD_FORMATTERS_AND_LAYOUTS", ($this->_getOldFormatter())? '<br/>'.$this->_getOldFormatter():'', ($this->_getOldLayout())?'<br/>'.$this->_getOldLayout():''); } if (!$node->attributes('hide_none')) { $options[] = JHTML::_('select.option', '-1', '- '.JText::_('Do not use').' -'); } if (!$node->attributes('hide_default')) { $options[] = JHTML::_('select.option', '', '- '.JText::_('Use default').' -'); } /** Get the Template Themes **/ if (JFolder::exists($template_themes_full_path) && !JFile::exists($template_themes_full_path."/catalog.php") ) { $folders = JFolder::folders($template_themes_full_path, $filter); if ( is_array($folders) ) { reset($folders); while (list($key, $val) = each($folders)) { $folder =& $folders[$key]; if ($exclude) { if (preg_match( chr( 1 ) . $exclude . chr( 1 ), $folder )) { continue; } } $options[] = JHTML::_('select.option', $template_themes_path.DS.$folder, $template_theme_text." - ".$folder); } } } /** Get the Default Themes **/ if (JFolder::exists($module_themes_full_path) && !JFile::exists($module_themes_full_path."/catalog.php")) { $folders = JFolder::folders($module_themes_full_path, $filter); if ( is_array($folders) ) { reset($folders); while (list($key, $val) = each($folders)) { $folder =& $folders[$key]; if ($exclude) { if (preg_match( chr( 1 ) . $exclude . chr( 1 ), $folder )) { continue; } } $options[] = JHTML::_('select.option', $module_themes_path.DS.$folder, $module_theme_text. " - ". $folder); } } } return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'value', 'text', $value, "param$name"); }
function fetchElement($name, $value, &$node, $control_name) { jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $doc = JFactory::getDocument(); $lang = JFactory::getLanguage(); $parameter_sets = array(); $filter = $node->attributes('filter'); $exclude = $node->attributes('exclude'); // Load 2x Catalog Themes require_once dirname(__FILE__) . "/../RokNavMenu.php"; RokNavMenu::setFrontSideTemplate(); RokNavMenu::loadCatalogs(); foreach (RokNavMenu::$themes as $theme_name => $theme_info) { $lang_file_path = JPath::clean($theme_info['path'] . '/language/' . $lang->_lang . '.ini'); $this->loadLangFile($lang_file_path, $theme_info['fullname']); $parms_file_path = JPath::clean($theme_info['path'] . '/parameters.xml'); if (JFile::exists($parms_file_path)) { $parameters = new JForm($this->_parent->_raw, JPath::clean($parms_file_path)); $parameter_sets[$theme_name] = $parameters->getParams(); } } // path to directory $template_themes_path = '/templates/' . $this->_getFrontSideTemplate() . '/html/mod_roknavmenu/themes'; $template_themes_full_path = JPath::clean(JPATH_ROOT . $template_themes_path); $template_theme_text = JText::_("Template theme"); $module_themes_path = '/modules/mod_roknavmenu/themes'; $module_themes_full_path = JPath::clean(JPATH_ROOT . $module_themes_path); $module_theme_text = JText::_("Default theme"); $module_js_path = JURI::root(true) . '/modules/mod_roknavmenu/lib/js'; $doc->addScript($module_js_path . "/switcher" . $this->_getJSVersion() . ".js"); $doc->addScriptDeclaration("window.addEvent('domready', function() {new NavMenuSwitcher('paramtheme');});"); /** Get the Template Themes parameters **/ if (JFolder::exists($template_themes_full_path) && !JFile::exists($template_themes_full_path . "/catalog.php")) { $folders = JFolder::folders($template_themes_full_path, $filter); if (is_array($folders)) { reset($folders); while (list($key, $val) = each($folders)) { $folder =& $folders[$key]; if ($exclude) { if (preg_match(chr(1) . $exclude . chr(1), $folder)) { continue; } } $theme_path = $template_themes_path . '/' . $folder; $langfile = JPath::clean(JPATH_ROOT . $theme_path . '/language/' . $lang->_lang . '.ini'); if (JFile::exists($langfile)) { $lang->_load($langfile, 'roknavmenu_theme_template_' . $folder); } $param_file_path = $theme_path . '/parameters.xml'; if (JFile::exists(JPath::clean(JPATH_ROOT . $param_file_path))) { $parameters = new JForm($this->_parent->_raw, JPath::clean(JPATH_ROOT . $param_file_path)); $parameter_sets[$theme_path] = $parameters->getParams(); } } } } /** Get the Default Themes parameters **/ if (JFolder::exists($module_themes_full_path) && !JFile::exists($module_themes_full_path . "/catalog.php")) { $folders = JFolder::folders($module_themes_full_path, $filter); if (is_array($folders)) { reset($folders); while (list($key, $val) = each($folders)) { $folder =& $folders[$key]; if ($exclude) { if (preg_match(chr(1) . $exclude . chr(1), $folder)) { continue; } } $theme_path = $module_themes_path . '/' . $folder; $langfile = JPath::clean(JPATH_ROOT . $theme_path . '/language/' . $lang->_lang . '.ini'); if (JFile::exists($langfile)) { $lang->_load($langfile, 'roknavmenu_theme_module_' . $folder); } $param_file_path = $theme_path . '/parameters.xml'; $parameter_sets[$theme_path] = array(); if (JFile::exists(JPath::clean(JPATH_ROOT . $param_file_path))) { $parameters = new JForm($this->_parent->_raw, JPath::clean(JPATH_ROOT . $param_file_path)); $parameter_sets[$theme_path] = $parameters->getParams(); } } } } $parameter_renders = array(); reset($parameter_sets); $html = ''; // render a parameter set while (list($key, $val) = each($parameter_sets)) { $params =& $parameter_sets[$key]; $cls = basename($key); if (empty($params)) { $html .= '<p class="' . $cls . '"><span>' . JText::_('ROKNAVMENU_MSG_NO_THEME_OPTIONS_AVAILABLE') . ' </span></p>'; } else { //render an individual parameter for ($i = 0; $i < count($params); $i++) { $param =& $params[$i]; $html .= '<p class="' . $cls . '"><span>' . $param[0] . ':</span>' . $param[1] . '</p>'; } } } return $html; }