117e6d639SJames Collins<?php 217e6d639SJames Collins/** 317e6d639SJames Collins * Mikio Syntax Plugin: Alert 417e6d639SJames Collins * 57935713eSJames Collins * @link http://github.com/nomadjimbob/mikioplugin 617e6d639SJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 717e6d639SJames Collins * @author James Collins <james.collins@outlook.com.au> 817e6d639SJames Collins */ 9*edb48470SJames Collinsif (!defined('DOKU_INC')) { die(); 10*edb48470SJames Collins} 11*edb48470SJames Collinsif (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/'); 12*edb48470SJames Collins} 13*edb48470SJames Collinsrequire_once dirname(__FILE__).'/core.php'; 1417e6d639SJames Collins 15*edb48470SJames Collinsclass syntax_plugin_mikioplugin_alert extends syntax_plugin_mikioplugin_core 16*edb48470SJames Collins{ 1717e6d639SJames Collins public $tag = 'alert'; 187935713eSJames Collins public $hasEndTag = true; 1917e6d639SJames Collins public $options = array( 207935713eSJames Collins 'dismissible' => array('type' => 'boolean', 'default' => 'false'), 211e0354ddSJames Collins 'icon' => array('type' => 'text', 'default' => ''), 2217e6d639SJames Collins ); 2317e6d639SJames Collins 24*edb48470SJames Collins public function __construct() 25*edb48470SJames Collins { 267935713eSJames Collins $this->addCommonOptions('type shadow width align text-align'); 277935713eSJames Collins $this->options['type']['default'] = 'primary'; 287935713eSJames Collins } 297935713eSJames Collins 30*edb48470SJames Collins public function getAllowedTypes() 31*edb48470SJames Collins { 32*edb48470SJames Collins return array('formatting', 'substition', 'disabled', 'container', 'protected'); 33*edb48470SJames Collins } 34*edb48470SJames Collins public function getPType() 35*edb48470SJames Collins { 36*edb48470SJames Collins return 'normal'; 37*edb48470SJames Collins } 3817e6d639SJames Collins 39*edb48470SJames Collins public function render_lexer_enter(Doku_Renderer $renderer, $data) 40*edb48470SJames Collins { 417935713eSJames Collins $classes = $this->buildClass($data, array('dismissible')); 42*edb48470SJames Collins $styles = $this->buildStyle(array('width' => $data['width']), true); 4317e6d639SJames Collins 447935713eSJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'alert ' . $classes . '" role="alert"' . $styles . '>'; 4517e6d639SJames Collins 461e0354ddSJames Collins if($data['icon'] != '') { 471e0354ddSJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'alert-icon">'; 481e0354ddSJames Collins $this->syntaxRender($renderer, 'icon', '', array_flip(explode(' ', $data['icon'])), MIKIO_LEXER_SPECIAL); 491e0354ddSJames Collins $renderer->doc .= '</div>'; 501e0354ddSJames Collins } 511e0354ddSJames Collins 521e0354ddSJames Collins $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'alert-content">'; 531e0354ddSJames Collins 547935713eSJames Collins if($data['dismissible'] == true) { 557935713eSJames Collins $renderer->doc .= '<a href="#" class="' . $this->elemClass . ' ' . $this->classPrefix . 'alert-close">×</a>'; 5617e6d639SJames Collins } 5717e6d639SJames Collins } 5817e6d639SJames Collins 5917e6d639SJames Collins 60*edb48470SJames Collins public function render_lexer_exit(Doku_Renderer $renderer, $data) 61*edb48470SJames Collins { 621e0354ddSJames Collins $renderer->doc .= '</div></div>'; 6317e6d639SJames Collins } 6417e6d639SJames Collins} 6517e6d639SJames Collins?>