Function Reference: geodir_event_show_shedule_date

Summary

This function has not been documented yet.

Filters

‘geodir_event_recurring_event_link’ [Line: 790]

Source File

geodir_event_show_shedule_date() is located in geodir_event_manager/gdevents_template_functions.php [Line: 654]

Source Code

function geodir_event_show_shedule_date() {
	global $post, $geodir_date_time_format, $geodir_date_format;
	
	if ( geodir_is_page( 'preview' ) ) {
		$recuring_data = (array)$post; 
	} else {
		$recuring_data = maybe_unserialize( $post->recurring_dates );
	}

	if ( !empty( $recuring_data ) && ( isset( $recuring_data['event_recurring_dates'] ) && $recuring_data['event_recurring_dates'] != '' ) || ( isset( $post->is_recurring ) && !empty( $post->is_recurring ) ) ) {		
		$geodir_num_dates = 0;
		
		// Check recurring enabled
		$recurring_pkg = geodir_event_recurring_pkg( $post );
		
		$hide_past_dates = get_option( 'geodir_event_hide_past_dates' );
		
		if ( $post->is_recurring && $recurring_pkg ) {	
			if ( !isset( $recuring_data['repeat_type'] ) ) {
				$recuring_data['repeat_type'] = 'custom';
			}
			
			$repeat_type = isset( $recuring_data['repeat_type'] ) && in_array( $recuring_data['repeat_type'], array( 'day', 'week', 'month', 'year', 'custom' ) ) ? $recuring_data['repeat_type'] : 'year'; // day, week, month, year, custom
			
			$different_times = isset( $recuring_data['different_times'] ) && !empty( $recuring_data['different_times'] ) ? true : false;
			
			if ( geodir_is_page( 'preview' ) ) {
				$start_date = geodir_event_is_date( $recuring_data['event_start'] ) ? $recuring_data['event_start'] : date_i18n( 'Y-m-d', current_time( 'timestamp' ) );
				$end_date = isset( $recuring_data['event_end'] ) ? trim( $recuring_data['event_end'] ) : '';
				$all_day = isset( $recuring_data['all_day'] ) && !empty( $recuring_data['all_day'] ) ? true : false;
				$starttime = isset( $recuring_data['starttime'] ) && !$all_day ? trim( $recuring_data['starttime'] ) : '';
				$endtime = isset( $recuring_data['endtime'] ) && !$all_day ? trim( $recuring_data['endtime'] ) : '';

				$starttimes = isset( $recuring_data['starttimes'] ) ? $recuring_data['starttimes'] : '';
				$endtimes = isset( $recuring_data['endtimes'] ) ? $recuring_data['endtimes'] : '';
			
				$repeat_x = isset( $recuring_data['repeat_x'] ) ? trim( $recuring_data['repeat_x'] ) : '';
				$duration_x = isset( $recuring_data['duration_x'] ) ? trim( $recuring_data['duration_x'] ) : 1;
				$repeat_end_type = isset( $recuring_data['repeat_end_type'] ) ? trim( $recuring_data['repeat_end_type'] ) : 0;
			
				$max_repeat = $repeat_end_type != 1 && isset( $recuring_data['max_repeat'] ) ? (int)$recuring_data['max_repeat'] : 0;
				$repeat_end = $repeat_end_type == 1 && isset( $recuring_data['repeat_end'] ) ? $recuring_data['repeat_end'] : '';
										 
				if ( geodir_event_is_date( $end_date ) && strtotime( $end_date ) < strtotime( $start_date ) ) {
					$end_date = $start_date;
				}
				
				$repeat_x = $repeat_x > 0 ? (int)$repeat_x : 1;
				$duration_x = $duration_x > 0 ? (int)$duration_x : 1;
				$max_repeat = $max_repeat > 0 ? (int)$max_repeat : 1;
				
				if ( $repeat_end_type == 1 && !geodir_event_is_date( $repeat_end ) ) {
					$repeat_end = '';
				}
				
				if ( $repeat_type == 'custom' ) {
					$event_recurring_dates = explode( ',', $recuring_data['event_recurring_dates'] );
				} else {
					// week days
					$repeat_days = array();
					if ( $repeat_type == 'week' || $repeat_type == 'month' ) {
						$repeat_days = isset( $recuring_data['repeat_days'] ) ? $recuring_data['repeat_days'] : $repeat_days;
					}
					
					// by week
					$repeat_weeks = array();
					if ( $repeat_type == 'month' ) {
						$repeat_weeks = isset( $recuring_data['repeat_weeks'] ) ? $recuring_data['repeat_weeks'] : $repeat_weeks;
					}
			
					$event_recurring_dates = geodir_event_date_occurrences( $repeat_type, $start_date, $end_date, $repeat_x, $max_repeat, $repeat_end, $repeat_days, $repeat_weeks );
				}				
			} else {
				$event_recurring_dates = explode( ',', $recuring_data['event_recurring_dates'] );
			}

			if ( $repeat_type == 'custom' && $different_times ) {
				$astarttimes = isset( $recuring_data['starttimes'] ) ? $recuring_data['starttimes'] : array();
				$aendtimes = isset( $recuring_data['endtimes'] ) ? $recuring_data['endtimes'] : array();
			} else {
				$starttimes = isset( $recuring_data['starttime'] ) ? $recuring_data['starttime'] : '';
				$endtimes = isset( $recuring_data['endtime'] ) ? $recuring_data['endtime'] : '';
			}
			
			$output = '';
			$output .= '
'; foreach( $event_recurring_dates as $key => $date ) { $geodir_num_dates++; if ( $repeat_type == 'custom' && $different_times ) { if ( !empty( $astarttimes ) && isset( $astarttimes[$key] ) ) { $starttimes = $astarttimes[$key]; $endtimes = $aendtimes[$key]; } else { $starttimes = ''; $endtimes = ''; } } $duration = isset( $recuring_data['duration_x'] ) && (int)$recuring_data['duration_x'] > 0 ? (int)$recuring_data['duration_x'] : 1; $duration--; $enddate = date_i18n( 'Y-m-d', strtotime( $date . ' + ' . $duration . ' day' ) ); // Hide past dates if ( $hide_past_dates && strtotime( $enddate ) < strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) ) ) { $geodir_num_dates--; continue; } $sdate = strtotime( $date . ' ' . $starttimes ); $edate = strtotime( $enddate . ' ' . $endtimes ); $start_date = date_i18n( $geodir_date_time_format, $sdate ); $end_date = date_i18n( $geodir_date_time_format, $edate ); $full_day = false; $same_datetime = false; if ( $starttimes == $endtimes && ( $starttimes == '' || $starttimes == '00:00:00' || $starttimes == '00:00' ) ) { $full_day = true; } if ( $start_date == $end_date && $full_day ) { $same_datetime = true; } $link_date = date_i18n( 'Y-m-d', $sdate ); $title_date = date_i18n( $geodir_date_format, $sdate ); if ( $full_day ) { $start_date = $title_date; $end_date = date_i18n( $geodir_date_format, $edate ); } // recuring event title $recurring_event_title = $post->post_title . ' - ' . $title_date; $recurring_event_title = apply_filters( 'geodir_event_recurring_event_link', $recurring_event_title, $post->ID ); // recuring event link $recurring_event_link = geodir_getlink( get_permalink( $post->ID ), array( 'gde' => $link_date ) ); $recurring_event_link = esc_url( apply_filters( 'geodir_event_recurring_event_link', $recurring_event_link, $post->ID ) ); $recurring_class = 'gde-recurr-link'; $recurring_class_cont = 'gde-recurring-cont'; if ( isset( $_REQUEST['gde'] ) && $_REQUEST['gde'] == $link_date ) { $recurring_event_link = 'javascript:void(0);'; $recurring_class .= ' gde-recurr-act'; $recurring_class_cont .= ' gde-recurr-cont-act'; } $output .= '

'; $output .= ''; $output .= '' . $start_date; if ( !$same_datetime ) { $output .= '
'; $output .= '' . $end_date; } $output .= '
'; $output .= '

'; } $output .= '
'; if ( !$geodir_num_dates > 0 ) { return; } $geodir_date_count = $geodir_num_dates > 1 ? __( 'Recurring Dates', GEODIREVENTS_TEXTDOMAIN ) : __( 'Date',GEODIREVENTS_TEXTDOMAIN ); } else { $geodir_num_dates = 0; if ( isset( $recuring_data['is_recurring'] ) ) { $start_date = isset( $recuring_data['event_start'] ) ? $recuring_data['event_start'] : ''; $end_date = isset( $recuring_data['event_end'] ) ? $recuring_data['event_end'] : $start_date; $all_day = isset( $recuring_data['all_day'] ) && !empty( $recuring_data['all_day'] ) ? true : false; $starttime = isset( $recuring_data['starttime'] ) ? $recuring_data['starttime'] : ''; $endtime = isset( $recuring_data['endtime'] ) ? $recuring_data['endtime'] : ''; $event_recurring_dates = explode( ',', $recuring_data['event_recurring_dates'] ); $starttimes = isset( $recuring_data['starttimes'] ) && !empty( $recuring_data['starttimes'] ) ? $recuring_data['starttimes'] : array(); $endtimes = isset( $recuring_data['endtimes'] ) && !empty( $recuring_data['endtimes'] ) ? $recuring_data['endtimes'] : array(); if ( !geodir_event_is_date( $start_date ) && !empty( $event_recurring_dates ) ) { $start_date = $event_recurring_dates[0]; } if ( strtotime( $end_date ) < strtotime( $start_date ) ) { $end_date = $start_date; } if ( $starttime == '' && !empty( $starttimes ) ) { $starttime = $starttimes[0]; $endtime = $endtimes[0]; } $one_day = false; if ( $start_date == $end_date && $all_day ) { $one_day = true; } if ( $all_day ) { $start_date = date_i18n( $geodir_date_format, strtotime( $start_date ) ); $end_date = date_i18n( $geodir_date_format, strtotime( $end_date ) ); if ( $start_date == $end_date ) { $one_day = true; } } else { if ( $start_date == $end_date && $starttime == $endtime ) { $end_date = date_i18n( $geodir_date_format, strtotime( $start_date . ' ' . $starttime . ' +1 day' ) ); $one_day = false; } $start_date = date_i18n( $geodir_date_time_format, strtotime( $start_date . ' ' . $starttime ) ); $end_date = date_i18n( $geodir_date_time_format, strtotime( $end_date . ' ' . $endtime ) ); } $output = '
'; $title_start_date = date_i18n( 'Y-m-d H:i:s', strtotime( $start_date ) ) . ' ' . date_i18n( 'T+H:i', get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); if ( !$one_day ) { $title_start_date .= ' - ' . date_i18n( 'Y-m-d H:i:s', strtotime( $end_date ) ) . ' ' . date_i18n( 'T+H:i', get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); } $output .= '

'; $output .= '' . $start_date; if ( !$one_day ) { $output .= '
'; $output .= '' . $end_date; } $output .= '

'; $output .= '
'; } else { // older event dates $event_recurring_dates = explode( ',', $recuring_data['event_recurring_dates'] ); $starttimes = isset( $recuring_data['starttime'] ) ? $recuring_data['starttime'] : ''; $endtimes = isset( $recuring_data['endtime'] ) ? $recuring_data['endtime'] : ''; $output = ''; $output .= '
'; foreach( $event_recurring_dates as $key => $date ) { $geodir_num_dates++; if ( isset( $recuring_data['different_times'] ) && $recuring_data['different_times'] == '1' ) { $starttimes = isset( $recuring_data['starttimes'][$key] ) ? $recuring_data['starttimes'][$key] : ''; $endtimes = isset( $recuring_data['endtimes'][$key] ) ? $recuring_data['endtimes'][$key] : ''; } $sdate = strtotime( $date . ' ' . $starttimes ); $edate = strtotime( $date . ' ' . $endtimes ); if ( $starttimes > $endtimes ) { $edate = strtotime( $date . ' ' . $endtimes . " +1 day" ); } // Hide past dates if ( $hide_past_dates && strtotime( date_i18n( 'Y-m-d', $edate ) ) < strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) ) ) { $geodir_num_dates--; continue; } $output .= '

'; $output .= '' . date_i18n( $geodir_date_time_format, $sdate ); if ( $sdate != $edate ) { $output .= '
'; $output .= '' . date_i18n( $geodir_date_time_format, $edate ); } $output .= '

'; } $output .= '
'; if ( !$geodir_num_dates > 0 ) { return; } } $geodir_date_count = $geodir_num_dates > 1 ? __( 'Dates', GEODIREVENTS_TEXTDOMAIN ) : __( 'Date',GEODIREVENTS_TEXTDOMAIN ); } $geodir_event_dates_display = $geodir_num_dates > 5 ? 'geodir_event_dates_display' : ''; ob_start(); echo '
'; if ( $geodir_num_dates == 1 ) { echo '' . $geodir_date_count . ' : '; } else { echo '' . $geodir_date_count . ' : '; } echo $output; echo '
'; echo $datehtml = ob_get_clean(); } }