xref: /plugin/mikioplugin/syntax/pagination.php (revision 2560abdd3df30be61f51e03c4144c64170c65d95)
12bdaee90SJames Collins<?php
22bdaee90SJames Collins/**
32bdaee90SJames Collins * Mikio Syntax Plugin:Pagination
42bdaee90SJames Collins *
52bdaee90SJames Collins * @link    http://github.com/nomadjimbob/mikioplugin
62bdaee90SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
72bdaee90SJames Collins * @author  James Collins <james.collins@outlook.com.au>
82bdaee90SJames Collins */
9*2560abddSJames Collinsif (!defined('DOKU_INC')) { die();
10*2560abddSJames Collins}
11*2560abddSJames Collinsif (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/');
12*2560abddSJames Collins}
13*2560abddSJames Collinsrequire_once dirname(__FILE__).'/core.php';
142bdaee90SJames Collins
15*2560abddSJames Collinsclass syntax_plugin_mikioplugin_pagination extends syntax_plugin_mikioplugin_core
16*2560abddSJames Collins{
172bdaee90SJames Collins    public $tag                 = 'pagination';
182bdaee90SJames Collins    public $hasEndTag           = true;
192bdaee90SJames Collins
20*2560abddSJames Collins    public function __construct()
21*2560abddSJames Collins    {
222bdaee90SJames Collins        $this->addCommonOptions('shadow');
232bdaee90SJames Collins    }
242bdaee90SJames Collins
25*2560abddSJames Collins    public function getAllowedTypes()
26*2560abddSJames Collins    {
27*2560abddSJames Collins        return array();
28*2560abddSJames Collins    }
29*2560abddSJames Collins    public function getPType()
30*2560abddSJames Collins    {
31*2560abddSJames Collins        return 'normal';
32*2560abddSJames Collins    }
332bdaee90SJames Collins
34*2560abddSJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data)
35*2560abddSJames Collins    {
36*2560abddSJames Collins        global $conf;
37*2560abddSJames Collins
382bdaee90SJames Collins        $classes = $this->buildClass($data);
392bdaee90SJames Collins
40*2560abddSJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination" data-start="' . $conf['start'] . '">';
412bdaee90SJames Collins        $renderer->doc .= '<ul class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-inner'. $classes . '">';
422bdaee90SJames Collins        $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item ' . $this->classPrefix . 'pagination-prev"><a href="#">Prev</a></li>';
432bdaee90SJames Collins    }
442bdaee90SJames Collins
452bdaee90SJames Collins
46*2560abddSJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data)
47*2560abddSJames Collins    {
482bdaee90SJames Collins        $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item ' . $this->classPrefix . 'pagination-next"><a href="#">Next</a></li>';
492bdaee90SJames Collins        $renderer->doc .= '</ul></div>';
502bdaee90SJames Collins    }
512bdaee90SJames Collins
52*2560abddSJames Collins    public function render_lexer_unmatched(Doku_Renderer $renderer, $data)
53*2560abddSJames Collins    {
542bdaee90SJames Collins        $i = 1;
552bdaee90SJames Collins
562bdaee90SJames Collins        $itemOptions = array(
572bdaee90SJames Collins            'url'     => array('type' => 'url',      'default'   => ''),
582bdaee90SJames Collins            'active'    => array('type' => 'boolean',   'default'=> 'false', 'class' => true),
592bdaee90SJames Collins            'disabled'    => array('type' => 'boolean',   'default'=> 'false', 'class' => true),
602bdaee90SJames Collins        );
612bdaee90SJames Collins
622bdaee90SJames Collins        $items = array_merge(
632bdaee90SJames Collins            $this->findTags($this->tagPrefix . 'pagination-item', $data, $itemOptions, false),
642bdaee90SJames Collins            $this->findTags($this->tagPrefix . 'pagenation-item', $data, $itemOptions, false)
652bdaee90SJames Collins        );
662bdaee90SJames Collins
672bdaee90SJames Collins        foreach($items as $item) {
682bdaee90SJames Collins            $classes = $this->buildClass($item['options'], null, false, $itemOptions);
692bdaee90SJames Collins
702bdaee90SJames Collins            $renderer->doc .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'pagination-item' . $classes . '"><a href="' . $item['options']['url'] . '">' . $i++ . '</a></li>';
712bdaee90SJames Collins        }
722bdaee90SJames Collins    }
732bdaee90SJames Collins}
742bdaee90SJames Collins?>
75