Ejemplo n.º 1
0
 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;
 }