View::make_for_rest( WP_REST_Request $request )

Builds a View instance in response to a REST request to the Views endpoint.


Parameters

$request

(WP_REST_Request) (Required)


Top ↑

Return

(TribeEventsViewsV2View_Interface)


Top ↑

Source

File: src/Tribe/Views/V2/View.php

	public static function make_for_rest( \WP_REST_Request $request ) {
		// Try to read the slug from the REST request.
		$params = $request->get_params();
		$slug = Arr::get( $params, 'view', false );
		$url = Arr::get( $params, 'url' );
		$url_object = new Url( $url );
		$params = array_merge( $params, $url_object->get_query_args() );

		if ( false === $slug ) {
			/*
			 * If we cannot get the view slug from the request parameters let's try to get it from the URL.
			 */
			$slug = Arr::get( $params, 'eventDisplay', tribe_context()->get( 'view', 'default' ) );
		}

		// Let's check if we have a display mode set.
		$query_args                   = $url_object->query_overrides_path( true )->parse_url()->get_query_args();
		$params['event_display_mode'] = Arr::get( $query_args, 'eventDisplay', false );

		/**
		 * Filters the parameters that will be used to build the View class for a REST request.
		 *
		 * This filter will trigger for all Views.
		 *
		 * @since 4.9.3
		 *
		 * @param array $params An associative array of parameters from the REST request.
		 * @param \WP_REST_Request $request The current REST request.
		 */
		$params = apply_filters( 'tribe_events_views_v2_rest_params', $params, $request );

		if ( ! empty( $slug ) ) {
			/**
			 * Filters the parameters that will be used to build a specific View class for a REST request.
			 *
			 * @since 4.9.3
			 *
			 * @param  array             $params   An associative array of parameters from the REST request.
			 * @param  \WP_REST_Request  $request  The current REST request.
			 */
			$params = apply_filters( "tribe_events_views_v2_{$slug}_rest_params", $params, $request );
		}

		// Determine context based on params given
		$context = tribe_context()->alter( $params );

		$view =  static::make( $slug, $context );

		$view->url = $url_object;

		return $view;
	}

Top ↑

Changelog

Changelog
Version Description
4.9.2 Introduced.