PluginProbe
Powerkit – Supercharge your WordPress Site / trunk
Powerkit – Supercharge your WordPress Site vtrunk
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 trunk, at modules/basic-elements/templates/collapsibles.php

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