'', 'margin_right' => '', 'margin_bottom' => '', 'margin_left' => '', 'hide_on_mobile' => fusion_builder_default_visibility( 'string' ), 'class' => '', 'id' => '', 'name' => '', 'full_height' => 'no', 'offset' => '', ] ); } /** * Render the parent shortcode * * @access public * @param array $args Shortcode paramters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render_parent( $args, $content = '' ) { global $fusion_library; $defaults = FusionBuilder::set_shortcode_defaults( self::get_element_defaults(), $args, 'fusion_fusionslider' ); extract( $defaults ); $defaults['margin_bottom'] = FusionBuilder::validate_shortcode_attr_value( $defaults['margin_bottom'], 'px' ); $defaults['margin_top'] = FusionBuilder::validate_shortcode_attr_value( $defaults['margin_top'], 'px' ); self::$parent_args = $defaults; ob_start(); $term = $name; $term_details = get_term_by( 'slug', $term, 'slide-page' ); if ( ! $term_details ) { if ( shortcode_exists( 'fusion_alert' ) ) { return do_shortcode( '[fusion_alert type="error"]Incorrect slider name. Please make sure to use a valid slider slug.[/fusion_alert]' ); } else { return '

' . esc_html__( 'Incorrect slider name. Please make sure to use a valid slider slug.', 'fusion-core' ) . '

'; } } $slider_settings = fusion_data()->term_meta( $term_details->term_id )->get_all_meta(); if ( ! isset( $slider_settings['slider_width'] ) || '' === $slider_settings['slider_width'] ) { $slider_settings['slider_width'] = '100%'; } if ( ! isset( $slider_settings['slider_height'] ) || '' === $slider_settings['slider_height'] ) { $slider_settings['slider_height'] = '300px'; } if ( ! isset( $slider_settings['full_screen'] ) ) { $slider_settings['full_screen'] = false; } if ( ! isset( $slider_settings['nav_box_width'] ) ) { $slider_settings['nav_box_width'] = '63px'; } if ( ! isset( $slider_settings['nav_box_height'] ) ) { $slider_settings['nav_box_height'] = '63px'; } if ( ! isset( $slider_settings['nav_arrow_size'] ) ) { $slider_settings['nav_arrow_size'] = '25px'; } if ( $slider_settings['nav_box_height'] ) { $nav_box_height_half = intval( $slider_settings['nav_box_height'] ) / 2; } self::$slider_settings = $slider_settings; $content_max_width = ''; if ( isset( $slider_settings['slider_content_width'] ) && '' !== $slider_settings['slider_content_width'] ) { $content_max_width = 'max-width:' . $slider_settings['slider_content_width']; } if ( ! isset( $slider_settings['slider_indicator'] ) ) { $slider_settings['slider_indicator'] = ''; } if ( ! isset( $slider_settings['slider_indicator_color'] ) || '' === $slider_settings['slider_indicator_color'] ) { $slider_settings['slider_indicator_color'] = '#ffffff'; } $orderby = ( isset( $slider_settings['orderby'] ) ) ? $slider_settings['orderby'] : 'date'; $order = ( isset( $slider_settings['order'] ) ) ? $slider_settings['order'] : 'DESC'; $args = [ 'post_type' => 'slide', 'posts_per_page' => -1, 'suppress_filters' => 0, 'orderby' => $orderby, 'order' => $order, ]; $args['tax_query'][] = [ 'taxonomy' => 'slide-page', 'field' => 'slug', 'terms' => $term, ]; $query = FusionCore_Plugin::fusion_core_cached_query( $args ); if ( $query->have_posts() ) : ?>
> '; echo '.fusion-slider-' . esc_attr( $term_details->term_id ) . ' .flex-direction-nav a {'; if ( $slider_settings['nav_box_width'] ) { echo 'width:' . esc_attr( $slider_settings['nav_box_width'] ) . ';'; } if ( $slider_settings['nav_box_height'] ) { echo 'height:' . esc_attr( $slider_settings['nav_box_height'] ) . ';'; echo 'line-height:' . esc_attr( $slider_settings['nav_box_height'] ) . ';'; } if ( $slider_settings['nav_arrow_size'] ) { echo 'font-size:' . esc_attr( $slider_settings['nav_arrow_size'] ) . ';'; } echo '}'; if ( 'pagination_circles' === $slider_settings['slider_indicator'] ) { $slider_indicator_color = Fusion_Color::new_color( $slider_settings['slider_indicator_color'], 'hex' ); echo '.fusion-slider-' . esc_attr( $term_details->term_id ) . ' .flex-control-paging li a {'; echo 'background:rgba(' . esc_attr( $slider_indicator_color->red ) . ', ' . esc_attr( $slider_indicator_color->green ) . ', ' . esc_attr( $slider_indicator_color->blue ) . ', 0.6);'; echo '}'; echo '.fusion-slider-' . esc_attr( $term_details->term_id ) . ' .flex-control-paging li a.flex-active {'; echo 'background:rgba(' . esc_attr( $slider_indicator_color->red ) . ', ' . esc_attr( $slider_indicator_color->green ) . ', ' . esc_attr( $slider_indicator_color->blue ) . ', 1);'; echo '}'; } echo ''; ?>
>
'fusion-slider-container fusion-slider-sc-' . self::$parent_args['name'], 'style' => '', ] ); $term_details = get_term_by( 'slug', self::$parent_args['name'], 'slide-page' ); $attr['class'] .= ' fusion-slider-' . $term_details->term_id; $attr['data-id'] = $term_details->term_id; $attr['data-full_height'] = isset( self::$parent_args['full_height'] ) ? self::$parent_args['full_height'] : 'no'; $attr['data-full_height'] = 'yes' === $attr['data-full_height']; $attr['data-offset'] = isset( self::$parent_args['offset'] ) ? self::$parent_args['offset'] : ''; if ( '100%' === self::$slider_settings['slider_width'] && ! self::$slider_settings['full_screen'] ) { $attr['class'] .= ' full-width-slider'; } if ( '100%' !== self::$slider_settings['slider_width'] && ! self::$slider_settings['full_screen'] ) { $attr['class'] .= ' fixed-width-slider'; } if ( self::$parent_args['class'] ) { $attr['class'] .= ' ' . self::$parent_args['class']; } $attr['style'] .= Fusion_Builder_Margin_Helper::get_margins_style( self::$parent_args ); if ( self::$parent_args['id'] ) { $attr['id'] = self::$parent_args['id']; } $attr['style'] .= 'height:' . self::$slider_settings['slider_height'] . '; max-width:' . self::$slider_settings['slider_width'] . ';'; return $attr; } /** * Builds the container attributes array. * * @access public * @since 1.0 * @return array */ public function container_attr() { $attr = [ 'class' => 'tfs-slider flexslider main-flex', ]; if ( self::$slider_settings ) { foreach ( self::$slider_settings as $slider_setting => $slider_setting_value ) { $attr[ 'data-' . $slider_setting ] = $slider_setting_value; } } if ( '100%' === self::$slider_settings['slider_width'] && ! self::$slider_settings['full_screen'] ) { $attr['class'] .= ' full-width-slider'; } if ( '100%' !== self::$slider_settings['slider_width'] && ! self::$slider_settings['full_screen'] ) { $attr['class'] .= ' fixed-width-slider'; } $attr['style'] = 'max-width:' . self::$slider_settings['slider_width'] . ';'; return $attr; } /** * Gets the query data. * * @static * @access public * @since 2.0.0 * @param array $defaults An array of defaults. * @return void */ public function ajax_query( $defaults ) { check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' ); $this->query( $defaults ); } /** * Gets the query data. * * @static * @access public * @since 2.0.0 * @param array $defaults An array of defaults. * @return void */ public function query( $defaults ) { $return_data = []; $sliders = FusionCore_Plugin::get_fusion_sliders(); check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $offset = isset( $_POST['model']['params']['offset'] ) ? wp_unslash( $_POST['model']['params']['offset'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $full_height = isset( $_POST['model']['params']['full_height'] ) ? wp_unslash( $_POST['model']['params']['full_height'] ) : ''; if ( ! empty( $sliders ) ) { foreach ( $sliders as $slider_id => $slider_name ) { $slider_content = do_shortcode( '[fusion_fusionslider name="' . $slider_id . '" offset="' . $offset . '" full_height="' . $full_height . '" ]' ); $return_data['sliders'][ $slider_id ] = [ 'content' => $slider_content, ]; } } else { $return_data['placeholder'] = fusion_builder_placeholder( 'avada_fusionslider', 'Avada Sliders' ); } echo wp_json_encode( $return_data ); die(); } } } new FusionSC_FusionSlider(); } /** * Map shortcode to Avada Builder * * @since 1.0 */ function fusion_element_fusionslider() { if ( ! class_exists( 'Fusion_Slider' ) || ! function_exists( 'fusion_builder_map' ) || ! function_exists( 'fusion_builder_frontend_data' ) ) { return; } $slider_options = FusionCore_Plugin::get_fusion_sliders(); fusion_builder_map( fusion_builder_frontend_data( 'FusionSC_FusionSlider', [ 'name' => esc_attr__( 'Avada Slider', 'fusion-core' ), 'shortcode' => 'fusion_fusionslider', 'icon' => 'fusiona-avada-logo', 'preview' => FUSION_CORE_PATH . '/shortcodes/previews/fusion-fusion-slider-preview.php', 'preview_id' => 'fusion-builder-block-module-fusion-slider-preview-template', 'front-end' => FUSION_CORE_PATH . '/shortcodes/previews/front-end/fusion-fusionslider.php', 'help_url' => 'https://avada.com/documentation/avada-slider-element/', 'params' => [ [ 'type' => 'select', 'heading' => esc_attr__( 'Slider Name', 'fusion-core' ), 'description' => esc_attr__( 'Select the slider you want to use. The options will appear as the slider name next to the number of slides in brackets.', 'fusion-core' ), 'param_name' => 'name', 'value' => $slider_options, 'default' => function_exists( 'fusion_get_array_default' ) ? fusion_get_array_default( $slider_options ) : '', ], [ 'type' => 'radio_button_set', 'heading' => esc_html__( 'Full Height', 'fusion-core' ), 'description' => esc_html__( 'Makes slider full screen height.', 'fusion-core' ), 'param_name' => 'full_height', 'default' => 'no', 'value' => [ 'yes' => esc_attr__( 'Yes', 'fusion-core' ), 'no' => esc_attr__( 'No', 'fusion-core' ), ], 'callback' => [ 'function' => 'fusion_ajax', 'action' => 'get_fusion_fusionslider', 'ajax' => true, ], ], [ 'type' => 'textfield', 'heading' => esc_html__( 'Full Height Offset', 'fusion-core' ), 'description' => esc_html__( 'The slider offset. Accepts both pixels and CSS selectors.', 'fusion-core' ), 'param_name' => 'offset', 'default' => '', 'dependency' => [ [ 'element' => 'full_height', 'value' => 'yes', 'operator' => '==', ], ], 'callback' => [ 'function' => 'fusion_ajax', 'action' => 'get_fusion_fusionslider', 'ajax' => true, ], ], 'fusion_margin_placeholder' => [ 'param_name' => 'margin', 'group' => esc_attr__( 'General', 'fusion-core' ), 'value' => [ 'margin_top' => '', 'margin_bottom' => '', ], ], [ 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-core' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-core' ), ], [ 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-core' ), 'param_name' => 'class', 'value' => '', 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-core' ), ], [ 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-core' ), 'param_name' => 'id', 'value' => '', 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-core' ), ], ], 'callback' => [ 'function' => 'fusion_ajax', 'action' => 'get_fusion_fusionslider', 'ajax' => true, ], ] ) ); } // Priority 20 to make sure its loaded after setup_fusion_slider. add_action( 'fusion_builder_wp_loaded', 'fusion_element_fusionslider', 20 );