Function Reference: geodir_sc_related_events

Summary

This function has not been documented yet.

Source File

geodir_sc_related_events() is located in geodir_event_manager/gdevents_shortcodes.php [Line: 98]

Source Code

function geodir_sc_related_events( $atts ) {
	ob_start();
	$defaults = array(
		'post_number'         => 5,
		'layout'              => 'gridview_onehalf',
		'event_type'          => 'all',
		'add_location_filter' => 0,
		'listing_width'       => '',
		'list_sort'           => 'latest',
		'character_count'     => '20',
	);

	$params = shortcode_atts( $defaults, $atts );

	/**
	 * Begin validating params
	 */

	// Validate that post_number is a number and is 1 or higher
	$params['post_number'] = absint( $params['post_number'] );
	if ( 0 === $params['post_number'] ) {
		$params['post_number'] = 1;
	}

	// Validate layout selection
	$params['layout'] = gdsc_validate_layout_choice( $params['layout'] );

	// Validate event type selection
	$params['event_type'] = gdsc_validate_event_type( $params['event_type'] );

	// Validate listing_width
	$params['listing_width'] = gdsc_validate_listing_width( $params['listing_width'] );

	// Validate sorting option
	$params['list_sort'] = $params['list_sort'] == 'upcoming' ? $params['list_sort'] : gdsc_validate_sort_choice( $params['list_sort'] );

	// Validate character_count
	$params['character_count'] = absint( $params['character_count'] );
	if ( 20 > $params['character_count'] ) {
		$params['character_count'] = 20;
	}

	/**
	 * End validating params
	 */

	global $post;
	$post_id   = '';
	$post_type = '';

	if ( isset( $_REQUEST['pid'] ) && $_REQUEST['pid'] != '' ) {
		$post      = geodir_get_post_info( $_REQUEST['pid'] );
		$post_type = $post->post_type;
		$post_id   = $_REQUEST['pid'];
	} elseif ( isset( $post->post_type ) && $post->post_type != '' ) {
		$post_type = $post->post_type;
		$post_id   = $post->ID;
	}

	$all_postypes = geodir_get_posttypes();

	if ( ! ( in_array( $post_type, $all_postypes ) ) ) {
		return false;
	}

	if ( $post_type == 'gd_place' && $post_id != '' ) {
		$query_args = array(

			'geodir_event_type' => $params['event_type'],
			'event_related_id'  => $post_id,
			'posts_per_page'    => $params['post_number'],
			'is_geodir_loop'    => true,
			'gd_location'       => $params['add_location_filter'],
			'post_type'         => 'gd_event',
			'order_by'          => $params['list_sort'],
			'excerpt_length'    => $params['character_count'],

		);

		geodir_get_post_feature_events( $query_args, $params['layout'] );
		geodir_get_post_past_events( $query_args, $params['layout'] );

	}
	$output = ob_get_contents();
	ob_end_clean();
	return $output;
}