Current File : /home/kelaby89/cartel.express/wp-content/plugins/trx_addons/components/widgets/slider/slider.php |
<?php
/**
* Widget: Posts or Revolution slider
*
* @package ThemeREX Addons
* @since v1.0
*/
// Don't load directly
if ( ! defined( 'TRX_ADDONS_VERSION' ) ) {
exit;
}
// Load widget
if (!function_exists('trx_addons_widget_slider_load')) {
add_action( 'widgets_init', 'trx_addons_widget_slider_load' );
function trx_addons_widget_slider_load() {
register_widget( 'trx_addons_widget_slider' );
}
}
// Widget Class
class trx_addons_widget_slider extends TRX_Addons_Widget {
function __construct() {
$widget_ops = array( 'classname' => 'widget_slider', 'description' => esc_html__('Display theme slider', 'trx_addons') );
parent::__construct( 'trx_addons_widget_slider', esc_html__('ThemeREX Slider', 'trx_addons'), $widget_ops );
}
// Show widget
function widget( $args, $instance ) {
extract( $args );
$title = apply_filters( 'widget_title', isset($instance['title']) ? $instance['title'] : '', $instance, $this->id_base );
$engine = isset( $instance['engine'] ) ? $instance['engine'] : 'swiper';
// Before widget (defined by themes)
trx_addons_show_layout( $before_widget );
// Display the widget title if one was input (before and after defined by themes)
if ( $title ) trx_addons_show_layout( $before_title . $title . $after_title );
// Widget body
$html = '';
if ( in_array( $engine, array( 'swiper', 'elastistack' ) ) ) {
// Custom slides
$slides = isset( $instance['slides'] ) ? $instance['slides'] : array();
// Slider parameters
$params = array(
'mode' => empty( $slides ) ? 'posts' : 'custom',
'engine' => $engine,
'style' => isset( $instance['slider_style'] ) ? $instance['slider_style'] : 'default',
'effect' => isset( $instance['effect'] ) ? $instance['effect'] : 'slide',
'direction' => isset( $instance['direction'] ) && $instance['direction'] == 'vertical' ? 'vertical' : 'horizontal',
'slides_type' => isset( $instance['slides_type'] ) ? $instance['slides_type'] : 'bg',
'slides_ratio' => isset( $instance['slides_ratio'] ) ? $instance['slides_ratio'] : '16:9',
'slides_centered' => isset( $instance['slides_centered'] ) && (int)$instance['slides_centered'] > 0 ? 'yes' : 'no',
'slides_overflow' => isset( $instance['slides_overflow'] ) && (int)$instance['slides_overflow'] > 0 ? 'yes' : 'no',
'noresize' => isset( $instance['noresize'] ) && (int)$instance['noresize'] > 0 ? 'yes' : 'no',
'noswipe' => isset( $instance['noswipe'] ) && (int)$instance['noswipe'] > 0 ? 'yes' : 'no',
'free_mode' => isset( $instance['free_mode'] ) && (int)$instance['free_mode'] > 0 ? 'yes' : 'no',
'mouse_wheel' => isset( $instance['mouse_wheel'] ) && (int)$instance['mouse_wheel'] > 0 ? 'yes' : 'no',
'autoplay' => ! isset( $instance['autoplay'] ) || (int)$instance['autoplay'] > 0 ? 'yes' : 'no',
'loop' => ! isset( $instance['loop'] ) || (int)$instance['loop'] > 0 ? 'yes' : 'no',
'large' => isset( $instance['large'] ) && (int)$instance['large'] > 0 ? 'yes' : 'no',
'titles' => isset( $instance['titles'] ) ? $instance['titles'] : 'center',
'height' => isset( $instance['height'] ) ? $instance['height'] : '',
'speed' => isset( $instance['speed'] ) ? max( 300, (int)$instance['speed'] ) : 600,
'interval' => isset( $instance['interval'] ) && $instance['interval'] !== '' ? max( 0, (int)$instance['interval'] ) : mt_rand( 5000, 10000 ),
'slave_id' => ! empty( $instance['slave_id'] ) ? $instance['slave_id'] : '',
'controls' => isset( $instance['controls'] ) && (int)$instance['controls'] > 0 ? 'yes' : 'no',
'controls_pos' => isset( $instance['controls_pos'] ) ? $instance['controls_pos'] : 'side',
'controls_icon' => isset( $instance['controls_icon'] ) && ! trx_addons_is_off( $instance['controls_icon'] ) ? $instance['controls_icon'] : '',
'label_prev' => isset( $instance['label_prev'] ) ? $instance['label_prev'] : '',
'label_next' => isset( $instance['label_next'] ) ? $instance['label_next'] : '',
'pagination' => isset( $instance['pagination'] ) && (int)$instance['pagination'] > 0 ? 'yes' : 'no',
'pagination_type' => isset( $instance['pagination_type'] ) ? $instance['pagination_type'] : 'bullets',
'pagination_pos' => isset( $instance['pagination_pos'] ) ? $instance['pagination_pos'] : 'bottom',
'controller' => isset( $instance['controller'] ) && (int)$instance['controller'] > 0 ? 'yes' : 'no',
'controller_pos' => isset( $instance['controller_pos'] ) ? $instance['controller_pos'] : 'right',
'controller_icon' => isset( $instance['controller_icon'] ) && ! trx_addons_is_off( $instance['controller_icon'] ) ? $instance['controller_icon'] : '',
'controller_style' => isset( $instance['controller_style'] ) ? $instance['controller_style'] : 'default',
'controller_effect' => isset( $instance['controller_effect'] ) ? $instance['controller_effect'] : 'slide',
'controller_controls' => isset( $instance['controller_controls'] ) && $instance['controller_controls'] > 0 ? 'yes' : 'no',
'controller_height' => isset( $instance['controller_height'] ) ? $instance['controller_height'] : '',
'post_type' => isset( $instance['post_type'] ) ? $instance['post_type'] : 'post',
'taxonomy' => isset( $instance['taxonomy'] ) ? $instance['taxonomy'] : 'category',
'cat' => isset( $instance['category'] ) ? (int)$instance['category'] : 0,
'orderby' => "date",
'order' => "desc",
'class' => "",
'id' => isset( $instance['slider_id'] ) && ! empty( $instance['slider_id'] )
? $instance['slider_id']
: ( isset( $instance['id'] )
? $instance['id']
: trx_addons_generate_id( 'trx_addons_widget_slider_' )
)
);
// Add query parameters
$params['count'] = $params['ids'] = isset( $instance['posts'] ) ? $instance['posts'] : 5;
if ( strpos( $params['ids'], ',' ) !== false ) {
$params['count'] = 0;
} else {
$params['ids'] = '';
if ( empty( $params['count'] ) ) $params['count'] = count( $slides ) > 1 ? count( $slides ) : 3;
}
// Add responsive values
$resp_params = apply_filters( 'trx_addons_filter_slider_responsive_params', array(
'slides_per_view' => 1,
'slides_space' => 1,
'controller_per_view' => 3,
'controller_space' => 0
) );
$bp = trx_addons_elm_get_breakpoints();
foreach ( $resp_params as $prm => $defa ) {
$prm_in_name = $prm;
$prm_out_name = $prm == 'slides_per_view' ? 'per_view' : $prm;
$prm_value = $params[ $prm_out_name ] = isset( $instance[ $prm_in_name ] ) ? $instance[ $prm_in_name ] : $defa;
if ( $prm == 'slides_per_view' && ! in_array( $params['effect'], array( 'slide', 'coverflow', 'swap', 'cards', 'creative' ) ) ) {
$prm_value = $params[ $prm_out_name ] = 1;
} else if ( $prm == 'controller_per_view' && isset( $params['controller_effect'] ) && ! in_array( $params['controller_effect'], array( 'slide', 'coverflow', 'swap', 'cards', 'creative' ) ) ) {
$prm_value = $params[ $prm_out_name ] = 1;
}
if ( is_array( $bp ) ) {
foreach ( $bp as $bp_name => $bp_max ) {
if ( $bp_name == 'desktop' ) continue;
$prm_in_name = $prm . '_' . $bp_name;
$prm_out_name = ( $prm == 'slides_per_view' ? 'per_view' : $prm ) . '_' . $bp_name;
$params[ $prm_out_name ] = isset( $instance[ $prm_in_name ] ) ? $instance[ $prm_in_name ] : $prm_value;
if ( $prm == 'slides_per_view' && ! in_array( $params['effect'], array( 'slide', 'coverflow', 'swap', 'cards', 'creative' ) ) ) {
$params[ $prm_out_name ] = 1;
} else if ( $prm == 'controller_per_view' && isset( $params['controller_effect'] ) && ! in_array( $params['controller_effect'], array( 'slide', 'coverflow', 'swap', 'cards', 'creative' ) ) ) {
$params[ $prm_out_name ] = 1;
}
}
}
}
// Add dependent parameters
$params['slides_parallax'] = isset( $instance['slides_parallax'] ) && $params['effect'] == 'slide' && $params['per_view'] == 1 ? (float)$instance['slides_parallax'] : 0;
// Get a slider layout
if ( $params['count'] > 0 || ! empty( $params['ids'] ) ) {
$html = trx_addons_get_slider_layout( apply_filters('trx_addons_filter_widget_args', $params, $instance, 'trx_addons_widget_slider' ), $slides );
}
} else if ( $engine == 'revo' ) {
$alias = isset( $instance['alias'] ) ? $instance['alias'] : '';
if ( ! empty( $alias ) ) {
// -- Fix to compatibility with RevSlider 6.5+ (part 1)
global $rs_loaded_by_editor;
if ( function_exists( 'trx_addons_elm_is_edit_mode' ) && trx_addons_elm_is_edit_mode() ) {
$rs_loaded_by_editor = true;
}
// -- End fix (part 1)
$html = do_shortcode( '[rev_slider alias="' . esc_attr( $alias ) . '"][/rev_slider]' );
if ( empty( $html ) ) {
$html = do_shortcode( '[rev_slider ' . esc_attr($alias) . '][/rev_slider]' );
}
// -- Fix to compatibility with RevSlider 6.5+ (part 2)
if ( ! empty( $html ) ) {
$html = sprintf( '<div class="wp-block-themepunch-revslider %2$d">%1$s</div>', $html, $rs_loaded_by_editor );
}
if ( function_exists( 'trx_addons_elm_is_edit_mode' ) && trx_addons_elm_is_edit_mode() ) {
$rs_loaded_by_editor = false;
}
// -- End fix (part 2)
}
}
if ( ! empty( $html ) ) {
// Disable lazy load in slider
$GLOBALS['TRX_ADDONS_STORAGE']['lazy_load_is_off'] = trx_addons_lazy_load_is_off();
if ( ! $GLOBALS['TRX_ADDONS_STORAGE']['lazy_load_is_off'] ) {
trx_addons_lazy_load_off();
}
// Show slider layout
?>
<div class="slider_wrap slider_engine_<?php echo esc_attr($engine); ?><?php if ($engine=='revo') echo ' slider_alias_'.esc_attr($alias); ?>">
<?php trx_addons_show_layout($html); ?>
</div>
<?php
// Enable lazy load again
if ( empty( $GLOBALS['TRX_ADDONS_STORAGE']['lazy_load_is_off'] ) ) {
$GLOBALS['TRX_ADDONS_STORAGE']['lazy_load_is_off'] = false;
trx_addons_lazy_load_on();
}
}
// After widget (defined by themes)
trx_addons_show_layout($after_widget);
}
// Update the widget settings.
function update( $new_instance, $instance ) {
$instance = array_merge($instance, $new_instance);
$instance['slides_ratio'] = str_replace( array('-', '/', ' '), array( ':', ':', ''), $new_instance['slides_ratio'] );
$instance['slides_parallax'] = isset( $new_instance['slides_parallax'] ) ? max( 0, min( 1, (float)$new_instance['slides_parallax'] ) ) : 0;
$instance['mouse_wheel'] = isset( $new_instance['mouse_wheel'] ) && (int)$new_instance['mouse_wheel'] > 0 ? 1 : 0;
$instance['autoplay'] = isset( $new_instance['autoplay'] ) && (int)$new_instance['autoplay'] > 0 ? 1 : 0;
$instance['loop'] = isset( $new_instance['loop'] ) && (int)$new_instance['loop'] > 0 ? 1 : 0;
$instance['free_mode'] = isset( $new_instance['free_mode'] ) && (int)$new_instance['free_mode'] > 0 ? 1 : 0;
$instance['noswipe'] = isset( $new_instance['noswipe'] ) && (int)$new_instance['noswipe'] > 0 ? 1 : 0;
$instance['noresize'] = isset( $new_instance['noresize'] ) && (int)$new_instance['noresize'] > 0 ? 1 : 0;
$instance['slides_centered'] = isset( $new_instance['slides_centered'] ) && (int)$new_instance['slides_centered'] > 0 ? 1 : 0;
$instance['slides_overflow'] = isset( $new_instance['slides_overflow'] ) && (int)$new_instance['slides_overflow'] > 0 ? 1 : 0;
$instance['large'] = max(0, min(1, intval( $new_instance['large'] )));
$instance['controls'] = max(0, min(1, intval( $new_instance['controls'] )));
$instance['pagination'] = max(0, min(1, intval( $new_instance['pagination'] )));
$instance['controller'] = max(0, min(1, intval( $new_instance['controller'] )));
$instance['controller_controls'] = max(0, min(1, intval( $new_instance['controller_controls'] )));
$instance['controller_per_view'] = max(0, intval( $new_instance['controller_per_view'] ));
$instance['controller_space'] = max(0, intval( $new_instance['controller_space'] ));
return apply_filters('trx_addons_filter_widget_args_update', $instance, $new_instance, 'trx_addons_widget_slider');
}
// Displays the widget settings controls on the widget panel.
function form( $instance ) {
// Set up some default widget settings
$instance = wp_parse_args( (array) $instance, apply_filters('trx_addons_filter_widget_args_default', array(
'title' => '',
'engine' => 'swiper',
'slider_style' => 'default',
'slides_per_view' => '1',
'slides_space' => '0',
'slides_parallax' => '0',
'slides_ratio' => '16:9',
'slides_centered' => '0',
'slides_overflow' => '0',
'noresize' => '0',
'mouse_wheel' => '0',
'free_mode' => '0',
'noswipe' => '0',
'autoplay' => '1',
'loop' => '1',
'effect' => 'slide',
'height' => '',
'alias' => '',
'titles' => 'center',
'large' => 0,
'controls' => 0,
'controls_pos' => 'side',
'label_prev' => '',
'label_next' => '',
'pagination' => 0,
'pagination_type' => 'bullets',
'pagination_pos' => 'bottom',
'direction' => 'horizontal',
'post_type' => 'post',
'taxonomy' => 'category',
'category' => '0',
'posts' => '5',
'speed' => '600',
'interval' => '7000',
'slave_id' => '',
'controller' => 0, // Show controller with slides images and title
'controller_pos' => 'right', // left | right | bottom - position of the slider controller
'controller_style' => 'default',// Style of controller
'controller_controls' => 0, // Show arrows in the controller
'controller_effect' => 'slide', // slide | fade | cube | coverflow | flip - change slides effect for the controller
'controller_per_view' => 3, // Slides per view in the controller
'controller_space' => 0, // Space between slides in the controller
'controller_height' => '', // Height of the the controller
), 'trx_addons_widget_slider')
);
do_action('trx_addons_action_before_widget_fields', $instance, 'trx_addons_widget_slider', $this);
$this->show_field(array('name' => 'title',
'title' => __('Title:', 'trx_addons'),
'value' => $instance['title'],
'type' => 'text'));
do_action('trx_addons_action_after_widget_title', $instance, 'trx_addons_widget_slider', $this);
$this->show_field(array('name' => 'engine',
'title' => __('Slider engine:', 'trx_addons'),
'value' => $instance['engine'],
'options' => trx_addons_get_list_sc_slider_engines(),
'type' => 'select'));
if ( trx_addons_exists_revslider() && trx_addons_components_is_allowed('api', 'revslider') ) {
$this->show_field(array('name' => 'alias',
'title' => __('Revolution Slider alias:', 'trx_addons'),
'value' => $instance['alias'],
'options' => trx_addons_get_list_revsliders(),
'dependency' => array(
'engine' => array( 'revo' )
),
'type' => 'select'));
}
$this->show_field(array('name' => 'slider_style',
'title' => __('Swiper style:', 'trx_addons'),
'value' => $instance['slider_style'],
'options' => trx_addons_components_get_allowed_layouts('widgets', 'slider'),
'dependency' => array(
'engine' => array( 'swiper' )
),
'type' => 'select'));
$this->show_field(array('name' => 'effect',
'title' => __('Swiper effect:', 'trx_addons'),
'value' => $instance['effect'],
'options' => trx_addons_get_list_sc_slider_effects(),
'dependency' => array(
'engine' => array( 'swiper' )
),
'type' => 'select'));
$this->show_field(array('name' => 'direction',
'title' => __('Direction:', 'trx_addons'),
'value' => $instance['direction'],
'options' => trx_addons_get_list_sc_directions(),
'dependency' => array(
'engine' => array( 'swiper' ),
'effect' => array( 'slide', 'coverflow', 'swap' )
),
'type' => 'radio'));
$this->show_field(array('name' => 'slides_per_view',
'title' => __('Slides per view in the Swiper:', 'trx_addons'),
'value' => (int) $instance['slides_per_view'],
'dependency' => array(
'engine' => array( 'swiper' ),
'effect' => array( 'slide', 'coverflow', 'swap', 'cards', 'creative' )
),
'type' => 'text'));
$this->show_field(array('name' => 'slides_space',
'title' => __('Space between slides in the Swiper:', 'trx_addons'),
'value' => (int) $instance['slides_space'],
'dependency' => array(
'engine' => array( 'swiper' ),
'effect' => array( 'slide', 'coverflow', 'swap', 'cards', 'creative' )
),
'type' => 'text'));
$this->show_field(array('name' => 'slides_parallax',
'title' => __('Parallax coeff:', 'trx_addons'),
'description' => wp_kses_data( __("Parallax coefficient from 0.0 to 1.0 to shift images while slides change", 'trx_addons') ),
'value' => (float) $instance['slides_parallax'],
'dependency' => array(
'engine' => array( 'swiper' ),
'effect' => array( 'slide' ),
'slides_per_view' => array( 1 )
),
'type' => 'text'));
do_action('trx_addons_action_slider_widget_before_query_params', $instance, 'trx_addons_widget_slider', $this);
// Query parameters
$this->show_field(array('name' => 'slider_query_info',
'title' => __('Query params', 'trx_addons'),
'type' => 'info'));
$this->show_field(array('name' => 'post_type',
'title' => __('Post type:', 'trx_addons'),
'value' => $instance['post_type'],
'options' => trx_addons_get_list_posts_types(),
'class' => 'trx_addons_post_type_selector',
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'select'));
$this->show_field(array('name' => 'taxonomy',
'title' => __('Taxonomy:', 'trx_addons'),
'value' => $instance['taxonomy'],
'options' => trx_addons_get_list_taxonomies(false, $instance['post_type']),
'class' => 'trx_addons_taxonomy_selector',
'type' => 'select'));
$tax_obj = get_taxonomy($instance['taxonomy']);
$this->show_field(array('name' => 'category',
'title' => __('Category:', 'trx_addons'),
'value' => $instance['category'],
'options' => trx_addons_array_merge(
array( 0 => trx_addons_get_not_selected_text( ! empty( $tax_obj->label ) ? $tax_obj->label : __( '- Not Selected -', 'trx_addons' ) ) ),
trx_addons_get_list_terms( false, $instance['taxonomy'], array( 'pad_counts' => true ) )
),
'class' => 'trx_addons_terms_selector',
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'select'));
$this->show_field(array('name' => 'posts',
'title' => __('Number of posts to show in Swiper:', 'trx_addons'),
'value' => (int) $instance['posts'],
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'text'));
do_action('trx_addons_action_slider_widget_before_controls_params', $instance, 'trx_addons_widget_slider', $this);
// Controls
$this->show_field(array('name' => 'slider_controls_info',
'title' => __('Controls', 'trx_addons'),
'type' => 'info'));
$this->show_field(array('name' => 'slave_id',
'title' => __('Slave ID:', 'trx_addons'),
'value' => ! empty( $instance['slave_id'] ) ? $instance['slave_id'] : '',
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'text'));
$this->show_field(array('name' => 'controls',
'title' => __('Show arrows:', 'trx_addons'),
'value' => (int) $instance['controls'],
'options' => trx_addons_get_list_show_hide(false, true),
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'radio'));
$this->show_field(array('name' => 'controls_pos',
'title' => __('Controls position:', 'trx_addons'),
'value' => $instance['controls_pos'],
'options' => trx_addons_get_list_sc_slider_controls(''),
'dependency' => array(
'engine' => array( 'swiper' ),
'controls' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'label_prev',
'title' => __('Prev Slide:', 'trx_addons'),
'value' => $instance['label_prev'],
'dependency' => array(
'slider_style' => array( 'modern' ),
'controls' => array( 1 )
),
'type' => 'text'));
$this->show_field(array('name' => 'label_next',
'title' => __('Next Slide:', 'trx_addons'),
'description' => wp_kses_data( __("Label of the 'Next Slide' button in the Swiper (Modern style). Use '|' to break line", 'trx_addons') ),
'value' => $instance['label_next'],
'dependency' => array(
'slider_style' => array( 'modern' ),
'controls' => array( 1 )
),
'type' => 'text'));
$this->show_field(array('name' => 'pagination',
'title' => __('Show pagination:', 'trx_addons'),
'value' => (int) $instance['pagination'],
'options' => trx_addons_get_list_show_hide(false, true),
'dependency' => array(
'engine' => array( 'swiper' ),
'effect' => array( '^swap' )
),
'type' => 'radio'));
$this->show_field(array('name' => 'pagination_type',
'title' => __('Pagination type:', 'trx_addons'),
'value' => $instance['pagination_type'],
'options' => trx_addons_get_list_sc_slider_paginations_types(),
'dependency' => array(
'engine' => array( 'swiper' ),
'pagination' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'pagination_pos',
'title' => __('Pagination position:', 'trx_addons'),
'value' => $instance['pagination_pos'],
'options' => trx_addons_get_list_sc_slider_paginations(''),
'dependency' => array(
'engine' => array( 'swiper' ),
'pagination' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'mouse_wheel',
'title' => '',
'label' => __('Enable mouse wheel', 'trx_addons'),
'value' => (int) $instance['mouse_wheel'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'noswipe',
'title' => '',
'label' => __('Disable swipe', 'trx_addons'),
'value' => (int) $instance['noswipe'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'autoplay',
'title' => '',
'label' => __('Enable autoplay', 'trx_addons'),
'value' => (int) $instance['autoplay'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'speed',
'title' => __('Slides change speed (in msec., 1000=1sec.)', 'trx_addons'),
'value' => (int) $instance['speed'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'text'));
$this->show_field(array('name' => 'interval',
'title' => __('Swiper interval (in msec., 1000=1sec.)', 'trx_addons'),
'value' => (int) $instance['interval'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'text'));
$this->show_field(array('name' => 'loop',
'title' => '',
'label' => __('Enable loop mode', 'trx_addons'),
'value' => (int) $instance['loop'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'free_mode',
'title' => '',
'label' => __('Enable free mode', 'trx_addons'),
'value' => (int) $instance['free_mode'],
'dependency' => array(
'engine' => array( 'swiper' ),
),
'type' => 'checkbox'));
do_action('trx_addons_action_slider_widget_before_layout_params', $instance, 'trx_addons_widget_slider', $this);
// Layout
$this->show_field(array('name' => 'slider_layout_info',
'title' => __('Layout', 'trx_addons'),
'type' => 'info'));
$this->show_field(array('name' => 'noresize',
'title' => '',
'label' => __("No resize slide's content", 'trx_addons'),
'value' => (int) $instance['noresize'],
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'height',
'title' => __('Slider height:', 'trx_addons'),
'value' => $instance['height'],
'dependency' => array(
'noresize' => array( 1 )
),
'type' => 'text'));
$this->show_field(array('name' => 'slides_ratio',
'title' => __('Slides ratio:', 'trx_addons'),
'value' => $instance['slides_ratio'],
'dependency' => array(
'noresize' => array( 0 )
),
'type' => 'text'));
$this->show_field(array('name' => 'slides_centered',
'title' => '',
'label' => __('Center active slide', 'trx_addons'),
'value' => (int) $instance['slides_centered'],
'dependency' => array(
'engine' => array( 'swiper' )
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'slides_overflow',
'title' => '',
'label' => __('Slides oveflow visible', 'trx_addons'),
'value' => (int) $instance['slides_overflow'],
'dependency' => array(
'engine' => array( 'swiper' )
),
'type' => 'checkbox'));
$this->show_field(array('name' => 'titles',
'title' => __('Show titles in the Swiper:', 'trx_addons'),
'value' => $instance['titles'],
'options' => trx_addons_get_list_sc_slider_titles(),
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'select'));
$this->show_field(array('name' => 'large',
'title' => __('Only children of the current category:', 'trx_addons'),
'value' => (int) $instance['large'],
'options' => array(
1 => __('Large', 'trx_addons'),
0 => __('Small', 'trx_addons')
),
'dependency' => array(
'engine' => array( 'swiper', 'elastistack' )
),
'type' => 'radio'));
do_action('trx_addons_action_slider_widget_before_controller_params', $instance, 'trx_addons_widget_slider', $this);
// Controller
$this->show_field(array('name' => 'slider_controler_info',
'title' => __('Table of contents', 'trx_addons'),
'type' => 'info'));
$this->show_field(array('name' => 'controller',
'title' => __('Show TOC:', 'trx_addons'),
'value' => (int) $instance['controller'],
'options' => trx_addons_get_list_show_hide(false, true),
'dependency' => array(
'engine' => array( 'swiper' )
),
'type' => 'radio'));
$this->show_field(array('name' => 'controller_style',
'title' => __('Style of the TOC:', 'trx_addons'),
'value' => $instance['controller_style'],
'options' => trx_addons_get_list_sc_slider_toc_styles(),
'dependency' => array(
'controller' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'controller_pos',
'title' => __('Position of the TOC:', 'trx_addons'),
'value' => $instance['controller_pos'],
'options' => trx_addons_get_list_sc_slider_toc_positions(),
'dependency' => array(
'controller' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'controller_controls',
'title' => __('Show arrows:', 'trx_addons'),
'value' => (int) $instance['controller_controls'],
'options' => trx_addons_get_list_show_hide(false, true),
'dependency' => array(
'controller' => array( 1 )
),
'type' => 'radio'));
$this->show_field(array('name' => 'controller_effect',
'title' => __('Effect for change items:', 'trx_addons'),
'value' => $instance['controller_effect'],
'options' => trx_addons_get_list_sc_slider_effects(),
'dependency' => array(
'controller' => array( 1 )
),
'type' => 'select'));
$this->show_field(array('name' => 'controller_per_view',
'title' => __('Items per view:', 'trx_addons'),
'value' => $instance['controller_per_view'],
'dependency' => array(
'controller' => array( 1 ),
'controller_effect' => array( 'slide', 'coverflow', 'swap', 'cards', 'creative' )
),
'type' => 'text'));
$this->show_field(array('name' => 'controller_space',
'title' => __('Space between items:', 'trx_addons'),
'value' => $instance['controller_space'],
'dependency' => array(
'controller' => array( 1 )
),
'type' => 'text'));
$this->show_field(array('name' => 'controller_height',
'title' => __('Height of the TOC:', 'trx_addons'),
'value' => $instance['controller_height'],
'dependency' => array(
'controller' => array( 1 ),
'controller_pos' => array( 'bottom' ),
),
'type' => 'text'));
do_action('trx_addons_action_after_widget_fields', $instance, 'trx_addons_widget_slider', $this);
}
}
// Load required styles and scripts for the frontend
if ( !function_exists( 'trx_addons_widget_slider_load_scripts_front' ) ) {
add_action("wp_enqueue_scripts", 'trx_addons_widget_slider_load_scripts_front', TRX_ADDONS_ENQUEUE_SCRIPTS_PRIORITY);
function trx_addons_widget_slider_load_scripts_front() {
if (trx_addons_is_on(trx_addons_get_option('debug_mode'))) {
// Attention! Slider's script and styles will be loaded always, because it used not only in this widget, but in the many CPT, SC, etc.
wp_enqueue_style( 'trx_addons-widget_slider', trx_addons_get_file_url(TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.css'), array(), null );
wp_enqueue_script( 'trx_addons-widget_slider', trx_addons_get_file_url(TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.js'), array('jquery'), null, true );
}
}
}
// Merge widget's specific styles into single stylesheet
if ( !function_exists( 'trx_addons_widget_slider_merge_styles' ) ) {
add_filter("trx_addons_filter_merge_styles", 'trx_addons_widget_slider_merge_styles');
function trx_addons_widget_slider_merge_styles($list) {
$list[ TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.css' ] = true;
return $list;
}
}
// Load responsive styles for the frontend
if ( !function_exists( 'trx_addons_widget_slider_load_responsive_styles' ) ) {
add_action("wp_enqueue_scripts", 'trx_addons_widget_slider_load_responsive_styles', TRX_ADDONS_ENQUEUE_RESPONSIVE_PRIORITY);
function trx_addons_widget_slider_load_responsive_styles() {
if (trx_addons_is_on(trx_addons_get_option('debug_mode'))) {
wp_enqueue_style(
'trx_addons-widget_slider-responsive',
trx_addons_get_file_url(TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.responsive.css'),
array(),
null,
trx_addons_media_for_load_css_responsive( 'widget-slider', 'lg' )
);
}
}
}
// Merge widget's specific styles to the single stylesheet (responsive)
if ( !function_exists( 'trx_addons_widget_slider_merge_styles_responsive' ) ) {
add_filter("trx_addons_filter_merge_styles_responsive", 'trx_addons_widget_slider_merge_styles_responsive');
function trx_addons_widget_slider_merge_styles_responsive($list) {
$list[ TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.responsive.css' ] = true;
return $list;
}
}
// Merge widget's specific scripts into single file
if ( !function_exists( 'trx_addons_widget_slider_merge_scripts' ) ) {
add_action("trx_addons_filter_merge_scripts", 'trx_addons_widget_slider_merge_scripts');
function trx_addons_widget_slider_merge_scripts($list) {
$list[ TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider.js' ] = true;
return $list;
}
}
// Add messages for JS
if ( !function_exists( 'trx_addons_widget_slider_localize_script' ) ) {
add_filter("trx_addons_filter_localize_script", 'trx_addons_widget_slider_localize_script');
function trx_addons_widget_slider_localize_script($storage) {
$storage['slider_round_lengths'] = trx_addons_get_setting('slider_round_lengths');
return $storage;
}
}
// Add shortcodes
//----------------------------------------------------------------------------
require_once TRX_ADDONS_PLUGIN_DIR . TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider-sc.php';
// Add shortcodes to Elementor
if ( trx_addons_exists_elementor() && function_exists('trx_addons_elm_init') ) {
require_once TRX_ADDONS_PLUGIN_DIR . TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider-sc-elementor.php';
}
// Add shortcodes to Gutenberg
if ( trx_addons_exists_gutenberg() && function_exists( 'trx_addons_gutenberg_get_param_id' ) ) {
require_once TRX_ADDONS_PLUGIN_DIR . TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider-sc-gutenberg.php';
}
// Add shortcodes to VC
if ( trx_addons_exists_vc() && function_exists( 'trx_addons_vc_add_id_param' ) ) {
require_once TRX_ADDONS_PLUGIN_DIR . TRX_ADDONS_PLUGIN_WIDGETS . 'slider/slider-sc-vc.php';
}