BP_REST_Components_Endpoint::get_items( WP_REST_Request $request )
Retrieve components.
Description
Parameters
- $request
-
(Required) Full details about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-core/classes/class-bp-rest-components-endpoint.php
public function get_items( $request ) {
$args = array(
'type' => $request['type'],
'status' => $request['status'],
'per_page' => $request['per_page'],
);
/**
* Filter the query arguments for the request.
*
* @param array $args Key value array of query var to query value.
* @param WP_REST_Request $request The request sent to the API.
*
* @since 0.1.0
*/
$args = apply_filters( 'bp_rest_components_get_items_query_args', $args, $request );
$type = $args['type'];
// Get all components based on type.
$components = bp_core_get_components( $type );
// Active components.
$active_components = apply_filters( 'bp_active_components', bp_get_option( 'bp-active-components' ) );
// Core component is always active.
if ( 'optional' !== $type && array_key_exists( 'core', $components ) ) {
$active_components['core'] = $components['core'];
}
// Inactive components.
$inactive_components = array_diff( array_keys( $components ), array_keys( $active_components ) );
$current_components = array();
switch ( $args['status'] ) {
case 'all':
foreach ( $components as $name => $labels ) {
$current_components[] = $this->get_component_info( $name );
}
break;
case 'active':
foreach ( array_keys( $active_components ) as $component ) {
$current_components[] = $this->get_component_info( $component );
}
break;
case 'inactive':
foreach ( $inactive_components as $component ) {
$current_components[] = $this->get_component_info( $component );
}
break;
}
$retval = array();
foreach ( $current_components as $component ) {
$retval[] = $this->prepare_response_for_collection(
$this->prepare_item_for_response( $component, $request )
);
}
$response = rest_ensure_response( $retval );
$response = bp_rest_response_add_total_headers( $response, count( $current_components ), $args['per_page'] );
/**
* Fires after a list of components is fetched via the REST API.
*
* @param array $current_components Fetched components.
* @param WP_REST_Response $response The response data.
* @param WP_REST_Request $request The request sent to the API.
*
* @since 0.1.0
*/
do_action( 'bp_rest_components_get_items', $current_components, $response, $request );
return $response;
}
Changelog
| Version | Description |
|---|---|
| 0.1.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.