1: <?php
2:
3: /**
4: * Admin class that handle management pages.
5: */
6: final class Papi_Admin_Management_Pages {
7:
8: /**
9: * Thew view instance.
10: *
11: * @var Papi_Admin_View
12: */
13: private $view;
14:
15: /**
16: * The constructor.
17: */
18: public function __construct() {
19: $this->setup_globals();
20: $this->setup_actions();
21: }
22:
23: /**
24: * Setup actions.
25: */
26: private function setup_actions() {
27: add_action( 'admin_menu', [$this, 'admin_menu'] );
28: }
29:
30: /**
31: * Setup globals.
32: */
33: private function setup_globals() {
34: $this->view = new Papi_Admin_View;
35: }
36:
37: /**
38: * Register management page.
39: */
40: public function admin_menu() {
41: $papi = papi();
42: add_management_page(
43: $papi->name,
44: $papi->name,
45: 'manage_options',
46: 'papi',
47: [$this, 'render_view']
48: );
49: }
50:
51: /**
52: * Render tools page view.
53: */
54: public function render_view() {
55: $page_view = (string) papi_get_qs( 'view' );
56:
57: if ( empty( $page_view ) ) {
58: $page_view = 'management-start';
59: }
60:
61: $this->view->render( $page_view );
62: }
63: }
64:
65: if ( is_admin() ) {
66: new Papi_Admin_Management_Pages;
67: }
68: