start_controls_section( 'stack_content', [ 'label' => __( 'Content', 'wts-eae' ), ] ); $options = [ 'single' => __( 'Single', 'wts-eae' ), 'repeater' => __( 'Repeater', 'wts-eae' ), ]; //$options = apply_filters('eae_stack_source_options', $options); $this->add_control( 'stack_source', [ 'label' => esc_html__( 'Source', 'wta-eae' ), 'type' => Controls_Manager::SELECT, 'options' => $options, 'default' => 'single', ] ); $args = [ 'name' => 'stack_source_repeater_pro_options', 'conditions' => [ 'stack_source' => [ 'repeater' ], ], ]; // $conditions = [ // 'stack_source' => [ 'repeater' ], // ]; Helper::add_eae_pro_notice_controls($this, $args); // Single Data $this->add_control( 'images', [ 'label' => esc_html__( 'Add Images', 'wta-eae' ), 'type' => Controls_Manager::GALLERY, 'show_label' => false, 'dynamic' => [ 'active' => true, ], 'condition'=>[ 'stack_source'=>'single', ] ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'img', // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `image_size` and `image_custom_dimension`. 'default' => 'large', 'separator' => 'none', 'condition'=>[ 'stack_source'=>['single', 'repeater'], ] ] ); $this->add_control( 'content_link_control_cus', [ 'label' => esc_html__( 'Link', 'wta-eae' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => 'None', 'media' => 'Media File', 'custom' => 'Custom URL', ], 'default' => 'none', 'condition' => [ 'stack_source'=>'single' ] ] ); $this->add_control( 'content_custom_link_cus', [ 'label' => esc_html__( 'Link', 'wts-eae' ), 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true, ], 'placeholder' => esc_html__( 'https://your-link.com', 'wts-eae' ), 'condition' => [ 'content_link_control_cus' => 'custom', 'stack_source'=>'single', ], 'show_label' => false, ] ); $this->add_control( 'content_lightbox_control_cus', [ 'label' => esc_html__( 'Lightbox', 'wts-eae' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'condition' => [ 'content_link_control_cus' =>'media', 'stack_source'=>'single' ] ] ); $this->add_control( 'tooltip_sin', [ 'label' => esc_html__( 'Tooltip', 'wta-eae' ), 'type' => Controls_Manager::SELECT, 'separator'=>'before', 'options' => [ 'none' => 'None', 'title' => 'Title', 'caption' => 'Caption', 'custom' => 'Custom', ], 'default' => 'none', 'condition'=>[ 'stack_source'=>'single', ], ] ); $this->add_control( 'tooltip_cus', [ 'type' => Controls_Manager::TEXT, 'label_block' => true, 'label' => __( 'Tooltip', 'wta-eae' ), 'placeholder' => __( 'Type title here', 'wta-eae' ), 'dynamic' => [ 'active' => true, ], 'condition'=>[ 'stack_source'=>'single', 'tooltip_sin'=>'custom' ] ] ); $this->add_control( 'tooltip_position_sin', [ 'label' => __( 'Tooltip Position', 'wta-eae' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Left', 'wta-eae' ), 'icon' => 'eicon-h-align-left' ], 'up' => [ 'title' => __( 'Up', 'wta-eae' ), 'icon' => 'eicon-v-align-top' ], 'down' => [ 'title' => __( 'Down', 'wta-eae' ), 'icon' => 'eicon-v-align-bottom' ], 'right' => [ 'title' => __( 'Right', 'wta-eae' ), 'icon' => 'eicon-h-align-right' ], ], 'condition'=>[ 'stack_source'=>'single', 'tooltip_sin!'=>'none' ], 'default'=>'up', 'toggle' => true, ] ); $this->end_controls_section(); $this->start_controls_section( 'item-style', [ 'label' => esc_html__( 'Item', 'wts-eae' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'item_size', [ 'label' => __( 'Item Size', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 6, 'max' => 300, ], ], 'default' => [ 'unit' => 'px', 'size' => 60, ], 'selectors' => [ '{{WRAPPER}} .img-stack-item.eae-is-ct-image img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation .eae-lottie-animation' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .img-stack-item.eae-is-ct-icon i' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .img-stack-item.eae-is-ct-text .img-stack-text' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'stack_spacing', [ 'label' => __( 'Spacing (px)', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .img-stack-item:not(:first-child)' => 'margin-left: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'stack_Hover_spacing', [ 'label' => __( 'Hover Spacing (px)', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'unit' => 'px', 'size' => 15, ], 'selectors' => [ '{{WRAPPER}} .eae-image-stack:hover .img-stack-item ' => 'margin-left: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_background', 'exclude'=>[' image '], 'types' => [ 'classic', 'gradient'], 'selector' => '{{WRAPPER}} .img-stack-item.eae-is-ct-icon, {{WRAPPER}} .img-stack-item.eae-is-ct-text,{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation,{{WRAPPER}} .img-stack-item.eae-is-ct-image .eae-img-stack', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'img_stk_border', 'selector' => '{{WRAPPER}} .img-stack-item.eae-is-ct-image img,{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation,{{WRAPPER}} .img-stack-item.eae-is-ct-text,{{WRAPPER}} .img-stack-item.eae-is-ct-icon', 'name' => 'border_image', 'fields_options' => [ 'border' => [ 'default' => 'solid', ], 'width' => [ 'default' => [ 'top' => 2, 'right' => 2, 'bottom' => 2, 'left' => 2, ], ], 'color' => [ 'default' => '#FFFFFF', ], ], ] ); $this->add_responsive_control( 'item_border_radius', [ 'label' => __( 'Border Radius', 'wts-eae' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .img-stack-item.eae-is-ct-image img,{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation,{{WRAPPER}} .img-stack-item.eae-is-ct-text,{{WRAPPER}} .img-stack-item.eae-is-ct-icon, {{WRAPPER}} .img-stack-item.eae-is-ct-icon i' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'item_padding', [ 'label' => esc_html__( 'Padding', 'wts-eae' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation .eae-lottie-animation' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} .img-stack-item.eae-is-ct-image img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'box_shadow', 'selector' => '{{WRAPPER}} .img-stack-item.eae-is-ct-image img,{{WRAPPER}} .img-stack-item.eae-is-ct-icon,{{WRAPPER}} .img-stack-item.eae-is-ct-lottie-animation,{{WRAPPER}} .img-stack-item.eae-is-ct-text', ] ); $this->add_control( 'text_heading', [ 'label' => __( 'Text', 'wts-eae' ), 'type' => Controls_Manager::HEADING, 'condition'=>[ 'stack_source'=>'repeater', ] ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'text_typo', 'selector' => '{{WRAPPER}} .img-stack-item.eae-is-ct-text .img-stack-text', 'condition'=>[ 'stack_source'=>'repeater', ] ] ); $this->end_controls_section(); $this->start_controls_section( 'tooltip-style', [ 'label' => esc_html__( 'Tooltip', 'wts-eae' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'tool_width', [ 'label' => esc_html__( 'Width', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', '%', 'em', 'rem' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, ], ], 'selectors' => [ '{{WRAPPER}} .img-stack-item::after' => 'min-width: {{SIZE}}{{UNIT}};', ] ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'tool_typo', 'selector' => '{{WRAPPER}} .img-stack-item::after', ] ); $this->add_control( 'tool_align', [ 'label' => esc_html__( 'Text Alignment', 'wts-eae' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'toggle' => false, 'label_block' => false, 'options' => [ 'left' => [ 'title' => __( 'Left', 'wts-eae' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => __( 'Center', 'wts-eae' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => __( 'Right', 'wts-eae' ), 'icon' => 'eicon-text-align-right', ], ], 'selectors' => [ '{{WRAPPER}} .img-stack-item::after' => 'text-align:{{VALUE}};', ], ] ); $this->add_control( 'tool_color', [ 'label' => esc_html__( 'Color', 'wts-eae' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .img-stack-item::after' => 'color: {{VALUE}}; border-color: {{VALUE}};', ], ] ); $this->add_control( 'tool_arrow_color', [ 'label' => esc_html__( 'Arrow Color', 'wts-eae' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ // '{{WRAPPER}} .img-stack-item::before' => 'color: {{VALUE}}; border-color: {{VALUE}};', '{{WRAPPER}} .img-stack-item[tooltip][dir^=up]:hover::before' => 'border-top-color: {{VALUE}}', '{{WRAPPER}} .img-stack-item[tooltip][dir^=down]:hover::before' => 'border-bottom-color: {{VALUE}}', '{{WRAPPER}} .img-stack-item[tooltip][dir^=left]:hover::before' => 'border-left-color: {{VALUE}}', '{{WRAPPER}} .img-stack-item[tooltip][dir^=right]:hover::before' => 'border-right-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'tool_background', 'types' => [ 'classic', 'gradient'], 'exclude'=>[' image '], 'selector' => '{{WRAPPER}} .img-stack-item::after', ] ); $this->add_responsive_control( 'tool_padding', [ 'label' => esc_html__('Padding','wts-eae'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem'], 'selectors' => [ '{{WRAPPER}} .img-stack-item::after' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ] ] ); $this->add_responsive_control( 'tool_border_radius', [ 'label' => esc_html__( 'Border Radius', 'wts-eae' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'default' => [ 'top' => '3', 'right' => '3', 'bottom' => '3', 'left' => '3', 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} .img-stack-item::after' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); apply_filters('eae_image_stack_add_pro_controls', $this); } public function render(){ $settings = $this->get_settings_for_display(); //echo '
'; print_r($settings); echo ''; $data= $this->prepareData($settings); if(empty($data)){ return; } ?>
"; print_r($settings); echo ""; $toolText = $this->get_caption( $settings, $item); if(!empty($toolText)){ $this->add_render_attribute('stackClasses-'.$key,'tooltip', $toolText); $this->set_render_attribute('stackClasses-'.$key,'dir', $settings['tooltip_position_sin']); } } } if(empty($item['imgId']) ){ break; } $attr = [ 'class' => 'eae-img-stack' ]; if( isset($item['link_control']) && $item['link_control'] != ''){ $link = $this->get_link( $item); if ( $link ) { $this->add_link_attributes( 'link_'.$key, $link ); $this->add_render_attribute( 'link_'.$key,[ 'class' => 'elementor-clickable'.$key, ]); if ( $item['link_control'] != 'custom' ) { $this->add_lightbox_data_attributes( "link_".$key, $item['imgId'] ); } } } ?> get_render_attribute_string( 'stackClasses-'.$key ); ?> > print_render_attribute_string( "link_".$key ); ?>>
'; print_r($data); echo ''; return $data; } }