PageNetworkRequestHandler.php
718 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
namespace AC\Admin;
use AC;
use AC\Request;
class PageNetworkRequestHandler implements RequestHandlerInterface {
/**
* @var PageFactoryInterface[]
*/
private $factories;
/**
* @param string $slug
* @param PageFactoryInterface $factory
*
* @return $this
*/
public function add( $slug, PageFactoryInterface $factory ) {
$this->factories[ $slug ] = $factory;
return $this;
}
public function handle( Request $request ) {
$slug = $request->get_query()->get( self::PARAM_TAB ) ?: 'columns';
$page = isset( $this->factories[ $slug ] )
? $this->factories[ $slug ]->create()
: null;
return apply_filters( 'ac/admin/network/request/page', $page, $request );
}
}