Skip to content

Commit b2b5398

Browse files
authored
Merge pull request #6479 from WoltLab/6.2-bootstrap-acp-menu-items
Create ACP menu items via bootstrap file
2 parents 8968c30 + ddd4c80 commit b2b5398

20 files changed

Lines changed: 1669 additions & 1234 deletions

com.woltlab.wcf/acpMenu.xml

Lines changed: 137 additions & 780 deletions
Large diffs are not rendered by default.

com.woltlab.wcf/userGroupOption.xml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,6 @@
185185
<admindefaultvalue>1</admindefaultvalue>
186186
<usersonly>1</usersonly>
187187
</option>
188-
<option name="admin.configuration.package.canUninstallPackage">
189-
<categoryname>admin.configuration.package</categoryname>
190-
<optiontype>boolean</optiontype>
191-
<defaultvalue>0</defaultvalue>
192-
<admindefaultvalue>1</admindefaultvalue>
193-
<usersonly>1</usersonly>
194-
</option>
195188
<option name="admin.configuration.package.canEditServer">
196189
<categoryname>admin.configuration.package</categoryname>
197190
<optiontype>boolean</optiontype>
@@ -1081,5 +1074,6 @@ webp</defaultvalue>
10811074
</import>
10821075
<delete>
10831076
<option name="user.profile.avatar.maxSize"/>
1077+
<option name="admin.configuration.package.canUninstallPackage"/>
10841078
</delete>
10851079
</data>

wcfsetup/install/files/acp/templates/packageList.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
'wcf.acp.package.uninstallation.title': '{jslang}wcf.acp.package.uninstallation.title{/jslang}',
99
});
1010
11-
{if $__wcf->session->getPermission('admin.configuration.package.canUninstallPackage')}
11+
{if $__wcf->session->getPermission('admin.configuration.package.canInstallPackage')}
1212
new WCF.ACP.Package.Uninstallation($('.jsPackageRow .jsUninstallButton'));
1313
{/if}
1414

wcfsetup/install/files/acp/templates/pageMenu.tpl

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,15 @@
2828
{if $_subMenuItems|empty}
2929
<li{if $_menuItem->menuItem|in_array:$_activeMenuItems} class="active"{/if}><a href="{$_menuItem->getLink()}" class="acpPageSubMenuLink">{$_menuItem}</a></li>
3030
{else}
31-
{if $_menuItem->menuItem === 'wcf.acp.menu.link.option.category'}
32-
{* handle special option categories *}
31+
<li class="acpPageSubMenuLinkWrapper">
32+
<a href="{$_menuItem->getLink()}" class="acpPageSubMenuLink{if $_menuItem->menuItem|in_array:$_activeMenuItems && $_activeMenuItems[0] === $_menuItem->menuItem} active{/if}">{$_menuItem}</a>
33+
3334
{foreach from=$_subMenuItems item=_subMenuItem}
34-
<li{if $_subMenuItem->menuItem|in_array:$_activeMenuItems} class="active"{/if}><a href="{$_subMenuItem->getLink()}" class="acpPageSubMenuLink">{$_subMenuItem}</a></li>
35+
<a href="{$_subMenuItem->getLink()}" class="acpPageSubMenuIcon jsTooltip{if $_subMenuItem->menuItem|in_array:$_activeMenuItems} active{/if}" title="{$_subMenuItem}">
36+
{unsafe:$_subMenuItem->getIcon()->toHtml()}
37+
</a>
3538
{/foreach}
36-
{else}
37-
<li class="acpPageSubMenuLinkWrapper">
38-
<a href="{$_menuItem->getLink()}" class="acpPageSubMenuLink{if $_menuItem->menuItem|in_array:$_activeMenuItems && $_activeMenuItems[0] === $_menuItem->menuItem} active{/if}">{$_menuItem}</a>
39-
40-
{foreach from=$_subMenuItems item=_subMenuItem}
41-
<a href="{$_subMenuItem->getLink()}" class="acpPageSubMenuIcon jsTooltip{if $_subMenuItem->menuItem|in_array:$_activeMenuItems} active{/if}" title="{$_subMenuItem}">
42-
{unsafe:$_subMenuItem->getIcon()->toHtml()}
43-
</a>
44-
{/foreach}
45-
</li>
46-
{/if}
39+
</li>
4740
{/if}
4841
{/foreach}
4942
</ol>

wcfsetup/install/files/lib/acp/page/PackageListPage.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ final class PackageListPage extends AbstractGridViewPage
3030
*/
3131
public $neededPermissions = [
3232
'admin.configuration.package.canUpdatePackage',
33-
'admin.configuration.package.canUninstallPackage',
33+
'admin.configuration.package.canInstallPackage',
3434
];
3535

3636
#[\Override]

wcfsetup/install/files/lib/acp/page/PackagePage.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class PackagePage extends AbstractPage
3131
*/
3232
public $neededPermissions = [
3333
'admin.configuration.package.canUpdatePackage',
34-
'admin.configuration.package.canUninstallPackage',
34+
'admin.configuration.package.canInstallPackage',
3535
];
3636

3737
/**

wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php

Lines changed: 275 additions & 303 deletions
Large diffs are not rendered by default.

wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItem.class.php

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,6 @@ public function getLink(): string
6767
'application' => $this->application,
6868
];
6969

70-
// links of top option category menu items need the id of the option
71-
// category
72-
if ($this->parentMenuItem == 'wcf.acp.menu.link.option.category') {
73-
$linkParameters['id'] = $this->optionCategoryID;
74-
}
75-
7670
return LinkHandler::getInstance()->getLink(
7771
$this->controller,
7872
$linkParameters,
@@ -119,14 +113,6 @@ protected function parseController()
119113
*/
120114
public function __toString(): string
121115
{
122-
// This is a placeholder category that represents the dynamic menu items
123-
// generated by categories in the `options.xml`. It has no title and
124-
// trying to access its name causes a false-positive for missing phrases
125-
// with every ACP request.
126-
if ($this->menuItem === 'wcf.acp.menu.link.option.category') {
127-
return 'wcf.acp.menu.link.option.category';
128-
}
129-
130116
return WCF::getLanguage()->get($this->menuItem);
131117
}
132118

wcfsetup/install/files/lib/data/package/Package.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ public function getAllRequiredPackages()
220220
*/
221221
public function canUninstall()
222222
{
223-
if (!WCF::getSession()->getPermission('admin.configuration.package.canUninstallPackage')) {
223+
if (!WCF::getSession()->getPermission('admin.configuration.package.canInstallPackage')) {
224224
return false;
225225
}
226226

wcfsetup/install/files/lib/data/package/PackageAction.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class PackageAction extends AbstractDatabaseObjectAction
2828
/**
2929
* @inheritDoc
3030
*/
31-
protected $permissionsDelete = ['admin.configuration.package.canUninstallPackage'];
31+
protected $permissionsDelete = ['admin.configuration.package.canInstallPackage'];
3232

3333
/**
3434
* @inheritDoc

0 commit comments

Comments
 (0)