PluginProbe
Powerkit – Supercharge your WordPress Site / 3.0.4
Powerkit – Supercharge your WordPress Site v3.0.4
3.1.1 3.1.0 3.0.9 3.0.8 trunk 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 All 87 releases
powerkit / modules / basic-elements / templates / collapsibles.php

collapsibles.php in Powerkit – Supercharge your WordPress Site 3.0.4, at modules/basic-elements/templates/collapsibles.php

123 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Shortcode Collapsibles config
4 *
5 * @package Powerkit
6 * @subpackage Templates
7 */
8
9 /**
10 * Collapsibles
11 */
12 add_action( 'init', function () {
13 powerkit_basic_shortcodes_register( array(
14 'name' => 'collapsibles',
15 'title' => esc_html__( 'Collapsibles', 'powerkit' ),
16 'priority' => 50,
17 'base' => 'powerkit_collapsibles',
18 'autoregister' => true,
19 'fields' => array(
20 array(
21 'type' => 'section',
22 'label' => esc_html__( 'Content', 'powerkit' ),
23 ),
24 array(
25 'type' => 'repeater',
26 'base' => 'powerkit_collapsible',
27 'autoregister' => true,
28 'label' => esc_html__( 'Collapsibles', 'powerkit' ),
29 'fields' => array(
30 array(
31 'type' => 'input',
32 'name' => 'title',
33 'label' => esc_html__( 'Title', 'powerkit' ),
34 'default' => '',
35 'attrs' => array(
36 'class' => 'widefat',
37 ),
38 ),
39 array(
40 'type' => 'content',
41 'name' => 'content',
42 'label' => esc_html__( 'Content', 'powerkit' ),
43 'default' => '',
44 'attrs' => array(
45 'class' => 'widefat',
46 'rows' => 6,
47 ),
48 ),
49 array(
50 'type' => 'checkbox',
51 'name' => 'opened',
52 'label' => esc_html__( 'Opened', 'powerkit' ),
53 'default' => false,
54 ),
55 ),
56 ),
57 ),
58 ) );
59 });
60
61 /**
62 * Collapsibles Shortcode
63 *
64 * @param array $output Shortcode HTML.
65 * @param array $atts User defined attributes in shortcode tag.
66 * @param string $content Shorcode tag content.
67 * @return string Shortcode result HTML.
68 */
69 function powerkit_basic_shortcodes_collapsibles( $output, $atts, $content ) {
70
71 $collapse_id = uniqid();
72
73 $output = sprintf(
74 '<div id="collapsibles-%1$s" class="pk-collapsibles" role="tablist" aria-multiselectable="true">%2$s</div>
75 ',
76 $collapse_id,
77 str_replace( 'data-parent="#"', 'data-parent="#pk-collapsibles-' . $collapse_id . '"', $content )
78 );
79
80 return $output;
81 }
82 add_filter( 'powerkit_collapsibles_shortcode', 'powerkit_basic_shortcodes_collapsibles', 10, 3 );
83
84
85 /**
86 * Collapsible Shortcode
87 *
88 * @param array $output Shortcode HTML.
89 * @param array $atts User defined attributes in shortcode tag.
90 * @param string $content Shorcode tag content.
91 * @return string Shortcode result HTML.
92 */
93 function powerkit_basic_shortcodes_collapsible( $output, $atts, $content ) {
94
95 $item_id = uniqid();
96 $output = sprintf(
97 '<div class="pk-collapsible pk-card %4$s">
98 <div class="pk-card-header" role="tab" id="card-%1$s">
99 <h6 class="pk-card-title pk-title">
100 <a data-toggle="collapse" class="pk-font-heading" href="#pk-collapse-%1$s" data-parent="#" aria-controls="collapse-%1$s">
101 %2$s
102 </a>
103 </h6>
104 </div>
105
106 <div id="pk-collapse-%1$s" class="pk-collapse" style="%3$s" role="tabpanel" aria-labelledby="card-%1$s">
107 <div class="pk-card-body">
108 %5$s
109 </div>
110 </div>
111 </div>
112 ',
113 esc_attr( $item_id ),
114 wp_kses( $atts['title'], 'post' ),
115 ( 'true' === $atts['opened'] ) ? 'display:block;' : 'display:none;',
116 ( 'true' === $atts['opened'] ) ? 'expanded' : '',
117 wp_kses( do_shortcode( $content ), 'post' ),
118 );
119
120 return $output;
121 }
122 add_filter( 'powerkit_collapsible_shortcode', 'powerkit_basic_shortcodes_collapsible', 10, 3 );
123