xref: /plugin/mikioplugin/syntax/button.php (revision 17e6d63900b7250e4c2aa308b63914ffea16ab55)
1*17e6d639SJames Collins<?php
2*17e6d639SJames Collins/**
3*17e6d639SJames Collins * Mikio Syntax Plugin: Button
4*17e6d639SJames Collins *
5*17e6d639SJames Collins * Syntax:  <BUTTON [primary|secondary|success|danger|warning|info|light|dark] [url] [target] [newtab] [collapse-id]></BUTTON>
6*17e6d639SJames Collins *
7*17e6d639SJames Collins * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
8*17e6d639SJames Collins * @author     James Collins <james.collins@outlook.com.au>
9*17e6d639SJames Collins */
10*17e6d639SJames Collins
11*17e6d639SJames Collinsif (!defined('DOKU_INC')) die();
12*17e6d639SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13*17e6d639SJames Collinsrequire_once(dirname(__FILE__).'/core.php');
14*17e6d639SJames Collins
15*17e6d639SJames Collinsclass syntax_plugin_mikioplugin_button extends syntax_plugin_mikioplugin_core {
16*17e6d639SJames Collins    public $tag                 = 'button';
17*17e6d639SJames Collins    public $defaults            = array('type' => 'primary');
18*17e6d639SJames Collins    public $options             = array(
19*17e6d639SJames Collins        'type' => array('primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark', 'outline-primary', 'outline-secondary', 'outline-success', 'outline-danger', 'outline-warning', 'outline-info', 'outline-light', 'outline-dark'),
20*17e6d639SJames Collins        'size' => array('lg', 'sm'),
21*17e6d639SJames Collins        'block',
22*17e6d639SJames Collins        'active',
23*17e6d639SJames Collins        'disabled',
24*17e6d639SJames Collins        'url',
25*17e6d639SJames Collins        'target',
26*17e6d639SJames Collins        'newtab',
27*17e6d639SJames Collins        'collapse-id'
28*17e6d639SJames Collins    );
29*17e6d639SJames Collins
30*17e6d639SJames Collins
31*17e6d639SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
32*17e6d639SJames Collins        $classes = $this->buildClassString($data, array('type', 'size', 'block', 'active', 'disabled'), array('btn-' => array('type', 'size', 'block')));
33*17e6d639SJames Collins
34*17e6d639SJames Collins        $url = '#';
35*17e6d639SJames Collins        if(array_key_exists('url', $data) && $data['url'] != '') $url = $data['url'];
36*17e6d639SJames Collins
37*17e6d639SJames Collins        $target = '';
38*17e6d639SJames Collins        if(array_key_exists('target', $data) && $data['target'] != '') $target = 'target="' . $data['target'] . '" ';
39*17e6d639SJames Collins        if(array_key_exists('newtab', $data) && $data['newtab'] != false) $target = 'target="_blank" ';
40*17e6d639SJames Collins
41*17e6d639SJames Collins        $collapse = '';
42*17e6d639SJames Collins        if(array_key_exists('collapse-id', $data) && $data['collapse-id'] != '') {
43*17e6d639SJames Collins            $collapse = ' data-toggle="collapse" data-target="#' . $data['collapse-id'] . '"';
44*17e6d639SJames Collins        }
45*17e6d639SJames Collins
46*17e6d639SJames Collins        $renderer->doc .= '<a href="' . $url . '" ' . $target . 'class="btn ' . $classes . '" role="button"' . $collapse . '>';
47*17e6d639SJames Collins    }
48*17e6d639SJames Collins
49*17e6d639SJames Collins
50*17e6d639SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
51*17e6d639SJames Collins        $renderer->doc .= '</a>';
52*17e6d639SJames Collins    }
53*17e6d639SJames Collins}
54*17e6d639SJames Collins?>