# catfolders/trunk/includes/Rest/Controllers/BlockController.php

CatFolders – WordPress Media Library Folders &amp; Categories, version trunk. 41 lines.

- Page: https://pluginprobe.com/plugins/catfolders/trunk/code/includes/Rest/Controllers/BlockController.php
- Raw: https://pluginprobe.com/plugins/catfolders/trunk/raw/includes/Rest/Controllers/BlockController.php
- Modified: 2026-01-08T18:37:26+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/catfolders/trunk/code/includes/Rest/Controllers/BlockController.php#L10-L20`.

```php
<?php
namespace CatFolders\Rest\Controllers;

use CatFolders\Blocks\GalleryBlock;

defined( 'ABSPATH' ) || exit;

class BlockController {
	public function register_routes() {
		register_rest_route(
			CATF_ROUTE_NAMESPACE,
			'/get-attachments-from-folders',
			array(
				array(
					'methods'             => \WP_REST_Server::READABLE,
					'callback'            => array( $this, 'get_attachments_from_folders' ),
					'permission_callback' => array( $this, 'permission_callback' ),
				),
			)
		);
	}

	public function permission_callback() {
		if ( ! is_user_logged_in() ) {
			return false;
		}
		if ( ! current_user_can( 'upload_files' ) ) {
			return false;
		}
		return true;
	}

	public function get_attachments_from_folders( \WP_REST_Request $request ) {
		$folders = explode( ',', $request->get_param( 'folders' ) );

		$data = GalleryBlock::instance()->get_attachments( array( 'folders' => $folders ) );

		return new \WP_REST_Response( $data );
	}
}

```
