From e539f186d54a0123017402a278c91dd4cf604556 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Joshua=20R=C3=BCsweg?= Date: Sat, 1 Jul 2017 22:36:02 +0200 Subject: [PATCH] Add trophy category management See #2315 --- com.woltlab.wcf/acpMenu.xml | 20 ++++++++ .../acp/form/TrophyCategoryAddForm.class.php | 33 +++++++++++++ .../acp/form/TrophyCategoryEditForm.class.php | 33 +++++++++++++ .../acp/page/TrophyCategoryListPage.class.php | 33 +++++++++++++ .../category/TrophyCategoryType.class.php | 48 +++++++++++++++++++ wcfsetup/install/lang/de.xml | 3 ++ wcfsetup/install/lang/en.xml | 3 ++ 7 files changed, 173 insertions(+) create mode 100644 wcfsetup/install/files/lib/acp/form/TrophyCategoryAddForm.class.php create mode 100644 wcfsetup/install/files/lib/acp/form/TrophyCategoryEditForm.class.php create mode 100644 wcfsetup/install/files/lib/acp/page/TrophyCategoryListPage.class.php create mode 100644 wcfsetup/install/files/lib/system/category/TrophyCategoryType.class.php diff --git a/com.woltlab.wcf/acpMenu.xml b/com.woltlab.wcf/acpMenu.xml index d5ce451e71..7e221ac89d 100644 --- a/com.woltlab.wcf/acpMenu.xml +++ b/com.woltlab.wcf/acpMenu.xml @@ -294,6 +294,26 @@ module_paid_subscription + + + + wcf.acp.menu.link.user + 7 + + + wcf\acp\page\TrophyCategoryListPage + wcf.acp.menu.link.trophy + admin.trophy.canManageTrophy + module_trophy + + + wcf\acp\form\TrophyCategoryAddForm + wcf.acp.menu.link.trophy.category.list + admin.trophy.canManageTrophy + module_trophy + fa-plus + + diff --git a/wcfsetup/install/files/lib/acp/form/TrophyCategoryAddForm.class.php b/wcfsetup/install/files/lib/acp/form/TrophyCategoryAddForm.class.php new file mode 100644 index 0000000000..dc2c3134ed --- /dev/null +++ b/wcfsetup/install/files/lib/acp/form/TrophyCategoryAddForm.class.php @@ -0,0 +1,33 @@ + + * @package WoltLabSuite\Core\Acp\Form + * @since 3.1 + */ +class TrophyCategoryAddForm extends AbstractCategoryAddForm { + /** + * @inheritDoc + */ + public $activeMenuItem = 'wcf.acp.menu.link.trophy.category.add'; + + /** + * @inheritDoc + */ + public $objectTypeName = 'com.woltlab.wcf.trophy.category'; + + /** + * @inheritDoc + */ + public $neededModules = ['MODULE_TROPHY']; + + /** + * @inheritDoc + */ + public $neededPermissions = ['admin.trophy.canManageTrophy']; +} diff --git a/wcfsetup/install/files/lib/acp/form/TrophyCategoryEditForm.class.php b/wcfsetup/install/files/lib/acp/form/TrophyCategoryEditForm.class.php new file mode 100644 index 0000000000..1d59fbf3e9 --- /dev/null +++ b/wcfsetup/install/files/lib/acp/form/TrophyCategoryEditForm.class.php @@ -0,0 +1,33 @@ + + * @package WoltLabSuite\Core\Acp\Form + * @since 3.1 + */ +class TrophyCategoryEditForm extends AbstractCategoryEditForm { + /** + * @inheritDoc + */ + public $activeMenuItem = 'wcf.acp.menu.link.trophy'; + + /** + * @inheritDoc + */ + public $objectTypeName = 'com.woltlab.wcf.trophy.category'; + + /** + * @inheritDoc + */ + public $neededModules = ['MODULE_TROPHY']; + + /** + * @inheritDoc + */ + public $neededPermissions = ['admin.trophy.canManageTrophy']; +} diff --git a/wcfsetup/install/files/lib/acp/page/TrophyCategoryListPage.class.php b/wcfsetup/install/files/lib/acp/page/TrophyCategoryListPage.class.php new file mode 100644 index 0000000000..5fd0b2670b --- /dev/null +++ b/wcfsetup/install/files/lib/acp/page/TrophyCategoryListPage.class.php @@ -0,0 +1,33 @@ + + * @package WoltLabSuite\Core\Acp\Form + * @since 3.1 + */ +class TrophyCategoryListPage extends AbstractCategoryListPage { + /** + * @inheritDoc + */ + public $activeMenuItem = 'wcf.acp.menu.link.trophy.category.list'; + + /** + * @inheritDoc + */ + public $objectTypeName = 'com.woltlab.wcf.trophy.category'; + + /** + * @inheritDoc + */ + public $neededModules = ['MODULE_TROPHY']; + + /** + * @inheritDoc + */ + public $neededPermissions = ['admin.trophy.canManageTrophy']; +} diff --git a/wcfsetup/install/files/lib/system/category/TrophyCategoryType.class.php b/wcfsetup/install/files/lib/system/category/TrophyCategoryType.class.php new file mode 100644 index 0000000000..6946941610 --- /dev/null +++ b/wcfsetup/install/files/lib/system/category/TrophyCategoryType.class.php @@ -0,0 +1,48 @@ + + * @package WoltLabSuite\Core\System\Category + * @since 3.1 + */ +class TrophyCategoryType extends AbstractCategoryType { + /** + * @inheritDoc + */ + protected $langVarPrefix = 'wcf.trophy.category'; + + /** + * @inheritDoc + */ + protected $maximumNestingLevel = 0; + + /** @noinspection PhpMissingParentCallCommonInspection */ + /** + * @inheritDoc + */ + public function canAddCategory() { + return $this->canEditCategory(); + } + + /** @noinspection PhpMissingParentCallCommonInspection */ + /** + * @inheritDoc + */ + public function canDeleteCategory() { + return $this->canEditCategory(); + } + + /** @noinspection PhpMissingParentCallCommonInspection */ + /** + * @inheritDoc + */ + public function canEditCategory() { + return WCF::getSession()->getPermission('admin.trophy.canManageTrophy'); + } +} diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml index 1084eeb615..479de0d8fd 100644 --- a/wcfsetup/install/lang/de.xml +++ b/wcfsetup/install/lang/de.xml @@ -847,6 +847,9 @@ + + + diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml index 1f39f93096..7f26692d27 100644 --- a/wcfsetup/install/lang/en.xml +++ b/wcfsetup/install/lang/en.xml @@ -830,6 +830,9 @@ + + + -- 2.20.1