Function Reference: geodir_save_event_schedule
Summary
This function has not been documented yet.
Source File
geodir_save_event_schedule() is located in geodir_event_manager/gdevents_functions.php [Line: 333]
Source Code
function geodir_save_event_schedule( $event_shedule_info = array(), $last_post_id = '' ) {
global $wpdb;
if ( empty( $event_shedule_info ) || $last_post_id == '' ) {
return false;
}
// Check recurring enabled
$post_info = geodir_get_post_info( $last_post_id );
$recurring_pkg = geodir_event_recurring_pkg( $post_info );
$format = geodir_event_date_format();
$default_start = date_i18n( $format, current_time( 'timestamp' ) );
if ( !$recurring_pkg ) {
$event_shedule_info['is_recurring'] = false;
}
$wpdb->query( $wpdb->prepare( "DELETE FROM " . EVENT_SCHEDULE . " WHERE event_id=%d", array( $last_post_id ) ) );
$event_recurring_dates = array();
if ( isset( $event_shedule_info['event_recurring_dates'] ) && !empty( $event_shedule_info['event_recurring_dates'] ) ) {
if ( is_array( $event_shedule_info['event_recurring_dates'] ) ) {
$event_recurring_dates = $event_shedule_info['event_recurring_dates'];
} else {
$event_recurring_dates = explode( ',', $event_shedule_info['event_recurring_dates'] );
}
}
// all day
$all_day = isset( $event_shedule_info['all_day'] ) && !empty( $event_shedule_info['all_day'] ) ? true : false;
$different_times = isset( $event_shedule_info['different_times'] ) && !empty( $event_shedule_info['different_times'] ) ? true : false;
$starttime = !$all_day && isset( $event_shedule_info['starttime'] ) ? $event_shedule_info['starttime'] : '';
$endtime = !$all_day && isset( $event_shedule_info['endtime'] ) ? $event_shedule_info['endtime'] : '';
$starttimes = !$all_day && isset( $event_shedule_info['starttimes'] ) ? $event_shedule_info['starttimes'] : array();
$endtimes = !$all_day && isset( $event_shedule_info['endtimes'] ) ? $event_shedule_info['endtimes'] : array();
if ( $event_shedule_info['is_recurring'] ) {
if ( !empty( $event_recurring_dates ) ) {
$duration = isset( $event_shedule_info['duration_x'] ) && (int)$event_shedule_info['duration_x'] > 0 ? (int)$event_shedule_info['duration_x'] : 1;
$repeat_type = isset( $event_shedule_info['repeat_type'] ) ? $event_shedule_info['repeat_type'] : 'custom';
$recurring = 1;
$duration--;
$c = 0;
foreach( $event_recurring_dates as $key => $date ) {
if ( $repeat_type == 'custom' && $different_times ) {
$duration = 0;
$starttime = isset( $starttimes[$c] ) ? $starttimes[$c] : '';
$endtime = isset( $endtimes[$c] ) ? $endtimes[$c] : '';
}
if ( $all_day == 1 ) {
$starttime = '';
$endtime = '';
}
$event_enddate = date_i18n( 'Y-m-d', strtotime( $date . ' + ' . $duration . ' day' ) );
$sql = $wpdb->prepare( "INSERT INTO " . EVENT_SCHEDULE . " (event_id, event_date, event_enddate, event_starttime, event_endtime, recurring, all_day) VALUES (%d, %s, %s, %s, %s, %d, %d)", array( $last_post_id, $date, $event_enddate, $starttime, $endtime, $recurring, $all_day ) ) ;
$wpdb->query( $sql );
$c++;
}
}
} else {
$start_date = isset( $event_shedule_info['event_start'] ) ? $event_shedule_info['event_start'] : '';
$end_date = isset( $event_shedule_info['event_end'] ) ? $event_shedule_info['event_end'] : $start_date;
if ( !geodir_event_is_date( $start_date ) && !empty( $event_recurring_dates ) ) {
$start_date = $event_recurring_dates[0];
}
if ( !geodir_event_is_date( $start_date ) ) {
$start_date = $default_start;
}
if ( strtotime( $end_date ) < strtotime( $start_date ) ) {
$end_date = $start_date;
}
if ( $starttime == '' && !empty( $starttimes ) ) {
$starttime = $starttimes[0];
$endtime = $endtimes[0];
}
if ( $all_day ) {
$starttime = '';
$endtime = '';
}
$recurring = 0;
$sql = $wpdb->prepare( "INSERT INTO " . EVENT_SCHEDULE . " (event_id, event_date, event_enddate, event_starttime, event_endtime, recurring, all_day) VALUES (%d, %s, %s, %s, %s, %d, %d)", array( $last_post_id, $start_date, $end_date, $starttime, $endtime, $recurring, $all_day ) ) ;
$wpdb->query( $sql );
}
}