xref: /plugin/mikioplugin/syntax/badge.php (revision fe930f40917c3ca83f1a2db3e1757c508fe26b98)
117e6d639SJames Collins<?php
217e6d639SJames Collins/**
317e6d639SJames Collins * Mikio Syntax Plugin: Badge
417e6d639SJames Collins *
5*fe930f40SJames Collins * Syntax:  <BADGE [primary|secondary|success|danger|warning|info|light|dark] [pill] [url=] [target=] [newtab] [collapse-id=]></BADGE>
617e6d639SJames Collins *
717e6d639SJames Collins * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
817e6d639SJames Collins * @author     James Collins <james.collins@outlook.com.au>
917e6d639SJames Collins */
1017e6d639SJames Collins
1117e6d639SJames Collinsif (!defined('DOKU_INC')) die();
1217e6d639SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
1317e6d639SJames Collinsrequire_once(dirname(__FILE__).'/core.php');
1417e6d639SJames Collins
1517e6d639SJames Collinsclass syntax_plugin_mikioplugin_badge extends syntax_plugin_mikioplugin_core {
1617e6d639SJames Collins    public $tag                 = 'badge';
1717e6d639SJames Collins    public $defaults            = array('type' => 'primary');
1817e6d639SJames Collins    public $options             = array(
1917e6d639SJames Collins        'type' => array('primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark'),
20*fe930f40SJames Collins        'pill',
21*fe930f40SJames Collins        'url',
22*fe930f40SJames Collins        'target',
23*fe930f40SJames Collins        'newtab',
24*fe930f40SJames Collins        'collapse-id'
2517e6d639SJames Collins    );
2617e6d639SJames Collins
2717e6d639SJames Collins
2817e6d639SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
2917e6d639SJames Collins        $classes = $this->buildClassString($data, array('type', 'pill'), 'badge-');
3017e6d639SJames Collins
31*fe930f40SJames Collins        $tag = 'span';
32*fe930f40SJames Collins        $href = '';
33*fe930f40SJames Collins        if(array_key_exists('url', $data) && $data['url'] != '') {
34*fe930f40SJames Collins            $tag = 'a';
35*fe930f40SJames Collins            $href = ' href="' . $this->getLink($data['url']) . '"';
36*fe930f40SJames Collins        }
37*fe930f40SJames Collins
38*fe930f40SJames Collins        $target = '';
39*fe930f40SJames Collins        if(array_key_exists('target', $data) && $data['target'] != '') $target = ' target="' . $data['target'] . '"';
40*fe930f40SJames Collins        if(array_key_exists('newtab', $data) && $data['newtab'] != false) $target = ' target="_blank"';
41*fe930f40SJames Collins
42*fe930f40SJames Collins        $collapse = '';
43*fe930f40SJames Collins        if(array_key_exists('collapse-id', $data) && $data['collapse-id'] != '') {
44*fe930f40SJames Collins            $collapse = ' data-toggle="collapse" data-target="#' . $data['collapse-id'] . '"';
45*fe930f40SJames Collins        }
46*fe930f40SJames Collins
47*fe930f40SJames Collins        $renderer->doc .= '<' . $tag . $href . ' class="badge ' . $classes . '"' . $target . $collapse . '>';
4817e6d639SJames Collins    }
4917e6d639SJames Collins
5017e6d639SJames Collins
5117e6d639SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
52*fe930f40SJames Collins        $tag = 'span';
53*fe930f40SJames Collins        if(array_key_exists('url', $this->values) && $this->values['url'] != '') {
54*fe930f40SJames Collins            $tag = 'a';
55*fe930f40SJames Collins        }
56*fe930f40SJames Collins
57*fe930f40SJames Collins        $renderer->doc .= '</' . $tag . '>';
5817e6d639SJames Collins    }
5917e6d639SJames Collins}
6017e6d639SJames Collins?>