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