Function Reference: geodir_event_widget_events_get_order
Summary
This function has not been documented yet.
Source File
geodir_event_widget_events_get_order() is located in geodir_event_manager/gdevents_template_functions.php [Line: 1359]
Source Code
function geodir_event_widget_events_get_order( $query_args ) {
global $wpdb, $plugin_prefix, $gd_query_args, $table;
if ( empty( $gd_query_args ) || empty( $gd_query_args['is_geodir_loop'] ) ) {
return $wpdb->posts . ".post_date DESC, ";
}
$table = $plugin_prefix . 'gd_event_detail';
$current_date = date_i18n( 'Y-m-d', current_time( 'timestamp' ) );
$sort_by = !empty( $query_args['order_by'] ) ? $query_args['order_by'] : '';
switch ( $sort_by ) {
case 'latest':
case 'newest':
$orderby = $wpdb->posts . ".post_date DESC, ";
break;
case 'featured':
$orderby = $table . ".is_featured ASC, ";
break;
case 'high_review':
$orderby = $table . ".rating_count DESC, " . $table . ".overall_rating DESC, ";
break;
case 'high_rating':
$orderby = $table . ".overall_rating DESC, ";
break;
case 'random':
$orderby = "RAND(), ";
break;
case 'upcoming':
$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, ";
break;
default:
$orderby = $wpdb->posts . ".post_title ASC, ";
break;
}
if ( $orderby != 'upcoming' ) {
$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, ";
}
return $orderby;
}