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/rss.class.php
<?php

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


// RSS Feed

class DPPEC_RSS extends DpProEventCalendar_Init {
	
	function __construct( ) 
	{

		global $dpProEventCalendar, $pec_init;

		if( isset( $_GET['pec-rss'] ) && is_numeric( $_GET['pec-rss'] ) ) 
			$calendar_id = $_GET['pec-rss'];
		else
			die();

		$all_events = '';
		if( isset( $_GET['all'] ) && $_GET['all'] == 1 ) 
			$all_events = 1;

		// Parse Vars
		$opts = array();
		$opts['id_calendar'] = $calendar_id;
		$opts['include_all_events'] = $all_events;
		$dpProEventCalendar_class = $pec_init->init_base( $opts );

		$calendar_obj = $dpProEventCalendar_class->get_calendar();

		// Is RSS Active?
		if( ! $dpProEventCalendar_class::rss_enabled() ) 
			die();

		// Limit RSS
		$limit = $calendar_obj->rss_limit;
		if( !is_numeric($limit) || $limit <= 0 ) 
			$limit = 99;	

		// Get Events
		$cal_events = $dpProEventCalendar_class::upcomingCalendarLayout( true, $limit, '', null, null, true, false, true, false, false, '', false );
		$blog_desc = ent2ncr(convert_chars(strip_tags(get_bloginfo()))) . " - " . __('Calendar','dpProEventCalendar');

		// Timezone
		$tz = get_option('timezone_string'); // get current PHP timezone
		$gmt_offset = get_option('gmt_offset');
		$minutes_offset = "0";
		if($gmt_offset != "") {
			$minutes_offset = floor($gmt_offset * 60);
			if($minutes_offset < 0) 
				$minutes_offset = "+".str_replace("-", "", $minutes_offset);
			else 
				$minutes_offset = "-".$minutes_offset;
			
		}

		if( $tz == "" ) 
			$tz = date_default_timezone_get();	
		else 
			date_default_timezone_set( $tz ); // set the PHP timezone to match WordPress

		// Feed
		$rssfeed = '<?xml version="1.0" encoding="UTF-8"?>
		<rss version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom">
		<channel>
		<title>'.$blog_desc.'</title>
		<link>'.home_url().'</link>
		<atom:link type="application/rss+xml" href="https://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"].'" rel="self"/>
		<description>'.$blog_desc.'</description>
		<language>en-us</language>
		<ttl>40</ttl>';

		// Parse Events
		if(is_array($cal_events)) 
		{

			foreach ( $cal_events as $event ) 
			{
			
				if($event->id == "") 
					$event->id = $event->ID;
				
				$event = (object)array_merge((array)$dpProEventCalendar_class::getEventData($event->id), (array)$event);
				
				
										
				if ( get_option('permalink_structure') ) 
					$link = rtrim(get_permalink($event->id), '/').'/'.strtotime($event->date);
				else 
					$link = get_permalink($event->id).(strpos(get_permalink($event->id), "?") === false ? "?" : "&").'event_date='.strtotime($event->date);
				

				if(get_post_meta($event->id, 'pec_use_link', true) && get_post_meta($event->id, 'pec_link', true) != "") 
					$link = get_post_meta($event->id, 'pec_link', true);
				

				$post_thumbnail_id = get_post_thumbnail_id( $event->id );

				if(is_numeric($post_thumbnail_id)) 
				{
				
					$image_attributes = wp_get_attachment_image_src( $post_thumbnail_id, 'large' );
						
					$event->description = '<img src="'.$image_attributes[0].'" alt="" />'.$event->description;
				
				}

				$rssfeed .= '
				<item>
				<title><![CDATA[' . $event->title . ']]></title>
				<description><![CDATA[' . $event->description . ']]></description>
				<link>'.$link .'</link>
				<guid>'.$link .'</guid>
				<pubDate>' . date("D, d M Y H:i:s O", strtotime($event->date)) . '</pubDate>
				</item>';

			}

		}

		$rssfeed .= '
		</channel>
		</rss>';

		// Headers
		header("Content-Type: application/rss+xml; charset=UTF-8");
		header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: no-store, no-cache, must-revalidate");
		header("Cache-Control: post-check=0, pre-check=0", false);
		header("Pragma: no-cache");

		echo $rssfeed;
		die();

    }

    
	
}
?>