xref: /plugin/mikioplugin/syntax/accordionitem.php (revision f5938de5b5926511c9beebf3b0b4360a6ae4f808)
1*f5938de5SJames Collins<?php
2*f5938de5SJames Collins/**
3*f5938de5SJames Collins * Mikio Syntax Plugin: Accordion Item
4*f5938de5SJames Collins *
5*f5938de5SJames Collins * Syntax:  <ACCORDION-ITEM></ACCORDION-ITEM>
6*f5938de5SJames Collins *
7*f5938de5SJames Collins * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
8*f5938de5SJames Collins * @author     James Collins <james.collins@outlook.com.au>
9*f5938de5SJames Collins */
10*f5938de5SJames Collins
11*f5938de5SJames Collinsif (!defined('DOKU_INC')) die();
12*f5938de5SJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13*f5938de5SJames Collinsrequire_once(dirname(__FILE__).'/core.php');
14*f5938de5SJames Collins
15*f5938de5SJames Collinsclass syntax_plugin_mikioplugin_accordionitem extends syntax_plugin_mikioplugin_core {
16*f5938de5SJames Collins    public $tag                 = 'accordion-item';
17*f5938de5SJames Collins    public $options             = array('title', 'id', 'parent', 'show');
18*f5938de5SJames Collins
19*f5938de5SJames Collins
20*f5938de5SJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
21*f5938de5SJames Collins        $id = '';
22*f5938de5SJames Collins        $parent = '';
23*f5938de5SJames Collins        $title = '';
24*f5938de5SJames Collins        $heading = 'heading_' . rand(0, 32767);
25*f5938de5SJames Collins        $collapse = 'collapse_' . rand(0, 32767);
26*f5938de5SJames Collins        $show = '';
27*f5938de5SJames Collins
28*f5938de5SJames Collins        if(array_key_exists('id', $data) && $data['id'] != '') {
29*f5938de5SJames Collins            $id = $data['id'];
30*f5938de5SJames Collins        } else {
31*f5938de5SJames Collins            $id = 'accordion_item_' . rand(0, 32767);
32*f5938de5SJames Collins            $this->values['id'] = $id;
33*f5938de5SJames Collins        }
34*f5938de5SJames Collins
35*f5938de5SJames Collins        if(array_key_exists('parent', $data) && $data['parent'] != '') $parent = $data['parent'];
36*f5938de5SJames Collins        if(array_key_exists('title', $data) && $data['title'] != '') $title = $data['title'];
37*f5938de5SJames Collins        if(array_key_exists('show', $data) && $data['show'] != false) $show = 'show';
38*f5938de5SJames Collins
39*f5938de5SJames Collins        $renderer->doc .= '<div class="card"><div class="card-header" id="' . $heading . '"><h5 class="mb-0"><button class="btn btn-link" data-toggle="collapse" data-target="#' . $collapse . '" aria-expanded="true" aria-controls="' . $collapse . '">' . $title . '</button></h5></div><div id="' . $collapse . '" class="collapse ' . $show . '" aria-labelledby="' . $heading . '" data-parent="#' . $parent . '"><div class="card-body">';
40*f5938de5SJames Collins    }
41*f5938de5SJames Collins
42*f5938de5SJames Collins
43*f5938de5SJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
44*f5938de5SJames Collins        $renderer->doc .= '</div></div></div>';
45*f5938de5SJames Collins    }
46*f5938de5SJames Collins}
47*f5938de5SJames Collins?>