xref: /plugin/mikioplugin/syntax/card.php (revision 17e6d63900b7250e4c2aa308b63914ffea16ab55)
1*17e6d639SJames Collins<?php
2*17e6d639SJames Collins/**
3*17e6d639SJames Collins * Mikio Syntax Plugin: Card
4*17e6d639SJames Collins *
5*17e6d639SJames Collins * Syntax:  <CARD [width=] [height=] [image=] [title=] [header=] [subtitle=] [listgroup] [nobody]></CARD>
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_card extends syntax_plugin_mikioplugin_core {
16*17e6d639SJames Collins    public $tag                 = 'card';
17*17e6d639SJames Collins    public $options             = array('width', 'height', 'image', 'title', 'subtitle', 'listgroup', 'nobody', 'header');
18*17e6d639SJames Collins
19*17e6d639SJames Collins
20*17e6d639SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
21*17e6d639SJames Collins        $styles = [];
22*17e6d639SJames Collins        $body = true;
23*17e6d639SJames Collins
24*17e6d639SJames Collins        $this->setAttr($styles, 'width', $data);
25*17e6d639SJames Collins        $this->setAttr($styles, 'height', $data);
26*17e6d639SJames Collins
27*17e6d639SJames Collins        $renderer->doc .= '<div class="card"' . $this->listAttr('style', $styles) . '>';
28*17e6d639SJames Collins        if(array_key_exists('image', $data) && $data['image'] != '') $renderer->doc .= '<img src="' . $this->getMediaFile($data['image']) . '" class="card-img-top">';
29*17e6d639SJames Collins
30*17e6d639SJames Collins        if((array_key_exists('listgroup', $data) && $data['listgroup'] == true) || (array_key_exists('nobody', $data) && $data['nobody'] == true)) $body = false;
31*17e6d639SJames Collins
32*17e6d639SJames Collins        if(array_key_exists('header', $data) && $data['header'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardheader', $data['header']);
33*17e6d639SJames Collins
34*17e6d639SJames Collins        if($body) {
35*17e6d639SJames Collins            $renderer->doc .= '<div class="card-body">';
36*17e6d639SJames Collins        }
37*17e6d639SJames Collins
38*17e6d639SJames Collins        if(array_key_exists('title', $data) && $data['title'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardtitle', $data['title']);
39*17e6d639SJames Collins        if(array_key_exists('subtitle', $data) && $data['subtitle'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardsubtitle', $data['subtitle']);
40*17e6d639SJames Collins    }
41*17e6d639SJames Collins
42*17e6d639SJames Collins
43*17e6d639SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
44*17e6d639SJames Collins        if((!array_key_exists('listgroup', $this->values) || $this->values['listgroup'] == false) && (!array_key_exists('nobody', $this->values) || $this->values['nobody'] == false)) {
45*17e6d639SJames Collins            $renderer->doc .= '</div>';
46*17e6d639SJames Collins        }
47*17e6d639SJames Collins
48*17e6d639SJames Collins        $renderer->doc .= '</div>';
49*17e6d639SJames Collins    }
50*17e6d639SJames Collins}
51*17e6d639SJames Collins?>