xref: /plugin/mikioplugin/syntax/card.php (revision 7935713e90ae66bca4380ea057ab7fd4f3e18daa)
117e6d639SJames Collins<?php
217e6d639SJames Collins/**
317e6d639SJames Collins * Mikio Syntax Plugin: Card
417e6d639SJames Collins *
5*7935713eSJames Collins * @link        http://github.com/nomadjimbob/mikioplugin
617e6d639SJames Collins * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
717e6d639SJames Collins * @author      James Collins <james.collins@outlook.com.au>
817e6d639SJames Collins */
917e6d639SJames Collinsif (!defined('DOKU_INC')) die();
1017e6d639SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
1117e6d639SJames Collinsrequire_once(dirname(__FILE__).'/core.php');
1217e6d639SJames Collins
1317e6d639SJames Collinsclass syntax_plugin_mikioplugin_card extends syntax_plugin_mikioplugin_core {
1417e6d639SJames Collins    public $tag                 = 'card';
15*7935713eSJames Collins    public $hasEndTag           = true;
16*7935713eSJames Collins    public $options             = array(
17*7935713eSJames Collins        'image'         => array('type'     => 'media',      'default'   => ''),
18*7935713eSJames Collins        'overlay'       => array('type'     => 'boolean',   'default'   => 'false'),
19*7935713eSJames Collins        'title'         => array('type'     => 'text',      'default'   => ''),
20*7935713eSJames Collins        'subtitle'      => array('type'     => 'text',      'default'   => ''),
21*7935713eSJames Collins        'no-body'        => array('type'     => 'boolean',   'default'   => 'false'),
22*7935713eSJames Collins        'header'      => array('type'     => 'text',      'default'   => ''),
23*7935713eSJames Collins        'footer'      => array('type'     => 'text',      'default'   => ''),
24*7935713eSJames Collins        'placeholder-text'      => array('type'     => 'text',      'default'   => ''),
25*7935713eSJames Collins        'placeholder-color'      => array('type'     => 'text',      'default'   => ''),
26*7935713eSJames Collins        'placeholder-text-color'      => array('type'     => 'text',      'default'   => ''),
27*7935713eSJames Collins        'footer-image'      => array('type'     => 'media',      'default'   => ''),
28*7935713eSJames Collins        'footer-placeholder-text'      => array('type'     => 'text',      'default'   => ''),
29*7935713eSJames Collins        'footer-placeholder-color'      => array('type'     => 'text',      'default'   => ''),
30*7935713eSJames Collins        'footer-placeholder-text-color'      => array('type'     => 'text',      'default'   => ''),
31*7935713eSJames Collins        'horizontal'            => array('type'     => 'boolean',   'default'   => 'false'),
32*7935713eSJames Collins        'footer-small'        => array('type'     => 'boolean',   'default'   => 'false'),
33*7935713eSJames Collins    );
3417e6d639SJames Collins
3517e6d639SJames Collins
36*7935713eSJames Collins    public function __construct() {
37*7935713eSJames Collins        $this->addCommonOptions('type shadow width height text-align');
38*7935713eSJames Collins    }
39*7935713eSJames Collins
4017e6d639SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
41*7935713eSJames Collins        $classes = $this->buildClass($data, array('overlay', 'horizontal'));
42*7935713eSJames Collins        $styles = $this->buildStyle(array('height' => $data['height'], 'width' => $data['width']), TRUE);
4317e6d639SJames Collins
44*7935713eSJames Collins        $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'card' . $classes . '"' . $styles . '>';
45f4aa5cdcSJames Collins
46*7935713eSJames Collins        if($data['horizontal']) $renderer->doc .= '<div class="' . $this->elemClass . ' ' . $this->classPrefix . 'card-horizontal-image">';
47*7935713eSJames Collins        if($data['placeholder-text'] != '') {
48*7935713eSJames Collins            $this->syntaxRender($renderer, 'placeholder', '', $this->arrayRemoveEmpties(array('text' => $data['placeholder-text'], 'color' => $data['placeholder-color'], 'text-color' => $data['placeholder-text-color'])));
49*7935713eSJames Collins        } elseif($data['image'] != '') {
50*7935713eSJames Collins            $renderer->doc .= '<img src="' . $data['image'] . '" class="' . $this->elemClass . ' ' . $this->classPrefix . 'card-image">';
51939c483cSJames Collins        }
52*7935713eSJames Collins        if($data['horizontal']) $renderer->doc .= '</div><div class="' . $this->elemClass . ' ' . $this->classPrefix . 'card-horizontal-body">';
5317e6d639SJames Collins
54*7935713eSJames Collins        if($data['header'] != '') $this->syntaxRender($renderer, 'cardheader', $data['header']);
551e2e4602SJames Collins
56*7935713eSJames Collins        if($data['no-body'] == FALSE) $this->syntaxRender($renderer, 'cardbody', '', null, MIKIO_LEXER_ENTER);
5717e6d639SJames Collins
58*7935713eSJames Collins        if($data['title'] != '') $this->syntaxRender($renderer, 'cardtitle', $data['title']);
59*7935713eSJames Collins        if($data['subtitle'] != '') $this->syntaxRender($renderer, 'cardsubtitle', $data['subtitle']);
6017e6d639SJames Collins    }
6117e6d639SJames Collins
6217e6d639SJames Collins
6317e6d639SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
64*7935713eSJames Collins        if($data['no-body'] == FALSE) $this->syntaxRender($renderer, 'cardbody', '', null, MIKIO_LEXER_EXIT);
65f4aa5cdcSJames Collins
66*7935713eSJames Collins        if($data['footer'] != '') {
67*7935713eSJames Collins            $this->syntaxRender($renderer, 'cardfooter', $data['footer'], $this->arrayRemoveEmpties(array('small' => $data['footer-small'])));
6817e6d639SJames Collins        }
6917e6d639SJames Collins
70*7935713eSJames Collins        if($data['footer-placeholder-text'] != '') {
71*7935713eSJames Collins            $this->syntaxRender($renderer, 'placeholder', '', $this->arrayRemoveEmpties(array('text' => $data['footer-placeholder-text'], 'color' => $data['footer-placeholder-color'], 'text-color' => $data['footer-placeholder-text-color'])));
72*7935713eSJames Collins        } elseif($data['footer-image'] != '') {
73*7935713eSJames Collins            $renderer->doc .= '<img src="' . $data['footer-image'] . '" class="' . $this->elemClass . ' ' . $this->classPrefix . 'card-image">';
741e2e4602SJames Collins        }
751e2e4602SJames Collins
76*7935713eSJames Collins        if($data['horizontal']) $renderer->doc .= '</div>';
7717e6d639SJames Collins        $renderer->doc .= '</div>';
7817e6d639SJames Collins    }
7917e6d639SJames Collins}
8017e6d639SJames Collins?>