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?>