Skip to content

Commit a4d2194

Browse files
committed
fix edit
1 parent bf02a4b commit a4d2194

1 file changed

Lines changed: 25 additions & 20 deletions

File tree

files/lib/system/event/listener/LinksWsdbDatabaseEditFormListener.class.php

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,19 @@ protected function onBuildForm(WsdbDatabaseEditForm $eventObj): void
5050
new CustomFormDataProcessor(
5151
'linksProcessor',
5252
static function (IFormDocument $document, array $parameters): array {
53-
if (\is_array($parameters['linkButton_i18n'])) {
54-
$parameters['language']['linkButton'] = $parameters['linkButton_i18n'];
55-
} else {
56-
$parameters['language']['linkButton'] = [
57-
WCF::getLanguage()->languageID => $parameters['linkButton_i18n'],
58-
];
53+
if (isset($parameters['linkButton_i18n'])) {
54+
if (\is_array($parameters['linkButton_i18n'])) {
55+
$parameters['language']['linkButton'] = $parameters['linkButton_i18n'];
56+
} else {
57+
$parameters['language']['linkButton'] = [
58+
WCF::getLanguage()->languageID => $parameters['linkButton_i18n'],
59+
];
60+
}
61+
unset(
62+
$parameters['linkButton_i18n'],
63+
$parameters['data']['linkButton']
64+
);
5965
}
60-
unset(
61-
$parameters['linkButton_i18n'],
62-
$parameters['data']['linkButton']
63-
);
6466

6567
return $parameters;
6668
},
@@ -80,16 +82,19 @@ protected function onSaved(WsdbDatabaseEditForm $eventObj): void
8082
{
8183
$formData = $eventObj->form->getData();
8284

83-
foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
84-
$databaseLanguage = DatabaseLanguage::getDatabaseLanguage(
85-
$eventObj->formObject->databaseID,
86-
$language->languageID
87-
);
88-
if ($databaseLanguage !== null) {
89-
$action = new DatabaseLanguageAction([$databaseLanguage], 'update', ['data' => [
90-
'linkButton' => $formData['language']['linkButton'][$language->languageID] ?? '',
91-
]]);
92-
$action->executeAction();
85+
if (isset($formData['language']['linkButton'])) {
86+
foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
87+
$databaseLanguage = DatabaseLanguage::getDatabaseLanguage(
88+
$eventObj->formObject->databaseID,
89+
$language->languageID
90+
);
91+
if ($databaseLanguage !== null) {
92+
$action = new DatabaseLanguageAction([$databaseLanguage], 'update', ['data' => [
93+
'linkButton' => $formData['language']['linkButton'][$language->languageID]
94+
?? $language->get('dev.hanashi.wsdb.linkButton'),
95+
]]);
96+
$action->executeAction();
97+
}
9398
}
9499
}
95100
}

0 commit comments

Comments
 (0)