xref: /plugin/mikioplugin/syntax/pagination.php (revision 2bdaee904c25f08e84d2a15c9180f85ad65f041f)
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