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