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