117e6d639SJames Collins<?php 217e6d639SJames Collins/** 317e6d639SJames Collins * Mikio Syntax Plugin: Carousel 417e6d639SJames Collins * 57935713eSJames Collins * @link http://github.com/nomadjimbob/mikioplugin 617e6d639SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 717e6d639SJames Collins * @author James Collins <james.collins@outlook.com.au> 817e6d639SJames Collins */ 917e6d639SJames Collinsif (!defined('DOKU_INC')) die(); 1017e6d639SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 1117e6d639SJames Collinsrequire_once(dirname(__FILE__).'/core.php'); 1217e6d639SJames Collins 1317e6d639SJames Collinsclass syntax_plugin_mikioplugin_carousel extends syntax_plugin_mikioplugin_core { 1417e6d639SJames Collins public $tag = 'carousel'; 157935713eSJames Collins public $hasEndTag = true; 167935713eSJames Collins public $options = array( 177935713eSJames Collins 'transition' => array('type' => 'choice', 187935713eSJames Collins 'data' => array('slide', 'fade'), 197935713eSJames Collins 'default' => ''), 207935713eSJames Collins 'indicators' => array('type' => 'boolean', 'default' => 'true'), 217935713eSJames Collins 'controls' => array('type' => 'boolean', 'default' => 'true'), 227935713eSJames Collins 'start' => array('type' => 'boolean', 'default' => 'false'), 23*062e2726SJames Collins 'cover' => array('type' => 'boolean', 'default' => 'false'), 247935713eSJames Collins ); 2517e6d639SJames Collins 266b66a10dSJames Collins public function __construct() { 276b66a10dSJames Collins $this->addCommonOptions('height'); 286b66a10dSJames Collins } 296b66a10dSJames Collins 3017e6d639SJames Collins 3117e6d639SJames Collins public function render_lexer_enter(Doku_Renderer $renderer, $data) { 327935713eSJames Collins $classes = $this->buildClass($data, array('transition')); 336b66a10dSJames Collins $styles = $this->buildStyle(array('height' => $data['height']), TRUE); 3417e6d639SJames Collins 35*062e2726SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'carousel' . ($data['cover'] ? ' ' . $this->classPrefix . 'image-cover' : '') . $classes . '" data-auto-start="' . ($data['start'] ? 'true' : 'false') . '"' . $styles . '>'; 367935713eSJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'carousel-inner">'; 3717e6d639SJames Collins } 3817e6d639SJames Collins 3917e6d639SJames Collins 4017e6d639SJames Collins public function render_lexer_exit(Doku_Renderer $renderer, $data) { 4157ae4893SJames Collins $renderer->doc .= '</div>'; 4257ae4893SJames Collins 437935713eSJames Collins if($data['controls'] === TRUE) { 447935713eSJames Collins $renderer->doc .= '<a href="#" class="' . $this->elemClass . ' ' . $this->classPrefix . 'carousel-control ' . $this->classPrefix . 'carousel-control-prev" role="button"></a>'; 457935713eSJames Collins $renderer->doc .= '<a href="#" class="' . $this->elemClass . ' ' . $this->classPrefix . 'carousel-control ' . $this->classPrefix . 'carousel-control-next" role="button"></a>'; 467935713eSJames Collins } 4757ae4893SJames Collins 487935713eSJames Collins if($data['indicators'] === TRUE) { 497935713eSJames Collins $renderer->doc .= '<ul class="' . $this->elemClass . ' ' . $this->classPrefix . 'carousel-indicators"></ul>'; 5057ae4893SJames Collins } 5157ae4893SJames Collins 5257ae4893SJames Collins $renderer->doc .= '</div>'; 5317e6d639SJames Collins } 5417e6d639SJames Collins} 5517e6d639SJames Collins?>