name = esc_html__( 'Post Slider', 'et_builder' ); $this->slug = 'et_pb_post_slider'; $this->fb_support = true; // need to use global settings from the slider module $this->global_settings_slug = 'et_pb_slider'; $this->whitelisted_fields = array( 'show_arrows', 'show_pagination', 'auto', 'auto_speed', 'auto_ignore_hover', 'parallax', 'parallax_method', 'background_position', 'background_size', 'admin_label', 'module_id', 'module_class', 'show_content_on_mobile', 'show_cta_on_mobile', 'show_image_video_mobile', 'include_categories', 'posts_number', 'show_more_button', 'more_text', 'content_source', 'background_color', 'show_image', 'image_placement', 'background_image', 'background_layout', 'use_bg_overlay', 'use_text_overlay', 'bg_overlay_color', 'text_overlay_color', 'orderby', 'show_meta', 'use_manual_excerpt', 'excerpt_length', 'text_border_radius', 'arrows_custom_color', 'dot_nav_custom_color', ); $this->fields_defaults = array( 'show_arrows' => array( 'on' ), 'show_pagination' => array( 'on' ), 'auto' => array( 'off' ), 'auto_speed' => array( '7000' ), 'auto_ignore_hover' => array( 'off' ), 'parallax' => array( 'off' ), 'parallax_method' => array( 'off' ), 'background_position' => array( 'center' ), 'background_size' => array( 'cover' ), 'show_content_on_mobile' => array( 'on' ), 'show_cta_on_mobile' => array( 'on' ), 'show_image_video_mobile' => array( 'off' ), 'more_text' => array( 'Read More' ), 'background_color' => array( '' ), 'image_placement' => array( 'background' ), 'background_layout' => array( 'dark' ), 'orderby' => array( 'date_desc' ), 'excerpt_length' => array( '270' ), 'use_bg_overlay' => array( 'on' ), 'show_meta' => array( 'on' ), 'show_more_button' => array( 'on' ), 'show_image' => array( 'on' ), 'text_orientation' => array( 'center' ), ); $this->main_css_element = '%%order_class%%.et_pb_slider'; $this->options_toggles = array( 'general' => array( 'toggles' => array( 'main_content' => esc_html__( 'Content', 'et_builder' ), 'elements' => esc_html__( 'Elements', 'et_builder' ), 'featured_image' => esc_html__( 'Featured Image', 'et_builder' ), 'background' => esc_html__( 'Background', 'et_builder' ), ), ), 'advanced' => array( 'toggles' => array( 'layout' => esc_html__( 'Layout', 'et_builder' ), 'overlay' => esc_html__( 'Overlay', 'et_builder' ), 'navigation' => esc_html__( 'Navigation', 'et_builder' ), 'image' => array( 'title' => esc_html__( 'Image', 'et_builder' ), ), 'text' => array( 'title' => esc_html__( 'Text', 'et_builder' ), 'priority' => 49, ), ), ), 'custom_css' => array( 'toggles' => array( 'animation' => array( 'title' => esc_html__( 'Animation', 'et_builder' ), 'priority' => 90, ), ), ), ); $this->advanced_options = array( 'fonts' => array( 'header' => array( 'label' => esc_html__( 'Title', 'et_builder' ), 'css' => array( 'main' => "{$this->main_css_element} .et_pb_slide_description .et_pb_slide_title, {$this->main_css_element} .et_pb_slide_description .et_pb_slide_title a", 'important' => array( 'size', 'font-size', 'plugin_all' ), ), 'header_level' => array( 'default' => 'h2', ), ), 'body' => array( 'label' => esc_html__( 'Body', 'et_builder' ), 'css' => array( 'line_height' => "{$this->main_css_element}, {$this->main_css_element} .et_pb_slide_content", 'main' => "{$this->main_css_element} .et_pb_slide_content, {$this->main_css_element} .et_pb_slide_content div", 'important' => 'all', ), ), 'meta' => array( 'label' => esc_html__( 'Meta', 'et_builder' ), 'css' => array( 'main' => "{$this->main_css_element} .et_pb_slide_content .post-meta, {$this->main_css_element} .et_pb_slide_content .post-meta a", 'plugin_main' => "{$this->main_css_element} .et_pb_slide_content .post-meta, {$this->main_css_element} .et_pb_slide_content .post-meta a, {$this->main_css_element} .et_pb_slide_content .post-meta span", 'important' => 'all', ), 'line_height' => array( 'default' => '1em', ), 'font_size' => array( 'default' => '16px', ), 'letter_spacing' => array( 'default' => '0', ), ), ), 'button' => array( 'button' => array( 'label' => esc_html__( 'Button', 'et_builder' ), 'css' => array( 'plugin_main' => "{$this->main_css_element} .et_pb_more_button.et_pb_button", 'alignment' => "{$this->main_css_element} .et_pb_button_wrapper", ), 'use_alignment' => true, ), ), 'background' => array( 'css' => array( 'main' => "{$this->main_css_element}, {$this->main_css_element}.et_pb_bg_layout_dark", ), ), 'custom_margin_padding' => array( 'css' => array( 'main' => '%%order_class%%', 'padding' => '%%order_class%% .et_pb_slide_description, .et_pb_slider_fullwidth_off%%order_class%% .et_pb_slide_description', 'important' => array( 'custom_margin' ), // needed to overwrite last module margin-bottom styling ), ), 'max_width' => array(), 'text' => array( 'css' => array( 'text_orientation' => '%%order_class%% .et_pb_slide .et_pb_slide_description', 'text_shadow' => '%%order_class%% .et_pb_slide .et_pb_slide_description', ), ), 'border' => array( 'css' => array( 'main' => array( 'border_radii' => '%%order_class%%, %%order_class%% .et_pb_slide, %%order_class%% .et_pb_slide_overlay_container', ), ), ), 'filters' => array( 'child_filters_target' => array( 'tab_slug' => 'advanced', 'toggle_slug' => 'image', ), ), 'image' => array( 'css' => array( 'main' => '%%order_class%% .et_pb_slide_image', ), ), ); $this->custom_css_options = array( 'slide_description' => array( 'label' => esc_html__( 'Slide Description', 'et_builder' ), 'selector' => '.et_pb_slide_description', ), 'slide_title' => array( 'label' => esc_html__( 'Slide Title', 'et_builder' ), 'selector' => '.et_pb_slide_description .et_pb_slide_title', ), 'slide_meta' => array( 'label' => esc_html__( 'Slide Meta', 'et_builder' ), 'selector' => '.et_pb_slide_content .post-meta', ), 'slide_button' => array( 'label' => esc_html__( 'Slide Button', 'et_builder' ), 'selector' => '.et_pb_slider a.et_pb_more_button.et_pb_button', 'no_space_before_selector' => true, ), 'slide_controllers' => array( 'label' => esc_html__( 'Slide Controllers', 'et_builder' ), 'selector' => '.et-pb-controllers', ), 'slide_active_controller' => array( 'label' => esc_html__( 'Slide Active Controller', 'et_builder' ), 'selector' => '.et-pb-controllers .et-pb-active-control', ), 'slide_image' => array( 'label' => esc_html__( 'Slide Image', 'et_builder' ), 'selector' => '.et_pb_slide_image', ), 'slide_arrows' => array( 'label' => esc_html__( 'Slide Arrows', 'et_builder' ), 'selector' => '.et-pb-slider-arrows a', ), ); } function get_fields() { $fields = array( 'posts_number' => array( 'label' => esc_html__( 'Posts Number', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'description' => esc_html__( 'Choose how many posts you would like to display in the slider.', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__posts', ), ), 'include_categories' => array( 'label' => esc_html__( 'Include Categories', 'et_builder' ), 'renderer' => 'et_builder_include_categories_option', 'option_category' => 'basic_option', 'renderer_options' => array( 'use_terms' => false, ), 'description' => esc_html__( 'Choose which categories you would like to include in the slider.', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__posts', ), ), 'orderby' => array( 'label' => esc_html__( 'Order By', 'et_builder' ), 'type' => 'select', 'option_category' => 'configuration', 'options' => array( 'date_desc' => esc_html__( 'Date: new to old', 'et_builder' ), 'date_asc' => esc_html__( 'Date: old to new', 'et_builder' ), 'title_asc' => esc_html__( 'Title: a-z', 'et_builder' ), 'title_desc' => esc_html__( 'Title: z-a', 'et_builder' ), 'rand' => esc_html__( 'Random', 'et_builder' ), ), 'toggle_slug' => 'main_content', 'description' => esc_html__( 'Here you can adjust the order in which posts are displayed.', 'et_builder' ), 'computed_affects' => array( '__posts', ), ), 'show_arrows' => array( 'label' => esc_html__( 'Show Arrows', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'This setting will turn on and off the navigation arrows.', 'et_builder' ), ), 'show_pagination' => array( 'label' => esc_html__( 'Show Controls', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'This setting will turn on and off the circle buttons at the bottom of the slider.', 'et_builder' ), ), 'show_more_button' => array( 'label' => esc_html__( 'Show Read More Button', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'affects' => array( 'more_text', ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'This setting will turn on and off the read more button.', 'et_builder' ), ), 'more_text' => array( 'label' => esc_html__( 'Button Text', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'depends_show_if' => 'on', 'toggle_slug' => 'main_content', 'description' => esc_html__( 'Define the text which will be displayed on "Read More" button. leave blank for default ( Read More )', 'et_builder' ), ), 'content_source' => array( 'label' => esc_html__( 'Content Display', 'et_builder' ), 'type' => 'select', 'option_category' => 'configuration', 'options' => array( 'off' => esc_html__( 'Show Excerpt', 'et_builder' ), 'on' => esc_html__( 'Show Content', 'et_builder' ), ), 'affects' => array( 'use_manual_excerpt', 'excerpt_length', ), 'description' => esc_html__( 'Showing the full content will not truncate your posts in the slider. Showing the excerpt will only display excerpt text.', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__posts', ), ), 'use_manual_excerpt' => array( 'label' => esc_html__( 'Use Post Excerpt if Defined', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'depends_show_if' => 'off', 'description' => esc_html__( 'Disable this option if you want to ignore manually defined excerpts and always generate it automatically.', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__posts', ), ), 'excerpt_length' => array( 'label' => esc_html__( 'Automatic Excerpt Length', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'depends_show_if' => 'off', 'description' => esc_html__( 'Define the length of automatically generated excerpts. Leave blank for default ( 270 ) ', 'et_builder' ), 'toggle_slug' => 'main_content', 'computed_affects' => array( '__posts', ), ), 'show_meta' => array( 'label' => esc_html__( 'Show Post Meta', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'This setting will turn on and off the meta section.', 'et_builder' ), ), 'background_layout' => array( 'label' => esc_html__( 'Text Color', 'et_builder' ), 'type' => 'select', 'option_category' => 'color_option', 'options' => array( 'dark' => esc_html__( 'Light', 'et_builder' ), 'light' => esc_html__( 'Dark', 'et_builder' ), ), 'tab_slug' => 'advanced', 'toggle_slug' => 'text', 'description' => esc_html__( 'Here you can choose whether your text is light or dark. If you have a slide with a dark background, then choose light text. If you have a light background, then use dark text.' , 'et_builder' ), ), 'show_image' => array( 'label' => esc_html__( 'Show Featured Image', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'affects' => array( 'image_placement', ), 'toggle_slug' => 'featured_image', 'description' => esc_html__( 'This setting will turn on and off the featured image in the slider.', 'et_builder' ), ), 'image_placement' => array( 'label' => esc_html__( 'Image Placement', 'et_builder' ), 'type' => 'select', 'option_category' => 'configuration', 'options' => array( 'background' => esc_html__( 'Background', 'et_builder' ), 'left' => esc_html__( 'Left', 'et_builder' ), 'right' => esc_html__( 'Right', 'et_builder' ), 'top' => esc_html__( 'Top', 'et_builder' ), 'bottom' => esc_html__( 'Bottom', 'et_builder' ), ), 'depends_show_if' => 'on', 'toggle_slug' => 'featured_image', 'description' => esc_html__( 'Select how you would like to display the featured image in slides', 'et_builder' ), ), 'use_bg_overlay' => array( 'label' => esc_html__( 'Use Background Overlay', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'affects' => array( 'bg_overlay_color', ), 'tab_slug' => 'advanced', 'toggle_slug' => 'overlay', 'description' => esc_html__( 'When enabled, a custom overlay color will be added above your background image and behind your slider content.', 'et_builder' ), ), 'bg_overlay_color' => array( 'label' => esc_html__( 'Background Overlay Color', 'et_builder' ), 'type' => 'color-alpha', 'custom_color' => true, 'depends_show_if' => 'on', 'tab_slug' => 'advanced', 'toggle_slug' => 'overlay', 'description' => esc_html__( 'Use the color picker to choose a color for the background overlay.', 'et_builder' ), ), 'use_text_overlay' => array( 'label' => esc_html__( 'Use Text Overlay', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'off' => esc_html__( 'No', 'et_builder' ), 'on' => esc_html__( 'yes', 'et_builder' ), ), 'affects' => array( 'text_overlay_color', 'text_border_radius', ), 'tab_slug' => 'advanced', 'toggle_slug' => 'overlay', 'description' => esc_html__( 'When enabled, a background color is added behind the slider text to make it more readable atop background images.', 'et_builder' ), ), 'text_overlay_color' => array( 'label' => esc_html__( 'Text Overlay Color', 'et_builder' ), 'type' => 'color-alpha', 'custom_color' => true, 'depends_show_if' => 'on', 'tab_slug' => 'advanced', 'toggle_slug' => 'overlay', 'description' => esc_html__( 'Use the color picker to choose a color for the text overlay.', 'et_builder' ), ), 'show_content_on_mobile' => array( 'label' => esc_html__( 'Show Content On Mobile', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'layout', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'tab_slug' => 'custom_css', 'toggle_slug' => 'visibility', ), 'show_cta_on_mobile' => array( 'label' => esc_html__( 'Show CTA On Mobile', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'layout', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'tab_slug' => 'custom_css', 'toggle_slug' => 'visibility', ), 'show_image_video_mobile' => array( 'label' => esc_html__( 'Show Image On Mobile', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'layout', 'options' => array( 'off' => esc_html__( 'No', 'et_builder' ), 'on' => esc_html__( 'Yes', 'et_builder' ), ), 'tab_slug' => 'custom_css', 'toggle_slug' => 'visibility', ), 'text_border_radius' => array( 'label' => esc_html__( 'Text Overlay Border Radius', 'et_builder' ), 'type' => 'range', 'option_category' => 'layout', 'default' => '3', 'range_settings' => array( 'min' => '0', 'max' => '100', 'step' => '1', ), 'depends_show_if' => 'on', 'tab_slug' => 'advanced', 'toggle_slug' => 'overlay', ), 'arrows_custom_color' => array( 'label' => esc_html__( 'Arrows Custom Color', 'et_builder' ), 'type' => 'color-alpha', 'custom_color' => true, 'tab_slug' => 'advanced', 'toggle_slug' => 'navigation', ), 'dot_nav_custom_color' => array( 'label' => esc_html__( 'Dot Nav Custom Color', 'et_builder' ), 'type' => 'color-alpha', 'custom_color' => true, 'tab_slug' => 'advanced', 'toggle_slug' => 'navigation', ), 'disabled_on' => array( 'label' => esc_html__( 'Disable on', 'et_builder' ), 'type' => 'multiple_checkboxes', 'options' => array( 'phone' => esc_html__( 'Phone', 'et_builder' ), 'tablet' => esc_html__( 'Tablet', 'et_builder' ), 'desktop' => esc_html__( 'Desktop', 'et_builder' ), ), 'additional_att' => 'disable_on', 'option_category' => 'configuration', 'description' => esc_html__( 'This will disable the module on selected devices', 'et_builder' ), 'tab_slug' => 'custom_css', 'toggle_slug' => 'visibility', ), 'admin_label' => array( 'label' => esc_html__( 'Admin Label', 'et_builder' ), 'type' => 'text', 'description' => esc_html__( 'This will change the label of the module in the builder for easy identification.', 'et_builder' ), 'toggle_slug' => 'admin_label', ), 'module_id' => array( 'label' => esc_html__( 'CSS ID', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'tab_slug' => 'custom_css', 'toggle_slug' => 'classes', 'option_class' => 'et_pb_custom_css_regular', ), 'module_class' => array( 'label' => esc_html__( 'CSS Class', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'tab_slug' => 'custom_css', 'toggle_slug' => 'classes', 'option_class' => 'et_pb_custom_css_regular', ), '__posts' => array( 'type' => 'computed', 'computed_callback' => array( 'ET_Builder_Module_Post_Slider', 'get_blog_posts' ), 'computed_depends_on' => array( 'posts_number', 'include_categories', 'orderby', 'content_source', 'use_manual_excerpt', 'excerpt_length', ), ), ); return $fields; } static function get_blog_posts( $args = array(), $conditional_tags = array(), $current_page = array(), $is_ajax_request = true ) { $defaults = array( 'posts_number' => '', 'include_categories' => '', 'orderby' => '', 'content_source' => '', 'use_manual_excerpt' => '', 'excerpt_length' => '', ); $args = wp_parse_args( $args, $defaults ); $query_args = array( 'posts_per_page' => (int) $args['posts_number'], 'post_status' => 'publish', ); if ( '' !== $args['include_categories'] ) { $query_args['cat'] = $args['include_categories']; } if ( 'date_desc' !== $args['orderby'] ) { switch ( $args['orderby'] ) { case 'date_asc': $query_args['orderby'] = 'date'; $query_args['order'] = 'ASC'; break; case 'title_asc': $query_args['orderby'] = 'title'; $query_args['order'] = 'ASC'; break; case 'title_desc': $query_args['orderby'] = 'title'; $query_args['order'] = 'DESC'; break; case 'rand': $query_args['orderby'] = 'rand'; break; } } $query = new WP_Query( $query_args ); if ( $query->have_posts() ) { $post_index = 0; while ( $query->have_posts() ) { $query->the_post(); $post_author_id = $query->posts[ $post_index ]->post_author; $categories = array(); $categories_object = get_the_terms( get_the_ID(), 'category' ); if ( ! empty( $categories_object ) ) { foreach ( $categories_object as $category ) { $categories[] = array( 'id' => $category->term_id, 'label' => $category->name, 'permalink' => get_term_link( $category ), ); } } $query->posts[ $post_index ]->post_featured_image = esc_url( wp_get_attachment_url( get_post_thumbnail_id() ) ); $query->posts[ $post_index ]->has_post_thumbnail = has_post_thumbnail(); $query->posts[ $post_index ]->post_permalink = get_the_permalink(); $query->posts[ $post_index ]->post_author_url = get_author_posts_url( $post_author_id ); $query->posts[ $post_index ]->post_author_name = get_the_author_meta( 'display_name', $post_author_id ); $query->posts[ $post_index ]->post_date_readable = get_the_date(); $query->posts[ $post_index ]->categories = $categories; $query->posts[ $post_index ]->post_comment_popup = sprintf( esc_html( _nx( '%s Comment', '%s Comments', get_comments_number(), 'number of comments', 'et_builder' ) ), number_format_i18n( get_comments_number() ) ); $post_content = et_strip_shortcodes( get_the_content(), true ); global $et_fb_processing_shortcode_object, $et_pb_rendering_column_content; $global_processing_original_value = $et_fb_processing_shortcode_object; // reset the fb processing flag $et_fb_processing_shortcode_object = false; // set the flag to indicate that we're processing internal content $et_pb_rendering_column_content = true; if ( $is_ajax_request ) { // reset all the attributes required to properly generate the internal styles ET_Builder_Element::clean_internal_modules_styles(); } if ( 'on' === $args['content_source'] ) { global $more; // page builder doesn't support more tag, so display the_content() in case of post made with page builder if ( et_pb_is_pagebuilder_used( get_the_ID() ) ) { $more = 1; $builder_post_content = et_is_builder_plugin_active() ? do_shortcode( $post_content ) : apply_filters( 'the_content', $post_content ); // Overwrite default content, in case the content is protected $query->posts[ $post_index ]->post_content = $builder_post_content; } else { $more = null; // Overwrite default content, in case the content is protected $query->posts[ $post_index ]->post_content = et_is_builder_plugin_active() ? do_shortcode( get_the_content( '' ) ) : apply_filters( 'the_content', get_the_content( '' ) ); } } else { if ( has_excerpt() && 'off' !== $args['use_manual_excerpt'] ) { $query->posts[ $post_index ]->post_content = et_is_builder_plugin_active() ? do_shortcode( et_strip_shortcodes( get_the_excerpt(), true ) ) : apply_filters( 'the_content', et_strip_shortcodes( get_the_excerpt(), true ) ); } else { $query->posts[ $post_index ]->post_content = strip_shortcodes( truncate_post( intval( $args['excerpt_length'] ), false, '', true ) ); } } $et_fb_processing_shortcode_object = $global_processing_original_value; if ( $is_ajax_request ) { // retrieve the styles for the modules inside Blog content $internal_style = ET_Builder_Element::get_style( true ); // reset all the attributes after we retrieved styles ET_Builder_Element::clean_internal_modules_styles( false ); $query->posts[ $post_index ]->internal_styles = $internal_style; } $et_pb_rendering_column_content = false; $post_index++; } // end while wp_reset_query(); } else if ( wp_doing_ajax() ) { // This is for the VB $query = '
'; $query .= self::get_no_results_template(); $query .= '
'; $query = array( 'posts' => $query ); } return $query; } function shortcode_callback( $atts, $content = null, $function_name ) { $module_id = $this->shortcode_atts['module_id']; $module_class = $this->shortcode_atts['module_class']; $show_arrows = $this->shortcode_atts['show_arrows']; $show_pagination = $this->shortcode_atts['show_pagination']; $parallax = $this->shortcode_atts['parallax']; $parallax_method = $this->shortcode_atts['parallax_method']; $auto = $this->shortcode_atts['auto']; $auto_speed = $this->shortcode_atts['auto_speed']; $auto_ignore_hover = $this->shortcode_atts['auto_ignore_hover']; $body_font_size = $this->shortcode_atts['body_font_size']; $show_content_on_mobile = $this->shortcode_atts['show_content_on_mobile']; $show_cta_on_mobile = $this->shortcode_atts['show_cta_on_mobile']; $show_image_video_mobile = $this->shortcode_atts['show_image_video_mobile']; $background_position = $this->shortcode_atts['background_position']; $background_size = $this->shortcode_atts['background_size']; $background_repeat = $this->shortcode_atts['background_repeat']; $background_blend = $this->shortcode_atts['background_blend']; $posts_number = $this->shortcode_atts['posts_number']; $include_categories = $this->shortcode_atts['include_categories']; $show_more_button = $this->shortcode_atts['show_more_button']; $more_text = $this->shortcode_atts['more_text']; $content_source = $this->shortcode_atts['content_source']; $background_color = $this->shortcode_atts['background_color']; $show_image = $this->shortcode_atts['show_image']; $image_placement = $this->shortcode_atts['image_placement']; $background_image = $this->shortcode_atts['background_image']; $background_layout = $this->shortcode_atts['background_layout']; $use_bg_overlay = $this->shortcode_atts['use_bg_overlay']; $bg_overlay_color = $this->shortcode_atts['bg_overlay_color']; $use_text_overlay = $this->shortcode_atts['use_text_overlay']; $text_overlay_color = $this->shortcode_atts['text_overlay_color']; $orderby = $this->shortcode_atts['orderby']; $show_meta = $this->shortcode_atts['show_meta']; $button_custom = $this->shortcode_atts['custom_button']; $custom_icon = $this->shortcode_atts['button_icon']; $use_manual_excerpt = $this->shortcode_atts['use_manual_excerpt']; $excerpt_length = $this->shortcode_atts['excerpt_length']; $text_border_radius = $this->shortcode_atts['text_border_radius']; $dot_nav_custom_color = $this->shortcode_atts['dot_nav_custom_color']; $arrows_custom_color = $this->shortcode_atts['arrows_custom_color']; $button_rel = $this->shortcode_atts['button_rel']; $header_level = $this->shortcode_atts['header_level']; $post_index = 0; $module_class = ET_Builder_Element::add_module_order_class( $module_class, $function_name ); $is_text_overlay_applied = 'on' === $use_text_overlay; $hide_on_mobile_class = self::HIDE_ON_MOBILE; // Applying backround-related style to slide item since advanced_option only targets module wrapper if ( 'on' === $this->shortcode_atts['show_image'] && 'background' === $this->shortcode_atts['image_placement'] && 'off' === $parallax ) { if ('' !== $background_color) { ET_Builder_Module::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide:not(.et_pb_slide_with_no_image)', 'declaration' => sprintf( 'background-color: %1$s;', esc_html( $background_color ) ), ) ); } if ( '' !== $background_size && 'default' !== $background_size ) { ET_Builder_Module::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide', 'declaration' => sprintf( '-moz-background-size: %1$s; -webkit-background-size: %1$s; background-size: %1$s;', esc_html( $background_size ) ), ) ); if ( 'initial' === $background_size ) { ET_Builder_Module::set_style( $function_name, array( 'selector' => 'body.ie %%order_class%% .et_pb_slide', 'declaration' => '-moz-background-size: auto; -webkit-background-size: auto; background-size: auto;', ) ); } } if ( '' !== $background_position && 'default' !== $background_position ) { $processed_position = str_replace( '_', ' ', $background_position ); ET_Builder_Module::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide', 'declaration' => sprintf( 'background-position: %1$s;', esc_html( $processed_position ) ), ) ); } if ( '' !== $background_repeat ) { ET_Builder_Module::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide', 'declaration' => sprintf( 'background-repeat: %1$s;', esc_html( $background_repeat ) ), ) ); } if ( '' !== $background_blend ) { ET_Builder_Module::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide', 'declaration' => sprintf( 'background-blend-mode: %1$s;', esc_html( $background_blend ) ), ) ); } } if ( 'on' === $use_bg_overlay && '' !== $bg_overlay_color ) { ET_Builder_Element::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide .et_pb_slide_overlay_container', 'declaration' => sprintf( 'background-color: %1$s;', esc_html( $bg_overlay_color ) ), ) ); } if ( $is_text_overlay_applied && '' !== $text_overlay_color ) { ET_Builder_Element::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_slide .et_pb_text_overlay_wrapper', 'declaration' => sprintf( 'background-color: %1$s;', esc_html( $text_overlay_color ) ), ) ); } if ( '' !== $text_border_radius ) { $border_radius_value = et_builder_process_range_value( $text_border_radius ); ET_Builder_Element::set_style( $function_name, array( 'selector' => '%%order_class%%.et_pb_slider_with_text_overlay .et_pb_text_overlay_wrapper', 'declaration' => sprintf( 'border-radius: %1$s;', esc_html( $border_radius_value ) ), ) ); } $fullwidth = 'et_pb_fullwidth_slider' === $function_name ? 'on' : 'off'; $class = ''; $class .= 'off' === $fullwidth ? ' et_pb_slider_fullwidth_off' : ''; $class .= 'off' === $show_arrows ? ' et_pb_slider_no_arrows' : ''; $class .= 'off' === $show_pagination ? ' et_pb_slider_no_pagination' : ''; $class .= 'on' === $parallax ? ' et_pb_slider_parallax' : ''; $class .= 'on' === $auto ? ' et_slider_auto et_slider_speed_' . esc_attr( $auto_speed ) : ''; $class .= 'on' === $auto_ignore_hover ? ' et_slider_auto_ignore_hover' : ''; $class .= 'on' === $show_image_video_mobile ? ' et_pb_slider_show_image' : ''; $class .= ' et_pb_post_slider_image_' . $image_placement; $class .= 'on' === $use_bg_overlay ? ' et_pb_slider_with_overlay' : ''; $class .= 'on' === $use_text_overlay ? ' et_pb_slider_with_text_overlay' : ''; $data_dot_nav_custom_color = '' !== $dot_nav_custom_color ? sprintf( ' data-dots_color="%1$s"', esc_attr( $dot_nav_custom_color ) ) : ''; $data_arrows_custom_color = '' !== $arrows_custom_color ? sprintf( ' data-arrows_color="%1$s"', esc_attr( $arrows_custom_color ) ) : ''; $video_background = $this->video_background(); $parallax_image_background = $this->get_parallax_image_background(); ob_start(); // Re-used self::get_blog_posts() for builder output $query = self::get_blog_posts(array( 'posts_number' => $posts_number, 'include_categories' => $include_categories, 'orderby' => $orderby, 'content_source' => $content_source, 'use_manual_excerpt' => $use_manual_excerpt, 'excerpt_length' => $excerpt_length, ), array(), array(), false ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $slide_class = 'off' !== $show_image && in_array( $image_placement, array( 'left', 'right' ) ) && has_post_thumbnail() ? ' et_pb_slide_with_image' : ''; $slide_class .= 'off' !== $show_image && ! has_post_thumbnail() ? ' et_pb_slide_with_no_image' : ''; $slide_class .= " et_pb_bg_layout_{$background_layout}"; ?>
>
< class="et_pb_slide_title">>
%1$s | %2$s | %3$s | %4$s

', et_get_safe_localization( sprintf( __( 'by %s', 'et_builder' ), '' . et_pb_get_the_author_posts_link() . '' ) ), et_get_safe_localization( sprintf( __( '%s', 'et_builder' ), '' . esc_html( get_the_date() ) . '' ) ), get_the_category_list(', '), sprintf( esc_html( _nx( '%s Comment', '%s Comments', get_comments_number(), 'number of comments', 'et_builder' ) ), number_format_i18n( get_comments_number() ) ) ); } ?> posts[ $post_index ]->post_content; ?>
%2$s
', esc_url( get_permalink() ), esc_html( $more_text ), '' !== $custom_icon && 'on' === $button_custom ? sprintf( ' data-icon="%1$s"', esc_attr( et_pb_process_font_icon( $custom_icon ) ) ) : '', '' !== $custom_icon && 'on' === $button_custom ? ' et_pb_custom_button_icon' : '', 'on' !== $show_cta_on_mobile ? esc_attr( " {$hide_on_mobile_class}" ) : '', $this->get_rel_attributes( $button_rel ) ); } ?>
'; $content .= self::get_no_results_template(); $content .= ''; } // Images: Add CSS Filters and Mix Blend Mode rules (if set) if ( array_key_exists( 'image', $this->advanced_options ) && array_key_exists( 'css', $this->advanced_options['image'] ) ) { $module_class .= $this->generate_css_filters( $function_name, 'child_', self::$data_utils->array_get( $this->advanced_options['image']['css'], 'main', '%%order_class%%' ) ); } $output = sprintf( ' %8$s %6$s
%2$s
%9$s ', esc_attr( $class ), $content, ( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ), ( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' ), '' !== $video_background ? ' et_pb_section_video et_pb_preload' : '', $video_background, '' !== $parallax_image_background ? ' et_pb_section_parallax' : '', $parallax_image_background, $this->inner_shadow_back_compatibility( $function_name ) ); return $output; } public function process_box_shadow( $function_name ) { $boxShadow = ET_Builder_Module_Fields_Factory::get( 'BoxShadow' ); $selector = '.' . self::get_module_order_class( $function_name ); if ( isset( $this->shortcode_atts['custom_button'] ) && 'on' === $this->shortcode_atts['custom_button'] ) { self::set_style( $function_name, array( 'selector' => $selector . ' .et_pb_button', 'declaration' => $boxShadow->get_value( $this->shortcode_atts, array( 'suffix' => '_button' ) ) ) ); } self::set_style( $function_name, $boxShadow->get_style( $selector, $this->shortcode_atts ) ); } private function inner_shadow_back_compatibility( $functions_name ) { $utils = ET_Core_Data_Utils::instance(); $atts = $this->shortcode_atts; $style = ''; if ( version_compare( $utils->array_get( $atts, '_builder_version', '3.0.93' ), '3.0.99', 'lt' ) ) { $class = self::get_module_order_class( $functions_name ); $style = sprintf( '', sprintf( '.%1$s.et_pb_slider .et_pb_slide {' . '-webkit-box-shadow: none; ' . '-moz-box-shadow: none; ' . 'box-shadow: none; ' .'}', esc_attr( $class ) ) ); if ( 'off' !== $utils->array_get( $atts, 'show_inner_shadow' ) ) { $style .= sprintf( '', sprintf( '.%1$s > .box-shadow-overlay { ' . '-webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); ' . '-moz-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); ' . 'box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); ' . '}', esc_attr( $class ) ) ); } } return $style; } } new ET_Builder_Module_Post_Slider;