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?>