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();
}
}