diff --git a/docs/modules/market_management/konzepte/market_management_hermes_mcp_api.md b/docs/modules/market_management/konzepte/market_management_hermes_mcp_api.md
index 4a61df8..aecaa80 100644
--- a/docs/modules/market_management/konzepte/market_management_hermes_mcp_api.md
+++ b/docs/modules/market_management/konzepte/market_management_hermes_mcp_api.md
@@ -47,8 +47,9 @@ Link: ]*>$/isu', $token, $matches)
- && market_management_is_allowed_document_url($matches[2])) {
+ && market_management_is_allowed_link_url($matches[2])) {
if ($anchorOpen) {
$result .= '';
}
$href = htmlspecialchars($matches[2], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
- $result .= '';
+ $result .= '';
$anchorOpen = true;
continue;
}
diff --git a/modules/shared/auth/ui/home.php b/modules/shared/auth/ui/home.php
index e0e9fbe..a9d3a05 100644
--- a/modules/shared/auth/ui/home.php
+++ b/modules/shared/auth/ui/home.php
@@ -1152,7 +1152,7 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $otcM
echo " const getCurrentLimit = () => parseInt(getTable()?.dataset.marketsLimit || '20', 10);";
echo " const getPageSize = () => parseInt(getTable()?.dataset.marketsPageSize || '20', 10);";
echo " const marketEscape = (value) => String(value ?? '').replace(/[&<>\"']/g, (character) => ({ '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": ''' }[character] || character));";
- echo " const marketDisplay = (value) => { if (value === null || value === undefined || value === '') { return 'Nicht hinterlegt'; } const escaped = marketEscape(value); const safeMarkup = escaped.replace(/<br>/g, '
').replace(/<strong>/g, '').replace(/<\\/strong>/g, '').replace(/<a class="sg-hyperlink" href="(https:\\/\\/erpnaurua\\.imhochrain\\.ch\\/files\\.php\\?path=[^"]+)" target="_blank" rel="noopener">/g, '').replace(/<\\/a>/g, ''); return safeMarkup.replace(/\\r?\\n/g, '
'); };";
+ echo " const marketDisplay = (value) => { if (value === null || value === undefined || value === '') { return 'Nicht hinterlegt'; } const escaped = marketEscape(value); const safeMarkup = escaped.replace(/<br>/g, '
').replace(/<strong>/g, '').replace(/<\\/strong>/g, '').replace(/<a class="sg-hyperlink" href="(https?:\\/\\/.*?)" target="_blank" rel="noopener noreferrer">/g, '').replace(/<\\/a>/g, ''); return safeMarkup.replace(/\\r?\\n/g, '
'); };";
echo " const marketBoolean = (value) => value === true || value === 'true' || value === 1 || value === '1' ? 'Ja' : value === false || value === 'false' || value === 0 || value === '0' ? 'Nein' : 'Nicht hinterlegt';";
echo " const marketMoney = (value) => value === null || value === undefined || value === '' ? 'Nicht hinterlegt' : 'CHF ' + Number(value).toFixed(2);";
echo " const marketContactName = (contact) => { if (!contact) { return 'Nicht hinterlegt'; } return marketDisplay([contact.first_name, contact.last_name].filter(Boolean).join(' ')); };";