joomla_test/modules/mod_roknavmenu/fields/themelist.php

112 lines
3.5 KiB
PHP
Raw Normal View History

2020-01-02 22:20:31 +07:00
<?php
/**
* @version 2.0.7 November 5, 2013
* @author RocketTheme http://www.rockettheme.com
* @copyright Copyright (C) 2007 - 2013 RocketTheme, LLC
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
defined('JPATH_BASE') or die;
jimport('joomla.html.html');
jimport('joomla.filesystem.folder');
jimport('joomla.form.formfield');
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Supports an HTML select list of folder
*
* @package Joomla.Framework
* @subpackage Form
* @since 1.6
*/
class JFormFieldThemeList extends JFormFieldList
{
/**
* The form field type.
*
* @var string
* @since 1.6
*/
public $type = 'ThemeList';
protected $_front_side_template;
/**
* Method to get the field options.
*
* @return array The field option objects.
* @since 1.6
*/
protected function getOptions()
{
$doc =JFactory::getDocument();
$version = new JVersion();
if (version_compare($version->getShortVersion(), '3.0', '<')){
$js = "window.addEvent('load', function() {
$('" . $this->id . "').addEvent('change', function(){
var sel = this.getSelected().get('value');
$$('.themeset').setStyle('display','none');
$$('#themeset-'+sel).setStyle('display','block');
}).fireEvent('change');
});";
} else {
$js = "
window.addEvent('load', function() {
var chzn = $('" . $this->id . "_chzn');
if(chzn!=null){
$$('.themeset').setStyle('display','none');
$$('#themeset-" . $this->value . "').setStyle('display','block');
$('" . $this->id . "_chzn').addEvent('click', function(){
$$('.themeset').setStyle('display','none');
var text = $('" . $this->id . "_chzn').getElement('span').get('text');
var options = $('" . $this->id . "').getElements('option');
options.each(function(option) {
var optText = String(option.get('text'));
var optValue = String(option.get('value'));
if(text == optText){
var sel = '#themeset-'+optValue;
}
$$(sel).setStyle('display','block');
});
}).fireEvent('click');
}
});";
}
$doc->addScriptDeclaration($js);
$options = array();
// Load 2x Catalog Themes
require_once(JPATH_ROOT . "/modules/mod_roknavmenu/lib/RokNavMenu.php");
RokNavMenu::loadCatalogs();
foreach (RokNavMenu::$themes as $theme_name => $theme_info)
{
$options[] = JHtml::_('select.option', $theme_name, $theme_info['fullname']);
}
return $options;
}
function _getFrontSideTemplate() {
if (empty($this->_front_side_template)) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Get the current default template
$query->select('template');
$query->from('#__template_styles');
$query->where('client_id = 0 AND home = 1');
$db->setQuery((string)$query);
$defaultemplate = $db->loadResult();
$this->_front_side_template = $defaultemplate;
}
return $this->_front_side_template;
}
}