rand(1, 999) ), $atts)); global $kt_pane_count, $kt_panes; $kt_pane_count = 0; $kt_panes = array(); $return = ''; do_shortcode( $content ); if( is_array( $kt_panes ) && !empty($kt_panes)){ $i = 0; foreach( $kt_panes as $tab ){ if ($i % 2 == 0) { $eo = "even"; } else { $eo = "odd"; } $tabs[] = '
'.wp_kses_post($tab['title']).'
'.do_shortcode($tab['content']).'
'; $i++; } $return = "\n".'
'.implode( "\n", $tabs ).'
'."\n"; } return $return; } function virtue_toolkit_accordion_pane_function($atts, $content ) { extract(shortcode_atts(array( 'title' => 'Pane %d', 'start' => '' ), $atts)); if (!empty($start) || $start == 'closed') { $open = ''; } else { $open = 'collapsed'; } if (!empty($start) || $start == 'closed') { $in = 'in'; } else { $in = ''; } global $kt_pane_count, $kt_panes; $x = $kt_pane_count; $kt_panes[$x] = array( 'title' => $title, 'open' => $open, 'in' => $in, 'link' => $kt_pane_count, 'content' => $content ); $kt_pane_count++; } function virtue_toolkit_tab_shortcode_function($atts, $content ) { extract(shortcode_atts(array( 'id' => rand(1, 9999), 'style' => '1', ), $atts)); global $kt_tab_count, $kt_tabs; $kt_tab_count = 0; $kt_tabs = array(); $return = ''; do_shortcode( $content ); if( is_array( $kt_tabs ) && !empty($kt_tabs)) { foreach( $kt_tabs as $nav ){ $tabnav[] = '
  • '.wp_kses_post($nav['title']).'
  • '; } foreach( $kt_tabs as $tab ){ $tabs[] = '
    '.do_shortcode( $tab['content']).'
    '; } $return = "\n".'
    '.implode( "\n", $tabs ).'
    '."\n"; } return $return; } function virtue_toolkit_tab_pane_function($atts, $content ) { extract(shortcode_atts(array( 'title' => 'Tab %d', 'start' => '' ), $atts)); if (!empty($start)) { $active = 'active'; } else { $active = ''; } global $kt_tab_count, $kt_tabs; $x = $kt_tab_count; $kt_tabs[$x] = array( 'title' => $title, 'active' => $active, 'link' => $kt_tab_count, 'content' => $content ); $kt_tab_count++; } //Shortcode for columns function virtue_toolkit_column_shortcode_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_hcolumn_shortcode_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column11_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column10_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column9_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column8_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column7_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column6_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column5_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column4_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column3_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column2_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } function virtue_toolkit_column1_function( $atts, $content ) { return '
    '.do_shortcode($content).'
    '; } //Shortcode for Icons function virtue_toolkit_icon_shortcode_function( $atts) { extract(shortcode_atts(array( 'icon' => '', 'size' => '', 'color' => '', 'float'=> '' ), $atts)); if ($float != '') { $output = ''; } else { $output = ''; } return $output; } // Video Shortcode function virtue_toolkit_video_shortcode_function( $atts, $content) { extract(shortcode_atts(array( 'width' => '', ), $atts)); if(!empty($width)) { $output = '
    '.wp_kses_post($content).'
    '; } else { $output = '
    '.wp_kses_post($content).'
    '; } return $output; } // Based on Ultimate Shortcodes youtube and vimeo shortcodes function virtue_toolkit_youtube_shortcode_function( $atts, $content) { // Prepare data $atts = shortcode_atts(array( 'url' => false, 'width' => 600, 'height' => 400, 'maxwidth' => '', 'autoplay' => 'false', 'controls' => 'true', 'hidecontrols' => 'false', 'fs' => 'true', 'loop' => 'false', 'rel' => 'false', 'vq' => '', 'modestbranding' => 'false', 'theme' => 'dark' ), $atts, 'kad_youtube' ); $return = array(); $params = array(); if ( !$atts['url'] ){ return '

    YouTube: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '

    '; } $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false; // Check that url is specified if ( !$id ) { return '

    YouTube: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '

    '; } // Prepare params if($atts['hidecontrols'] == 'true') {$atts['controls'] = 'false';} 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] ); // Prepare player parameters if(!empty($atts['vq']) ) {$params['vq'] = $atts['vq']; } $params = http_build_query( $params ); if($atts['maxwidth']) {$maxwidth = 'style="max-width:'.esc_attr($atts['maxwidth']).'px;"';} else{ $maxwidth = '';} // Create player $return[] = '
    '; $return[] = ''; $return[] = '
    '; // Return result return implode( '', $return ); } function virtue_toolkit_vimeo_shortcode_function( $atts, $content) { $atts = shortcode_atts( array( 'url' => false, 'width' => 600, 'height' => 400, 'maxwidth' => '', 'autoplay' => 'no' ), $atts, 'vimeo' ); if ( !$atts['url'] ){ return '

    Vimeo: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '

    '; } $id = ( preg_match( '~(?:)?(?:

    .*

    )?~ix', $atts['url'], $match ) ) ? $match[1] : false; // Check that url is specified if ( !$id ) { return '

    Vimeo: ' . __( 'please specify correct url', 'virtue-toolkit' ) . '

    '; } $return = array(); if($atts['maxwidth']) { $maxwidth = 'style="max-width:'.esc_attr($atts['maxwidth']).'px;"'; } else{ $maxwidth = ''; } $autoplay = ( $atts['autoplay'] === 'yes' ) ? '&autoplay=1' : ''; // Create player $return[] = '
    '; $return[] = ''; $return[] = '
    '; // Return result return implode( '', $return ); } //Button function virtue_toolkit_button_shortcode_function( $atts) { extract(shortcode_atts(array( 'id' => rand(1, 999), 'bcolor' => '', 'bhovercolor' => '', 'thovercolor' => '', 'link' => '', 'text' => '', 'target' => '_self', 'tcolor' => '', ), $atts)); $output = ''; return $output; } function virtue_toolkit_blockquote_shortcode_function( $atts, $content) { extract(shortcode_atts(array( 'align' => 'center', ), $atts)); switch ($align) { case "center": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; case "left": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; case "right": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; } return $output; } function virtue_toolkit_pullquote_shortcode_function( $atts, $content) { extract( shortcode_atts( array( 'align' => 'center' ), $atts )); switch ($align) { case "center": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; case "right": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; case "left": $output = '
    ' . do_shortcode(wp_kses_post($content)) . '
    '; break; } return $output; } function virtue_toolkit_hrule_function( ) { return '
    '; } function virtue_toolkit_hrpadding10_function( ) { return '
    '; } function virtue_toolkit_hrpadding20_function( ) { return '
    '; } function virtue_toolkit_hrpadding40_function( ) { return '
    '; } function virtue_toolkit_clearfix_function( ) { return '
    '; } function virtue_toolkit_columnhelper_function( ) { return ''; } function virtue_toolkit_register_shortcodes(){ add_shortcode('accordion', 'virtue_toolkit_accordion_shortcode_function'); add_shortcode('pane', 'virtue_toolkit_accordion_pane_function'); add_shortcode('tabs', 'virtue_toolkit_tab_shortcode_function'); add_shortcode('tab', 'virtue_toolkit_tab_pane_function'); add_shortcode('columns', 'virtue_toolkit_column_shortcode_function'); add_shortcode('hcolumns', 'virtue_toolkit_hcolumn_shortcode_function'); add_shortcode('span11', 'virtue_toolkit_column11_function'); add_shortcode('span10', 'virtue_toolkit_column10_function'); add_shortcode('span9', 'virtue_toolkit_column9_function'); add_shortcode('span8', 'virtue_toolkit_column8_function'); add_shortcode('span7', 'virtue_toolkit_column7_function'); add_shortcode('span6', 'virtue_toolkit_column6_function'); add_shortcode('span5', 'virtue_toolkit_column5_function'); add_shortcode('span4', 'virtue_toolkit_column4_function'); add_shortcode('span3', 'virtue_toolkit_column3_function'); add_shortcode('span2', 'virtue_toolkit_column2_function'); add_shortcode('span1', 'virtue_toolkit_column1_function'); add_shortcode('columnhelper', 'virtue_toolkit_columnhelper_function'); add_shortcode('icon', 'virtue_toolkit_icon_shortcode_function'); add_shortcode('pullquote', 'virtue_toolkit_pullquote_shortcode_function'); add_shortcode('blockquote', 'virtue_toolkit_blockquote_shortcode_function'); add_shortcode('btn', 'virtue_toolkit_button_shortcode_function'); add_shortcode('hr', 'virtue_toolkit_hrule_function'); add_shortcode('space_20', 'virtue_toolkit_hrpadding10_function'); add_shortcode('space_40', 'virtue_toolkit_hrpadding20_function'); add_shortcode('space_80', 'virtue_toolkit_hrpadding40_function'); add_shortcode('kad_youtube', 'virtue_toolkit_youtube_shortcode_function'); add_shortcode('kt_youtube', 'virtue_toolkit_youtube_shortcode_function'); add_shortcode('kad_vimeo', 'virtue_toolkit_vimeo_shortcode_function'); add_shortcode('kt_vimeo', 'virtue_toolkit_vimeo_shortcode_function'); add_shortcode('clear', 'virtue_toolkit_clearfix_function'); } add_action( 'init', 'virtue_toolkit_register_shortcodes'); function virtue_toolkit_register_button( $buttons ) { array_push( $buttons, "|", "kadcolumns" ); array_push( $buttons, "|", "kaddivider" ); array_push( $buttons, "|", "kadaccordion" ); array_push( $buttons, "|", "kadquote" ); array_push( $buttons, "|", "kadbtn" ); array_push( $buttons, "|", "kadicon" ); array_push( $buttons, "|", "kadyoutube" ); array_push( $buttons, "|", "kadvimeo" ); return $buttons; } function virtue_toolkit_add_plugin( $plugin_array ) { $plugin_array['kadcolumns'] = VIRTUE_TOOLKIT_URL . '/shortcodes/columns/columns_shortgen.js'; $plugin_array['kadicon'] = VIRTUE_TOOLKIT_URL . '/shortcodes/icons/icon_shortgen.js'; $plugin_array['kadaccordion'] = VIRTUE_TOOLKIT_URL . '/shortcodes/accordion/accordion_shortgen.js'; $plugin_array['kadyoutube'] = VIRTUE_TOOLKIT_URL . '/shortcodes/youtube/youtube_shortgen.js'; $plugin_array['kadvimeo'] = VIRTUE_TOOLKIT_URL . '/shortcodes/vimeo/vimeo_shortgen.js'; $plugin_array['kadquote'] = VIRTUE_TOOLKIT_URL . '/shortcodes/pullquote/quote_shortgen.js'; $plugin_array['kadbtn'] = VIRTUE_TOOLKIT_URL . '/shortcodes/btns/btns_shortgen.js'; $plugin_array['kaddivider'] = VIRTUE_TOOLKIT_URL . '/shortcodes/divider/divider_shortgen.js'; return $plugin_array; } function virtue_toolkit_tinymce_shortcode_button() { if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) { return; } if ( get_user_option('rich_editing') == 'true' ) { add_filter( 'mce_external_plugins', 'virtue_toolkit_add_plugin' ); add_filter( 'mce_buttons_3', 'virtue_toolkit_register_button' ); } } add_action('init', 'virtue_toolkit_tinymce_shortcode_button'); // Clean up Shortcodes function virtue_toolkit_content_clean_shortcodes($content){ $array = array ( '

    [' => '[', ']

    ' => ']', ']
    ' => ']' ); $content = strtr($content, $array); return $content; } add_filter('the_content', 'virtue_toolkit_content_clean_shortcodes'); function virtue_toolkit_widget_clean_shortcodes($text){ $array = array ( '

    [' => '[', ']

    ' => ']', '

    ' => '', ']
    ' => ']', '
    [' => '[' ); $text = strtr($text, $array); return $text; } add_filter('widget_text', 'virtue_toolkit_widget_clean_shortcodes'); add_filter('widget_text', 'do_shortcode', 50);