View::make_for_rest( WP_REST_Request $request )
Builds a View instance in response to a REST request to the Views endpoint.
Contents
Parameters
- $request
-
(WP_REST_Request) (Required)
Return
(TribeEventsViewsV2View_Interface)
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;
}
Changelog
| Version | Description |
|---|---|
| 4.9.2 | Introduced. |