diff --git a/wcfsetup/install/files/lib/system/form/option/SharedConfigurationFormFields.class.php b/wcfsetup/install/files/lib/system/form/option/SharedConfigurationFormFields.class.php index e0fcdd345a..395c66cc36 100644 --- a/wcfsetup/install/files/lib/system/form/option/SharedConfigurationFormFields.class.php +++ b/wcfsetup/install/files/lib/system/form/option/SharedConfigurationFormFields.class.php @@ -63,7 +63,11 @@ private function getDefaultFormFields(): array ->value(false), 'unit' => TextFormField::create('unit') ->label('wcf.form.option.shared.unit') - ->addFieldClass('short') + ->addFieldClass('short'), + 'urlLinkText' => TextFormField::create('urlLinkText') + ->label('wcf.form.option.shared.urlLinkText') + ->maximumLength(80) + ->minimumLength(2) ]; } diff --git a/wcfsetup/install/files/lib/system/form/option/UrlFormOption.class.php b/wcfsetup/install/files/lib/system/form/option/UrlFormOption.class.php index c598a4caed..b124fb644a 100644 --- a/wcfsetup/install/files/lib/system/form/option/UrlFormOption.class.php +++ b/wcfsetup/install/files/lib/system/form/option/UrlFormOption.class.php @@ -57,4 +57,10 @@ public function getDatabaseTableColumn(string $name): AbstractDatabaseTableColum { return TextDatabaseTableColumn::create($name); } + + #[\Override] + public function getConfigurationFormFields(): array + { + return ['urlLinkText']; + } } diff --git a/wcfsetup/install/files/lib/system/form/option/formatter/UrlFormatter.class.php b/wcfsetup/install/files/lib/system/form/option/formatter/UrlFormatter.class.php index 78f551d1da..2bccd32d5e 100644 --- a/wcfsetup/install/files/lib/system/form/option/formatter/UrlFormatter.class.php +++ b/wcfsetup/install/files/lib/system/form/option/formatter/UrlFormatter.class.php @@ -19,7 +19,12 @@ final class UrlFormatter implements IFormOptionFormatter #[\Override] public function format(string $value, int $languageID, array $configuration): string { - return StringUtil::getAnchorTag($value, $this->getTruncatedTitle($value), true, true); + return StringUtil::getAnchorTag( + $value, + !empty($configuration['urlLinkText']) ? $configuration['urlLinkText'] : $this->getTruncatedTitle($value), + true, + true + ); } private function getTruncatedTitle(string $href): string diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml index e6d6032612..d3983ae4c7 100644 --- a/wcfsetup/install/lang/de.xml +++ b/wcfsetup/install/lang/de.xml @@ -4166,6 +4166,7 @@ Dateianhänge: + diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml index 8a20743ee4..5b9e089c8a 100644 --- a/wcfsetup/install/lang/en.xml +++ b/wcfsetup/install/lang/en.xml @@ -4112,6 +4112,7 @@ Attachments: +