Example #1
0
function wikiplugin_slider($data, $params)
{
    global $tikilib, $headerlib;
    extract($params, EXTR_SKIP);
    $headerlib->add_jsfile('vendor/jquery/plugins/anythingslider/js/swfobject.js');
    $headerlib->add_jsfile('vendor/jquery/plugins/anythingslider/js/jquery.anythingslider.js');
    $headerlib->add_jsfile('vendor/jquery/plugins/anythingslider/js/jquery.anythingslider.fx.js');
    $headerlib->add_jsfile('vendor/jquery/plugins/anythingslider/js/jquery.anythingslider.video.js');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/anythingslider.css');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/theme-construction.css');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/theme-cs-portfolio.css');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/theme-metallic.css');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/theme-minimalist-round.css');
    $headerlib->add_cssfile('vendor/jquery/plugins/anythingslider/css/theme-minimalist-square.css');
    if (isset($theme) && !empty($theme)) {
        switch (strtolower($theme)) {
            case 'construction':
            case 'portfolio':
            case 'metallic':
            case 'minimalist-round':
            case 'minimalist-square':
                $theme = $theme;
                break;
            default:
                $theme = 'default';
        }
    } else {
        $theme = 'default';
    }
    $animationtime = (int) $animationtime;
    $animationtime = empty($animationtime) === false ? $animationtime : 600;
    $delay = (int) $delay;
    $delay = empty($delay) === false ? $delay : 3000;
    $showmultiple = (int) $showmultiple;
    $showmultiple = empty($showmultiple) === false ? $showmultiple : 1;
    $headerlib->add_jq_onready("function formatText(i, p) {\n\t\t\tvar possibleText = \$('.tiki-slider-title').eq(i - 1).text();\n\t\t\treturn (possibleText ? possibleText : 'slide_' + i);\n\t\t}\n\n\t\t\$('.tiki-slider').anythingSlider({\n\t\t\ttheme               : '{$theme}',\n\t\t\texpand              : " . makeBool($expand, false) . ",\n\t\t\tresizeContents      : " . makeBool($resizecontents, true) . ",\n\t\t\tshowMultiple        : {$showmultiple},\n\t\t\teasing              : 'swing',\n\n\t\t\tbuildArrows         : " . makeBool($buildarrows, true) . ",\n\t\t\tbuildNavigation     : " . makeBool($buildnavigation, true) . ",\n\t\t\tbuildStartStop      : " . makeBool($buildstartstop, true) . ",\n\n\t\t\ttoggleArrows        : " . makeBool($togglearrows, false) . ",\n\t\t\ttoggleControls      : " . makeBool($togglecontrols, false) . ",\n\n\t\t\tstartText           : 'Start',\n\t\t\tstopText            : 'Stop',\n\t\t\tforwardText         : '»',\n\t\t\tbackText            : '«',\n\t\t\ttooltipClass        : 'tooltip',\n\n\t\t\t// Function\n\t\t\tenableArrows        : " . makeBool($enablearrows, true) . ",\n\t\t\tenableNavigation    : " . makeBool($enablenavigation, true) . ",\n\t\t\tenableStartStop     : " . makeBool($enablestartstop, true) . ",\n\t\t\tenableKeyboard      : " . makeBool($enablekeyboard, true) . ",\n\n\t\t\t// Navigation\n\t\t\tstartPanel          : 1,\n\t\t\tchangeBy            : 1,\n\n\t\t\t// Slideshow options\n\t\t\tautoPlay            : " . makeBool($autoplay, false) . ",\n\t\t\tautoPlayLocked      : " . makeBool($autoplaylocked, false) . ",\n\t\t\tautoPlayDelayed     : " . makeBool($autoplaydelayed, false) . ",\n\t\t\tpauseOnHover        : " . makeBool($pauseonhover, true) . ",\n\t\t\tstopAtEnd           : " . makeBool($stopatend, false) . ",\n\t\t\tplayRtl             : " . makeBool($playrtl, false) . ",\n\n\t\t\t// Times\n\t\t\tdelay               : {$delay},\n\t\t\tresumeDelay         : 15000,\n\t\t\tanimationTime       : {$animationtime},\n\n\t\t\t// Video\n\t\t\tresumeOnVideoEnd    : " . makeBool($resumeonvideoend, true) . ",\n\t\t\taddWmodeToObject    : 'opaque',\n\n\t\t\tnavigationFormatter: formatText\n\t\t});");
    if (!empty($titles)) {
        $titles = $tikilib->parse_data($titles, array('suppress_icons' => true));
        $titles = explode('|', $titles);
    }
    $sliderData = array();
    if (!empty($data)) {
        $data = $tikilib->parse_data($data, array('suppress_icons' => true));
        $data = preg_replace('/<p>\\/\\/\\/\\/\\/\\s*<\\/p>/', '/////', $data);
        // remove surrounding <p> tags on slide boundaries
        $sliderData = explode('/////', $data);
    }
    $ret = '';
    foreach ($sliderData as $i => $slide) {
        $ret .= "<div>\n\t\t\t" . (isset($titles[$i]) ? "<span class='tiki-slider-title' style='display: none;'>" . $titles[$i] . "</span>" : "") . "\n\t\t\t{$slide}\n\t\t</div>";
    }
    return <<<EOF
\t~np~<div class='tiki-slider' style='width: {$width}; height: {$height};'>{$ret}</div>~/np~
EOF;
}
function wikiplugin_slider($data, $params)
{
	global $tikilib, $headerlib;
	extract($params, EXTR_SKIP);
	
	$headerlib->add_jsfile('lib/jquery/anythingslider/js/swfobject.js');
	$headerlib->add_jsfile('lib/jquery/anythingslider/js/jquery.anythingslider.js');
	$headerlib->add_jsfile('lib/jquery/anythingslider/js/jquery.anythingslider.fx.js');
	$headerlib->add_jsfile('lib/jquery/anythingslider/js/jquery.anythingslider.video.js');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/anythingslider.css');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/theme-construction.css');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/theme-cs-portfolio.css');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/theme-metallic.css');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/theme-minimalist-round.css');
	$headerlib->add_cssfile('lib/jquery/anythingslider/css/theme-minimalist-square.css');
	
	if (isset($theme) && !empty($theme)) {
		switch (strtolower($theme)) {
			case 'construction':
			case 'portfolio':
			case 'metallic':
			case 'minimalist-round':
			case 'minimalist-square':
				$theme = $theme;
    			break;
			default:
				$theme = 'default';
		}
	} else {
		$theme = 'default';
	}
	
	$headerlib->add_jq_onready(
					"function formatText(i, p) {
			var possibleText = $('.tiki-slider-title').eq(i - 1).text();
			return (possibleText ? possibleText : i);
		}
		
		$('.tiki-slider').anythingSlider({
			theme               : '$theme',
			expand              : ".makeBool($expand, false).",
			resizeContents      : ".makeBool($resizecontents, true).",
			showMultiple        : false,
			easing              : 'swing',

			buildArrows         : ".makeBool($buildarrows, true).",
			buildNavigation     : ".makeBool($buildnavigation, true).",
			buildStartStop      : ".makeBool($buildstartstop, true).",

			toggleArrows        : ".makeBool($togglearrows, false).",
			toggleControls      : ".makeBool($togglecontrols, false).",

			startText           : 'Start',
			stopText            : 'Stop',
			forwardText         : '&raquo;',
			backText            : '&laquo;',
			tooltipClass        : 'tooltip',

			// Function
			enableArrows        : ".makeBool($enablearrows, true).",
			enableNavigation    : ".makeBool($enablenavigation, true).",
			enableStartStop     : ".makeBool($enablestartstop, true).",
			enableKeyboard      : ".makeBool($enablekeyboard, true).",

			// Navigation
			startPanel          : 1,
			changeBy            : 1,

			// Slideshow options
			autoPlay            : ".makeBool($autoplay, false).",
			autoPlayLocked      : ".makeBool($autoplaylocked, false).",
			autoPlayDelayed     : ".makeBool($autoplaydelayed, false).",
			pauseOnHover        : ".makeBool($pauseonhover, true).",
			stopAtEnd           : ".makeBool($stopatend, false).",
			playRtl             : ".makeBool($playrtl, false).",

			// Times
			delay               : 3000,
			resumeDelay         : 15000,
			animationTime       : 600,

			// Video
			resumeOnVideoEnd    : ".makeBool($resumeonvideoend, true).",
			addWmodeToObject    : 'opaque',
			
			navigationFormatter: formatText
		});"
	);
	
	$titles = array();
	if (!empty($titles)) {
		$titles = $tikilib->parse_data($titles, array('suppress_icons' => true));
		$titles = explode('|', $titles);
	}
	
	$sliderData = array();
	if (!empty($data)) {
		$data = $tikilib->parse_data($data, array('suppress_icons' => true));
		$sliderData = explode('/////', $data);
	}
	
	$ret = '';
	foreach ($sliderData as $i => $slide) {
		$ret .= "<div>
			".(isset($titles[$i]) ? "<span class='tiki-slider-title' style='display: none;'>".$titles[$i]."</span>" : "")."
			$slide
		</div>";
	}
	
	return <<<EOF
	~np~<div class='tiki-slider' style='width: $width; height: $height;'>$ret</div>~/np~
EOF;
}