PluginProbe
Disk Usage Insights / trunk
Disk Usage Insights vtrunk
trunk 1.0 1.10 1.11 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9
disk-usage-insights / src / Frontend / Controller / ShowResultsTableController.php

ShowResultsTableController.php in Disk Usage Insights trunk, at src/Frontend/Controller/ShowResultsTableController.php

62 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Mgleis\DiskUsageInsights\Frontend\Controller;
3
4 use Mgleis\DiskUsageInsights\Domain\DatabaseRepository;
5 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowBrowserController;
6 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowFoldersMostFilesController;
7 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowLargestFilesController;
8 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowLargestFoldersFilesOnlyController;
9 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowLargestFoldersIncludingSubFoldersController;
10 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowLargestPluginsController;
11 use Mgleis\DiskUsageInsights\Frontend\Controller\Report\ShowLargestThemesController;
12 use Mgleis\DiskUsageInsights\Plugin;
13
14
15 class ShowResultsTableController {
16
17 public function execute() {
18 check_ajax_referer(Plugin::NONCE);
19
20 $WP_NONCE = wp_create_nonce(Plugin::NONCE);
21 $WP_ADMIN_AJAX_URL = admin_url('admin-ajax.php');
22 $WP_SNAPSHOT_FILE = sanitize_file_name(wp_unslash($_GET['snapshot'] ?? ''));
23
24 $database = (new DatabaseRepository())->loadDatabase($WP_SNAPSHOT_FILE);
25 $sn = $database->snapshotRepository->load();
26 if ($sn->collectPhaseFinished !== 1) {
27 echo "Cannot read database because it is corrupt/incomplete. Please create a new snapshot.";
28 exit;
29 }
30 $table = sanitize_file_name(wp_unslash($_GET['table'] ?? ''));
31
32 switch ($table) {
33 case 'largest-files':
34 (new ShowLargestFilesController())->execute($database);
35 break;
36 case 'largest-folders-files':
37 (new ShowLargestFoldersFilesOnlyController())->execute($database);
38 break;
39 case 'largest-folders-sub-folders':
40 (new ShowLargestFoldersIncludingSubFoldersController())->execute($database);
41 break;
42 case 'folders-most-files':
43 (new ShowFoldersMostFilesController())->execute($database);
44 break;
45 case 'largest-themes':
46 (new ShowLargestThemesController())->execute($database);
47 break;
48 case 'largest-plugins':
49 (new ShowLargestPluginsController())->execute($database);
50 break;
51 case 'browser':
52 (new ShowBrowserController())->execute($database);
53 break;
54 default:
55 echo "unknown table";
56 break;
57 }
58
59 wp_die();
60 }
61
62 }