Function Reference: geodir_imex_get_event_data

Summary

Retrieves the event data to export.

Package

GeoDirectory

Parameters

$post
(array) (required) Post array.

Default: None
$gd_post_info
(object) (required) Geodirectory Post object.

Default: None

Return Values

(array)
  • Event data array.

Change Log

Since: 1.5.1

Source File

geodir_imex_get_event_data() is located in geodirectory-admin/admin_functions.php [Line: 5798]

Source Code

function geodir_imex_get_event_data($post, $gd_post_info) {
	$event_date = isset( $post['event_date'] ) && $post['event_date'] != '' && $post['event_date'] != '0000-00-00 00:00:00' ? date_i18n( 'd/m/Y', strtotime( $post['event_date'] ) ) : '';
	$event_enddate = $event_date;
	$starttime = isset( $post['starttime'] ) && $post['starttime'] != '' && $post['starttime'] != '00:00:00' ? date_i18n( 'H:i', strtotime( $post['starttime'] ) ) : '';
	$endtime = isset( $post['endtime'] ) && $post['endtime'] != '' && $post['endtime'] != '00:00:00' ? date_i18n( 'H:i', strtotime( $post['endtime'] ) ) : '';
	
	$is_recurring_event = '';
	$event_duration_days = '';
	$is_whole_day_event = '';
	$recurring_dates = '';
	$event_starttimes = '';
	$event_endtimes = '';
	$recurring_type = '';
	$recurring_interval = '';
	$recurring_week_days = '';
	$recurring_week_nos = '';
	$max_recurring_count = '';
	$recurring_end_date = '';
		
	$recurring_data = isset($gd_post_info->recurring_dates) ? maybe_unserialize($gd_post_info->recurring_dates) : array();
	if (!empty($recurring_data)) {
		$event_date = isset( $recurring_data['event_start'] ) && $recurring_data['event_start'] != '' && $recurring_data['event_start'] != '0000-00-00 00:00:00' ? date_i18n( 'd/m/Y', strtotime( $recurring_data['event_start'] ) ) : $event_date;
		$event_enddate = isset( $recurring_data['event_end'] ) && $recurring_data['event_end'] != '' && $recurring_data['event_end'] != '0000-00-00 00:00:00' ? date_i18n( 'd/m/Y', strtotime( $recurring_data['event_end'] ) ) : $event_date;
		$starttime = isset( $recurring_data['starttime'] ) && $recurring_data['starttime'] != '' && $recurring_data['starttime'] != '00:00:00' ? date_i18n( 'H:i', strtotime( $recurring_data['starttime'] ) ) : $starttime;
		$endtime = isset( $recurring_data['endtime'] ) && $recurring_data['endtime'] != '' && $recurring_data['endtime'] != '00:00:00' ? date_i18n( 'H:i', strtotime( $recurring_data['endtime'] ) ) : $endtime;
		$is_whole_day_event = !empty($recurring_data['all_day']) ? 1 : '';
		$different_times = !empty($recurring_data['different_times']) ? true : false;
	
		$recurring_pkg = geodir_event_recurring_pkg( $gd_post_info );
		$is_recurring = isset( $gd_post_info->is_recurring ) && (int)$gd_post_info->is_recurring == 0 ? false : true;
			
		if ($recurring_pkg && $is_recurring) {
			$recurring_dates = $event_date;
			$event_enddate = '';
			$is_recurring_event = 1;
						
			$recurring_type = !empty($recurring_data['repeat_type']) && in_array($recurring_data['repeat_type'], array('day', 'week', 'month', 'year', 'custom')) ? $recurring_data['repeat_type'] : 'custom';
			
			if (!empty($recurring_data['event_recurring_dates'])) {
				$event_recurring_dates = explode( ',', $recurring_data['event_recurring_dates'] );
				
				if (!empty($event_recurring_dates)) {
					$recurring_dates = array();
					
					foreach ($event_recurring_dates as $date) {
						$recurring_dates[] = date_i18n( 'd/m/Y', strtotime( $date ) );
					}
					
					$recurring_dates = implode(",", $recurring_dates);
				}
			}
			
			if ($recurring_type == 'custom') {
				if (!$is_whole_day_event) {
					$event_starttimes = $starttime;
					$event_endtimes = $endtime;
			
					if (!empty($recurring_data['starttimes'])) {
						$times = array();
						
						foreach ($recurring_data['starttimes'] as $time) {
							$times[] = $time != '00:00:00' ? date_i18n( 'H:i', strtotime( $time ) ) : '00:00';
						}
						
						$event_starttimes = implode(",", $times);
					}
					
					if (!empty($recurring_data['endtimes'])) {
						$times = array();
						
						foreach ($recurring_data['endtimes'] as $time) {
							$times[] = $time != '00:00:00' ? date_i18n( 'H:i', strtotime( $time ) ) : '00:00';
						}
						
						$event_endtimes = implode(",", $times);
					}
					
					if (!$different_times) {
						$event_starttimes = '';
						$event_endtimes = '';
					}
				}
			} else {
				$event_duration_days = isset($recurring_data['duration_x']) ? (int)$recurring_data['duration_x'] : 1;
				$recurring_interval = !empty($recurring_data['repeat_x']) && (int)$recurring_data['repeat_x'] > 0 ? $recurring_data['repeat_x'] : 1;
				
				if (($recurring_type == 'week' || $recurring_type == 'month') && !empty($recurring_data['repeat_days'])) {
					$week_days = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
					
					$days = array();
					foreach ($recurring_data['repeat_days'] as $day) {
						if (isset($week_days[$day])) {
							$days[] = $week_days[$day];
						}
					}
					
					$recurring_week_days = implode(",", array_unique($days));
				}
				
				$recurring_week_nos = $recurring_type == 'month' && !empty($recurring_data['repeat_weeks']) ? implode(",", $recurring_data['repeat_weeks']) : $recurring_week_nos;
				if (!empty($recurring_data['repeat_end_type']) && (int)$recurring_data['repeat_end_type'] == 1) {
					$recurring_end_date = isset($recurring_data['repeat_end']) && $recurring_data['repeat_end'] != '' && $recurring_data['repeat_end'] != '0000-00-00 00:00:00' ? date_i18n( 'd/m/Y', strtotime( $recurring_data['repeat_end'] ) ) : '';
					$max_recurring_count = empty($recurring_end_date) ? 1 : '';
				} else {
					$max_recurring_count = (!empty($recurring_data['max_repeat']) && (int)$recurring_data['max_repeat'] > 0 ? (int)$recurring_data['max_repeat'] : 1);
				}
			}
		}
	}
	if ($is_whole_day_event) {
		$starttime = '';
		$endtime = '';
		$event_starttimes = '';
		$event_endtimes = '';
	}
	
	$data = array();
	$data['event_date'] = $event_date;
	$data['event_enddate'] = $event_enddate;
	$data['starttime'] = $starttime;
	$data['endtime'] = $endtime;
	$data['is_recurring_event'] = $is_recurring_event;
	$data['recurring_dates'] = $recurring_dates;
	$data['event_duration_days'] = $event_duration_days;
	$data['is_whole_day_event'] = $is_whole_day_event;
	$data['event_starttimes'] = $event_starttimes;
	$data['event_endtimes'] = $event_endtimes;
	$data['recurring_type'] = $recurring_type;
	$data['recurring_interval'] = $recurring_interval;
	$data['recurring_week_days'] = $recurring_week_days;
	$data['recurring_week_nos'] = $recurring_week_nos;
	$data['max_recurring_count'] = $max_recurring_count;
	$data['recurring_end_date'] = $recurring_end_date;
	
	return $data;
}