1*2bdaee90SJames Collins<?php 2*2bdaee90SJames Collins/** 3*2bdaee90SJames Collins * Mikio Syntax Plugin:Pagination 4*2bdaee90SJames Collins * 5*2bdaee90SJames Collins * @link http://github.com/nomadjimbob/mikioplugin 6*2bdaee90SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 7*2bdaee90SJames Collins * @author James Collins <james.collins@outlook.com.au> 8*2bdaee90SJames Collins */ 9*2bdaee90SJames Collinsif (!defined('DOKU_INC')) die(); 10*2bdaee90SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 11*2bdaee90SJames Collinsrequire_once(dirname(__FILE__).'/core.php'); 12*2bdaee90SJames Collins 13*2bdaee90SJames Collinsclass syntax_plugin_mikioplugin_pagination extends syntax_plugin_mikioplugin_core { 14*2bdaee90SJames Collins public $tag = 'pagination'; 15*2bdaee90SJames Collins public $hasEndTag = true; 16*2bdaee90SJames Collins 17*2bdaee90SJames Collins public function __construct() { 18*2bdaee90SJames Collins $this->addCommonOptions('shadow'); 19*2bdaee90SJames Collins } 20*2bdaee90SJames Collins 21*2bdaee90SJames Collins public function getAllowedTypes() { return array(); } 22*2bdaee90SJames Collins public function getPType() { return 'normal'; } 23*2bdaee90SJames Collins 24*2bdaee90SJames Collins public function render_lexer_enter(Doku_Renderer $renderer, $data) { 25*2bdaee90SJames Collins $classes = $this->buildClass($data); 26*2bdaee90SJames Collins 27*2bdaee90SJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination">'; 28*2bdaee90SJames Collins $renderer->doc .= '<ul class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-inner'. $classes . '">'; 29*2bdaee90SJames Collins $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item ' . $this->classPrefix . 'pagination-prev"><a href="#">Prev</a></li>'; 30*2bdaee90SJames Collins } 31*2bdaee90SJames Collins 32*2bdaee90SJames Collins 33*2bdaee90SJames Collins public function render_lexer_exit(Doku_Renderer $renderer, $data) { 34*2bdaee90SJames Collins $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item ' . $this->classPrefix . 'pagination-next"><a href="#">Next</a></li>'; 35*2bdaee90SJames Collins $renderer->doc .= '</ul></div>'; 36*2bdaee90SJames Collins } 37*2bdaee90SJames Collins 38*2bdaee90SJames Collins public function render_lexer_unmatched(Doku_Renderer $renderer, $data) { 39*2bdaee90SJames Collins $i = 1; 40*2bdaee90SJames Collins 41*2bdaee90SJames Collins $itemOptions = array( 42*2bdaee90SJames Collins 'url' => array('type' => 'url', 'default' => ''), 43*2bdaee90SJames Collins 'active' => array('type' => 'boolean', 'default'=> 'false', 'class' => true), 44*2bdaee90SJames Collins 'disabled' => array('type' => 'boolean', 'default'=> 'false', 'class' => true), 45*2bdaee90SJames Collins ); 46*2bdaee90SJames Collins 47*2bdaee90SJames Collins $items = array_merge( 48*2bdaee90SJames Collins $this->findTags($this->tagPrefix . 'pagination-item', $data, $itemOptions, false), 49*2bdaee90SJames Collins $this->findTags($this->tagPrefix . 'pagenation-item', $data, $itemOptions, false) 50*2bdaee90SJames Collins ); 51*2bdaee90SJames Collins 52*2bdaee90SJames Collins foreach($items as $item) { 53*2bdaee90SJames Collins $classes = $this->buildClass($item['options'], null, false, $itemOptions); 54*2bdaee90SJames Collins 55*2bdaee90SJames Collins $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item' . $classes . '"><a href="' . $item['options']['url'] . '">' . $i++ . '</a></li>'; 56*2bdaee90SJames Collins } 57*2bdaee90SJames Collins } 58*2bdaee90SJames Collins} 59*2bdaee90SJames Collins?> 60