Exemplo n.º 1
0
	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");

	}
Exemplo n.º 2
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;
 }