diff --git a/wcfsetup/install/files/lib/acp/form/ContactOptionAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ContactOptionAddForm.class.php index c7496d06231..f00537f262c 100644 --- a/wcfsetup/install/files/lib/acp/form/ContactOptionAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ContactOptionAddForm.class.php @@ -92,7 +92,7 @@ protected function getOptionTypeFormField(): SelectFormField /** * @return array */ - private function getContactOptions(): array + protected function getContactOptions(): array { $optionList = new ContactOptionList(); $optionList->sqlOrderBy = 'showOrder ASC'; diff --git a/wcfsetup/install/files/lib/acp/form/ContactOptionEditForm.class.php b/wcfsetup/install/files/lib/acp/form/ContactOptionEditForm.class.php index 5e2367c46a5..7629497c4b7 100644 --- a/wcfsetup/install/files/lib/acp/form/ContactOptionEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ContactOptionEditForm.class.php @@ -70,4 +70,14 @@ public function assignVariables() ), ]); } + + #[\Override] + protected function getContactOptions(): array + { + return \array_filter( + parent::getContactOptions(), + fn(int $key) => $key !== $this->formObject->getObjectID(), + \ARRAY_FILTER_USE_KEY + ); + } } diff --git a/wcfsetup/install/files/lib/acp/form/ContactRecipientAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ContactRecipientAddForm.class.php index bc64989f816..182d2f19940 100644 --- a/wcfsetup/install/files/lib/acp/form/ContactRecipientAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ContactRecipientAddForm.class.php @@ -81,12 +81,12 @@ protected function createForm() /** * @return array */ - private function getContactRecipient(): array + protected function getContactRecipient(): array { $recipientList = new ContactRecipientList(); $recipientList->sqlOrderBy = 'showOrder ASC'; $recipientList->readObjects(); - return \array_map(static fn ($recipient) => $recipient->getName(), $recipientList->getObjects()); + return \array_map(static fn($recipient) => $recipient->getName(), $recipientList->getObjects()); } } diff --git a/wcfsetup/install/files/lib/acp/form/ContactRecipientEditForm.class.php b/wcfsetup/install/files/lib/acp/form/ContactRecipientEditForm.class.php index f1c907c0f28..27439ae4e10 100644 --- a/wcfsetup/install/files/lib/acp/form/ContactRecipientEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ContactRecipientEditForm.class.php @@ -67,4 +67,14 @@ public function assignVariables() ), ]); } + + #[\Override] + protected function getContactRecipient(): array + { + return \array_filter( + parent::getContactRecipient(), + fn(int $key) => $key !== $this->formObject->getObjectID(), + \ARRAY_FILTER_USE_KEY + ); + } } diff --git a/wcfsetup/install/files/lib/acp/form/ReactionTypeAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ReactionTypeAddForm.class.php index fb30739c546..89139f07913 100644 --- a/wcfsetup/install/files/lib/acp/form/ReactionTypeAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ReactionTypeAddForm.class.php @@ -71,7 +71,7 @@ protected function createForm() ->languageItemPattern('wcf.reactionType.title\d+'), ShowOrderFormField::create() ->required() - ->options(new ReactionTypeList()), + ->options($this->getReactionTypes()), BooleanFormField::create('isAssignable') ->label('wcf.acp.reactionType.isAssignable') ->description('wcf.acp.reactionType.isAssignable.description') @@ -94,4 +94,15 @@ protected function createForm() $iconContainer, ]); } + + /** + * @return array + */ + protected function getReactionTypes(): array + { + $list = new ReactionTypeList(); + $list->readObjects(); + + return \array_map(static fn($option) => $option->getTitle(), $list->getObjects()); + } } diff --git a/wcfsetup/install/files/lib/acp/form/ReactionTypeEditForm.class.php b/wcfsetup/install/files/lib/acp/form/ReactionTypeEditForm.class.php index 998cba3704b..9866d401093 100644 --- a/wcfsetup/install/files/lib/acp/form/ReactionTypeEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ReactionTypeEditForm.class.php @@ -58,4 +58,16 @@ public function assignVariables() ), ]); } + + /** + * @return array + */ + protected function getReactionTypes(): array + { + return \array_filter( + parent::getReactionTypes(), + fn(int $key) => $key !== $this->formObject->getObjectID(), + \ARRAY_FILTER_USE_KEY + ); + } } diff --git a/wcfsetup/install/files/lib/acp/form/UserOptionCategoryAddForm.class.php b/wcfsetup/install/files/lib/acp/form/UserOptionCategoryAddForm.class.php index f592f274cff..33d8944eb5d 100644 --- a/wcfsetup/install/files/lib/acp/form/UserOptionCategoryAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserOptionCategoryAddForm.class.php @@ -61,18 +61,7 @@ protected function createForm() ->i18nRequired() ->languageItemPattern('wcf.user.option.category.(category\d+|[\w\.]+)'), ShowOrderFormField::create() - ->options(function () { - $categoryList = new UserOptionCategoryList(); - $categoryList->getConditionBuilder()->add('parentCategoryName = ?', ['profile']); - $categoryList->readObjects(); - $categories = []; - - foreach ($categoryList->getObjects() as $category) { - $categories[$category->categoryID] = $category->getTitle(); - } - - return $categories; - }), + ->options($this->getCategories()), ]), ]); } @@ -132,4 +121,19 @@ public function saved() parent::saved(); } + + /** + * @return array + */ + protected function getCategories(): array + { + $categoryList = new UserOptionCategoryList(); + $categoryList->getConditionBuilder()->add('parentCategoryName = ?', ['profile']); + $categoryList->readObjects(); + + return \array_map( + static fn($category) => $category->getTitle(), + $categoryList->getObjects() + ); + } } diff --git a/wcfsetup/install/files/lib/acp/form/UserOptionCategoryEditForm.class.php b/wcfsetup/install/files/lib/acp/form/UserOptionCategoryEditForm.class.php index 4683b34eac8..d98103d0c18 100644 --- a/wcfsetup/install/files/lib/acp/form/UserOptionCategoryEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserOptionCategoryEditForm.class.php @@ -63,4 +63,14 @@ public function saved() AbstractFormBuilderForm::saved(); } + + #[\Override] + protected function getCategories(): array + { + return \array_filter( + parent::getCategories(), + fn(int $key) => $key !== $this->formObject->getObjectID(), + \ARRAY_FILTER_USE_KEY + ); + } }