Fixed multiple form field validation issues in the language item add form
authorMarcel Werk <burntime@woltlab.com>
Wed, 11 Mar 2020 11:52:46 +0000 (12:52 +0100)
committerMarcel Werk <burntime@woltlab.com>
Wed, 11 Mar 2020 11:52:46 +0000 (12:52 +0100)
wcfsetup/install/files/lib/acp/form/LanguageItemAddForm.class.php

index 1c27e4548357387422dddf2b93717012d833da25..54cc0ff2f72debdbf1acc99c8fdb75bec4a54037 100644 (file)
@@ -78,6 +78,7 @@ class LanguageItemAddForm extends AbstractFormBuilderForm {
                                                
                                                return $list;
                                        }, false, false)
+                                       ->required()
                                        ->filterable(),
                                
                                TextFormField::create('languageItem')
@@ -127,15 +128,15 @@ class LanguageItemAddForm extends AbstractFormBuilderForm {
                                                                /** @var SingleSelectionFormField $languageCategoryID */
                                                                $languageCategoryID = $formField->getDocument()->getNodeById('languageCategoryID');
                                                                
-                                                               $languageCategory = LanguageFactory::getInstance()->getCategoryByID($languageCategoryID->getSaveValue());
-                                                               
-                                                               if (strpos($formField->getSaveValue(), $languageCategory->languageCategory) . '.' !== 0) {
-                                                                       $formField->addValidationError(
-                                                                               new FormFieldValidationError(
-                                                                                       'prefixMismatch',
-                                                                                       'wcf.acp.language.item.languageItem.error.prefixMismatch'
-                                                                               )
-                                                                       );
+                                                               if ($languageCategory = LanguageFactory::getInstance()->getCategoryByID($languageCategoryID->getSaveValue())) {
+                                                                       if (strpos($formField->getSaveValue(), $languageCategory->languageCategory . '.') !== 0) {
+                                                                               $formField->addValidationError(
+                                                                                       new FormFieldValidationError(
+                                                                                               'prefixMismatch',
+                                                                                               'wcf.acp.language.item.languageItem.error.prefixMismatch'
+                                                                                       )
+                                                                               );
+                                                                       }
                                                                }
                                                                
                                                                break;