Example #1
0
    function fetchElement($name, $value, &$node, $control_name)
    {
        if ($node['secret'] && !JRequest::getBool($node['secret'])) {
            return null;
        }
        $order = $node['order'] == 'after' ? 'after' : 'before';
        $label = $node['label'] ? $node['label'] : 'Layout Parameters';
        $doc =& JFactory::getDocument();
        $style = "\n\t\t#{$control_name}{$name}-tabs {\n\t\t\tborder-top-width: 0px;\n\t\t\tborder-right-width: 0px;\n\t\t\tborder-bottom-width: 0px;\n\t\t\tborder-left-width: 0px;\n\t\t}";
        $doc->addStyleDeclaration($style);
        $id = JRequest::getInt('id');
        if (!$id) {
            $id = reset(JRequest::getVar('cid', array()));
        }
        $db =& JFactory::getDBO();
        $query = 'SELECT params' . ' FROM #__modules' . ' WHERE id =' . $id;
        $db->setQuery($query);
        $values = $db->loadResult();
        //Get the module name, in a slightly hacky way.
        $module = JRequest::getWord('module');
        $mod =& JTable::getInstance('Module', 'JTable');
        if ($id) {
            $mod->load($id);
            $modname = $mod->module;
        } elseif ($module) {
            $modname = $module;
        }
        nimport('napi.html.parameter');
        $load = new NParameter($values, JPATH_ROOT . DS . 'modules' . DS . $modname . DS . $modname . '.xml');
        if (!$node->children()) {
            $content = $load->renderFieldset('params', $value, $node['suffix']);
            $container = $node['panel'] ? "\n\t\t\t<div id='{$control_name}{$name}' class='panel ui-widget ui-widget-content'>\n\t\t\t\t<h3 class='title jpane-toggler' id='{$name}-page'>\n\t\t\t\t\t<span>" . JFilterOutput::ampReplace($label) . "</span>\n\t\t\t\t</h3>\n\t\t\t\t<div class='jpane-slider ui-widget-content content' style='background:transparent;'>{$content}</div>\n\t\t\t</div>" : " <div id='{$control_name}{$name}'>{$content}</div>";
            $script = "\n\t\t\t\tjQuery.noConflict();\n\t \n\t\t\t\tjQuery(document).ready(function(\$){\n\t\t\t\t\t\$('#{$control_name}{$name}').closest('.pane-sliders > .panel').{$order}(\$('#{$control_name}{$name}'));\n\t\t\t\t});\n\t\t\t\t";
            $doc->addScriptDeclaration($script);
        } else {
            $content = null;
            $panel = null;
            $title = null;
            $container = $node['panel'] ? " <div id='{$control_name}{$name}' class='panel ui-widget ui-widget-content'>" : " <div id='{$control_name}{$name}'>";
            $opt['useCookie'] = $node['cookie'] ? '\'' . $node['cookie'] . '\'' : null;
            JHTML::script('tabs.js');
            $panel .= JPaneTabs::startPane($control_name . $name . 'tabs');
            foreach ($node->children() as $group) {
                $content = $load->renderFieldset('params', $group['value'], $node['suffix']);
                $title .= $node['panel'] ? ' <span>' . JFilterOutput::ampReplace($group->data()) . '</span>' : JFilterOutput::ampReplace($group->data());
                $panel .= $node['panel'] ? JPaneTabs::startPanel(JFilterOutput::ampReplace($group->data()), $group['value']) . $content . JPaneTabs::endPanel() : $content;
            }
            $panel .= JPaneTabs::endPane();
            $container .= $node['panel'] ? '<h3 class="title jpane-toggler" id="' . $value . '-page"><span>' . JFilterOutput::ampReplace($label) . '</span></h3>
					<div class="jpane-slider jpane-current ui-widget-content content" style="background:transparent;">' . $panel . '</div>
				</div>' : $panel . '</div>';
            JHTML::script('accordion.fix.js', 'media/napi/js/');
            JHTML::script('tabs.fix.js', 'media/napi/js/');
            $script = "\n\t\tjQuery.noConflict();\n \n\t\tjQuery(document).ready(function(\$){\n\t\t\t\$('#{$control_name}{$name}').closest('.pane-sliders > .panel').{$order}(\$('#{$control_name}{$name}'));\n\t\t});";
            $doc->addScriptDeclaration($script);
            $doc->addStyleDeclaration('.jpane-current div.current { padding: 0px 0px; border-width:0px; border-top-width:1px;}');
        }
        return $container;
    }
    function fetchElement($name, $value, &$node, $control_name)
    {
        if ($node['secret'] && !JRequest::getBool($node['secret'])) {
            return null;
        }
        $order = $node['order'] == 'after' ? 'after' : 'before';
        $label = $node['label'] ? $node['label'] : 'Layout Parameters';
        $doc =& JFactory::getDocument();
        $style = "\n\t\t#{$control_name}{$name}-tabs {\n\t\t\tborder-top-width: 0px;\n\t\t\tborder-right-width: 0px;\n\t\t\tborder-bottom-width: 0px;\n\t\t\tborder-left-width: 0px;\n\t\t}";
        $doc->addStyleDeclaration($style);
        $id = JRequest::getInt('id');
        if (!$id) {
            $id = reset(JRequest::getVar('cid', array()));
        }
        $db =& JFactory::getDBO();
        $query = 'SELECT params' . ' FROM #__modules' . ' WHERE id =' . $id;
        $db->setQuery($query);
        $values = $db->loadResult();
        //Get the module name, in a slightly hacky way.
        $module = JRequest::getWord('module');
        $mod =& JTable::getInstance('Module', 'JTable');
        if ($id) {
            $mod->load($id);
            $modname = $mod->module;
        } elseif ($module) {
            $modname = $module;
        }
        nimport('napi.html.parameter');
        $load = new NParameter($values, JPATH_ROOT . DS . 'modules' . DS . $modname . DS . $modname . '.xml');
        if (!$node->children()) {
            $content = $load->renderFieldset('params', $value, $node['suffix']);
            $container = $node['panel'] ? "\n\t\t\t<div id='{$control_name}{$name}' class='panel ui-widget ui-widget-content'>\n\t\t\t\t<h3 class='title jpane-toggler' id='{$name}-page'>\n\t\t\t\t\t<span>" . JFilterOutput::ampReplace($label) . "</span>\n\t\t\t\t</h3>\n\t\t\t\t<div class='jpane-slider ui-widget-content content' style='background:transparent;'>{$content}</div>\n\t\t\t</div>" : " <div id='{$control_name}{$name}'>{$content}</div>";
            $script = "\n\t\t\t\tjQuery.noConflict();\n\t \n\t\t\t\tjQuery(document).ready(function(\$){\n\t\t\t\t\t\$('#{$control_name}{$name}').closest('.pane-sliders > .panel').{$order}(\$('#{$control_name}{$name}'));\n\t\t\t\t});\n\t\t\t\t";
            $doc->addScriptDeclaration($script);
        } else {
            $content = null;
            $panel = null;
            $title = null;
            $container = $node['panel'] ? " <div id='{$control_name}{$name}' class='panel ui-widget ui-widget-content'>" : " <div id='{$control_name}{$name}'>";
            $opt['useCookie'] = $node['cookie'] ? '\'' . $node['cookie'] . '\'' : null;
            JHTML::script('tabs.js');
            $panel .= JPaneTabs::startPane($control_name . $name . 'tabs');
            foreach ($node->children() as $group) {
                $content = $load->renderFieldset('params', $group['value'], $node['suffix']);
                $title .= $node['panel'] ? ' <span>' . JFilterOutput::ampReplace($group->data()) . '</span>' : JFilterOutput::ampReplace($group->data());
                $panel .= $node['panel'] ? JPaneTabs::startPanel(JFilterOutput::ampReplace($group->data()), $group['value']) . $content . JPaneTabs::endPanel() : $content;
            }
            $panel .= JPaneTabs::endPane();
            $container .= $node['panel'] ? '<h3 class="title jpane-toggler" id="' . $value . '-page"><span>' . JFilterOutput::ampReplace($label) . '</span></h3>
					<div class="jpane-slider jpane-current ui-widget-content content" style="background:transparent;">' . $panel . '</div>
				</div>' : $panel . '</div>';
            $script = "\n\t\tjQuery.noConflict();\n \n\t\tjQuery(document).ready(function(\$){\n\t\t\t\$('#{$control_name}{$name}').closest('.pane-sliders > .panel').{$order}(\$('#{$control_name}{$name}'));\n\t\t});\n\t\t\t\t\n\t\t\t\t\n\t\twindow.addEvent('domready', function(){ \n\t\t\t\n\t\t\tvar dur = 600;\n\t\t\tvar trans = Fx.Transitions.Quad.easeInOut;\n\t\t\tvar el = \$\$('#{$control_name}{$name} div.jpane-slider').getFirst();\n\t\t\tvar fx = new Fx.Styles(el, {duration: dur, transition: trans});\n\t\t\t\n\t\t\t\$\$('dl.tabs').each(function(tabs){ new JTabs(tabs, {\n\t\t\tonActive: function(title, description){\n                description.effects({duration: dur, transition: trans}).start({'opacity': 1, 'height': description.getSize().scrollSize.y});\n                title.addClass('open').removeClass('closed');\n\t            el.effects({duration: dur, transition: trans}).start({'height': description.getSize().scrollSize.y + title.getParent().getSize().scrollSize.y + title.getParent().getStyle('margin-top').toInt()});\n            },\n            onBackground: function(title, description){\n            \tdescription.effects({duration: dur, transition: trans}).start({'opacity': 0});\n            \tdescription.effects({duration: dur, transition: trans}).start({'height': 0});\n                title.addClass('closed').removeClass('open');\n            },\n            cookie: 'showcase'}); }); \n        });";
            $doc->addScriptDeclaration($script);
            $doc->addStyleDeclaration('.jpane-current div.current { padding: 0px 0px; border-width:0px; border-top-width:1px;}');
        }
        return $container;
    }
Example #3
0
 function fetchElement($name, $value, &$node, $control_name)
 {
     $howmany = $value;
     $doc =& JFactory::getDocument();
     $root = JURI::root();
     $style = "\n#{$control_name}{$name}-pane {\n\t\tborder-top-width: 0px;\n\t\tborder-right-width: 0px;\n\t\tborder-bottom-width: 0px;\n\t\tborder-left-width: 0px;\n\t}\n\t\n\t#{$control_name}{$name}-newtab {\n\t\tposition: relative;\n\t}\n\t\n\t.prev-class, .next-active {\n\t\topacity: 0.5;\n\t}\n\t\ndl.tabs dt.newtab {\n\tbackground-color: #e1e1e1;\n\tbackground-image: none;\n\tcolor: #5f5f5f;\n\tcursor: pointer;\n}\n\ndl.tabs dt.newtab span {\n\tbackground: url(" . $root . "modules/mod_ninjatabs/images/newtab.png) no-repeat 0 0;\n\tborder-color: #3c4785;\n\tpadding-right: 19px;\n\theight: 0;\n\tmargin-right: -7px;\n}\n\n\n\ndl.tabs dt.newtab {\n\twidth: 19px;\n\tpadding-right: 0;\n\tpadding-left: 7px;\n\tbackground: #fff 0;\n\topacity: 0.65;\n\tborder-width: 0;\n\tmargin: 1px 4px;\n}\n\ndl.tabs dt.newtab:hover {\n\topacity: 1;\n\tborder-width: 1px;\n\tmargin: 0 3px;\n}\n\n.panel dl.tabs dt {\n\tpadding-left: 24px;\n\tborder-bottom: 0px;\n\theight:15px;\n}\n\n.nf-tab-close {\n\tdisplay:none;\n\theight: 1.8em;\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n}\n\n.nf-tab-close span.ui-state-default {\n\tdisplay: block;\n\tleft: 50%;\n\tmargin-left: -8px;\n\tmargin-top: -7px;\n\tposition: absolute;\n\ttop: 50%;\n\ttext-indent: -99999px;\n}\n\n.nf-button { outline: 0; margin:0 4px 0 0; padding: .4em 1em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\n\t.nf-button .ui-icon { position: absolute; top: 50%; margin-top: -8px; left: 50%; margin-left: -8px; }\n\t\n\ta.nf-button { float:left; }\n\t\n\t/* remove extra button width in IE */\n\tbutton.nf-button { width:auto; overflow:visible; }\n\t\n\t.nf-button-icon-left { padding-left: 2.1em; }\n\t.nf-button-icon-right { padding-right: 2.1em; }\n\t.nf-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; }\n\t.nf-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; }\n\t\n\t.nf-button-icon-solo { display:block; width:8px; text-indent: -9999px; }\t /* solo icon buttons must have block properties for the text-indent to work */\t\n\t\n\t.nf-buttonset { float:left; }\n\t.nf-buttonset .nf-button { float: left; }\n\t.nf-buttonset-single .nf-button, \n\t.nf-buttonset-multi .nf-button { margin-right: -1px;}\n\t\n\t.nf-toolbar { padding: .5em; margin: 0;  }\n\t.nf-toolbar .nf-buttonset { margin-right:1.5em; padding-left: 1px; }\n\t.nf-toolbar .nf-button { font-size: 1em;  }\n\n\t/*demo page css*/\n\th2 { clear: both; padding-top:1.5em; margin-top:0; } \n\t.strike { text-decoration: line-through; }\n\t";
     $doc->addStyleDeclaration($style);
     $doc->addScript("http://*****:*****@');
     $looptitle = $this->javascriptOnEval('<dt id="' . $control_name . $name . 'tab-@" style="cursor: pointer;" class=\\"closed\\"><span>' . $title . '</span></dt>');
     //$newTabGroup = $this->javascriptHTML('<p style="">'.$newTabGroup->render('params', $group, '@@').'</p>');
     //echo print_r($newTabGroup);
     //Recover head data
     $doc->addScriptDeclaration($headData['script']['text/javascript']);
     echo '</pre>';
     $script = "\nfunction addTabGroup(tab) {\n\ttab = (tab - 0) + 1;\n}\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar tabtitle = '{$looptitle}';\n\t\t\t\t\t\tvar tabbody  = '{$looptitle}';\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\$('.newtab').click(function(){\n\t\t\t\t\t\t\tvar changetitle = tabtitle;\n\t\t\t\t\t\t\tvar changebody = tabbody;\n\t\t\t\t\t\t\tvar test = \$('#{$control_name}{$name}-tabs').attr('id');\n\t\t\t\t\t\t\tvar test = test.replace(/paramstablooptab-/g, ' ');\n\t\t\t\t\t\t\t//var test = (test - 0) + 1;\n\t\t\t\t\t\t\tvar thisval = \$(this).prev().attr('id').split(\"-\");\n\t\t\t\t\t\t\t//console.log(thisval);\n\t\t\t\t\t\t\tthisval = jQuery.makeArray(thisval);\n\t\t\t\t\t\t\t//console.log(thisval);\n\t\t\t\t\t\t\tthisval++;\n\t\t\t\t\t\t\tidArray = [];\n//\t\t\t\t\t\t\tfor (i = 0; i < 10; i++)\n//\t\t\t\t\t\t\t{\n//\t\t\t\t\t\t\t\tvar idArray = \$('#{$control_name}{$name}-tabs dt:eq('+i+')').attr('id');\n//\t\t\t\t\t\t\t\tconsole.log('The number is '+ i + idArray);\n//\t\t\t\t\t\t\t\ti++;\n//\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\ttest = \$('#{$control_name}{$name}-tabs dt:not(.newtab)');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar testlength = test.length;\n\t\t\t\t\t\t\t//test = test.replace(/paramstablooptab-/g, ' ');\n\t\t\t\t\t\t\tjQuery.each(test, function(i, n) {\n\t\t\t\t\t\t\t\tthisval = \$(n).attr('id').replace(/paramstablooptab-/g, ' ');\t\t\t\t\t\t      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t        //return (thisval != i);\n\t\t\t\t\t\t        if(!jQuery.inArray(i, test))\n\t\t\t\t\t\t        {\n\t\t\t\t\t\t        \t//console.log('inArray');\t\n\t\t\t\t\t\t        } else if(i===testlength) {\n\t\t\t\t\t\t        \t//console.log('testlength '+testlength + ' i '+i);\n\t\t\t\t\t\t        } else {\n\t\t\t\t\t\t        \t//console.log('true');\n\t\t\t\t\t\t        }\n\t\t\t\t\t\t    });\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\taddTabGroup('myname');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\$(title.replace(/@/g, thisval)).insertBefore(\$(this));\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\$('#{$control_name}{$name}-tabs dt.closed:last').trigger('click');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\$('#{$control_name}{$name}-tab-'+thisval).trigger('click');\n\t\t\t\t\t\t\t//\$('#{$control_name}{$name}-tabs').sortable( 'refresh' );\n\t\t\t\t\t\t\t//\$('#footer').append('<scr' + 'ipt>'+tabscript+'</scr' + 'ipt>');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t\$('.tabs .delete-tab').live('click', function(){\n\t\t\t\t\t\t//console.log(\$('.tabs.ui-sorable dt').length);\n\t\t\t\t\t\tif(\$('#{$control_name}{$name}-tabs .ui-sorable dt').length != 1) {\n\t\t\t\t\t\t\t//console.log(\$('.tabs.ui-sorable dt').length);\n\t\t\t\t\t\t\tvar removeMe = \$(this).parent('dt').attr('id');\n\t\t\t\t\t\t\t\$('#paramstabloop-tabs dt:only-child').slideToggle();\n\t\t\t\t\t\t\t\$('#'+removeMe).stop().fadeOut('normal', function(){ \n\t\t\t\t\t\t\t\t\$(this).remove();\n\t\t\t\t\t\t\t\t\$('.tabs dt:first').removeClass('closed').addClass('open');\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\$('.'+removeMe).stop().fadeOut('normal', function(){ \n\t\t\t\t\t\t\t\t\$(this).remove(); \n\t\t\t\t\t\t\t\t\$('.panel .current dd:first').fadeIn();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t});";
     $doc->addScriptDeclaration($script);
     return '&nbsp;';
 }
Example #4
0
 function html($html, $node, $start = null, $end = null, $panes = array())
 {
     global $option;
     $doc =& JFactory::getDocument();
     //$doc->addScript(JURI::root(true).'/media/napi/js/accordion.fix.js');
     //$doc->addScript(JURI::root(true).'/media/napi/js/tabs.fix.js');
     switch (get_class($this->_parent)) {
         default:
         case 'JParameter':
             $start = '</td></tr></table></div></div></div>';
             $parent = $this->_parent;
             $xml = $parent->_xml;
             $params = new NParameter($parent);
             nimport('napi.html.pane');
             $pane = NPane::getInstance('sliders');
             //$start .= $pane->startPane($node['id']?$node['id']:( $node['name'] ? $node['name'] : $node['type'] ).'-pane');
             foreach ($params->_xml as $group => $object) {
                 if ($object->attributes($option) != 'hide' && ($object['if'] ? $this->checkIf($object) : true) && $group != '_default') {
                     //Create default title
                     $title = JText::sprintf($object['title'] ? $object['title'] : '%s Parameters', ucwords($object['group']));
                     //Create tabtitle
                     $tabtitle = JText::sprintf($object['tabtitle'] ? $object['tabtitle'] : '%s', ucwords($object['group']));
                     //Check a new sliders instance is started
                     if ($object['sliders'] != 'end' && $object['sliders']) {
                         $sliders = NPane::getInstance('sliders');
                         $html .= $sliders->startPane($group . '-pane');
                     }
                     //Check a new slider instance is started
                     if (($object['slider'] !== 'false' && $object['slider'] != 'end' || $object['slider'] == 'start' && $object['slider']) && $sliders) {
                         $html .= $sliders->startPanel($title, $object['id'] ? $object['id'] : $group . '-page');
                     }
                     //Check a new tabs instance is started
                     if ($object['tabs'] != 'end' && $object['tabs']) {
                         $tabs = NPane::getInstance('tabs', array('useCookie' => '\'' . $node['name'] . '\''));
                         $html .= $tabs->startPane($group . '-pane');
                     }
                     //Check a new tab instance is started
                     if (($object['tab'] !== 'false' && $object['tab'] != 'end' || $object['tab'] == 'start' && $object['tab']) && isset($tabs)) {
                         $html .= $tabs->startPanel($tabtitle, $object['id'] ? $object['id'] : $group . '-page');
                     }
                     //							if($object['panel'])
                     //							{
                     //								$html .= $pane->endPane();
                     //								$id = !$object['id']?$group.'-pane':$object['id'];
                     //								$html .= $pane->startPane($id);
                     //							}
                     //$html .= $pane->startPanel(JText::sprintf($object['title']?$object['title']:'%s Parameters', ucwords($object['group'])), $object['id']?$object['id']:$group.'-page');
                     $html .= $object['render'] == 'inline' ? $params->renderInline('params', $group) : $params->renderFieldset('params', $group);
                     //$html .= $pane->endPanel();
                     //Check a new tab instance is ended
                     if (($object['tab'] !== 'false' && $object['tab'] != 'start' || $object['tab'] == 'end' && $object['tab']) && isset($tabs)) {
                         $html .= $tabs->endPanel();
                     }
                     //Check if tabs instance is ended
                     if ($object['tabs'] != 'start' && $object['tabs'] && isset($tabs)) {
                         $html .= $tabs->endPane();
                         unset($tabs);
                     }
                     //Check a new slider instance is ended
                     if (($object['slider'] !== 'false' && $object['slider'] != 'start' || $object['slider'] == 'end' && $object['slider']) && $sliders) {
                         $html .= $sliders->endPanel();
                     }
                     //Check if sliders instance is ended
                     if ($object['sliders'] != 'start' && $object['sliders'] && $sliders) {
                         $html .= $sliders->endPane();
                         unset($sliders);
                     }
                 }
             }
             //					gettype($html)!='array' ? $html = array() : '';
             //					foreach($this->_panels as $group => $panel)
             //					{
             //						if($group=='sliders'||$group=='tabs')
             //						{
             //							$html[] = $$group->startPane($group.'-pane');
             //							foreach($panel as $innergroup => $innerpanel)
             //							{
             //								$html[] = $$group->startPanel(JText::_('Parameters '.$innergroup), $innergroup);
             //$html[] = $pane->startPane($test.'-pane');
             //								if($innergroup=='sliders'||$innergroup=='tabs')
             //								{
             //									$html[] = $$innergroup->startPane($innergroup.'-panse');
             //									foreach($innerpanel as $childgroup => $childpanel)
             //									{
             //										$html[] = $$innergroup->startPanel($childgroup, $childgroup.'ss');
             //$html[] = $pane->startPane($test.'-pane');
             //										$html[] = $this->_groups[$childgroup];
             //$me = 'sliders';
             //die('<pre>'.print_r($$me->startPanel('me'), true).'</pre>');
             //										$html[] = $$innergroup->endPanel();
             //									}
             //									$html[] = $$innergroup->endPane();
             //								} else {
             //
             //									$html[] = $this->_groups[$innergroup];
             //								}
             //								$html[] = $$group->endPanel();
             //							}
             //$me = 'sliders';
             //die('<pre>'.print_r($$me->startPanel('me'), true).'</pre>');
             //							$html[] = $$group->endPane();
             //						}
             //					}
             //die('<pre>'.print_r($this->_panels, true).'</pre>');
             //$end .= $pane->endPane();
             $params->_napi = true;
             $this->_parent->_napi = true;
             //$start .= print_r($params);
             //$end .= '<pre>'.print_r($this->_parent, true).'</pre>';
             JHTML::_('behavior.mootools');
             $doc->addStyleDeclaration('#menu-pane, #deletediv { display:none; }');
             $doc->addScriptDeclaration('window.addEvent(\'domready\', function(){ $(\'deletediv\').remove(); $(\'menu-pane\').remove(); });');
             $end = '<div id="deletediv"><div><div><table><tr><td class="paramlist_value">';
             break;
         case 'NParameter':
             break;
     }
     return $start . $html . $end;
 }
Example #5
0
    function fetchElement($name, $value, &$node, $control_name)
    {
        $doc =& JFactory::getDocument();
        $root = JURI::root();
        $namespace = $node['namespace'] ? $node['namespace'] : 'params';
        $group = $node->attributes('loopgroup', 'loop');
        $titleprefix = $node->attributes('titleprefix', 'Tab ');
        $placeholder = $node->attributes('placeholder', '');
        $path = null;
        switch (JRequest::getCmd('option')) {
            case 'com_modules':
                $id = JRequest::getInt('id');
                if (!$id) {
                    $id = reset(JRequest::getVar('cid', array()));
                }
                $db =& JFactory::getDBO();
                $query = 'SELECT params' . ' FROM #__modules' . ' WHERE id =' . $id;
                $db->setQuery($query);
                $values = $db->loadResult();
                //Get the module name, in a slightly hacky way.
                $module = JRequest::getWord('module');
                $mod =& JTable::getInstance('Module', 'JTable');
                if ($id) {
                    $mod->load($id);
                    $modname = $mod->module;
                } elseif ($module) {
                    $modname = $module;
                }
                $path = JApplicationHelper::getPath('mod0_xml', $modname);
                //deactivate autosave
                $autosave = false;
                if (JRequest::getInt($name . 'save') && $autosave) {
                    echo '<pre>';
                    $orderArray = JRequest::getVar($name . 'order', '', '', 'array');
                    echo "orderArray\n";
                    //print_r($orderArray);
                    $orderImplode = implode(',', $orderArray);
                    echo "\n orderImplode\n";
                    //print_r($orderImplode);
                    $loop = new NParameter($values, $path);
                    $loop->set($name, $orderImplode);
                    $valueArray = $loop->_registry['_default']['data'];
                    $paramArray = array();
                    foreach ($valueArray as $loopkey => $loopval) {
                        $paramArray[] = $loopkey . '=' . $loopval;
                    }
                    $orderQuery = implode("\n", $paramArray);
                    //echo $orderQuery;
                    $db =& JFactory::getDBO();
                    //$query = "UPDATE #__modules SET params = '$orderQuery' WHERE id = '$id'";
                    //$db->setQuery( $query );
                    //$done = $db->query();
                    echo '</pre>';
                }
                break;
            case 'com_k2' && is_null($node['values']):
                $id = JRequest::getInt('cid');
                $db =& JFactory::getDBO();
                $query = 'SELECT plugins' . ' FROM #__k2_items' . ' WHERE id =' . $id;
                $db->setQuery($query);
                $values = $db->loadResult();
                $path = JApplicationHelper::getPath('plg_xml', 'k2' . DS . $node['useroption']);
                break;
            default:
                jimport('joomla.environment.request');
                $id = $node['getvalue'] ? JRequest::getInt($node['getvalue']) : JRequest::getInt('id');
                if (!$id) {
                    $id = reset(JRequest::getVar('cid', array()));
                }
                $db =& JFactory::getDBO();
                $db->setQuery(sprintf($node['values'], $id));
                $values = $db->loadResult();
                $aid = $node['queryvalue'] ? JRequest::getInt($node['queryvalue']) : JRequest::getInt('id');
                //die(sprintf($node['values'], $id));
                $db->setQuery(sprintf($node['query'], $aid));
                $order = $titles = array();
                foreach ($db->loadObjectList() as $tmp) {
                    $titles[$tmp->id] = $tmp->name;
                    $order[] = $tmp->id;
                }
                $value = implode(',', $order);
                $nosort = true;
                $path = JApplicationHelper::getPath($node['getpath'], $node['plugingroup'] ? $node['plugingroup'] . DS . $node['useroption'] : $node['useroption']);
                break;
        }
        //die($values);
        $order = $node['order'] !== 0 ? $node['order'] : 1;
        $afteradd = $node->attributes('afteradd', '');
        $special = $this->_parent->get($name . '_special') ? $this->_parent->get($name . '_special') : '0';
        $loop = new NParameter($values, $path);
        $loopcontent = '';
        $looptitle = '';
        //$value = explode(', ', $value);
        //$switch = ( $value==='1'?'one': ( is_numeric($value)?'loop':'foreach' ) );
        $switch = 'foreach';
        $hiddenvalue = $value;
        switch ($switch) {
            case 'loop':
                $i = 0;
                for ($i = 0; $i < $value; $i++) {
                    $loop = new NParameter($values, $path);
                    $title = $this->_parent->get($node['titleparam'] . $i, $titleprefix . $i);
                    $looptitle .= $this->javascriptHTML('<li id="' . $control_name . $name . '-order_' . $i . '"><a id="mp_' . $control_name . $node['titleparam'] . $i . '" href="#' . $name . '_' . $i . '">' . $title . '</a></li>');
                    $loopcontent .= $this->javascriptHTML('<div id="' . $name . '_' . $i . '">' . $loop->renderFieldset($namespace, $group, $i) . '</div>');
                    //echo $this->javascriptHTML($this->setLoopName($placeholder, $i, ($tab->startPanel($titleprefix.($i+1), $name.'-tab').$loop->render($namespace, $group).$tab->endPanel())));
                }
                break;
            case 'one':
                $loop = new NParameter($values, $path);
                $title = $this->_parent->get($node['titleparam'] . $i, $titleprefix . $i);
                $looptitle .= $this->javascriptHTML('<li id="' . $control_name . $name . '-order_' . $i . '"><a id="mp_' . $control_name . $node['titleparam'] . $i . '" href="#' . $name . '_' . $i . '">' . $title . '</a></li>');
                $loopcontent .= $this->javascriptHTML('<div id="' . $name . '_' . $i . '">' . $loop->renderFieldset($namespace, $group, $i) . '</div>');
                break;
            case 'foreach':
                unset($i);
                $count = 0;
                $hiddenvalue = $value;
                $value = explode(',', $value);
                foreach ($value as $item => $i) {
                    $isDefault = $special == $count++ ? ' ui-helper-default-active' : '';
                    $loop = new NParameter($values, $path);
                    $title = $titles ? $titles[$i] : $this->_parent->get($node['titleparam'] . $i, $titleprefix . ($i != 0 ? $i : ''));
                    $loopcontrols = !$nosort ? '<span class="ui-helper-default ui-icon ui-icon-star' . $isDefault . '" rel="' . $i . '"></span><span class="remove ui-icon ui-icon-close">x</span>' : null;
                    $looptitle .= '<li id="' . $control_name . $name . '-order-items_' . $i . '">' . $loopcontrols . '<a id="mp_' . $control_name . $node['titleparam'] . $i . '" style="display:block;width:100%;" href="#' . $name . '_' . $i . '">' . $title . '</a></li>';
                    $loopcontent .= '<div id="' . $name . '_' . $i . '">' . $loop->renderFieldset($namespace, $group, $i) . '</div>';
                }
                unset($i);
                break;
        }
        $deletetip = JText::_('DELETETIP');
        $controls = !$nosort ? '<li class="add"><span class="ui-icon ui-icon-plusthick ui-helper-tabsadd"></span><span class="ui-icon ui-icon-minusthick ui-helper-tabsremove hasTip" title="' . $deletetip . ' "></span></li>' : null;
        $container = ' <div id="' . $control_name . $name . '" class="panel"><ul>' . $looptitle . $controls . '</ul>' . $loopcontent;
        //Backup
        $headData = $doc->getHeadData();
        $scriptBackup = $headData['script'];
        unset($doc->_script);
        //code for the add tab function
        $newTabGroup = new NParameter($values, $path);
        $title = $this->_parent->get($node['titleparam'], $titleprefix . ' @');
        $newTabGroup = $this->javascriptHTML($newTabGroup->renderFieldset($namespace, $group, '#{id}'));
        $headScript = $doc->getHeadData();
        $dynScript = $headScript['script']['text/javascript'];
        $dynScript = $this->javascriptOnEval($dynScript);
        unset($doc->_script);
        $insert = $node['inject'] ? $node['inject'] : 'insertBefore';
        $appendTo = $node['selector'] ? JText::sprintf($node['selector'], $order) : '#menu-pane > div:eq(' . $order . ')';
        //die($appendTo);
        $script = "\n\t\t\tjQuery.noConflict();\n \n\t\t\tjQuery(document).ready(function(\$){\n\t\t\t\t//Tabs are a waitin'\n\t\t\t\t\$('#{$control_name}{$name}')\n\t\t\t\t\t.{$insert}('{$appendTo}')\n\t\t\t\t\t.tabs({ \n\t\t\t\t\t\tshow: function(event, ui)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\$('.ui-tabs-panel:visible .ui-state-active:visible:not(.modal)').click();\n\t\t\t\t\t\t\t\$('#{$control_name}{$name}-default').val(ui.index);\n\t\t\t\t\t\t}, \n\t\t\t\t\t\ttabTemplate: '<li id=\"{$control_name}{$name}-order-items_#{label}\"><span class=\"ui-helper-default ui-icon ui-icon-star\"></span><span class=\"remove ui-icon ui-icon-close\">x</span><a id=\"mp_{$control_name}" . $node['titleparam'] . "#{label}\" href=\"#{href}\">Item #{label}</a></li>', \n\t\t\t\t\t\tpanelTemplate: '<div></div>'})\n\t\t\t\t\t.find('.ui-tabs-nav')";
        if (!$nosort) {
            $script .= ".sortable({\n\t\t\t\t\t\taxis:'y', \n\t\t\t\t\t\trevert: 'true', \n\t\t\t\t\t\tappendTo: 'parent',\n\t\t\t\t\t\tcancel: 'button, .add', \n\t\t\t\t\t\tupdate: function() \n\t\t\t \t\t\t\t{\n\t\t\t\t\t\t\t\tvar order = \$('#{$control_name}{$name}').find('.ui-tabs-nav').sortable('toArray');\n\t\t\t\t\t\t\t\tvar item = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\$(order).each(function() {\n\t\t\t\t\t\t\t\t\tvar res = this.match((/(.+)[-=_](.+)/));\n\t\t\t\t\t\t\t\t\tif(res) item.push(res[2]);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\titem.join(',');\n\t\t\t\t\t\t\t\tvar ordersave = item + '&option=com_modules&task=edit&id=18&{$name}\\save=1';\n\t\t\t\t\t\t\t\t\$('#{$control_name}{$name}-val').val(item);\n\t\t\t\t\t\t\t}, \n\t\t\t\t\t\tchange: function(event, ui) \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\$('#{$control_name}{$name} .ui-tabs-nav .add').appendTo('#{$control_name}{$name} .ui-tabs-nav');\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tstop: function(event, ui)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\$(ui.item).removeAttr('style');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t})";
        }
        $script .= ";\n\t\t\t\t\$('#{$control_name}{$name}').bind('tabsadd', function(event, ui) {\n\t\t\t\t\t\$('#{$control_name}{$name}').tabs('select', '#' + ui.panel.id);\n\t\t\t\t\tvar order = \$('#{$control_name}{$name}').find('.ui-tabs-nav').sortable('toArray');\n\t\t\t\t\t\t\tvar item = [];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\$(order).each(function() {\n\t\t\t\t\t\t\t\tvar res = this.match((/(.+)[-=_](.+)/));\n\t\t\t\t\t\t\t\tif(res) item.push(res[2]);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar contents = '{$newTabGroup}';\n\t\t\t\t\t\t\t\$(contents.replace(/#\\{id\\}/g, item[ui.index])).appendTo('#'+ui.panel.id);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\tvar order = \$('#{$control_name}{$name}').find('.ui-tabs-nav').sortable('toArray');\n\t\t\t\t\tvar item = [];\n\t\t\t\t\t\n\t\t\t\t\t\$(order).each(function() {\n\t\t\t\t\t\tvar res = this.match((/(.+)[-=_](.+)/));\n\t\t\t\t\t\tif(res) item.push(res[2]);\n\t\t\t\t\t});\n\t\t\t\t\titem.join(',');\n\n\t\t\t\t\t\$('#{$control_name}{$name}-val').val(item);\n\t\t\t\t\t{$afteradd}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tvar \$" . "tabs = \$('#{$control_name}{$name}').tabs();\n\t\t\t\tvar selected = \$" . "tabs.tabs('option', 'selected');\n\n\t\t\t\t\$('#{$control_name}{$name} .remove').live('uitabsremove', function(){\n\t\t\t\t\t{$afteradd}\n\t\t\t\t\tif( \$('#{$control_name}{$name} .ui-tabs-nav .remove').length === 1 ) return false;\n\t\t\t\t\tvar index = \$('#{$control_name}{$name} .ui-tabs-nav .remove').index(this);\n\t\t\t\t\tif( \$('#{$control_name}{$name} .ui-tabs-nav .remove').length === 2 ) \$('#{$control_name}{$name} .ui-tabs-nav .remove').fadeOut();\n\t\t\t\t\t\$('#{$control_name}{$name}').tabs('remove', index);\n\t\t\t\t\tvar order = \$('#{$control_name}{$name}').find('.ui-tabs-nav').sortable('toArray');\n\t\t\t\t\tvar item = [];\n\t\t\t\t\t\n\t\t\t\t\t\$(order).each(function() {\n\t\t\t\t\t\tvar res = this.match((/(.+)[-=_](.+)/));\n\t\t\t\t\t\tif(res) item.push(res[2]);\n\t\t\t\t\t});\n\t\t\t\t\titem.join(',');\n\n\t\t\t\t\t\$('#{$control_name}{$name}-val').val(item);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\$('#{$control_name}{$name} li.add .ui-helper-tabsadd').click(\n\t\t\t\t\tfunction(){ \t\n\t\t\t\t\t\t\t//\$('#{$control_name}{$name} .ui-tabs-nav .remove').fadeIn();\n\t\t\t\t\t\n\t\t\t\t\t\t\tvar order = \$('#{$control_name}{$name}').find('.ui-tabs-nav').sortable('toArray');\n\t\t\t\t\t\t\tvar item = [];\n\t\t\t\t\t\t\tvar newitem = [];\n\t\t\t\t\t\t\tvar ordercount = order.length;\n\t\t\t\t\t\t\tvar itemchecker = false;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\$(order).each(function(i) {\n\t\t\t\t\t\t\t\tvar res = this.match((/(.+)[-=_](.+)/));\n\t\t\t\t\t\t\t\tif(res) item.push(res[2]);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar checker = 0;\n\t\t\t\t\t\t\t\t\tfor (checker=0;checker<ordercount;checker++)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\$(item).each(function(i) {\n\t\t\t\t\t\t\t\t\t\t\tif(item[i]!=checker) { itemchecker = true; }\n\t\t\t\t\t\t\t\t\t\t\tif(item[i]==checker) { itemchecker = false; return false; }\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tif(itemchecker==true) { \n\t\t\t\t\t\t\t\t\t\t\tnewitem = checker; \n\t\t\t\t\t\t\t\t\t\t\t\$('#{$control_name}{$name}').tabs('add', '#items_'+newitem, newitem);\n\t\t\t\t\t\t\t\t\t\t\t\$('#{$control_name}{$name} .ui-tabs-nav .add').appendTo('#{$control_name}{$name} .ui-tabs-nav');\n\t\t\t\t\t\t\t\t\t\t\treturn true; \n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tvar valueme = \$('#{$control_name}{$name}-default').val();\n\t\t\t\t//\$('#{$control_name}{$name} li:nth-child('+\$('#{$control_name}{$name}-default').val()+')').click().mouseenter().mouseleave();\n\t\t\t\n\t\t\t\t\$('#{$control_name}{$name}').bind('tabsshow', function(event, ui) {\n\t\t\t\t\t\$('.fg-buttonset:visible .ui-state-active').trigger('filterme');\n\t\t\t\t\tvar selectedVal = ui.panel.id;\n\t\t\t\t\t\$('#{$control_name}{$name}" . "_selected').val(selectedVal);\t\t\n\t\t\t\t});\n\t\t\t\tvar valueme = \$('#{$control_name}{$name}" . "_selected').val();\n\t\t\t\t\$('#{$control_name}{$name}').tabs('select', valueme);\n\t\t\t\t\n\t\t\t\t\$('ul.ui-tabs-nav', '#{$control_name}{$name}').bind('height',\n\t\t\t      function (e, many) {\n\t\t\t      \tif(many==null){ var many = 2; }\n\t\t\t      \tvar uHeight = \$('li', this).length - many;\n\t\t\t      \tif(dur==null){ var dur = 1000; }\n\t\t\t      \tvar uOffset = \$('li:eq('+uHeight+')', this).position();\n\t\t\t      \tvar nHeight = uOffset.top + \$('li:last-child', this).height()-11;\n\t\t\t      \tvar pHeight = nHeight+19;\n\t\t\t      \tif(nHeight>=\$('#{$control_name}{$name}').height())\n\t\t\t      \t{\n\t\t\t\t      \t\$(this)\n\t\t\t\t      \t\t.stop().animate({height: nHeight+'px', overflow: 'visible'}, dur).removeClass('ui-tabs-overflow');\n\t\t\t\t        \$('#{$control_name}{$name}')\n\t\t\t\t        \t.stop().animate({minHeight: pHeight}, dur);\n\t\t\t\t    }    \t\n\t\t\t\t}); \n\t\t\t\t\n\t\t\t\t\$('ul.ui-tabs-nav', '#{$control_name}{$name}').mouseenter(function()\n\t\t\t\t{\n\t\t\t\t\t\$(this).trigger('height');\n\t\t\t\t});\n\t\t\t   \$('#{$control_name}{$name}').mouseleave(function (e) {\n\t\t\t      var bHeight = (\$('div.ui-tabs-panel:visible > *', '#{$control_name}{$name}').height()+7);\n\t\t\t      \t\$('ul.ui-tabs-nav', '#{$control_name}{$name}')\n\t\t\t      \t\t.addClass('ui-tabs-overflow').stop().animate({opacity: 1}, 2000).animate({height: bHeight, overflow: 'hidden'}, 1000).stop();\n\t\t\t\t\t\$('#{$control_name}{$name}')\n\t\t\t\t\t\t.stop().animate({opacity: 1}, 2000).animate({minHeight: bHeight}, 1000).stop();\n\t\t\t      }\n\t\t\t    );\n\t\t\t    \$('ul.ui-tabs-nav .ui-helper-tabsremove', '#{$control_name}{$name}').mousedown(function(){\n\t\t\t    \tvar stall = \$(this).css('float');\n\t\t\t    \t\$(this).animate({float: stall}, 2000, 'linear', function(){\n\t\t\t    \t\t\$(this).addClass('stall-is-true');\n\t\t\t    \t\tif(confirm('" . JText::_('Click ok to delete all items but your selected one.') . "'))\n\t\t\t    \t\t{\n\t\t\t    \t\t\t\$('li:not(.ui-tabs-selected) .remove', '#{$control_name}{$name} > ul.ui-tabs-nav').trigger('uitabsremove');\n\t\t\t    \t\t}\n\t\t\t    \t});\n\t\t\t    })\t\n\t\t\t    .mouseup(function(){\n\t\t\t    \tif(\$(this).hasClass('stall-is-true'))\n\t\t\t    \t{\n\t\t\t    \t\t\$(this).removeClass('stall-is-true');\n\t\t\t    \t\treturn true;\n\t\t\t    \t}\n\t\t\t    \t\$(this).stop();\n\t\t\t    \tif(confirm('" . JText::_('Click ok to delete selected item. Tip: If you want to delete all items excerpt your selected item, click and hold for 2 seconds.') . "'))\n\t\t\t    \t{\n\t\t\t    \t\t\$('li.ui-tabs-selected .remove', '#{$control_name}{$name} > ul.ui-tabs-nav').trigger('uitabsremove');\n\t\t\t    \t}\n\t\t\t    });\n\t\t\t    \$('ul.ui-tabs-nav .ui-helper-tabsadd', '#{$control_name}{$name}').click(function(){\n\t\t\t    \t\$('ul.ui-tabs-nav', '#{$control_name}{$name}').stop().trigger('height');\n\t\t\t    });\n//\t\t\t\t\$('.panel.ui-tabs').resizable({ handles: 's',  });\n//\t\t\t\talert(\$('div.ui-tabs-panel:visible', '#{$control_name}{$name}').height());\n\t\t\t\t\$('ul.ui-tabs-nav span.ui-helper-default', '#{$control_name}{$name}').live('click', function(){\n\t\t\t\t\tif(!\$(this).hasClass('ui-helper-default-active'))\n\t\t\t\t\t{\n\t\t\t\t\t\t\$('ul.ui-tabs-nav span.ui-helper-default-active', '#{$control_name}{$name}').removeClass('ui-helper-default-active');\n\t\t\t\t\t\tvar index = \$('#{$control_name}{$name} ul.ui-tabs-nav li span.ui-helper-default').index(this);\n\t\t\t\t\t\t\$('#{$control_name}{$name}" . "_special').val(index);\n\t\t\t\t\t\t\$(this).addClass('ui-helper-default-active');\n\t\t\t\t\t} \n\t\t\t\t});\n\t\t\t});\n\t\t\t";
        $doc->addScriptDeclaration($script);
        //Recover head data
        $doc->addScriptDeclaration($headData['script']['text/javascript']);
        $class = $node['class'] ? 'class="' . $node['class'] . '"' : 'class="text_area"';
        $selected = $this->_parent->get($node['name'] . '_selected') == true ? $this->_parent->get($node['name'] . '_selected') : '0';
        //echo $this->_parent->get($name.'_default');
        return $container . '<input type="hidden" name="' . $control_name . '[' . $name . ']" id="' . $control_name . $name . '-val" value="' . $hiddenvalue . '" ' . $class . ' />
		<input type="hidden" name="' . $control_name . '[' . $name . '_special]" id="' . $control_name . $name . '_special" value="' . $special . '" ' . $class . ' />
		<input type="hidden" name="' . $control_name . '[' . $name . '_selected]" id="' . $control_name . $name . '_selected" value="' . $selected . '" ' . $class . ' /></div>';
    }
 function fetchElement($name, $value, &$node, $control_name)
 {
     $doc =& JFactory::getDocument();
     $doc->addScript(JURI::root(true) . "/media/napi/js/styleswitchertool.js");
     $label = JText::_($node['label'] ? $node['label'] : 'Select Style');
     $copy = $node['copy'];
     $thumbpath = $node['thumbpath'] ? JURI::root(true) . $node['thumbpath'] : JURI::root(true) . '/media/napi/img/tmpl/';
     $stylepath = $node['stylepath'] ? JURI::root(true) . $node['stylepath'] : JURI::root(true) . '/media/napi/css/widgets/';
     $script = "\n\t\tjQuery.noConflict();\n\t\tjQuery(document).ready(function(\$){\n\t\t\t\$('#{$control_name}{$name}').styleswitcher({loadTheme: '{$value}', stylepane: '<div class=\"jquery-ui-styleswitcher\"><div id=\"themeGallery\">\t<ul>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/ui-lightness/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_light.png\" alt=\"UI Lightness\" title=\"UI Lightness\" />\t\t\t<span class=\"styleName\">Lightness</span>\t\t</a></li>\t\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/ui-darkness/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_dark.png\" alt=\"UI Darkness\" title=\"UI Darkness\" />\t\t\t<span class=\"styleName\">UI darkness</span>\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/smoothness/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_smoothness.png\" alt=\"Smoothness\" title=\"Smoothness\" />\t\t\t<span class=\"styleName\">Smoothness</span>\t\t</a></li>\t\t\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/start/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_start_menu.png\" alt=\"Start\" title=\"Start\" />\t\t\t<span class=\"styleName\">Start</span>\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/redmond/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_windoze.png\" alt=\"Redmond\" title=\"Redmond\" />\t\t\t<span class=\"styleName\">Redmond</span>\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/cupertino/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_cupertino.png\" alt=\"Cupertino\" title=\"Cupertino\" />\t\t\t<span class=\"styleName\">Cupertino</span>\t\t\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/south-street/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_south_street.png\" alt=\"South St\" title=\"South St\" />\t\t\t<span class=\"styleName\">South Street</span>\t\t\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/blitzer/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_blitzer.png\" alt=\"Blitzer\" title=\"Blitzer\" />\t\t\t<span class=\"styleName\">Blitzer</span>\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/humanity/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_humanity.png\" alt=\"Humanity\" title=\"Humanity\" />\t\t\t<span class=\"styleName\">Humanity</span>\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/hot-sneaks/jquery-ui.css\">\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_hot_sneaks.png\" alt=\"Hot Sneaks\" title=\"Hot Sneaks\" />\t\t\t<span class=\"styleName\">Hot sneaks</span>\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/excite-bike/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_excite_bike.png\" alt=\"Excite Bike\" title=\"Excite Bike\" />\t\t\t<span class=\"styleName\">Excite Bike</span>\t\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/vader/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_matte.png\" alt=\"Vader\" title=\"Vader\" />\t\t\t<span class=\"styleName\">Vader</span>\t\t\t</a></li>\t\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/dot-luv/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_dot_luv.png\" alt=\"Dot Luv\" title=\"Dot Luv\" />\t\t\t<span class=\"styleName\">Dot Luv</span>\t\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/mint-choc/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_mint_choco.png\" alt=\"Mint Choc\" title=\"Mint Choc\" />\t\t\t<span class=\"styleName\">Mint Choc</span>\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/black-tie/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_tie.png\" alt=\"Black Tie\" title=\"Black Tie\" />\t\t\t<span class=\"styleName\">Black Tie</span>\t\t</a></li>\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/trontastic/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_trontastic.png\" alt=\"Trontastic\" title=\"Trontastic\" />\t\t\t<span class=\"styleName\">Trontastic</span>\t\t\t</a></li>\t\t\t<li><a href=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/swanky-purse/jquery-ui.css\">\t\t\t<img src=\"http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_swanky_purse.png\" alt=\"Swanky Purse\" title=\"Swanky Purse\" />\t\t\t<span class=\"styleName\">Swanky Purse</span>\t\t\t</a></li>\t</ul></div></div>',\n\t\t\tbutPreText: ' ', initialText: '{$label}', cookieName: '{$name}', onSelect: function(href){ \$('#{$control_name}{$name}" . "_value').val(href); }}).find('a.jquery-ui-themeswitcher-trigger').bind('filterstyle', {foo: 'bar'}, {$name}){\n\t\t\t\t\$('.ui-styleswitcher', \$('#{$control_name}{$name}')).filterable(filterVal, 'ui-styleswitcher');\n\t\t\t});\n\t\t});";
     $html = null;
     $select = null;
     //$doc->addScriptDeclaration($script);
     jimport('joomla.filesystem.folder');
     jimport('joomla.filesystem.file');
     nimport('napi.html.parameter');
     $id = JRequest::getInt('id');
     if (!$id) {
         $id = reset(JRequest::getVar('cid', array()));
     }
     //Get the module name, in a slightly hacky way.
     $module = JRequest::getWord('module');
     $mod =& JTable::getInstance('Module', 'JTable');
     if ($id) {
         $mod->load($id);
         $modname = $mod->module;
     } elseif ($module) {
         $modname = $module;
     }
     // path to images directory
     $path = $node['directory'] ? JPATH_ROOT . DS . $node['directory'] : JPATH_ROOT . DS . 'templates';
     $filter = $node['filter'];
     $exclude = $node['exclude'];
     $folders = JFolder::folders($path, $filter);
     if ($copy) {
         foreach ($this->_parent->_xml as $_xml) {
             foreach ($_xml->children() as $children) {
                 if (isset($children->_attributes['name'])) {
                     if ($children->_attributes['name'] === $copy) {
                         //echo print_r($children->children());
                         //echo print_r($key, true).' => '.print_r($val, true).' ';
                         foreach ($children->children() as $key => $val) {
                             $options->name = $val->_data;
                             $options->filter = JFilterOutput::stringURLSafe($val->_data);
                             $options->filename = $val->_attributes['value'];
                             //$html .= $options->thumb = $val->_attributes['thumbnail'];
                             $html .= ' <li class="ui-styleswitcher l-' . JFilterOutput::stringURLSafe($val->_data) . '"><a href="' . $stylepath . $val->_attributes['value'] . '.css"><img class="ui-styleswitcher-thumb" src="' . $thumbpath . $val->_attributes['thumbnail'] . '" alt=\\"' . $val->_data . '\\" title=\\"' . $val->_data . '\\" /><span class=\\"styleName\\">--' . JText::_('Default') . '--</span></a></li>';
                             //								Children, for sublayouts in more complex plugins.
                             //								echo print_r($val->children());
                             foreach ($folders as $folder) {
                                 if ($exclude) {
                                     if (preg_match(chr(1) . $exclude . chr(1), $folder)) {
                                         continue;
                                     }
                                 }
                                 if (JFile::exists($path . DS . $folder . DS . 'templateDetails.xml')) {
                                     $templateDetails = new NParameter('', $path . DS . $folder . DS . 'templateDetails.xml');
                                     // Set base path
                                     $templateDetails->_elementPath[] = JPATH_PLUGINS . DS . 'system' . DS . 'napi' . DS . 'elements';
                                     //$templateDetails 	= new NParameter('', $path.DS.'ja_purity_showcase'.DS.'templateDetails.xml');
                                     //die('<pre>'.var_export($templateDetails, true).'</pre>');
                                     $stylexml = $templateDetails->renderToArray('', $modname);
                                     if (!isset($stylexml[$name])) {
                                         /*$stylexml = new NParameter(null);
                                         		$tylexml  = $stylexml->loadArray(array (
                                         		  0 => 'stylepicker',
                                         		  1 => 
                                         		  array (
                                         		    0 => 
                                         		    JSimpleXMLElement::__set_state(array(
                                         		       '_attributes' => 
                                         		      array (
                                         		        'value' => '3dcarousel',
                                         		        'file' => '3dcarousel',
                                         		      ),
                                         		       '_name' => 'option',
                                         		       '_data' => 'Vertical',
                                         		       '_children' => 
                                         		      array (
                                         		      ),
                                         		       '_level' => 3,
                                         		       '_errors' => 
                                         		      array (
                                         		      ),
                                         		    )),
                                         		    1 => 
                                         		    JSimpleXMLElement::__set_state(array(
                                         		       '_attributes' => 
                                         		      array (
                                         		        'value' => 'spacegallery',
                                         		        'file' => 'spacegallery_dark',
                                         		      ),
                                         		       '_name' => 'option',
                                         		       '_data' => 'Dark',
                                         		       '_children' => 
                                         		      array (
                                         		      ),
                                         		       '_level' => 3,
                                         		       '_errors' => 
                                         		      array (
                                         		      ),
                                         		    )),
                                         		    2 => 
                                         		    JSimpleXMLElement::__set_state(array(
                                         		       '_attributes' => 
                                         		      array (
                                         		        'value' => 'spacegallery',
                                         		        'file' => 'spacegallery_light',
                                         		      ),
                                         		       '_name' => 'option',
                                         		       '_data' => 'Light',
                                         		       '_children' => 
                                         		      array (
                                         		      ),
                                         		       '_level' => 3,
                                         		       '_errors' => 
                                         		      array (
                                         		      ),
                                         		    )),
                                         		  ),
                                         		  2 => NULL,
                                         		  3 => 'stylepicker',
                                         		  4 => NULL,
                                         		  5 => 'stylepicker',
                                         		));*/
                                     }
                                     //die('<pre>'.print_r($stylexml, true).'</pre>');
                                     if (isset($stylexml[$name])) {
                                         foreach ($stylexml[$name][1] as $style) {
                                             if ($style->_attributes['value'] == $val->_attributes['value']) {
                                                 $css = '';
                                                 $html .= ' <li class=\\"ui-styleswitcher l-' . JFilterOutput::stringURLSafe($val->_data) . '\\"><a href=\\"' . JURI::root(true) . '/templates/' . $folder . '/html/' . $modname . '/' . $val->_attributes['value'] . '/' . (isset($style->_attributes['file']) ? $style->_attributes['file'] : $style->_attributes['value']) . '.css\\">			<img class=\\"ui-styleswitcher-thumb\\" src=\\"' . JURI::root(true) . '/templates/' . $folder . '/html/' . $modname . '/' . $val->_attributes['value'] . '/' . (isset($style->_attributes['file']) ? $style->_attributes['file'] : $style->_attributes['value']) . '.png\\" alt=\\"' . $style->_data . '\\" title=\\"' . $style->_data . '\\" />			<span class=\\"styleName\\">' . $style->_data . '</span>			</a></li>';
                                                 $select .= ' l-' . JFilterOutput::stringURLSafe($val->_data);
                                                 $select .= ' l-' . $val->_data;
                                             }
                                         }
                                         //die('<pre>'.$styles[0][0]->_attributes['value'].'</pre>');
                                     } else {
                                         if (!isset($nostyle)) {
                                             $nostyle = true;
                                             $css = '';
                                             $html .= ' &#xFEFF;';
                                             $select .= ' l-&#xFEFF;';
                                         }
                                     }
                                     //die($path.DS.$folder.DS.'templateDetails.xml');
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $reset = $node['resetitem'] && $node['reseton'] ? '$(\'' . $node['resetitem'] . '\').livequery(\'' . $node['reseton'] . '\', function(){ $(\'#' . $control_name . $name . ' .jquery-ui-styleswitcher-title\').text(\'' . $label . '\'); });' : '';
     $script = "\n\t\tjQuery.noConflict();\n \t\t\n\t\tjQuery(document).ready(function(\$){\n\t\t\t\$('#{$control_name}{$name}').styleswitcher({loadTheme: '{$value}', stylepane: '<div class=\"jquery-ui-styleswitcher\"><div id=\"themeGallery\"><ul class=\"ui-styleswitcher-wrapper\">{$html}</ul></div></div>',\n\t\t\tbutPre: '<a href=\"#\" class=\"jquery-ui-styleswitcher-trigger ui-state-default ui-corner-all\"><span class=\"jquery-ui-styleswitcher-icon ui-icon ui-icon-triangle-1-s\"></span><span class=\"jquery-ui-styleswitcher-title\">',\n\t\t\tinitialText: '{$label}', onSelect: function(href){ \$('#{$control_name}{$name}" . "_value').val(href); }}).find('a.jquery-ui-themeswitcher-trigger');\n\t\t\t{$reset}\n\t\t});";
     $doc->addScriptDeclaration($script);
     $selectors = null;
     $nselectors = null;
     $lockdesc = JText::_($node['description2']);
     if ($select) {
         $selectors = ' class="' . $select . ' fl f-select ui-helper-hidden"';
         $nselectors = '<span class="' . $select . ' fl hasTip" title="' . $lockdesc . '"><a class="ui-state-default jquery-ui-styleswitcher-trigger ' . $select . ' fl ui-state-default" style="font-family: \'Trebuchet MS\', Verdana, sans-serif; font-size: 11px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; -webkit-border-top-right-radius: 6px 6px; -webkit-border-top-left-radius: 6px 6px; -webkit-border-bottom-left-radius: 6px 6px; -webkit-border-bottom-right-radius: 6px 6px; text-decoration: none; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 8px; width: 149px; display: block; height: 14px; outline-width: 0px; outline-style: initial; outline-color: initial; -webkit-background-clip: initial; -webkit-background-origin: initial;  cursor: normal;background-position: initial initial; "><span class="ui-icon ui-icon-cancel" style="float: right; width: 16px;margin-top:-1px;"></span><span class="jquery-ui-styleswitcher-title">Using Default</span></a></span>';
     }
     return '<span id="' . $control_name . $name . '"' . $selectors . '></span><input type="hidden" name="' . $control_name . '[' . $name . ']" id="' . $control_name . $name . '_value" value="' . $value . '" />' . $nselectors;
 }