mirror of
				https://github.com/getgrav/grav-plugin-admin.git
				synced 2025-10-31 10:25:50 +01:00 
			
		
		
		
	
		
			
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace Grav\Plugin\Admin; | ||
|  | 
 | ||
|  | use Grav\Common\Processors\ProcessorBase; | ||
|  | use Grav\Framework\Route\Route; | ||
|  | use Psr\Http\Message\ResponseInterface; | ||
|  | use Psr\Http\Message\ServerRequestInterface; | ||
|  | use Psr\Http\Server\RequestHandlerInterface; | ||
|  | 
 | ||
|  | class Router extends ProcessorBase | ||
|  | { | ||
|  |     public $id = 'admin_router'; | ||
|  |     public $title = 'Admin Panel'; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Handle routing to the dashboard, group and build objects. | ||
|  |      * | ||
|  |      * @param ServerRequestInterface $request | ||
|  |      * @param RequestHandlerInterface $handler | ||
|  |      * @return ResponseInterface | ||
|  |      */ | ||
|  |     public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface | ||
|  |     { | ||
|  |         $this->startTimer(); | ||
|  | 
 | ||
|  |         $context = $request->getAttributes(); | ||
|  | 
 | ||
|  |         /** @var Route $route */ | ||
|  |         $route = $context['route']; | ||
|  |         $normalized = mb_strtolower(trim($route->getRoute(), '/')); | ||
|  |         $parts = explode('/', $normalized); | ||
|  |         array_shift($parts); | ||
|  |         $key = array_shift($parts); | ||
|  |         $path = implode('/', $parts); | ||
|  | 
 | ||
|  |         $request = $request->withAttribute('admin', ['path' => $path, 'parts' => $parts]); | ||
|  | 
 | ||
|  |         $response = null; | ||
|  |         /* | ||
|  |         if ($key === '__TODO__') { | ||
|  | 
 | ||
|  |             $controller = new TodoController(); | ||
|  | 
 | ||
|  |             $response = $controller->handle($request); | ||
|  |         } | ||
|  |         */ | ||
|  | 
 | ||
|  |         if (!$response) { | ||
|  |             // Fallback to the old admin behavior.
 | ||
|  |             $response = $handler->handle($request); | ||
|  |         } | ||
|  | 
 | ||
|  |         $this->stopTimer(); | ||
|  | 
 | ||
|  |         return $response; | ||
|  |     } | ||
|  | } |