xref: /plugin/mikioplugin/syntax/nav.php (revision 6a8ce132ee7f679af64d1f8610f000730ef93359)
1*6a8ce132SJames Collins<?php
2*6a8ce132SJames Collins/**
3*6a8ce132SJames Collins * Mikio Syntax Plugin: Nav
4*6a8ce132SJames Collins *
5*6a8ce132SJames Collins * @link    http://github.com/nomadjimbob/mikioplugin
6*6a8ce132SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
7*6a8ce132SJames Collins * @author  James Collins <james.collins@outlook.com.au>
8*6a8ce132SJames Collins */
9*6a8ce132SJames Collinsif (!defined('DOKU_INC')) { die();
10*6a8ce132SJames Collins}
11*6a8ce132SJames Collinsif (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/');
12*6a8ce132SJames Collins}
13*6a8ce132SJames Collinsrequire_once dirname(__FILE__).'/core.php';
14*6a8ce132SJames Collins
15*6a8ce132SJames Collinsclass syntax_plugin_mikioplugin_nav extends syntax_plugin_mikioplugin_core
16*6a8ce132SJames Collins{
17*6a8ce132SJames Collins    public $tag                 = 'nav';
18*6a8ce132SJames Collins    public $hasEndTag           = true;
19*6a8ce132SJames Collins    public $options             = array(
20*6a8ce132SJames Collins        'icon'         => array('type'     => 'text',      'default'   => ''),
21*6a8ce132SJames Collins        'title'         => array('type'     => 'text',      'default'   => ''),
22*6a8ce132SJames Collins    );
23*6a8ce132SJames Collins
24*6a8ce132SJames Collins    public function __construct()
25*6a8ce132SJames Collins    {
26*6a8ce132SJames Collins        $this->addCommonOptions('text-color');
27*6a8ce132SJames Collins    }
28*6a8ce132SJames Collins
29*6a8ce132SJames Collins    public function getAllowedTypes()
30*6a8ce132SJames Collins    {
31*6a8ce132SJames Collins        return array('container');
32*6a8ce132SJames Collins    }
33*6a8ce132SJames Collins
34*6a8ce132SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data)
35*6a8ce132SJames Collins    {
36*6a8ce132SJames Collins        $classes = $this->buildClass($data, array('overlay', 'horizontal'));
37*6a8ce132SJames Collins        $styles = $this->buildStyle(array('height' => $data['height'], 'width' => $data['width']), true);
38*6a8ce132SJames Collins
39*6a8ce132SJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'nav' . $classes . '"' . $styles . '>';
40*6a8ce132SJames Collins
41*6a8ce132SJames Collins        if($data['title'] != '' || $data['icon'] != '') {
42*6a8ce132SJames Collins            $renderer->doc .= '<div class="' . $this->classPrefix . 'nav-title">';
43*6a8ce132SJames Collins            if($data['icon'] != '') {
44*6a8ce132SJames Collins                $renderer->doc .= '<div class="' . $this->classPrefix . 'nav-icon">';
45*6a8ce132SJames Collins                $this->syntaxRender($renderer, 'icon', '', array_flip(explode(' ', $data['icon'])), MIKIO_LEXER_SPECIAL);
46*6a8ce132SJames Collins                $renderer->doc .= '</div>';
47*6a8ce132SJames Collins            }
48*6a8ce132SJames Collins            $renderer->doc .= $data['title'] . '</div>';
49*6a8ce132SJames Collins        }
50*6a8ce132SJames Collins    }
51*6a8ce132SJames Collins
52*6a8ce132SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data)
53*6a8ce132SJames Collins    {
54*6a8ce132SJames Collins        $renderer->doc .= '</div>';
55*6a8ce132SJames Collins    }
56*6a8ce132SJames Collins}
57*6a8ce132SJames Collins?>