Current Path : /var/www/mainsite/wp-content/themes/maxcoach/elementor/widgets/carousel/ |
Current File : /var/www/mainsite/wp-content/themes/maxcoach/elementor/widgets/carousel/event-carousel.php |
<?php namespace Maxcoach_Elementor; use Elementor\Controls_Manager; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Group_Control_Image_Size; defined( 'ABSPATH' ) || exit; class Widget_Event_Carousel extends Posts_Carousel_Base { public function get_name() { return 'tm-event-carousel'; } public function get_title() { return esc_html__( 'Event Carousel', 'maxcoach' ); } public function get_icon_part() { return 'eicon-posts-carousel'; } public function get_keywords() { return [ 'event', 'carousel' ]; } protected function get_post_type() { return 'tp_event'; } protected function register_controls() { $this->add_layout_section(); $this->add_box_style_section(); $this->add_caption_style_section(); parent::register_controls(); } protected function before_slider() { $this->add_render_attribute( self::SLIDER_KEY, 'class', 'maxcoach-event-carousel' ); } private function add_layout_section() { $this->start_controls_section( 'layout_section', [ 'label' => esc_html__( 'Layout', 'maxcoach' ), ] ); $this->add_control( 'hover_effect', [ 'label' => esc_html__( 'Hover Effect', 'maxcoach' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'None', 'maxcoach' ), 'zoom-in' => esc_html__( 'Zoom In', 'maxcoach' ), 'zoom-out' => esc_html__( 'Zoom Out', 'maxcoach' ), ], 'default' => '', 'prefix_class' => 'maxcoach-animation-', ] ); $this->add_control( 'thumbnail_default_size', [ 'label' => esc_html__( 'Use Default Thumbnail Size', 'maxcoach' ), 'type' => Controls_Manager::SWITCHER, 'default' => '1', 'return_value' => '1', 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'thumbnail', 'default' => 'full', 'condition' => [ 'thumbnail_default_size!' => '1', ], ] ); $this->end_controls_section(); } private function add_box_style_section() { $this->start_controls_section( 'box_style_section', [ 'label' => esc_html__( 'Box', 'maxcoach' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'box_border_radius', [ 'label' => esc_html__( 'Border Radius', 'maxcoach' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 200, ], ], 'selectors' => [ '{{WRAPPER}} .maxcoach-box' => 'border-radius: {{SIZE}}{{UNIT}}', ], ] ); $this->start_controls_tabs( 'box_skin_tabs' ); $this->start_controls_tab( 'box_skin_normal_tab', [ 'label' => esc_html__( 'Normal', 'maxcoach' ), ] ); $this->add_control( 'box_background_color', [ 'label' => esc_html__( 'Background', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .maxcoach-box' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'box_box_shadow', 'selector' => '{{WRAPPER}} .maxcoach-box', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'box_skin_hover_tab', [ 'label' => esc_html__( 'Hover', 'maxcoach' ), ] ); $this->add_control( 'box_background_color_hover', [ 'label' => esc_html__( 'Background', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .maxcoach-box:hover' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'box_box_shadow_hover', 'selector' => '{{WRAPPER}} .maxcoach-box:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } private function add_caption_style_section() { $this->start_controls_section( 'caption_style_section', [ 'label' => esc_html__( 'Caption', 'maxcoach' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'title_style_heading', [ 'label' => esc_html__( 'Title', 'maxcoach' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'title_margin', [ 'label' => esc_html__( 'Margin', 'maxcoach' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .event-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'title_typography', 'label' => esc_html__( 'Typography', 'maxcoach' ), 'selector' => '{{WRAPPER}} .event-title', ] ); $this->add_control( 'title_color', [ 'label' => esc_html__( 'Color', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .event-title' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'title_hover_color', [ 'label' => esc_html__( 'Hover Color', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .event-title:hover' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'date_style_heading', [ 'label' => esc_html__( 'Date Time', 'maxcoach' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'date_margin', [ 'label' => esc_html__( 'Margin', 'maxcoach' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .event-date-time' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'date_typography', 'label' => esc_html__( 'Typography', 'maxcoach' ), 'selector' => '{{WRAPPER}} .event-date', ] ); $this->add_control( 'date_color', [ 'label' => esc_html__( 'Color', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .event-date-time' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'location_style_heading', [ 'label' => esc_html__( 'Location', 'maxcoach' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'location_margin', [ 'label' => esc_html__( 'Margin', 'maxcoach' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .event-location' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'location_typography', 'label' => esc_html__( 'Typography', 'maxcoach' ), 'selector' => '{{WRAPPER}} .event-location', ] ); $this->add_control( 'location_color', [ 'label' => esc_html__( 'Color', 'maxcoach' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .event-location' => 'color: {{VALUE}};', ], ] ); $this->end_controls_section(); } protected function print_slide( array $settings ) { ?> <div class="swiper-slide"> <a href="<?php the_permalink(); ?>" class="maxcoach-box post-wrapper link-secret"> <div class="event-image maxcoach-image"> <?php if ( has_post_thumbnail() ) { ?> <?php $size = \Maxcoach_Image::elementor_parse_image_size( $settings, '480x298' ); ?> <?php \Maxcoach_Image::the_post_thumbnail( array( 'size' => $size ) ); ?> <?php } else { ?> <?php \Maxcoach_Templates::image_placeholder( 480, 298 ); ?> <?php } ?> <div class="event-overlay-background"></div> <div class="event-overlay-content"> <div class="inner"> <?php \Maxcoach_Templates::render_button( [ 'text' => esc_html__( 'Get ticket', 'maxcoach' ), 'size' => 'xs', 'extra_class' => 'event-get-ticket', ] ); ?> </div> </div> </div> <div class="event-caption"> <div class="event-date primary-color"> <?php $time_from = get_post_meta( get_the_ID(), 'tp_event_date_start', true ) ? strtotime( get_post_meta( get_the_ID(), 'tp_event_date_start', true ) ) : time(); ?> <?php echo wp_date( get_option( 'date_format' ), $time_from ); ?> </div> <h3 class="event-title"><?php the_title(); ?></h3> <?php $location = get_post_meta( get_the_ID(), \Maxcoach_Event::POST_META_SHORT_LOCATION, true ); ?> <?php if ( $location ): ?> <div class="event-location"> <span class="far fa-map-marker-alt"></span> <?php echo esc_html( $location ); ?> </div> <?php endif; ?> </div> </a> </div> <?php } }