PluginProbe
Easy Bootstrap Shortcode / 4.5
Easy Bootstrap Shortcode v4.5
trunk 2.4.0 2.5 3.4 3.5 3.6 3.7 4.0.0 4.4 4.5 4.5.4 5.0.0 5.0.1 5.0.2
easy-bootstrap-shortcodes / shortcode / toggles / plugin_shortcode.php

plugin_shortcode.php in Easy Bootstrap Shortcode 4.5, at shortcode/toggles/plugin_shortcode.php

57 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /* * *********************************************************
4 * jQuery UI Accordion (toggles)
5 * ********************************************************* */
6
7 $_oscitas_accordion = array();
8
9 function osc_theme_toggles($params, $content = null) {
10 global $_oscitas_accordion;
11 extract(shortcode_atts(array(
12 'id' => count($_oscitas_accordion),
13 'class' => ''
14 ), $params));
15 $_oscitas_accordion[$id] = array();
16 $scontent = do_shortcode($content);
17
18 $output = '';
19 if (trim($scontent) != '' || count($_oscitas_accordion[$id]['details'])) {
20 $scontent = isset($_oscitas_accordion[$id]['details']) && is_array($_oscitas_accordion[$id]['details']) ? implode('', $_oscitas_accordion[$id]['details']) : '';
21 $output .= '<div class="panel-group ' . $class .EBS_CONTAINER_CLASS. '" id="oscitas-accordion-' . $id . '">' . $scontent;
22 $output .= '</div>';
23 }
24 return $output;
25 }
26
27 ebs_backward_compatibility_callback('toggles', 'osc_theme_toggles');
28
29 function osc_theme_toggle($params, $content = null) {
30 global $_oscitas_accordion;
31 extract(shortcode_atts(array(
32 'title' => 'title',
33 'class' => ''
34 ), $params));
35 $con = do_shortcode($content);
36 $index = count($_oscitas_accordion) - 1;
37 $id = isset($_oscitas_accordion[$index]['details'])?'details-' . $index . '-' . count($_oscitas_accordion[$index]['details']):'details-' . $index . '-0';
38 $const = get_defined_constants();
39 $_oscitas_accordion[$index]['details'][] = <<<EOS
40 <div class="panel panel-default{$const['EBS_CONTAINER_CLASS']}">
41 <div class="panel-heading{$const['EBS_CONTAINER_CLASS']}">
42 <h4 class="panel-title{$const['EBS_CONTAINER_CLASS']}">
43 <a class="accordion-toggle{$const['EBS_CONTAINER_CLASS']} collapsed" data-toggle="collapse"
44 data-parent="#oscitas-accordion-{$index}"
45 href="#{$id}">
46 {$title}
47 </a>
48 </h4>
49 </div>
50 <div id="{$id}" class="panel-collapse collapse {$class}{$const['EBS_CONTAINER_CLASS']}">
51 <div class="panel-body{$const['EBS_CONTAINER_CLASS']}">{$con}</div>
52 </div>
53 </div>
54 EOS;
55 }
56
57 ebs_backward_compatibility_callback('toggle', 'osc_theme_toggle');