@@ -51,6 +51,10 @@ public function __invoke(ItemCollecting $event): void
5151 $ this ->addSmileyItems ($ event );
5252 $ this ->addAdItems ($ event );
5353 $ this ->addReactionItems ($ event );
54+
55+ $ this ->addMaintenanceItems ($ event );
56+ $ this ->addStatItems ($ event );
57+ $ this ->addLogItems ($ event );
5458 }
5559
5660 private function addTopLevelItems (ItemCollecting $ event ): void
@@ -75,6 +79,10 @@ private function addTopLevelItems(ItemCollecting $event): void
7579 'wcf.acp.menu.link.customization ' ,
7680 icon: FontAwesomeIcon::fromValues ('desktop ' ),
7781 ));
82+ $ event ->register (new AcpMenuItem (
83+ 'wcf.acp.menu.link.management ' ,
84+ icon: FontAwesomeIcon::fromValues ('gear ' ),
85+ ));
7886 }
7987
8088 private function addOptionItems (ItemCollecting $ event ): void
@@ -994,4 +1002,126 @@ private function addReactionItems(ItemCollecting $event): void
9941002 icon: FontAwesomeIcon::fromValues ('plus ' )
9951003 ));
9961004 }
1005+
1006+ private function addMaintenanceItems (ItemCollecting $ event ): void
1007+ {
1008+ $ event ->register (new AcpMenuItem (
1009+ 'wcf.acp.menu.link.maintenance ' ,
1010+ parentMenuItem: 'wcf.acp.menu.link.management '
1011+ ));
1012+
1013+ if (WCF ::getSession ()->getPermission ('admin.configuration.package.canInstallPackage ' )) {
1014+ $ event ->register (new AcpMenuItem (
1015+ 'wcf.acp.menu.link.systemCheck ' ,
1016+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1017+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \SystemCheckPage::class),
1018+ ));
1019+ }
1020+
1021+ if (WCF ::getSession ()->getPermission ('admin.management.canManageCronjob ' )) {
1022+ $ event ->register (new AcpMenuItem (
1023+ 'wcf.acp.menu.link.cronjob.list ' ,
1024+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1025+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \CronjobListPage::class),
1026+ ));
1027+ $ event ->register (new AcpMenuItem (
1028+ 'wcf.acp.menu.link.cronjob.add ' ,
1029+ parentMenuItem: 'wcf.acp.menu.link.cronjob.list ' ,
1030+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \form \CronjobAddForm::class),
1031+ icon: FontAwesomeIcon::fromValues ('plus ' )
1032+ ));
1033+ }
1034+
1035+ if (WCF ::getSession ()->getPermission ('admin.management.canRebuildData ' )) {
1036+ $ event ->register (new AcpMenuItem (
1037+ 'wcf.acp.menu.link.maintenance.cache ' ,
1038+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1039+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \CacheListPage::class),
1040+ ));
1041+ $ event ->register (new AcpMenuItem (
1042+ 'wcf.acp.menu.link.maintenance.rebuildData ' ,
1043+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1044+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \RebuildDataPage::class),
1045+ ));
1046+ $ event ->register (new AcpMenuItem (
1047+ 'wcf.acp.menu.link.maintenance.sitemap ' ,
1048+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1049+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \SitemapListPage::class),
1050+ ));
1051+ }
1052+
1053+ if (WCF ::getSession ()->getPermission ('admin.management.canImportData ' )) {
1054+ $ event ->register (new AcpMenuItem (
1055+ 'wcf.acp.menu.link.maintenance.import ' ,
1056+ parentMenuItem: 'wcf.acp.menu.link.maintenance ' ,
1057+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \form \DataImportForm::class),
1058+ ));
1059+ }
1060+ }
1061+
1062+ private function addStatItems (ItemCollecting $ event ): void
1063+ {
1064+ if (!WCF ::getSession ()->getPermission ('admin.management.canViewLog ' )) {
1065+ return ;
1066+ }
1067+
1068+ $ event ->register (new AcpMenuItem (
1069+ 'wcf.acp.menu.link.stat ' ,
1070+ parentMenuItem: 'wcf.acp.menu.link.management '
1071+ ));
1072+ $ event ->register (new AcpMenuItem (
1073+ 'wcf.acp.menu.link.stat.list ' ,
1074+ parentMenuItem: 'wcf.acp.menu.link.stat ' ,
1075+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \StatPage::class),
1076+ ));
1077+ }
1078+
1079+ private function addLogItems (ItemCollecting $ event ): void
1080+ {
1081+ $ event ->register (new AcpMenuItem (
1082+ 'wcf.acp.menu.link.log ' ,
1083+ parentMenuItem: 'wcf.acp.menu.link.management '
1084+ ));
1085+
1086+ if (WCF ::getSession ()->getPermission ('admin.management.canViewLog ' )) {
1087+ $ event ->register (new AcpMenuItem (
1088+ 'wcf.acp.menu.link.log.session ' ,
1089+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1090+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \ACPSessionLogListPage::class),
1091+ ));
1092+ }
1093+
1094+ if (WCF ::getSession ()->getPermission ('admin.management.canManageCronjob ' )) {
1095+ $ event ->register (new AcpMenuItem (
1096+ 'wcf.acp.menu.link.log.cronjob ' ,
1097+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1098+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \CronjobLogListPage::class),
1099+ ));
1100+ }
1101+
1102+ if (WCF ::getSession ()->getPermission ('admin.management.canViewLog ' )) {
1103+ $ event ->register (new AcpMenuItem (
1104+ 'wcf.acp.menu.link.log.email ' ,
1105+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1106+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \EmailLogListPage::class),
1107+ ));
1108+ $ event ->register (new AcpMenuItem (
1109+ 'wcf.acp.menu.link.log.exception ' ,
1110+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1111+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \ExceptionLogViewPage::class),
1112+ ));
1113+ if (\ENABLE_USER_AUTHENTICATION_FAILURE ) {
1114+ $ event ->register (new AcpMenuItem (
1115+ 'wcf.acp.menu.link.log.authentication.failure ' ,
1116+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1117+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \UserAuthenticationFailureListPage::class),
1118+ ));
1119+ }
1120+ $ event ->register (new AcpMenuItem (
1121+ 'wcf.acp.menu.link.log.modification ' ,
1122+ parentMenuItem: 'wcf.acp.menu.link.log ' ,
1123+ link: LinkHandler::getInstance ()->getControllerLink (\wcf \acp \page \ModificationLogListPage::class),
1124+ ));
1125+ }
1126+ }
9971127}
0 commit comments