PluginProbe
Virtue/Ascend/Pinnacle Toolkit / 4.9.12.2
Virtue/Ascend/Pinnacle Toolkit v4.9.12.2
4.9.12.2 trunk 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.7 All 48 releases
virtue-toolkit / shortcodes.php

shortcodes.php in Virtue/Ascend/Pinnacle Toolkit 4.9.12.2, at shortcodes.php

421 lines 16.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 //Shortcode for accordion
3 function virtue_toolkit_accordion_shortcode_function($atts, $content ) {
4 extract(shortcode_atts(array(
5 'id' => rand(1, 999)
6 ), $atts));
7 global $kt_pane_count, $kt_panes;
8 $kt_pane_count = 0;
9 $kt_panes = array();
10 $return = '';
11 do_shortcode( $content );
12 if( is_array( $kt_panes ) && !empty($kt_panes)){
13 $i = 0;
14 foreach( $kt_panes as $tab ){
15 if ($i % 2 == 0) {
16 $eo = "even";
17 } else {
18 $eo = "odd";
19 }
20 $tabs[] = '<div class="panel panel-default panel-'.esc_attr($eo).'"><div class="panel-heading"><a class="accordion-toggle '.esc_attr($tab['open']).'" data-toggle="collapse" data-parent="#accordionname'.esc_attr($id).'" href="#collapse'.esc_attr($id.$tab['link']).'"><h5><i class="icon-minus kt-icon-minus primary-color"></i><i class="icon-plus kt-icon-plus"></i>'.wp_kses_post($tab['title']).'</h5></a></div><div id="collapse'.esc_attr($id.$tab['link']).'" class="panel-collapse collapse '.esc_attr($tab['in']).'"><div class="panel-body postclass">'.do_shortcode($tab['content']).'</div></div></div>';
21 $i++;
22 }
23 $return = "\n".'<div class="panel-group kt-accordion" id="accordionname'.esc_attr($id).'">'.implode( "\n", $tabs ).'</div>'."\n";
24 }
25 return $return;
26 }
27
28 function virtue_toolkit_accordion_pane_function($atts, $content ) {
29 extract(shortcode_atts(array(
30 'title' => 'Pane %d',
31 'start' => ''
32 ), $atts));
33 if (!empty($start) || $start == 'closed') {
34 $open = '';
35 } else {
36 $open = 'collapsed';
37 }
38 if (!empty($start) || $start == 'closed') {
39 $in = 'in';
40 } else {
41 $in = '';
42 }
43 global $kt_pane_count, $kt_panes;
44 $x = $kt_pane_count;
45 $kt_panes[$x] = array( 'title' => $title, 'open' => $open, 'in' => $in, 'link' => $kt_pane_count, 'content' => $content );
46
47 $kt_pane_count++;
48 }
49 function virtue_toolkit_tab_shortcode_function($atts, $content ) {
50 extract(shortcode_atts(array(
51 'id' => rand(1, 9999),
52 'style' => '1',
53 ), $atts));
54 global $kt_tab_count, $kt_tabs;
55 $kt_tab_count = 0;
56 $kt_tabs = array();
57 $return = '';
58 do_shortcode( $content );
59 if( is_array( $kt_tabs ) && !empty($kt_tabs)) {
60 foreach( $kt_tabs as $nav ){
61 $tabnav[] = '<li class="'.esc_attr($nav['active']).'"><a href="#sctab'.esc_attr($id.$nav['link']).'">'.wp_kses_post($nav['title']).'</a></li>';
62 }
63 foreach( $kt_tabs as $tab ){
64 $tabs[] = '<div class="tab-pane clearfix '.esc_attr($tab['active']).'" id="sctab'.esc_attr($id.$tab['link']).'">'.do_shortcode( $tab['content']).'</div>';
65 }
66
67 $return = "\n".'<ul class="nav nav-tabs sc_tabs kt-tabs kt-sc-tabs kt-tabs-style'.esc_attr($style).'">'.implode( "\n", $tabnav ).'</ul> <div class="tab-content kt-tab-content postclass">'.implode( "\n", $tabs ).'</div>'."\n";
68 }
69 return $return;
70 }
71 function virtue_toolkit_tab_pane_function($atts, $content ) {
72 extract(shortcode_atts(array(
73 'title' => 'Tab %d',
74 'start' => ''
75 ), $atts));
76 if (!empty($start)) {
77 $active = 'active';
78 } else {
79 $active = '';
80 }
81 global $kt_tab_count, $kt_tabs;
82
83 $x = $kt_tab_count;
84 $kt_tabs[$x] = array( 'title' => $title, 'active' => $active, 'link' => $kt_tab_count, 'content' => $content );
85
86 $kt_tab_count++;
87 }
88
89 //Shortcode for columns
90 function virtue_toolkit_column_shortcode_function( $atts, $content ) {
91 return '<div class="row">'.do_shortcode($content).'</div>';
92 }
93 function virtue_toolkit_hcolumn_shortcode_function( $atts, $content ) {
94 return '<div class="row">'.do_shortcode($content).'</div>';
95 }
96 function virtue_toolkit_column11_function( $atts, $content ) {
97 return '<div class="col-md-11">'.do_shortcode($content).'</div>';
98 }
99 function virtue_toolkit_column10_function( $atts, $content ) {
100 return '<div class="col-md-10">'.do_shortcode($content).'</div>';
101 }
102 function virtue_toolkit_column9_function( $atts, $content ) {
103 return '<div class="col-md-9">'.do_shortcode($content).'</div>';
104 }
105 function virtue_toolkit_column8_function( $atts, $content ) {
106 return '<div class="col-md-8">'.do_shortcode($content).'</div>';
107 }
108 function virtue_toolkit_column7_function( $atts, $content ) {
109 return '<div class="col-md-7">'.do_shortcode($content).'</div>';
110 }
111 function virtue_toolkit_column6_function( $atts, $content ) {
112 return '<div class="col-md-6">'.do_shortcode($content).'</div>';
113 }
114 function virtue_toolkit_column5_function( $atts, $content ) {
115 return '<div class="col-md-5">'.do_shortcode($content).'</div>';
116 }
117 function virtue_toolkit_column4_function( $atts, $content ) {
118 return '<div class="col-md-4">'.do_shortcode($content).'</div>';
119 }
120 function virtue_toolkit_column3_function( $atts, $content ) {
121 return '<div class="col-md-3">'.do_shortcode($content).'</div>';
122 }
123 function virtue_toolkit_column2_function( $atts, $content ) {
124 return '<div class="col-md-2">'.do_shortcode($content).'</div>';
125 }
126 function virtue_toolkit_column1_function( $atts, $content ) {
127 return '<div class="col-md-1">'.do_shortcode($content).'</div>';
128 }
129 //Shortcode for Icons
130 function virtue_toolkit_icon_shortcode_function( $atts) {
131 extract(shortcode_atts(array(
132 'icon' => '',
133 'size' => '',
134 'color' => '',
135 'float'=> ''
136 ), $atts));
137 if ($float != '') {
138 $output = '<i class="'.esc_attr($icon).'" style="font-size:'.esc_attr($size).'; color:'.esc_attr($color).'; float:'.esc_attr($float).'; padding:10px;"></i>';
139 } else {
140 $output = '<i class="'.esc_attr($icon).'" style="font-size:'.esc_attr($size).'; color:'.esc_attr($color).';"></i>';
141 }
142 return $output;
143 }
144 // Video Shortcode
145 function virtue_toolkit_video_shortcode_function( $atts, $content) {
146 extract(shortcode_atts(array(
147 'width' => '',
148 ), $atts));
149 if(!empty($width)) {
150 $output = '<div style="max-width:'.esc_attr($width).'px;"><div class="videofit">'.wp_kses_post($content).'</div></div>';
151 } else {
152 $output = '<div class="videofit">'.wp_kses_post($content).'</div>';
153 }
154 return $output;
155 }
156 // Based on Ultimate Shortcodes youtube and vimeo shortcodes
157 function virtue_toolkit_youtube_shortcode_function( $atts, $content) {
158 // Prepare data
159 $atts = shortcode_atts(array(
160 'url' => false,
161 'width' => 600,
162 'height' => 400,
163 'maxwidth' => '',
164 'autoplay' => 'false',
165 'controls' => 'true',
166 'hidecontrols' => 'false',
167 'fs' => 'true',
168 'loop' => 'false',
169 'rel' => 'false',
170 'vq' => '',
171 'modestbranding' => 'false',
172 'theme' => 'dark'
173 ), $atts, 'kad_youtube' );
174 $return = array();
175 $params = array();
176
177 if ( !$atts['url'] ){
178 return '<p class="error">YouTube: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '</p>';
179 }
180 $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false;
181 // Check that url is specified
182 if ( !$id ) {
183 return '<p class="error">YouTube: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '</p>';
184 }
185 // Prepare params
186 if($atts['hidecontrols'] == 'true') {$atts['controls'] = 'false';}
187 foreach ( array('autoplay', 'controls', 'fs', 'modestbranding', 'theme', 'rel', 'loop' ) as $param ) $params[$param] = str_replace( array( 'false', 'true', 'alt' ), array( '0', '1', '2' ), $atts[$param] );
188 // Prepare player parameters
189 if(!empty($atts['vq']) ) {$params['vq'] = $atts['vq']; }
190 $params = http_build_query( $params );
191 $maxwidth = absint( $atts['maxwidth'] );
192 $style = $maxwidth ? ' style="max-width:' . $maxwidth . 'px;"' : '';
193 // Create player
194 $return[] = '<div class="kad-youtube-shortcode videofit"' . $style . '>';
195 $return[] = '<iframe width="' . esc_attr($atts['width']) . '" height="' . esc_attr($atts['height']) . '" src="//www.youtube.com/embed/' . esc_attr($id) . '?' . esc_attr($params) . '" frameborder="0" allowfullscreen="true"></iframe>';
196 $return[] = '</div>';
197 // Return result
198 return implode( '', $return );
199 }
200 function virtue_toolkit_vimeo_shortcode_function( $atts, $content) {
201 $atts = shortcode_atts( array(
202 'url' => false,
203 'width' => 600,
204 'height' => 400,
205 'maxwidth' => '',
206 'autoplay' => 'no'
207 ), $atts, 'vimeo' );
208
209 if ( !$atts['url'] ){
210 return '<p class="error">Vimeo: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '</p>';
211 }
212 $id = ( preg_match( '~(?:<iframe [^>]*src=")?(?:https?:\/\/(?:[\w]+\.)*vimeo\.com(?:[\/\w]*\/videos?)?\/([0-9]+)[^\s]*)"?(?:[^>]*></iframe>)?(?:<p>.*</p>)?~ix', $atts['url'], $match ) ) ? $match[1] : false;
213 // Check that url is specified
214 if ( !$id ) {
215 return '<p class="error">Vimeo: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '</p>';
216 }
217 $return = array();
218 $maxwidth = absint( $atts['maxwidth'] );
219 $style = $maxwidth ? ' style="max-width:' . $maxwidth . 'px;"' : '';
220 $autoplay = ( $atts['autoplay'] === 'yes' ) ? '&amp;autoplay=1' : '';
221 // Create player
222 $return[] = '<div class="kad-vimeo-shortcode videofit"' . $style . '>';
223 $return[] = '<iframe width="' . esc_attr($atts['width']) . '" height="' . esc_attr($atts['height']) .'" src="//player.vimeo.com/video/' . esc_attr($id) . '?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff' .esc_attr($autoplay) . '" frameborder="0" allowfullscreen="true"></iframe>';
224 $return[] = '</div>';
225
226 // Return result
227 return implode( '', $return );
228 }
229 //Button
230 function virtue_toolkit_button_shortcode_function( $atts) {
231 extract(shortcode_atts(array(
232 'id' => rand(1, 999),
233 'bcolor' => '',
234 'bhovercolor' => '',
235 'thovercolor' => '',
236 'link' => '',
237 'text' => '',
238 'target' => '_self',
239 'tcolor' => '',
240 ), $atts));
241 // Colors come from the button UI as hex values; keep only valid hex.
242 $bcolor = (string) sanitize_hex_color( $bcolor );
243 $bhovercolor = (string) sanitize_hex_color( $bhovercolor );
244 $tcolor = (string) sanitize_hex_color( $tcolor );
245 $thovercolor = (string) sanitize_hex_color( $thovercolor );
246 $output = '<a href="'.esc_url($link).'" class="btn button btn-shortcode kad-btn kad-btn-primary" id="kadbtn'.esc_attr($id).'" target="'.esc_attr($target).'" style="';
247 if(!empty($bcolor)) {
248 $output .= 'background-color:'.esc_attr($bcolor).';';
249 }
250 if(!empty($tcolor)) {
251 $output .= 'color:'.esc_attr($tcolor).';';
252 }
253 $output .= '"';
254 if($thovercolor == $tcolor) {$thovercolor = null;}
255 if(!empty($bhovercolor) || !empty($thovercolor)) {
256 $output .= 'onMouseOver="this.style.background=\''.esc_attr($bhovercolor).'\',this.style.color=\''.esc_attr($thovercolor).'\'" onMouseOut="this.style.background=\''.esc_attr($bcolor).'\', this.style.color=\''.esc_attr($tcolor).'\'"';
257 }
258 $output .= '>'.wp_kses_post($text).'</a>';
259
260 return $output;
261 }
262 function virtue_toolkit_blockquote_shortcode_function( $atts, $content) {
263 extract(shortcode_atts(array(
264 'align' => 'center',
265 ), $atts));
266 switch ($align)
267 {
268 case "center":
269 $output = '<div class="blockquote blockquote-full postclass clearfix">' . do_shortcode(wp_kses_post($content)) . '</div>';
270 break;
271
272 case "left":
273 $output = '<div class="blockquote blockquote-left postclass clearfix">' . do_shortcode(wp_kses_post($content)) . '</div>';
274 break;
275
276 case "right":
277 $output = '<div class="blockquote blockquote-right postclass clearfix">' . do_shortcode(wp_kses_post($content)) . '</div>';
278 break;
279 }
280 return $output;
281 }
282 function virtue_toolkit_pullquote_shortcode_function( $atts, $content) {
283 extract( shortcode_atts( array(
284 'align' => 'center'
285 ), $atts ));
286
287 switch ($align)
288 {
289 case "center":
290 $output = '<div class="pullquote pullquote-center">' . do_shortcode(wp_kses_post($content)) . '</div>';
291 break;
292
293 case "right":
294 $output = '<div class="pullquote pullquote-right">' . do_shortcode(wp_kses_post($content)) . '</div>';
295 break;
296
297 case "left":
298 $output = '<div class="pullquote pullquote-left">' . do_shortcode(wp_kses_post($content)) . '</div>';
299 break;
300 }
301
302 return $output;
303 }
304 function virtue_toolkit_hrule_function( ) {
305 return '<div class="hrule clearfix"></div>';
306 }
307 function virtue_toolkit_hrpadding10_function( ) {
308 return '<div class="space_20 clearfix"></div>';
309 }
310 function virtue_toolkit_hrpadding20_function( ) {
311 return '<div class="space_40 clearfix"></div>';
312 }
313 function virtue_toolkit_hrpadding40_function( ) {
314 return '<div class="space_80 clearfix"></div>';
315 }
316 function virtue_toolkit_clearfix_function( ) {
317 return '<div class="clearfix"></div>';
318 }
319 function virtue_toolkit_columnhelper_function( ) {
320 return '';
321 }
322 function virtue_toolkit_register_shortcodes(){
323 add_shortcode('accordion', 'virtue_toolkit_accordion_shortcode_function');
324 add_shortcode('pane', 'virtue_toolkit_accordion_pane_function');
325 add_shortcode('tabs', 'virtue_toolkit_tab_shortcode_function');
326 add_shortcode('tab', 'virtue_toolkit_tab_pane_function');
327 add_shortcode('columns', 'virtue_toolkit_column_shortcode_function');
328 add_shortcode('hcolumns', 'virtue_toolkit_hcolumn_shortcode_function');
329 add_shortcode('span11', 'virtue_toolkit_column11_function');
330 add_shortcode('span10', 'virtue_toolkit_column10_function');
331 add_shortcode('span9', 'virtue_toolkit_column9_function');
332 add_shortcode('span8', 'virtue_toolkit_column8_function');
333 add_shortcode('span7', 'virtue_toolkit_column7_function');
334 add_shortcode('span6', 'virtue_toolkit_column6_function');
335 add_shortcode('span5', 'virtue_toolkit_column5_function');
336 add_shortcode('span4', 'virtue_toolkit_column4_function');
337 add_shortcode('span3', 'virtue_toolkit_column3_function');
338 add_shortcode('span2', 'virtue_toolkit_column2_function');
339 add_shortcode('span1', 'virtue_toolkit_column1_function');
340 add_shortcode('columnhelper', 'virtue_toolkit_columnhelper_function');
341 add_shortcode('icon', 'virtue_toolkit_icon_shortcode_function');
342 add_shortcode('pullquote', 'virtue_toolkit_pullquote_shortcode_function');
343 add_shortcode('blockquote', 'virtue_toolkit_blockquote_shortcode_function');
344 add_shortcode('btn', 'virtue_toolkit_button_shortcode_function');
345 add_shortcode('hr', 'virtue_toolkit_hrule_function');
346 add_shortcode('space_20', 'virtue_toolkit_hrpadding10_function');
347 add_shortcode('space_40', 'virtue_toolkit_hrpadding20_function');
348 add_shortcode('space_80', 'virtue_toolkit_hrpadding40_function');
349 add_shortcode('kad_youtube', 'virtue_toolkit_youtube_shortcode_function');
350 add_shortcode('kt_youtube', 'virtue_toolkit_youtube_shortcode_function');
351 add_shortcode('kad_vimeo', 'virtue_toolkit_vimeo_shortcode_function');
352 add_shortcode('kt_vimeo', 'virtue_toolkit_vimeo_shortcode_function');
353 add_shortcode('clear', 'virtue_toolkit_clearfix_function');
354 }
355 add_action( 'init', 'virtue_toolkit_register_shortcodes');
356
357
358 function virtue_toolkit_register_button( $buttons ) {
359 if ( empty( $buttons ) ) {
360 $buttons = array();
361 }
362 array_push( $buttons, "|", "kadcolumns" );
363 array_push( $buttons, "|", "kaddivider" );
364 array_push( $buttons, "|", "kadaccordion" );
365 array_push( $buttons, "|", "kadquote" );
366 array_push( $buttons, "|", "kadbtn" );
367 array_push( $buttons, "|", "kadicon" );
368 array_push( $buttons, "|", "kadyoutube" );
369 array_push( $buttons, "|", "kadvimeo" );
370
371 return $buttons;
372 }
373 function virtue_toolkit_add_plugin( $plugin_array ) {
374 $plugin_array['kadcolumns'] = VIRTUE_TOOLKIT_URL . '/shortcodes/columns/columns_shortgen.js';
375 $plugin_array['kadicon'] = VIRTUE_TOOLKIT_URL . '/shortcodes/icons/icon_shortgen.js';
376 $plugin_array['kadaccordion'] = VIRTUE_TOOLKIT_URL . '/shortcodes/accordion/accordion_shortgen.js';
377 $plugin_array['kadyoutube'] = VIRTUE_TOOLKIT_URL . '/shortcodes/youtube/youtube_shortgen.js';
378 $plugin_array['kadvimeo'] = VIRTUE_TOOLKIT_URL . '/shortcodes/vimeo/vimeo_shortgen.js';
379 $plugin_array['kadquote'] = VIRTUE_TOOLKIT_URL . '/shortcodes/pullquote/quote_shortgen.js';
380 $plugin_array['kadbtn'] = VIRTUE_TOOLKIT_URL . '/shortcodes/btns/btns_shortgen.js';
381 $plugin_array['kaddivider'] = VIRTUE_TOOLKIT_URL . '/shortcodes/divider/divider_shortgen.js';
382 return $plugin_array;
383 }
384 function virtue_toolkit_tinymce_shortcode_button() {
385
386 if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
387 return;
388 }
389 if ( get_user_option('rich_editing') == 'true' ) {
390 add_filter( 'mce_external_plugins', 'virtue_toolkit_add_plugin' );
391 add_filter( 'mce_buttons_3', 'virtue_toolkit_register_button', 50 );
392 }
393
394 }
395 add_action('init', 'virtue_toolkit_tinymce_shortcode_button');
396
397 // Clean up Shortcodes
398 function virtue_toolkit_content_clean_shortcodes($content){
399 $array = array (
400 '<p>[' => '[',
401 ']</p>' => ']',
402 ']<br />' => ']'
403 );
404 $content = strtr($content, $array);
405 return $content;
406 }
407 add_filter('the_content', 'virtue_toolkit_content_clean_shortcodes');
408 function virtue_toolkit_widget_clean_shortcodes($text){
409 $array = array (
410 '<p>[' => '[',
411 ']</p>' => ']',
412 '<p></p>' => '',
413 ']<br />' => ']',
414 '<br />[' => '['
415 );
416 $text = strtr($text, $array);
417 return $text;
418 }
419 add_filter('widget_text', 'virtue_toolkit_widget_clean_shortcodes');
420 add_filter('widget_text', 'do_shortcode', 50);
421