xref: /plugin/mikioplugin/syntax/placeholder.php (revision 1f71841cb8963211feaf5c6c8b5acf91a88f1d10)
1*1f71841cSJames Collins<?php
2*1f71841cSJames Collins/**
3*1f71841cSJames Collins * Mikio Syntax Plugin: Placeholder
4*1f71841cSJames Collins *
5*1f71841cSJames Collins * Syntax:  <PLACEHOLDER [colour=] [text=] [text-colour=] [width=] [height=] [classes=]></PLACEHOLDER>
6*1f71841cSJames Collins *
7*1f71841cSJames Collins * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
8*1f71841cSJames Collins * @author     James Collins <james.collins@outlook.com.au>
9*1f71841cSJames Collins */
10*1f71841cSJames Collins
11*1f71841cSJames Collinsif (!defined('DOKU_INC')) die();
12*1f71841cSJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13*1f71841cSJames Collinsrequire_once(dirname(__FILE__).'/core.php');
14*1f71841cSJames Collins
15*1f71841cSJames Collinsclass syntax_plugin_mikioplugin_placeholder extends syntax_plugin_mikioplugin_core {
16*1f71841cSJames Collins    public $tag                 = 'placeholder';
17*1f71841cSJames Collins    public $noEndTag            = true;
18*1f71841cSJames Collins    public $options             = array('width', 'height', 'text', 'colour', 'text-colour', 'classes');
19*1f71841cSJames Collins
20*1f71841cSJames Collins
21*1f71841cSJames Collins    public function render_lexer_special(Doku_Renderer $renderer, $data) {
22*1f71841cSJames Collins        $colour = '#868e96';
23*1f71841cSJames Collins        $textcolour = '#dee2e6';
24*1f71841cSJames Collins        $classes = '';
25*1f71841cSJames Collins
26*1f71841cSJames Collins        if(array_key_exists('colour', $data) && $data['colour'] != '') {
27*1f71841cSJames Collins            $colour = $data['colour'];
28*1f71841cSJames Collins        }
29*1f71841cSJames Collins
30*1f71841cSJames Collins        if(array_key_exists('text-colour', $data) && $data['text-colour'] != '') {
31*1f71841cSJames Collins            $colour = $data['text-colour'];
32*1f71841cSJames Collins        }
33*1f71841cSJames Collins
34*1f71841cSJames Collins        if(array_key_exists('classes', $data) && $data['classes'] != '') {
35*1f71841cSJames Collins            $classes = 'classes="' . $data['classes'] . '" ';
36*1f71841cSJames Collins        }
37*1f71841cSJames Collins
38*1f71841cSJames Collins        $renderer->doc .= '<svg ' . $classes . (array_key_exists('width', $data) && $data['width'] != '' ? ' width="' . $data['width'] . '" ' : '') . (array_key_exists('height', $data) && $data['height'] != '' ? ' height="' . $data['height'] . '" ' : '') . ' xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img">';
39*1f71841cSJames Collins        $renderer->doc .= '<rect width="100%" height="100%" fill="' . $colour . '"></rect>';
40*1f71841cSJames Collins
41*1f71841cSJames Collins        if(array_key_exists('text', $data) && $data['text'] != '') $renderer->doc .= '<text x="50%" y="50%" fill="' .$textcolour . '" dominant-baseline="middle" text-anchor="middle">' . $data['text'] . '</text>';
42*1f71841cSJames Collins
43*1f71841cSJames Collins        $renderer->doc .= '</svg>';
44*1f71841cSJames Collins    }
45*1f71841cSJames Collins}
46*1f71841cSJames Collins?>