PluginProbe
Disk Usage Insights / 1.6
Disk Usage Insights v1.6
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 / ShowResultsController.php

ShowResultsController.php in Disk Usage Insights 1.6, at src/Frontend/Controller/ShowResultsController.php

54 lines 1.7 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\Database;
5 use Mgleis\DiskUsageInsights\Domain\DatabaseRepository;
6 use Mgleis\DiskUsageInsights\Frontend\Table;
7 use Mgleis\DiskUsageInsights\Plugin;
8 use Mgleis\DiskUsageInsights\WpHelper;
9
10 class ShowResultsController {
11
12 private Database $database;
13
14 public function execute() {
15 // TODO Validate
16 $snapshotName = sanitize_file_name(wp_unslash($_GET['snapshot'] ?? ''));
17
18 $this->database = (new DatabaseRepository())->loadDatabase($snapshotName);
19 $sn = $this->database->snapshotRepository->load();
20 if ($sn->collectPhaseFinished !== 1) {
21 echo "Cannot read database because it is corrupt/incomplete. Please create a new snapshot.";
22 exit;
23 }
24
25 // TODO validate
26 $snapshot = sanitize_file_name(wp_unslash($_GET['snapshot'] ?? ''));
27 $root = $this->database->snapshotRepository->load()->root;
28 $totalSize = $this->selectInt("SELECT SUM(size) FROM fileentries;");
29
30 $WP_PLUGIN_URL = WpHelper::getPluginUrl();
31 $WP_NONCE = wp_create_nonce(Plugin::NONCE);
32 $WP_ADMIN_AJAX_URL = admin_url('admin-ajax.php');
33 $WP_SNAPSHOT_FILE = $snapshot;
34
35 include_once __DIR__ . '/../../../views/results.php';
36 }
37
38 private function selectInt(string $sql) {
39 $stmt = $this->database->q->db->prepare($sql);
40 $stmt->execute();
41 $result = $stmt->fetch();
42
43 return $result[0];
44 }
45
46 private function fetchAssoc(string $sql): array {
47 $stmt = $this->database->q->db->prepare($sql);
48 $stmt->execute();
49 $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
50
51 return $rows;
52 }
53 }
54