PluginProbe
Easy Bootstrap Shortcode / trunk
Easy Bootstrap Shortcode vtrunk
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 / slider / plugin_shortcode.php

plugin_shortcode.php in Easy Bootstrap Shortcode trunk, at shortcode/slider/plugin_shortcode.php

167 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5 use EBS\Security\Sanitizer;
6 use EBS\Styles\Dynamic_Css;
7
8 /* * *********************************************************
9 * jQuery UI Accordion (sliders)
10 * ********************************************************* */
11
12 $_oscitas_slider = array();
13 $_oscitas_slider_slides = array();
14
15 function osc_theme_sliders( $params, $content = null ) {
16 global $_oscitas_slider, $_oscitas_slider_counter;
17
18 if ( ! count( $_oscitas_slider ) ) {
19 $_oscitas_slider = array( 'current_id' => 0 );
20 }
21
22 $atts = shortcode_atts(
23 array(
24 'id' => count( $_oscitas_slider ),
25 'class' => '',
26 'interval' => '',
27 'controls' => '',
28 'bullets' => '',
29 'pause' => '',
30 'wrap' => '',
31 'captioncolor' => '',
32 'navcolor' => '',
33 ),
34 $params
35 );
36
37 wp_enqueue_script( 'ebs_fit_text', EBS_PLUGIN_URL . 'js/jquery.fittext.js' );
38
39 $id = Sanitizer::int( $atts['id'] );
40 $class = Sanitizer::class_list( $atts['class'] );
41 $interval = Sanitizer::attr( $atts['interval'] );
42 $pause = Sanitizer::attr( $atts['pause'] );
43 $wrap = Sanitizer::attr( $atts['wrap'] );
44 $captioncolor = Sanitizer::hex_color( $atts['captioncolor'] );
45 $navcolor = Sanitizer::hex_color( $atts['navcolor'] );
46
47 $_oscitas_slider[ $id ] = array();
48 $_oscitas_slider['current_id'] = count( $_oscitas_slider ) - 1;
49 $_oscitas_slider_slides[ $_oscitas_slider['current_id'] ] = array();
50
51 $bulllet_content = '';
52
53 $scontent = do_shortcode( $content );
54 if ( count( $_oscitas_slider[ $id ]['bullets'] ) ) {
55 $bulllet_content = isset( $_oscitas_slider[ $id ]['bullets'] ) && is_array( $_oscitas_slider[ $id ]['bullets'] ) ? implode( '', $_oscitas_slider[ $id ]['bullets'] ) : '';
56 }
57
58 $output = '';
59 if ( '' !== trim( $scontent ) || count( $_oscitas_slider[ $id ]['details'] ) ) {
60 $scontent = isset( $_oscitas_slider[ $id ]['details'] ) && is_array( $_oscitas_slider[ $id ]['details'] ) ? implode( '', $_oscitas_slider[ $id ]['details'] ) : '';
61
62 $output .= '<div id="oscitas-slider-' . $id . '" class="carousel ebs-carousel slide ' . $class . EBS_CONTAINER_CLASS . '" data-ride="carousel" data-interval="' . $interval . '" data-pause="' . $pause . '" data-wrap="' . $wrap . '">';
63 if ( '' !== $atts['bullets'] ) {
64 $output .= ' <ol class="carousel-indicators">' . $bulllet_content . '</ol>';
65 }
66
67 $output .= ' <div class="carousel-inner ' . EBS_CONTAINER_CLASS . '" >' . $scontent;
68 $output .= '</div>';
69
70 if ( '' !== $atts['controls'] ) {
71 $output .= ' <a class="left carousel-control" href="#oscitas-slider-' . $id . '" data-slide="prev">
72 <span class="glyphicon glyphicon-chevron-left"></span>
73 </a>
74 <a class="right carousel-control" href="#oscitas-slider-' . $id . '" data-slide="next">
75 <span class="glyphicon glyphicon-chevron-right"></span>
76 </a>';
77 }
78
79 $output .= '</div>';
80
81 Dynamic_Css::add(
82 "
83 #oscitas-slider-{$id} a.carousel-control span{
84 color:{$navcolor};
85 }
86 #oscitas-slider-{$id} ol.carousel-indicators {
87 margin:0;
88 }
89 #oscitas-slider-{$id} ol.carousel-indicators li{
90 border-color:{$navcolor};
91 margin :1px;
92 float: left;
93 }
94 #oscitas-slider-{$id} ol.carousel-indicators li.active{
95 background-color:{$navcolor};
96 }
97 #oscitas-slider-{$id} .carousel-caption .ebs-caption{
98 color:#FFFFFF;
99 color:{$captioncolor};
100 line-height:1.5;
101 margin:0;
102 padding:0;
103 }
104 #oscitas-slider-{$id} .carousel-inner > .item > img, #oscitas-slider-{$id} .carousel-inner > .item > a > img{
105 width:100%;
106 }
107 "
108 );
109 }
110
111 $_oscitas_slider['current_id'] -= 1;
112
113 return $output;
114 }
115
116 ebs_backward_compatibility_callback( 'slider', 'osc_theme_sliders' );
117
118 function osc_theme_slider( $params, $content = null ) {
119 global $_oscitas_slider, $_oscitas_slider_slides;
120
121 $index = $_oscitas_slider['current_id'];
122 if ( ! isset( $_oscitas_slider_slides[ $index ] ) ) {
123 $_oscitas_slider_slides[ $index ] = array();
124 }
125
126 $atts = shortcode_atts(
127 array(
128 'title' => 'title',
129 'image' => '',
130 'caption' => '',
131 'active' => '',
132 'slideid' => count( $_oscitas_slider_slides[ $index ] ),
133 ),
134 $params
135 );
136
137 $title = Sanitizer::html( $atts['title'] );
138 $image = Sanitizer::url( $atts['image'] );
139 $caption = Sanitizer::html( $atts['caption'] );
140 $active = Sanitizer::class_list( $atts['active'] );
141 $slideid = Sanitizer::int( $atts['slideid'] );
142
143 if ( ! empty( $atts['image'] ) ) {
144 $_oscitas_slider[ $index ]['bullets'][] = '<li data-target="#oscitas-slider-' . $index . '" data-slide-to="' . $slideid . '" class="' . $active . '"></li>';
145 $_oscitas_slider_slides[ $index ][ $slideid ] = array();
146
147 $caption_html = '';
148 if ( ! empty( $atts['caption'] ) ) {
149 $caption_html = '<p class="ebs-caption">' . $caption . '</p>';
150 }
151 if ( ! empty( $content ) ) {
152 $caption_html = '<p class="ebs-caption">' . do_shortcode( $content ) . '</p>';
153 }
154
155 $_oscitas_slider[ $index ]['details'][] =
156 '<div class="item ' . $active . EBS_CONTAINER_CLASS . '">' .
157 '<img src="' . $image . '" >' .
158 '<div class="carousel-caption' . EBS_CONTAINER_CLASS . '">' .
159 '<h3 class="ebs-caption">' . $title . '</h3>' .
160 $caption_html .
161 '</div>' .
162 '</div>';
163 }
164 }
165
166 ebs_backward_compatibility_callback( 'slide', 'osc_theme_slider' );
167