xref: /plugin/mikioplugin/syntax/card.php (revision f4aa5cdcd0e03f6c42013de167faf20da20a1685)
117e6d639SJames Collins<?php
217e6d639SJames Collins/**
317e6d639SJames Collins * Mikio Syntax Plugin: Card
417e6d639SJames Collins *
551a483e8SJames Collins * Syntax:  <CARD [image=] [image-overlay=] [footer-image=] [title=] [header=] [footer=] [subtitle=] [listgroup] [nobody] [placeholder-text=] [placeholder-colour=] [placeholder-text-colour=] [footer-placeholder-text=] [footer-placeholder-colour=] [footer-placeholder-text-colour=] [horizontal] [footer-small]></CARD>
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_card extends syntax_plugin_mikioplugin_core {
1617e6d639SJames Collins    public $tag                 = 'card';
1751a483e8SJames Collins    public $options             = array('image', 'overlay', 'title', 'subtitle', 'listgroup', 'nobody', 'header', 'footer', 'placeholder-text', 'placeholder-colour', 'placeholder-text-colour', 'footer-image', 'footer-placeholder-text', 'footer-placeholder-colour', 'footer-placeholder-text-colour', 'horizontal', 'footer-small');
1817e6d639SJames Collins
1917e6d639SJames Collins
2017e6d639SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
2117e6d639SJames Collins        $body = true;
229e360300SJames Collins        $overlay = false;
231e2e4602SJames Collins        $horizontal = false;
24e8488a2dSJames Collins        $classes = $this->buildClassString($data);
2517e6d639SJames Collins
26*f4aa5cdcSJames Collins
279e360300SJames Collins        if(array_key_exists('overlay', $data) && $data['overlay'] != false) $overlay = true;
281e2e4602SJames Collins        if(array_key_exists('horizontal', $data) && $data['horizontal'] != false) $horizontal = true;
299e360300SJames Collins
3051a483e8SJames Collins        $renderer->doc .= '<div class="card ' . $classes . '"' . $this->buildStyleString($data) . '>';
311e2e4602SJames Collins
321e2e4602SJames Collins        if($horizontal) $renderer->doc .= '<div class="row no-gutters"><div class="col-md-4">';
331e2e4602SJames Collins
34939c483cSJames Collins        if((array_key_exists('placeholder-text', $data) && $data['placeholder-text'] != '') || (array_key_exists('placeholder-colour', $data) && $data['placeholder-colour'] != '') || (array_key_exists('placeholder-text-colour', $data) && $data['placeholder-text-colour'] != '')) {
359e360300SJames Collins            $placeholderData = array('classes' => ($overlay ? 'card-img' : 'card-img-top'));
36939c483cSJames Collins            if(array_key_exists('placeholder-text', $data) && $data['placeholder-text'] != '') $placeholderData['text'] = $data['placeholder-text'];
37939c483cSJames Collins            if(array_key_exists('placeholder-colour', $data) && $data['placeholder-colour'] != '') $placeholderData['colour'] = $data['placeholder-colour'];
38939c483cSJames Collins            if(array_key_exists('placeholder-text-colour', $data) && $data['placeholder-text-colour'] != '') $placeholderData['text-colour'] = $data['placeholder-text-colour'];
39939c483cSJames Collins
40939c483cSJames Collins            $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_placeholder', '', $placeholderData);
41939c483cSJames Collins
42939c483cSJames Collins        } else {
4317e6d639SJames Collins            if(array_key_exists('image', $data) && $data['image'] != '') $renderer->doc .= '<img src="' . $this->getMediaFile($data['image']) . '" class="card-img-top">';
44939c483cSJames Collins        }
4517e6d639SJames Collins
461e2e4602SJames Collins        if($horizontal) $renderer->doc .= '</div><div class="col-md-8">';
471e2e4602SJames Collins
4817e6d639SJames Collins        if((array_key_exists('listgroup', $data) && $data['listgroup'] == true) || (array_key_exists('nobody', $data) && $data['nobody'] == true)) $body = false;
4917e6d639SJames Collins
5017e6d639SJames Collins        if(array_key_exists('header', $data) && $data['header'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardheader', $data['header']);
5117e6d639SJames Collins
5217e6d639SJames Collins        if($body) {
539e360300SJames Collins            if($overlay) {
549e360300SJames Collins                $renderer->doc .= '<div class="card-img-overlay">';
559e360300SJames Collins            } else {
5617e6d639SJames Collins                $renderer->doc .= '<div class="card-body">';
5717e6d639SJames Collins            }
589e360300SJames Collins        }
5917e6d639SJames Collins
6017e6d639SJames Collins        if(array_key_exists('title', $data) && $data['title'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardtitle', $data['title']);
6117e6d639SJames Collins        if(array_key_exists('subtitle', $data) && $data['subtitle'] != '') $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardsubtitle', $data['subtitle']);
6217e6d639SJames Collins    }
6317e6d639SJames Collins
6417e6d639SJames Collins
6517e6d639SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
66*f4aa5cdcSJames Collins        $body = true;
67*f4aa5cdcSJames Collins        $this->values = $data;
68*f4aa5cdcSJames Collins
69*f4aa5cdcSJames Collins        if((array_key_exists('listgroup', $this->values) && $this->values['listgroup'] == true) || (array_key_exists('nobody', $this->values) && $this->values['nobody'] == true)) $body = false;
70*f4aa5cdcSJames Collins
71*f4aa5cdcSJames Collins        if($body == true) {
7217e6d639SJames Collins            $renderer->doc .= '</div>';
7317e6d639SJames Collins        }
7417e6d639SJames Collins
751e2e4602SJames Collins        if(array_key_exists('horizontal', $this->values) && $this->values['horizontal'] != false) {
761e2e4602SJames Collins            $renderer->doc .= '</div></div>';
771e2e4602SJames Collins        }
781e2e4602SJames Collins
7928b6267bSJames Collins        $footerOptions = array();
8028b6267bSJames Collins        if(array_key_exists('footer-small', $this->values) && $this->values['footer-small'] != false) $footerOptions['small'] = true;
8128b6267bSJames Collins
8297cb33c1SJames Collins        if(array_key_exists('footer', $this->values) && $this->values['footer'] != '') {
8397cb33c1SJames Collins            $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_cardfooter', $this->values['footer'], $footerOptions);
8497cb33c1SJames Collins        }
8570fca862SJames Collins
860db6985aSJames Collins        if((array_key_exists('footer-placeholder-text', $this->values) && $this->values['footer-placeholder-text'] != '') || (array_key_exists('footer-placeholder-colour', $this->values) && $this->values['footer-placeholder-colour'] != '') || (array_key_exists('footer-placeholder-text-colour', $this->values) && $this->values['footer-placeholder-text-colour'] != '')) {
870db6985aSJames Collins            $placeholderData = array('classes' => 'card-img-top');
880db6985aSJames Collins            if(array_key_exists('footer-placeholder-text', $this->values) && $this->values['footer-placeholder-text'] != '') $placeholderData['text'] = $this->values['footer-placeholder-text'];
890db6985aSJames Collins            if(array_key_exists('footer-placeholder-colour', $this->values) && $this->values['footer-placeholder-colour'] != '') $placeholderData['colour'] = $this->values['footer-placeholder-colour'];
900db6985aSJames Collins            if(array_key_exists('footer-placeholder-text-colour', $this->values) && $this->values['footer-placeholder-text-colour'] != '') $placeholderData['text-colour'] = $this->values['footer-placeholder-text-colour'];
910db6985aSJames Collins
920db6985aSJames Collins            $this->syntaxRender($renderer, 'syntax_plugin_mikioplugin_placeholder', '', $placeholderData);
930db6985aSJames Collins
940db6985aSJames Collins        } else {
950db6985aSJames Collins            if(array_key_exists('footer-image', $this->values) && $this->values['footer-image'] != '') $renderer->doc .= '<img src="' . $this->getMediaFile($this->values['footer-image']) . '" class="card-img-top">';
960db6985aSJames Collins        }
970db6985aSJames Collins
9817e6d639SJames Collins        $renderer->doc .= '</div>';
9917e6d639SJames Collins    }
10017e6d639SJames Collins}
10117e6d639SJames Collins?>