GhostManSec
Server: LiteSpeed
System: Linux premium197.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: parhudrw (1725)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //home/parhudrw/www/wp-content/plugins/around-elementor/modules/carousel/skins/event-carousel.php
<?php
namespace AroundElementor\Modules\Carousel\Skins;

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly.
}

use Elementor;
use Elementor\Skin_Base;
use Elementor\Control_Media;
use Elementor\Utils;
use Elementor\Group_Control_Image_Size;
use Elementor\Controls_Manager;
use AroundElementor\Core\Utils as AR_Utils;
use Elementor\Icons_Manager;
use Elementor\Widget_Base;


class Event_carousel extends Skin_Base {

	public function get_id() {
        return 'event-carousel';
    }

    public function get_title() {
        return esc_html__( 'Event Carousel', 'around-elementor' );
    }

	public function on_import( $element ) {
        if ( ! get_post_type_object( $element['settings']['posts_post_type'] ) ) {
            $element['settings']['posts_post_type'] = 'tribe_events';
        }

        return $element;
    }

    protected function render_image() {
    	$settings = $this->parent->get_settings();
        if ( 'none' === $settings['show_image'] ) {
            return;
        }

        $img_class = 'img-fluid';

        the_post_thumbnail( 'full', [ 'class' => $img_class ] ); 
    }

    protected function render_category() {
    	$settings = $this->parent->get_settings();
        if ( 'yes' === $settings['show_category'] ) : 
            $categories = get_the_terms( get_the_ID(), 'tribe_events_cat' );
            if ( ! empty( $categories ) ) : ?>
                    <?php
                        echo implode( ', ', array_map( function ( $category ) {
                        return sprintf( '<a href="%s" class="meta-link font-size-sm mb-2">%s</a>',
                            esc_url( get_category_link( $category ) ),
                            esc_html( $category->name )
                        );
                    }, $categories ) ); ?>
                <?php endif; unset( $categories ); 
        endif; 
    }

    protected function render_date() { 
        ?><!-- Date -->
        <div class="text-sm-center mt-0 mt-sm-n3 text-nowrap">
	        <span class="d-sm-block text-primary mr-2 mr-sm-0 mb-n3" style="font-size: 3.75rem">
	            <time datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>"><?php echo get_the_date( 'd'); ?></time>
	        </span>
	        <span class="font-size-xl text-muted text-uppercase">
	        	<time datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>"><?php echo get_the_date( 'M'); ?></time>
	        </span>
	    </div><?php
    }

    protected function render_avatar() {
        echo get_avatar( get_the_author_meta( 'ID' ), 42, '', '', [ 'class' => 'avatar-img rounded-circle' ] ); 
    }

    protected function render_author() {
        ?><!-- Author -->
        <div class="media-body pl-2 ml-1 mt-n1">
        	<?php echo esc_html('by ', 'around-elementor'); ?>
        	<span class="font-weight-semibold ml-1"><?php the_author(); ?></span>
        </div><?php
        
    }

    protected function render_card_body() {
 		$settings = $this->parent->get_settings();
        $card_body  = 'card-body py-5 px-4';
        $heading    = 'h4 nav-heading mb-4 ar-post__title';
        $category   = 'card-body__category post__category';
        $title_tag  = $settings['title_tag'];

    
        ?><!-- Body -->

        <div class="<?php echo esc_attr( $card_body ); ?>">
            <div class="d-sm-flex py-sm-4 px-lg-3">
                <?php $this->render_date(); ?>
            	<div class="post__category pl-sm-4 pl-lg-5">
            		<?php $this->render_category(); ?>
            		<?php if ( 'yes' === $settings['show_title'] ) : ?>
            			<!-- Heading -->
			            <<?php echo $title_tag; ?> class="<?php echo esc_attr( $heading ); ?>">
			                <a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a>
			            </<?php echo $title_tag; ?>>
		            <?php endif; ?>
		            <?php if ( 'yes' === $settings['show_author'] ) : ?>
			            <a class="media meta-link font-size-sm align-items-center pt-2" href="<?php echo esc_url( get_permalink() ); ?>">
			                <?php $this->render_avatar(); ?>
			                <?php $this->render_author(); ?>
			            </a>
            		<?php endif; ?>
            	</div>
            </div>
        </div>
        <?php
    }

    public function render_featured_left() { ?>
        <span class="badge badge-lg badge-floating badge-floating-left badge-success">
            <?php echo esc_html( 'New', 'around-elementor' );?>
        </span><?php
    }

    public function render_featured_right() { ?>
        <span class="badge badge-lg badge-floating badge-floating-right badge-success">
            <?php echo esc_html( 'New', 'around-elementor' );?>
        </span><?php    
    }

    public function render_is_featured_sticky($featured) { 
    	$settings = $this->parent->get_settings();
        $featured = $settings['featured'];

        if( 'left' === $featured ){
            $this->render_featured_left();
        } else {
            $this->render_featured_right();
        }
    }

    protected function render_content_html() {
        $settings = $this->parent->get_settings();
        $featured = $settings['featured'];

        ?><div class="card h-100 border-0 box-shadow mx-1">

            <?php if( is_sticky() && ( 'yes' === $settings['show_sticky_badge'] ) ){
                $this->render_is_featured_sticky( $featured );
            }
            
          	$this->render_card_body(); ?>

        </div><?php
    }

    protected function render_loop_header() {
        ?>
        <div class="cs-carousel around-events-carousel">
            <div <?php echo $this->parent->get_render_attribute_string( 'events-slider' ); ?>>
            
        <?php
    }

    protected function render_loop_footer() {
        ?>
        </div></div>
                
        <?php
    }

    protected function render_post() { ?>
        <div class="pb-2"><?php
            $this->render_content_html(); ?>
        </div><?php
        
    }

    
    public function render() {
    	$settings = $this->parent->get_settings_for_display();
        $this->parent->query_posts( $settings );

        /** @var \WP_Query $query */
        $query = $this->parent->get_query();


        if ( ! $query->found_posts ) {
            return;
        }

        $uniqId = 'events-slider-' . $this->get_id();

        $default_settings = [];

        $settings  = array_merge( $default_settings, $settings );

        
        $column_lg = ! empty( $settings['slides_per_view'] )        ? intval( $settings['slides_per_view'] )        : 2;
        $gutter_lg = ! empty( $settings['gutter']['size'] )        ? intval( $settings['gutter']['size'] )        : 23;


        $content_carousel_settings = [
            'nav'               => isset( $settings['nav'] ) && $settings['nav'] === 'yes' ? true : false,
            'autoHeight'        => true,
            'controls'          => isset( $settings['controls'] ) && $settings['controls'] === 'yes' ? true : false,
            'items'             => $this->parent->get_settings( 'posts_per_page' ),
            'responsive'        => array (
                '0'       => array( 'items'   => 1 ),
                '800'     => array( 'items'   => $column_lg, 'gutter' => $gutter_lg ),
            )
        ];

        if( isset( $settings['autoplay'] ) && $settings['autoplay'] === 'yes' ) {
            $content_carousel_settings['autoplay'] = $settings['autoplayTimeout'] ? $settings['autoplayTimeout'] : 1500;
            $content_carousel_settings['pauseAutoPlayOnHover'] = isset( $settings['pause_on_hover'] ) && $settings['pause_on_hover'] === 'yes' ? true : false;
        }

        
        $this->parent->add_render_attribute(
            'events-slider', [
                'class'                 => 'cs-carousel-inner',
                'data-carousel-options' => htmlspecialchars( json_encode( $content_carousel_settings ), ENT_QUOTES, 'UTF-8' ),
                'data-aos-id' => 'carousel:in',
                'data-aos'    => true,
            ]
        ); 

        $this->render_loop_header();
            while ( $query->have_posts() ) {
                $query->the_post();

                $this->render_post();
            } 

       $this->render_loop_footer();
        wp_reset_postdata();
        
    }
}