AlkantarClanX12
Current Path : /home/thanudqk/www/wp-content/plugins/js_composer/include/classes/shortcodes/ |
Current File : //home/thanudqk/www/wp-content/plugins/js_composer/include/classes/shortcodes/vc-cta.php |
<?php if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } /** * WPBakery WPBakery Page Builder shortcodes * * @package WPBakeryPageBuilder * @since 4.5 */ /** * @since 4.5 * Class WPBakeryShortCode_Vc_Cta */ class WPBakeryShortCode_Vc_Cta extends WPBakeryShortCode { protected $template_vars = array(); /** * @param $atts * @param $content * @throws \Exception */ public function buildTemplate( $atts, $content ) { $output = array(); $inline_css = array(); $main_wrapper_classes = array( 'vc_cta3' ); $container_classes = array(); if ( ! empty( $atts['el_class'] ) ) { $main_wrapper_classes[] = $atts['el_class']; } if ( ! empty( $atts['style'] ) ) { $main_wrapper_classes[] = 'vc_cta3-style-' . $atts['style']; } if ( ! empty( $atts['shape'] ) ) { $main_wrapper_classes[] = 'vc_cta3-shape-' . $atts['shape']; } if ( ! empty( $atts['txt_align'] ) ) { $main_wrapper_classes[] = 'vc_cta3-align-' . $atts['txt_align']; } if ( ! empty( $atts['color'] ) && ! ( isset( $atts['style'] ) && 'custom' === $atts['style'] ) ) { $main_wrapper_classes[] = 'vc_cta3-color-' . $atts['color']; } if ( isset( $atts['style'] ) && 'custom' === $atts['style'] ) { if ( ! empty( $atts['custom_background'] ) ) { $inline_css[] = vc_get_css_color( 'background-color', $atts['custom_background'] ); } } if ( ! empty( $atts['i_on_border'] ) ) { $main_wrapper_classes[] = 'vc_cta3-icons-on-border'; } if ( ! empty( $atts['i_size'] ) ) { $main_wrapper_classes[] = 'vc_cta3-icon-size-' . $atts['i_size']; } if ( ! empty( $atts['i_background_style'] ) ) { $main_wrapper_classes[] = 'vc_cta3-icons-in-box'; } if ( ! empty( $atts['el_width'] ) ) { $container_classes[] = 'vc_cta3-size-' . $atts['el_width']; } if ( ! empty( $atts['add_icon'] ) ) { $output[ 'icons-' . $atts['add_icon'] ] = $this->getVcIcon( $atts ); $main_wrapper_classes[] = 'vc_cta3-icons-' . $atts['add_icon']; } if ( ! empty( $atts['add_button'] ) ) { $output[ 'actions-' . $atts['add_button'] ] = $this->getButton( $atts ); $main_wrapper_classes[] = 'vc_cta3-actions-' . $atts['add_button']; } if ( ! empty( $atts['css_animation'] ) ) { $main_wrapper_classes[] = $this->getCSSAnimation( $atts['css_animation'] ); } if ( ! empty( $atts['css'] ) ) { $main_wrapper_classes[] = vc_shortcode_custom_css_class( $atts['css'] ); } $output['content'] = wpb_js_remove_wpautop( $content, true ); $output['heading1'] = $this->getHeading( 'h2', $atts ); $output['heading2'] = $this->getHeading( 'h4', $atts ); $output['css-class'] = $main_wrapper_classes; $output['container-class'] = $container_classes; $output['inline-css'] = $inline_css; $this->template_vars = $output; } /** * @param $tag * @param $atts * @return string * @throws \Exception */ public function getHeading( $tag, $atts ) { if ( isset( $atts[ $tag ] ) && '' !== trim( $atts[ $tag ] ) ) { if ( isset( $atts[ 'use_custom_fonts_' . $tag ] ) && 'true' === $atts[ 'use_custom_fonts_' . $tag ] ) { $custom_heading = wpbakery()->getShortCode( 'vc_custom_heading' ); $data = vc_map_integrate_parse_atts( $this->shortcode, 'vc_custom_heading', $atts, $tag . '_' ); $data['font_container'] = implode( '|', array_filter( array( 'tag:' . $tag, $data['font_container'], ) ) ); $data['text'] = $atts[ $tag ]; // provide text to shortcode return $custom_heading->render( array_filter( $data ) ); } else { $inline_css = array(); $inline_css_string = ''; if ( isset( $atts['style'] ) && 'custom' === $atts['style'] ) { if ( ! empty( $atts['custom_text'] ) ) { $inline_css[] = vc_get_css_color( 'color', $atts['custom_text'] ); } } if ( ! empty( $inline_css ) ) { $inline_css_string = ' style="' . implode( '', $inline_css ) . '"'; } return '<' . $tag . $inline_css_string . '>' . $atts[ $tag ] . '</' . $tag . '>'; } } return ''; } /** * @param $atts * @return string * @throws \Exception */ public function getButton( $atts ) { $data = vc_map_integrate_parse_atts( $this->shortcode, 'vc_btn', $atts, 'btn_' ); if ( $data ) { $btn = wpbakery()->getShortCode( 'vc_btn' ); if ( is_object( $btn ) ) { return '<div class="vc_cta3-actions">' . $btn->render( array_filter( $data ) ) . '</div>'; } } return ''; } /** * @param $atts * @return string * @throws \Exception */ public function getVcIcon( $atts ) { if ( empty( $atts['i_type'] ) ) { $atts['i_type'] = 'fontawesome'; } $data = vc_map_integrate_parse_atts( $this->shortcode, 'vc_icon', $atts, 'i_' ); if ( $data ) { $icon = wpbakery()->getShortCode( 'vc_icon' ); if ( is_object( $icon ) ) { return '<div class="vc_cta3-icons">' . $icon->render( array_filter( $data ) ) . '</div>'; } } return ''; } /** * @param $string * @return mixed|string */ public function getTemplateVariable( $string ) { if ( is_array( $this->template_vars ) && isset( $this->template_vars[ $string ] ) ) { return $this->template_vars[ $string ]; } return ''; } }