HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/intranet.kauko.lt/wp-content/plugins/dpProEventCalendar/classes/card-layout.class.php
<?php

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


// Card Layout

class DPPEC_CardLayout extends DpProEventCalendar {
	

	function __construct( ) 
	{
		
    }

    private function cardList($start_search = null, $end_search = null, $limit = 20) 
    {

		global $dpProEventCalendar;
		
		$html = "";
		$daily_events = array();
		$event_counter = 1;
		
		$pagination = self::get_pagination_number();

		$past = false;
		if(self::$opts['scope'] == 'past') {
			$past = true;
		}

		$event_list = self::upcomingCalendarLayout( true, $limit, '', $start_search, $end_search, true, false, false, false, $past );

		if(is_array($event_list) && count($event_list) > 0) {

			$html .= '<div class="dp_pec_content">';

			foreach($event_list as $event) {
				if($event_counter >= 5) {
					break;
				}
				if($event->id == "") 
					$event->id = $event->ID;
				
				$event = (object)array_merge((array)self::getEventData($event->id), (array)$event);

				$event_timezone = dpProEventCalendar_getEventTimezone($event->id);

				if($event_counter > $limit) { break; }
				
				if($event->recurring_frecuency == 1){
					
					if(in_array($event->id, $daily_events)) {
						continue;	
					}
					
					$daily_events[] = $event->id;
				}
				
				$all_working_days = '';
				if($event->pec_daily_working_days && $event->recurring_frecuency == 1) {
					$all_working_days = self::$translation['TXT_ALL_WORKING_DAYS'];
					$event->date = $event->orig_date;
				}
					
				$time = self::date_i18n(self::$time_format, strtotime($event->date));

				$end_datetime = self::get_end_datetime( $event );
				$end_date = $end_datetime['end_date'];
				$end_time = $end_datetime['end_time'];

				if(isset($event->all_day) && $event->all_day) {
					$time = self::$translation['TXT_ALL_DAY'];
					$end_time = "";
				}

				$title = $event->title;
				
				$post_thumbnail_id = get_post_thumbnail_id( $event->id );
				$image_attributes = wp_get_attachment_image_src( $post_thumbnail_id, 'large' );
				$event_bg = "";
				$no_bg = false;
				
				if($post_thumbnail_id) {
					$event_bg = $image_attributes[0];
				} else {
					$no_bg = true;	
				}

				$href = self::get_permalink ( $event );

				$pec_time = ($all_working_days != '' ? $all_working_days.' ' : '').(((self::$calendar_obj->show_time && !$event->hide_time) || $event->all_day) ?  $time.$end_time.(self::$calendar_obj->show_timezone && !$event->all_day ? ' '.$event_timezone : '') : '');


				$event_location = "";
				if($event->location != '') {
					$event_location = $event->location;
				}

				if($event->tbc) {
					$pec_time = self::$translation['TXT_TO_BE_CONFIRMED'];
				}

				if($event_counter == 1) {
					$html .= '
					<div class="dp_pec_card_selected" style="background-image:url(\''.$event_bg.'\');">
						<h3>'.$title.'</h3>

						<ul>
							<li class="dp_pec_card_location" '.($event_location == "" ? "style=\"display:none;\"" : "").'>
								<i class="fa fa-map"></i><span>'.$event_location.'</span>
							</li>
							<li class="dp_pec_card_time">
								<i class="fa fa-clock"></i><span>'.$pec_time.'</span>
							</li>
						</ul>
						<div class="dp_pec_card_selected_foot" '.($href == "" ? "style=\"display:none;\"" : "").'>
							<a href="'.$href.'"><i class="fa fa-arrow-right"></i></a>
							<div class="dp_pec_clear"></div>
						</div>
					</div>

					<ul class="dp_pec_card_list">';
				}
					
				$html .= '<li class="dp_pec_card_event '.($event_counter == 1 ? 'dp_pec_card_active' : "").' dp_pec_isotope dp_pec_card_columns_'.self::$columns.' '.($no_bg ? 'dp_pec_card_no_img' : '').'" data-event-title="'.$title.'" data-event-location="'.$event_location.'" data-event-time="'.$pec_time.'" data-event-link="'.$href.'" data-event-background="'.$event_bg.'" data-event-number="'.$event_counter.'" style="background-image:url(\''.$event_bg.'\');">';

					if($event->tbc) {
						$html .= '<span class="pec_date pec_to_confirm">'.self::$translation['TXT_TO_BE_CONFIRMED'].'</span>';
					} else {
						$html .= '<div class="pec_date_number"><span>'.self::date_i18n('d', strtotime($event->date)).'</span></div>';
						$html .= '<span class="pec_date">'.self::date_i18n('F', strtotime($event->date)).'</span>';
					}

			$html .= '</li>';
				
				$event_counter++;
			}

			$html .= '</ul>';

			$html .= '</div>';

		} else {
			$html .= $this->no_events();	
		}

		
		return $html;
	
	}

	private function no_events ()
	{

		$html = '<div class="dp_pec_card_no_events"><p class="dp_pec_event_no_events">'.self::$translation['TXT_NO_EVENTS_FOUND'].'</p></div>';

		return $html;

	}

    public function display_layout()
    {


    	$html = '<div class="dp_pec_card_wrapper '.(isset(self::$opts['orientation']) && self::$opts['orientation'] == 'vertical' ? 'dp_pec_card_vertical' : '').'" id="dp_pec_id'.self::$nonce.'">';
				
		$html .= 	$this->cardList(self::$opts['start_date'], self::$opts['end_date'], self::$limit);
			
		$html .= '</div>';


		return $html;


    }
	
}
?>