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:
+