Integrated evaluation notice for apps
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / acp / page / PackagePage.class.php
CommitLineData
158bd3ca 1<?php
308c880f 2declare(strict_types=1);
158bd3ca 3namespace wcf\acp\page;
158bd3ca
TD
4use wcf\data\package\Package;
5use wcf\page\AbstractPage;
ec1b1daf 6use wcf\system\exception\IllegalLinkException;
2bc9f31d 7use wcf\system\WCF;
158bd3ca
TD
8
9/**
10 * Shows all information about an installed package.
11 *
12 * @author Marcel Werk
c839bd49 13 * @copyright 2001-2018 WoltLab GmbH
158bd3ca 14 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
e71525e4 15 * @package WoltLabSuite\Core\Acp\Page
158bd3ca 16 */
3f4e2e77 17class PackagePage extends AbstractPage {
264c6eea 18 /**
0fcfe5f6 19 * @inheritDoc
264c6eea
MS
20 */
21 public $activeMenuItem = 'wcf.acp.menu.link.package';
22
89484ba0
AE
23 /**
24 * list of compatible API versions
25 * @var integer[]
26 */
27 public $compatibleVersions = [];
28
21489986 29 /**
0fcfe5f6 30 * @inheritDoc
21489986 31 */
058cbd6a 32 public $neededPermissions = ['admin.configuration.package.canUpdatePackage', 'admin.configuration.package.canUninstallPackage'];
21489986 33
21489986
MS
34 /**
35 * id of the package
36 * @var integer
37 */
38 public $packageID = 0;
39
40 /**
41 * package object
4e25add7 42 * @var Package
21489986 43 */
7d547f61
AE
44 public $package;
45
46 /**
47 * Plugin-Store fileID
48 * @var integer
49 */
50 public $pluginStoreFileID = 0;
21489986 51
158bd3ca 52 /**
0fcfe5f6 53 * @inheritDoc
158bd3ca
TD
54 */
55 public function readParameters() {
56 parent::readParameters();
57
d71e5a29 58 if (isset($_REQUEST['id'])) $this->packageID = intval($_REQUEST['id']);
0ef0ec43
MW
59 $this->package = new Package($this->packageID);
60 if (!$this->package->packageID) {
61 throw new IllegalLinkException();
62 }
158bd3ca
TD
63 }
64
7d547f61
AE
65 /**
66 * @inheritDoc
67 */
68 public function readData() {
69 parent::readData();
70
71 $sql = "SELECT pluginStoreFileID
72 FROM wcf".WCF_N."_package_update
73 WHERE package = ?
74 AND pluginStoreFileID <> 0";
75 $statement = WCF::getDB()->prepareStatement($sql);
76 $statement->execute([$this->package->package]);
77 $this->pluginStoreFileID = intval($statement->fetchSingleColumn());
89484ba0
AE
78
79 $sql = "SELECT version
80 FROM wcf".WCF_N."_package_compatibility
81 WHERE packageID = ?
82 AND version >= ?
83 ORDER BY version";
84 $statement = WCF::getDB()->prepareStatement($sql);
85 $statement->execute([
86 $this->package->packageID,
87 WSC_API_VERSION
88 ]);
89 while ($version = $statement->fetchColumn()) {
90 $this->compatibleVersions[] = $version;
91 }
7d547f61
AE
92 }
93
158bd3ca 94 /**
0fcfe5f6 95 * @inheritDoc
158bd3ca
TD
96 */
97 public function assignVariables() {
98 parent::assignVariables();
99
7d547f61 100 WCF::getTPL()->assign([
89484ba0 101 'compatibleVersions' => $this->compatibleVersions,
7d547f61
AE
102 'package' => $this->package,
103 'pluginStoreFileID' => $this->pluginStoreFileID
104 ]);
158bd3ca 105 }
158bd3ca 106}