| 1 |
<?php |
| 2 |
defined('ABSPATH') or die('Unauthorized Access'); |
| 3 |
|
| 4 |
class Phpinfo_WP_Network { |
| 5 |
|
| 6 |
public static function register(): void { |
| 7 |
if (!is_multisite()) return; |
| 8 |
add_action('network_admin_menu', [__CLASS__, 'menu']); |
| 9 |
} |
| 10 |
|
| 11 |
public static function menu(): void { |
| 12 |
add_menu_page( |
| 13 |
'phpinfo() WP', 'phpinfo() WP', 'manage_network_options', |
| 14 |
'phpinfowp-network', [__CLASS__, 'view'], |
| 15 |
Phpinfo_wp::menu_icon(), 99 |
| 16 |
); |
| 17 |
} |
| 18 |
|
| 19 |
public static function view(): void { |
| 20 |
if (!current_user_can('manage_network_options')) return; |
| 21 |
require PHPINFOWP_DIR . 'views/pro/network.php'; |
| 22 |
} |
| 23 |
|
| 24 |
public static function sites(): array { |
| 25 |
if (!is_multisite()) return []; |
| 26 |
$sites = get_sites(['number' => 200]); |
| 27 |
$out = []; |
| 28 |
foreach ($sites as $site) { |
| 29 |
switch_to_blog((int) $site->blog_id); |
| 30 |
$autoload = Phpinfo_WP_License::is_valid() ? Phpinfo_WP_DB_Health::autoload_size() : null; |
| 31 |
$out[] = [ |
| 32 |
'blog_id' => (int) $site->blog_id, |
| 33 |
'url' => get_site_url(), |
| 34 |
'name' => get_bloginfo('name'), |
| 35 |
'autoload' => $autoload ? $autoload['bytes'] : null, |
| 36 |
'autoload_status' => $autoload['status'] ?? null, |
| 37 |
]; |
| 38 |
restore_current_blog(); |
| 39 |
} |
| 40 |
return $out; |
| 41 |
} |
| 42 |
} |
| 43 |
|