Commit | Line | Data |
---|---|---|
158bd3ca | 1 | <?php |
308c880f | 2 | declare(strict_types=1); |
158bd3ca | 3 | namespace wcf\acp\page; |
158bd3ca TD |
4 | use wcf\data\package\Package; |
5 | use wcf\page\AbstractPage; | |
ec1b1daf | 6 | use wcf\system\exception\IllegalLinkException; |
2bc9f31d | 7 | use 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 | 17 | class 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 | } |