Function Reference: geodir_event_date_calendar_fields

Summary

This function has not been documented yet.

Source File

geodir_event_date_calendar_fields() is located in geodir_event_manager/gdevents_functions.php [Line: 595]

Source Code

function geodir_event_date_calendar_fields( $fields ) {
	global $query, $wp_query, $wpdb, $geodir_post_type, $table, $plugin_prefix;
	
	if ( !empty( $geodir_post_type ) && $geodir_post_type != 'gd_event' ) {
		return $fields;
	}
	
	$schedule_table = EVENT_SCHEDULE;
		
	if ( get_query_var( 'geodir_event_date_calendar' ) ) {
		$current_year = date_i18n( 'Y', get_query_var( 'geodir_event_date_calendar' ) );
		$current_month = date_i18n( 'm', get_query_var( 'geodir_event_date_calendar' ) );
		//$condition = " YEAR(event_date) = ".$current_year." AND MONTH(event_date) = ".$current_month." AND " . $schedule_table . ".event_id = " . $wpdb->posts . ".ID ";
		$month_start = $current_year . '-' . $current_month . '-01'; // First day of the month.
		$month_end = date_i18n( 'Y-m-t', strtotime( $month_start ) ); // Last day of the month.
		
		$condition = "( ( ( '" . $month_start . "' BETWEEN event_date AND event_enddate ) OR ( event_date BETWEEN '" . $month_start . "' AND event_enddate ) ) AND ( ( '" . $month_end . "' BETWEEN event_date AND event_enddate ) OR ( event_enddate BETWEEN event_date AND '" . $month_end . "' ) ) ) AND " . $schedule_table . ".event_id = " . $wpdb->posts . ".ID";
		
		$fields = " ( SELECT GROUP_CONCAT( DISTINCT CONCAT( DATE( " . $schedule_table . ".event_date ), '_', " . $schedule_table . ".event_enddate ) ) FROM " . $schedule_table . " WHERE " . $condition . " ) AS event_dates";
	} else {
		if ( ( is_main_query() && ( geodir_is_page( 'listing' ) || ( is_search() && isset($_REQUEST['geodir_search'])) || isset($_REQUEST['geodir_dashbord'] ) ) ) || get_query_var( 'geodir_event_listing_filter' ) ) {
			$fields .= ", ".$table.".*".", ".EVENT_SCHEDULE.".* ";
		}
	}	
	
	if(isset($_SESSION['all_near_me'])){
			$DistanceRadius = geodir_getDistanceRadius(get_option('geodir_search_dist_1'));
			$mylat = $_SESSION['user_lat'];
			$mylon = $_SESSION['user_lon'];
			
			
			
			$fields .= " , (".$DistanceRadius." * 2 * ASIN(SQRT( POWER(SIN((ABS($mylat) - ABS(".$table.".post_latitude)) * pi()/180 / 2), 2) +COS(ABS($mylat) * pi()/180) * COS( ABS(".$table.".post_latitude) * pi()/180) *POWER(SIN(($mylon - ".$table.".post_longitude) * pi()/180 / 2), 2) )))as distance ";
		}
	
	return $fields;
}