1c3cafd3eSJames Collins<?php 2c3cafd3eSJames Collins/** 3c3cafd3eSJames Collins * Mikio Syntax Plugin: Icon 4c3cafd3eSJames Collins * 57935713eSJames Collins * @link http://github.com/nomadjimbob/mikioplugin 6c3cafd3eSJames Collins * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 7c3cafd3eSJames Collins * @author James Collins <james.collins@outlook.com.au> 8c3cafd3eSJames Collins */ 9b007ca42SJames Collinsif (!defined('DOKU_INC')) { die(); 10b007ca42SJames Collins} 11b007ca42SJames Collinsif (!defined('DOKU_PLUGIN')) { define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/'); 12b007ca42SJames Collins} 137935713eSJames Collins 14*087af478SJames Collinsrequire_once __DIR__ .'/core.php'; 15c3cafd3eSJames Collins 16b007ca42SJames Collinsclass syntax_plugin_mikioplugin_icon extends syntax_plugin_mikioplugin_core 17b007ca42SJames Collins{ 18c3cafd3eSJames Collins public $tag = 'icon'; 197935713eSJames Collins public $hasEndTag = false; 20c3cafd3eSJames Collins 217935713eSJames Collins // not declaring $options will return all options in the $data variable in lexer functions 22b007ca42SJames Collins public function getType() 23b007ca42SJames Collins { 24b007ca42SJames Collins return 'substition'; 25b007ca42SJames Collins } 26b007ca42SJames Collins public function getPType() 27b007ca42SJames Collins { 28b007ca42SJames Collins return 'normal'; 29b007ca42SJames Collins } 30c3cafd3eSJames Collins 31b007ca42SJames Collins public function render_lexer_special(Doku_Renderer $renderer, $data) 32b007ca42SJames Collins { 337935713eSJames Collins global $MIKIO_ICONS; 34c3cafd3eSJames Collins 357935713eSJames Collins if(is_array($MIKIO_ICONS) && count($MIKIO_ICONS) > 0) { 367935713eSJames Collins foreach($MIKIO_ICONS as $icon) { 37b007ca42SJames Collins if(isset($icon['name']) && strcasecmp($icon['name'], array_key_first($data)) == 0) { 387935713eSJames Collins if(isset($icon['insert'])) { 397935713eSJames Collins $insert = $icon['insert']; 407935713eSJames Collins $keys = array_keys($data); 417935713eSJames Collins $keys = array_pad($keys, 10, ''); 42c3cafd3eSJames Collins 437935713eSJames Collins for($i = 1; $i < 10; $i++) { 44*087af478SJames Collins $dollarIndex = '$' . $i; 45*087af478SJames Collins if (empty($keys[$i]) === false) { 46*087af478SJames Collins $insert = str_replace($dollarIndex, $keys[$i], $insert); 47*087af478SJames Collins } else if(empty($icon[$dollarIndex]) === false) { 48*087af478SJames Collins $insert = str_replace($dollarIndex, $icon[$dollarIndex], $insert); 49*087af478SJames Collins } 50c3cafd3eSJames Collins } 51c3cafd3eSJames Collins 52*087af478SJames Collins $dir = ''; 53*087af478SJames Collins if (isset($icon['dir']) === true) { 54*087af478SJames Collins $dir = DOKU_BASE . 'lib/plugins/' . basename(dirname(__DIR__)) . '/icons/' . $icon['dir'] . '/'; 557935713eSJames Collins } 56*087af478SJames Collins 57*087af478SJames Collins $insert = str_replace('$0', $dir, $insert); 58*087af478SJames Collins $renderer->doc .= $insert; 597935713eSJames Collins } 607935713eSJames Collins 617935713eSJames Collins break; 627935713eSJames Collins } 637935713eSJames Collins } 64c3cafd3eSJames Collins } 65c3cafd3eSJames Collins } 66*087af478SJames Collins} 67c3cafd3eSJames Collins?>