xref: /plugin/mikioplugin/syntax/pagination.php (revision 3a0ad8d394ede994db68f1ed17eff796c659fc4a)
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 */
92560abddSJames Collinsif (!defined('DOKU_INC')) { die();
102560abddSJames Collins}
112560abddSJames Collinsif (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/');
122560abddSJames Collins}
13*3a0ad8d3SJames Collinsrequire_once __DIR__.'/core.php';
142bdaee90SJames Collins
152560abddSJames Collinsclass syntax_plugin_mikioplugin_pagination extends syntax_plugin_mikioplugin_core
162560abddSJames Collins{
172bdaee90SJames Collins    public $tag                 = 'pagination';
182bdaee90SJames Collins    public $hasEndTag           = true;
192bdaee90SJames Collins
202560abddSJames Collins    public function __construct()
212560abddSJames Collins    {
222bdaee90SJames Collins        $this->addCommonOptions('shadow');
232bdaee90SJames Collins    }
242bdaee90SJames Collins
252560abddSJames Collins    public function getAllowedTypes()
262560abddSJames Collins    {
272560abddSJames Collins        return array();
282560abddSJames Collins    }
292560abddSJames Collins    public function getPType()
302560abddSJames Collins    {
312560abddSJames Collins        return 'normal';
322560abddSJames Collins    }
332bdaee90SJames Collins
342560abddSJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data)
352560abddSJames Collins    {
362560abddSJames Collins        global $conf;
372560abddSJames Collins
382bdaee90SJames Collins        $classes = $this->buildClass($data);
392bdaee90SJames Collins
402560abddSJames 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
462560abddSJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data)
472560abddSJames 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
522560abddSJames Collins    public function render_lexer_unmatched(Doku_Renderer $renderer, $data)
532560abddSJames 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