PluginProbe
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel / v1.3
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel vv1.3
1.7.1 1.7.0 1.6.0 1.5.2 trunk 0.1 0.2.0 0.2.1 0.3 0.3.1 0.3.2 0.3.3 0.3.4 0.4 0.4.1 0.4.2 0.4.3 1.0 1.1 1.2 1.3.1 1.4.0 1.4.1 1.5.0 1.5.1 All 26 releases
flywp / includes / Admin.php

Admin.php in FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel v1.3, at includes/Admin.php

154 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FlyWP;
4
5 class Admin {
6
7 /**
8 * Admin page slug.
9 */
10 public const PAGE_SLUG = 'flywp';
11
12 /**
13 * Screen name.
14 *
15 * @var string
16 */
17 public const SCREEN_NAME = 'dashboard_page_flywp';
18
19 public $fastcgi = null;
20 public $litespeed = null;
21
22 /**
23 * Admin constructor.
24 */
25 public function __construct() {
26 add_action( 'admin_menu', [ $this, 'register_admin_page' ] );
27
28 $this->fastcgi = new Admin\Fastcgi_Cache();
29 $this->litespeed = new Admin\Litespeed();
30
31 new Admin\Adminbar();
32 new Admin\Opcache();
33 new Admin\Plugins();
34 new Admin\Email();
35 new Admin\Optimizations();
36 }
37
38 /**
39 * Register admin page.
40 */
41 public function register_admin_page() {
42 $hook = add_dashboard_page(
43 __( 'FlyWP', 'flywp' ),
44 __( 'FlyWP', 'flywp' ),
45 'manage_options',
46 self::PAGE_SLUG,
47 [ $this, 'render_admin_page' ]
48 );
49
50 add_action( "admin_print_styles-{$hook}", [ $this, 'enqueue_styles' ] );
51 add_action( "admin_print_scripts-{$hook}", [ $this, 'enqueue_js' ] );
52 add_filter( 'removable_query_args', [ $this, 'removable_query_args' ] );
53 }
54
55 /**
56 * Get admin page url.
57 *
58 * @return string
59 */
60 public function page_url() {
61 return admin_url( 'index.php?page=' . self::PAGE_SLUG );
62 }
63
64 /**
65 * Add query args to removable query args.
66 *
67 * @param array $args
68 *
69 * @return array
70 */
71 public function removable_query_args( $args ) {
72 $args[] = 'fly-notice';
73
74 return $args;
75 }
76
77 /**
78 * Enqueue admin styles.
79 */
80 public function enqueue_styles() {
81 $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
82
83 wp_enqueue_style( 'flywp-admin-styles', FLYWP_PLUGIN_URL . '/assets/css/app' . $min . '.css', [], FLYWP_VERSION );
84 }
85
86 /**
87 * Enqueue admin scripts.
88 */
89 public function enqueue_js() {
90 $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
91
92 wp_enqueue_script( 'flywp-admin-js', FLYWP_PLUGIN_URL . '/assets/js/admin' . $min . '.js', [ 'jquery' ], FLYWP_VERSION, true );
93 }
94
95 /**
96 * Render admin page.
97 */
98 public function render_admin_page() {
99 $tabs = [
100 'cache' => __( 'Caching', 'flywp' ),
101 'email' => __( 'Email', 'flywp' ),
102 'optimizations' => __( 'Optimizations', 'flywp' ),
103 ];
104
105 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
106 $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $tabs ) ? $_GET['tab'] : 'cache';
107 $site_info = $this->fetch_site_info();
108 $app_site_url = $this->get_site_url( $site_info );
109
110 include FLYWP_PLUGIN_DIR . '/views/admin.php';
111 }
112
113 /**
114 * Fetch site info.
115 *
116 * @return array|false
117 */
118 private function fetch_site_info() {
119 $transient_key = 'flywp_site_info';
120 $site_info = get_transient( $transient_key );
121
122 if ( false === $site_info ) {
123 $site_info = flywp()->flyapi->site_info();
124
125 if ( isset( $site_info['error'] ) ) {
126 return false;
127 }
128
129 set_transient( $transient_key, $site_info, DAY_IN_SECONDS );
130 }
131
132 return $site_info;
133 }
134
135 /**
136 * Get site URL.
137 *
138 * @param array|false $info
139 *
140 * @return string
141 */
142 private function get_site_url( $info ) {
143 if ( false === $info ) {
144 return 'https://app.flywp.com';
145 }
146
147 return sprintf(
148 'https://app.flywp.com/servers/%d/sites/%d',
149 $info['server_id'],
150 $info['id']
151 );
152 }
153 }
154