Function Reference: geodir_event_link_businesses_data

Summary

This function has not been documented yet.

Source File

geodir_event_link_businesses_data() is located in geodir_event_manager/gdevents_functions.php [Line: 1046]

Source Code

function geodir_event_link_businesses_data( $post_ids, $event_type = 'all', $list_sort = 'latest', $post_number = 5 ) {
	global $wpdb, $plugin_prefix;
	
	$table = $plugin_prefix . 'gd_event_detail';
	if ( $post_ids == '' || ( is_array( $post_ids ) && empty( $post_ids ) ) ) {
		return NULL;
	}
	$post_ids = is_array( $post_ids ) ? implode( "','", $post_ids ) : '';
	
	$current_date = date_i18n( 'Y-m-d', current_time( 'timestamp' ) );
	$limit = $post_number < 1 || $post_number > 100 ? 5 : $post_number;
	
	$orderby = geodir_event_widget_events_get_order( array( 'order_by' => $list_sort ) );
	
	if ($list_sort == 'upcoming') {
		$orderby = '';
	} 
	
	$where = '';
	switch( $event_type ) {
		case 'today':
			$where .= " AND ( " . EVENT_SCHEDULE . ".event_date LIKE '" . $current_date . "%%' OR ( " . EVENT_SCHEDULE . ".event_date <= '" . $current_date . "' AND " . EVENT_SCHEDULE . ".event_enddate >= '" . $current_date . "' ) ) ";
		break;
		case 'upcoming':
			$where .= " AND ( " . EVENT_SCHEDULE . ".event_date >= '" . $current_date . "' OR ( " . EVENT_SCHEDULE . ".event_date <= '" . $current_date . "' AND " . EVENT_SCHEDULE . ".event_enddate >= '" . $current_date . "' ) ) ";
		break;
		case 'past':
			$where .= " AND " . EVENT_SCHEDULE . ".event_date < '" . $current_date . "' ";
		break;
	}

	$sql =  $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS " . $wpdb->posts . ".*, " . $table . ".*, " . EVENT_SCHEDULE . ".*
		FROM " . $wpdb->posts . "
		INNER JOIN " . $table ." ON (" . $table . ".post_id = " . $wpdb->posts . ".ID)
		INNER JOIN " . EVENT_SCHEDULE . " AS " . EVENT_SCHEDULE . " ON (" . EVENT_SCHEDULE . ".event_id = " . $wpdb->posts . ".ID)
		WHERE " . $wpdb->posts . ".ID IN ('" . $post_ids . "')
			AND " . $wpdb->posts . ".post_type = 'gd_event'
			AND " . $wpdb->posts . ".post_status = 'publish'
			" . $where . "
		ORDER BY " . $orderby . " (CASE WHEN DATEDIFF(DATE(" . EVENT_SCHEDULE . ".event_date), '" . $current_date . "') < 0 THEN 1 ELSE 0 END), ABS(DATEDIFF(DATE(" . EVENT_SCHEDULE . ".event_date), '" . $current_date . "')) ASC, " . EVENT_SCHEDULE . ".event_starttime ASC, " . $table . ".is_featured ASC, " . $wpdb->posts . ".post_title ASC
		LIMIT %d", array( $limit) );

	$rows = $wpdb->get_results($sql);
	
	return $rows;
}