Beispiel #1
0
 /**
  * jQuery UI CSS loader - USE importUITheme() function
  * 
  * @param $compress
  * @param $theme
  * @param $file
  * @return void
  */
 function UICssLoader($compress = 0, $theme = 'smoothness', $file = 'ui.base')
 {
     JScriptegrator::importUITheme($theme, $file);
 }
Beispiel #2
0
    /**
     * Plugin replacer
     *
     * @return string
     */
    function replacer(&$match)
    {
        $document =& JFactory::getDocument();
        $default_tabstyle = $this->params->get('default_tabstyle', 'smoothness');
        if ($default_tabstyle == '-1') {
            $default_tabstyle = 'smoothness';
        }
        $default_animated = $this->params->get('default_animated', 'both');
        $tabwidth = $this->params->get('default_tabwidth', '80px');
        $default_boxwidth = $this->params->get('default_boxwidth', '0');
        $default_tabalign = $this->params->get('default_tabalign', 'left');
        $default_taboffset = $this->params->get('default_taboffset', '0px');
        $default_tabrotate = (int) $this->params->get('default_tabrotate', 0);
        $default_tabevent = $this->params->get('default_tabevent', 'click');
        $def_navigation = $this->params->get('navigation', 0);
        $readmore = $this->params->get('readmore', 0);
        $process_plugins = (int) $this->params->get('plugins', 0);
        // define regex parameters
        $tabs_settings = isset($match[1]) ? $match[1] : '';
        $tabs_text = isset($match[2]) ? $match[2] : '';
        unset($match);
        // Mode
        preg_match("#^[0-9:]*?\$#", $tabs_text, $mode);
        $mode = isset($mode[0]) ? 'id' : 'manually';
        // tab id
        preg_match('#id\\s?=\\s?"([0-9a-zA-Z]{1,})"#', $tabs_settings, $tab_id);
        $tab_id = isset($tab_id[1]) ? $tab_id[1] : $this->random(5);
        // style
        $files = implode('|', JScriptegrator::themeList());
        preg_match('#theme\\s?=\\s?"(' . $files . ')?"#', $tabs_settings, $tab_style);
        $tab_style = isset($tab_style[1]) ? $tab_style[1] : $default_tabstyle;
        if ($tab_style) {
            JScriptegrator::importUITheme($tab_style, 'ui.tabs');
        }
        // tab animated
        preg_match('#animation\\s?=\\s?"(both|slide|fade|none)"#', $tabs_settings, $animation);
        $animation = isset($animation[1]) ? $animation[1] : $default_animated;
        switch ($animation) {
            case 'none':
                $animation = null;
                break;
            case 'both':
                $animation = 'fx: { height: \'toggle\', opacity: \'toggle\' }';
                break;
            case 'slide':
                $animation = 'fx: { height: \'toggle\' }';
                break;
            case 'fade':
                $animation = 'fx: { opacity: \'toggle\' }';
                break;
            default:
                $animation = null;
                break;
        }
        // end
        // box width
        preg_match('#boxwidth\\s?=\\s?"([0-9empx%.]{1,})"#', $tabs_settings, $tab_boxwidth);
        $tab_boxwidth = isset($tab_boxwidth[1]) ? $tab_boxwidth[1] : $default_boxwidth;
        // tab align (float - left, right)
        preg_match('#tabalign\\s?=\\s?"(left|right)"#', $tabs_settings, $tab_align);
        $tab_align = isset($tab_align[1]) ? $tab_align[1] : $default_tabalign;
        switch ($tab_align) {
            case 'left':
                $tab_align = 'left';
                break;
            case 'right':
                $tab_align = 'right';
                break;
            default:
                break;
        }
        // end
        // tab offset (padding-left)
        preg_match('#offset\\s?=\\s?"([0-9empx%.]{1,})"#', $tabs_settings, $tab_offset);
        $tab_offset = isset($tab_offset[1]) ? $tab_offset[1] : $default_taboffset;
        // tab select
        preg_match('#select\\s?=\\s?"([1-9]{1,})"#', $tabs_settings, $tab_select);
        $tab_select = isset($tab_select[1]) ? 'selected: ' . --$tab_select[1] : null;
        // event
        preg_match('#event\\s?=\\s?"(click|mouseover)"#', $tabs_settings, $tab_event);
        $tab_event = isset($tab_event[1]) ? $tab_event[1] : $default_tabevent;
        switch ($tab_event) {
            case 'click':
                $tab_event = 'click';
                break;
            case 'mouseover':
                $tab_event = 'mouseover';
                break;
            default:
                $tab_event = 'click';
                break;
        }
        $tab_event = "event: '{$tab_event}'";
        // end
        if ($tab_event and $animation and $tab_select) {
            $settings = $tab_event . ', ' . $animation . ', ' . $tab_select;
        } elseif ($tab_event and $animation) {
            $settings = $tab_event . ', ' . $animation;
        } elseif ($tab_event and $tab_select) {
            $settings = $tab_event . ', ' . $tab_select;
        } else {
            $settings = $tab_event;
        }
        // tab rotate
        preg_match('#rotate\\s?=\\s?"([0-9]{1,})"#', $tabs_settings, $tab_rotate);
        $tab_rotate = isset($tab_rotate[1]) ? $tab_rotate[1] : $default_tabrotate;
        if ($tab_rotate) {
            $tab_rotate = '.tabs(\'rotate\', ' . $tab_rotate . ')';
        } else {
            $tab_rotate = '';
        }
        // tab navigation
        preg_match('#navigation\\s?=\\s?"(yes|no)"#', $tabs_settings, $navigation);
        $navigation = isset($navigation[1]) ? $navigation[1] : '';
        if ($navigation) {
            $navigation = $navigation == 'yes' ? 1 : 0;
        } else {
            $navigation = $def_navigation;
        }
        $custom_setting_js = "\n\t\t<!--\n\t\tjQuery(function(\$) {\n\t\t\t// tabs element\n\t\t\tvar tab_instance = \$('#magictabs_{$tab_id}');\n\t\t\t\n\t\t\t// create tabs instance\n\t\t\ttab_instance.tabs({ {$settings} }){$tab_rotate};\n\t\t";
        // prev next links script
        if ($navigation) {
            $custom_setting_js .= "\n\t\t\t// prev - next buttons\n\t\t\t\$('#magictabs_{$tab_id}').find('div.buttons a').each(function(n, el) {\n\t\t\t\t\$(this).click(function (){\n\t\t\t\t\tvar selected = tab_instance.tabs('option', 'selected');\n\t\t\t\t\t" . ($tab_align == "left" ? "var count = selected + 1;" : "var count = selected - 1;") . "\n\t\t\t\t\t" . ($tab_align == "left" ? "if (\$(el).hasClass('prev')) count = selected - 1;" : "if (\$(el).hasClass('prev')) count = selected + 1;") . "\n\t\t\t\t\ttab_instance.tabs('select', count);\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t});\n\t\t\t";
        }
        $custom_setting_js .= "\n\t\t});\n\t\t//-->\n\t\t";
        $document->addScriptDeclaration($custom_setting_js);
        $this->customScript($tab_id, $tab_style, $tab_boxwidth, $tab_align, $tab_offset);
        // load custom CSS
        // end
        $tabed_text = '';
        $tabed_bullet_text = '<ul>';
        // open <ul> tag
        switch ($mode) {
            case 'id':
                $tabs_text = trim(strip_tags($tabs_text));
                // prevent HTML characters in article ids
                if (explode(':', $tabs_text)) {
                    $set_articles = explode(':', $tabs_text);
                } else {
                    return;
                }
                foreach ($set_articles as $key => $article_id) {
                    if ($article_id) {
                        $article = $this->renderItem($article_id);
                        if ($article->text) {
                            $user =& JFactory::getUser();
                            $aid = $user->get('aid');
                            if ($article->access <= $aid) {
                                $title = strip_tags($article->title);
                                $fulltext = $article->fulltext;
                                $text = $article->text;
                                if ($fulltext and $readmore) {
                                    $text = $text . $article->link;
                                } else {
                                    $text = $text . '';
                                }
                                $tab_name = $title ? $title : '';
                                $text = $text ? $text : '';
                                $ahref = 'magictabs_' . $tab_id . '_' . ++$key;
                                $tabed_bullet_text .= '<li><a href="#' . $ahref . '">' . $tab_name . '</a></li>';
                                // process plugins
                                $text = $process_plugins ? JHTML::_('content.prepare', $text) : $text;
                                $prevlink = '<a href="#magictabs_' . $tab_id . '_' . ($key - 1) . '" class="ui-icon ui-icon-circle-arrow-w prev" title="' . JText::_('CDMT_PREVIOUS') . '"></a>';
                                $nextlink = '<a href="#magictabs_' . $tab_id . '_' . ($key + 1) . '" class="ui-icon ui-icon-circle-arrow-e next" title="' . JText::_('CDAMT_NEXT') . '"></a>';
                                $links = '<div class="buttons">';
                                if ($tab_align == 'left') {
                                    if ($key + 1 <= count($set_articles)) {
                                        $links .= $nextlink;
                                    }
                                    $links .= ' ';
                                    if ($key - 1 !== 0) {
                                        $links .= $prevlink;
                                    }
                                } else {
                                    // right
                                    $key = count($set_articles) - $key + 1;
                                    if ($key + 1 <= count($set_articles)) {
                                        $links .= $nextlink;
                                    }
                                    $links .= ' ';
                                    if ($key - 1 !== 0) {
                                        $links .= $prevlink;
                                    }
                                }
                                $links .= '</div>';
                                $tabed_text .= '<div id="' . $ahref . '">' . $text . ($navigation ? $links : '') . '</div>';
                            }
                        }
                    }
                }
                break;
            case 'manually':
                if (preg_split('#\\|\\|\\|\\|#', $tabs_text, -1, PREG_SPLIT_NO_EMPTY)) {
                    //					echo"<script>alert('Đăng ')</script>";
                    $tabs_text_array = preg_split('#\\|\\|\\|\\|#', $tabs_text, -1, PREG_SPLIT_NO_EMPTY);
                } else {
                    return '';
                }
                foreach ($tabs_text_array as $key => $text) {
                    $tabs_array = explode('::', $text);
                    $tab_name = isset($tabs_array[0]) ? trim(strip_tags($tabs_array[0])) : '';
                    $text = isset($tabs_array[1]) ? $tabs_array[1] : '';
                    $ahref = 'magictabs_' . $tab_id . '_' . ++$key;
                    $tabed_bullet_text .= '<li><a href="#' . $ahref . '">' . $tab_name . '</a></li>';
                    $prevlink = '<a href="#magictabs_' . $tab_id . '_' . ($key - 1) . '" class="ui-icon ui-icon-circle-arrow-w prev" title="' . JText::_('CDMT_PREVIOUS') . '"></a>';
                    $nextlink = '<a href="#magictabs_' . $tab_id . '_' . ($key + 1) . '" class="ui-icon ui-icon-circle-arrow-e next" title="' . JText::_('CDAMT_NEXT') . '"></a>';
                    $links = '<div class="buttons">';
                    if ($tab_align == 'left') {
                        if ($key + 1 <= count($tabs_text_array)) {
                            $links .= $nextlink;
                        }
                        $links .= ' ';
                        if ($key - 1 !== 0) {
                            $links .= $prevlink;
                        }
                    } else {
                        // right
                        $key = count($tabs_text_array) - $key + 1;
                        if ($key + 1 <= count($tabs_text_array)) {
                            $links .= $nextlink;
                        }
                        $links .= ' ';
                        if ($key - 1 !== 0) {
                            $links .= $prevlink;
                        }
                    }
                    $links .= '</div>';
                    $tabed_text .= '<div id="' . $ahref . '">' . $text . ($navigation ? $links : '') . '</div>';
                }
                break;
            default:
                return;
                break;
        }
        $tabed_bullet_text .= '</ul>';
        // close </ul> tag
        $html = '
	<div class="' . $tab_style . '">
		<div id="magictabs_' . $tab_id . '"  class="ui-tabs ui-widget ui-widget-content ui-corner-all">
			' . $tabed_bullet_text . $tabed_text . '
		</div>
	</div>
	';
        return $html;
    }