Merge branch '3.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / acp / page / MenuItemListPage.class.php
CommitLineData
e7fb3339
MW
1<?php
2namespace wcf\acp\page;
3use wcf\data\menu\item\MenuItemNodeTree;
4use wcf\data\menu\Menu;
5use wcf\page\AbstractPage;
6use wcf\system\exception\IllegalLinkException;
7use wcf\system\WCF;
8
9/**
10 * Shows a list of menu items.
11 *
12 * @author Marcel Werk
c839bd49 13 * @copyright 2001-2018 WoltLab GmbH
e7fb3339 14 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
e71525e4
MW
15 * @package WoltLabSuite\Core\Acp\Page
16 * @since 3.0
e7fb3339
MW
17 */
18class MenuItemListPage extends AbstractPage {
19 /**
0fcfe5f6 20 * @inheritDoc
e7fb3339
MW
21 */
22 public $activeMenuItem = 'wcf.acp.menu.link.cms.menu.list';
23
24 /**
0fcfe5f6 25 * @inheritDoc
e7fb3339 26 */
058cbd6a 27 public $neededPermissions = ['admin.content.cms.canManageMenu'];
e7fb3339 28
e7fb3339
MW
29 /**
30 * menu item node tree
592454d4 31 * @var MenuItemNodeTree
e7fb3339
MW
32 */
33 public $menuItems = null;
592454d4 34
e7fb3339
MW
35 /**
36 * menu id
37 * @var integer
38 */
39 public $menuID = 0;
40
41 /**
42 * menu object
592454d4 43 * @var Menu
e7fb3339
MW
44 */
45 public $menu = null;
46
47 /**
0fcfe5f6 48 * @inheritDoc
e7fb3339
MW
49 */
50 public function readParameters() {
51 parent::readParameters();
52
53 if (isset($_REQUEST['id'])) $this->menuID = intval($_REQUEST['id']);
54 $this->menu = new Menu($this->menuID);
55 if (!$this->menu->menuID) {
56 throw new IllegalLinkException();
57 }
58 }
59
60 /**
0fcfe5f6 61 * @inheritDoc
e7fb3339
MW
62 */
63 public function readData() {
64 parent::readData();
65
2c947851 66 $this->menuItems = new MenuItemNodeTree($this->menuID, null, false);
e7fb3339
MW
67 }
68
69 /**
0fcfe5f6 70 * @inheritDoc
e7fb3339
MW
71 */
72 public function assignVariables() {
73 parent::assignVariables();
74
058cbd6a 75 WCF::getTPL()->assign([
e7fb3339
MW
76 'menuID' => $this->menuID,
77 'menu' => $this->menu,
78 'menuItemNodeList' => $this->menuItems->getNodeList()
058cbd6a 79 ]);
e7fb3339
MW
80 }
81}