Skip to content
Snippets Groups Projects
Commit 4e29c4fd authored by Benni Mack's avatar Benni Mack
Browse files

[BUGFIX] Display correct message if slug suggestion is modified

If a user enters a slug proposal, which is already taken by
another page in the same site, the automatically modified
slug is now shown along with the corresponding message.

The actual functionality already existed, but was never used
due to a Bug in the AJAX response.

In addition, the label for the warning message does not have
the base / slug at the very end, so sprintf() must be used
AFTER htmlspecialchars().

Resolves: #93953
Releases: master, 10.4
Change-Id: I395c39788ff25fc1b8cefe78e07b609a4be36e2e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68832


Tested-by: default avatarOliver Bartsch <bo@cedev.de>
Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: default avatarWouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
parent 6cfec87e
Branches
Tags
No related merge requests found
......@@ -137,7 +137,7 @@ class FormSlugAjaxController extends AbstractFormEngineAjaxController
}
return new JsonResponse([
'hasConflicts' => !$mode && $hasConflict,
'hasConflicts' => $hasConflict,
'manual' => $values['manual'] ?? '',
'proposal' => $proposal,
]);
......
......@@ -106,8 +106,8 @@ class InputSlugElement extends AbstractFormElement
$toggleButtonTitle = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:buttons.toggleSlugExplanation');
$recreateButtonTitle = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:buttons.recreateSlugExplanation');
$successMessage = sprintf($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:slugCreation.success.' . ($table === 'pages' ? 'page' : 'record')), $baseUrl);
$errorMessage = sprintf($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:slugCreation.error'), $baseUrl);
$successMessage = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:slugCreation.success.' . ($table === 'pages' ? 'page' : 'record'));
$errorMessage = $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:slugCreation.error');
$thisSlugId = 't3js-form-field-slug-id' . StringUtility::getUniqueId();
$mainFieldHtml = [];
......@@ -158,8 +158,8 @@ class InputSlugElement extends AbstractFormElement
$mainFieldHtml[] = '</div>';
}
$mainFieldHtml[] = '<div class="form-wizards-items-bottom">';
$mainFieldHtml[] = '<span class="t3js-form-proposal-accepted hidden label label-success">' . htmlspecialchars($successMessage) . '<span>/abc/</span></span>';
$mainFieldHtml[] = '<span class="t3js-form-proposal-different hidden label label-warning">' . htmlspecialchars($errorMessage) . '<span>/abc/</span></span>';
$mainFieldHtml[] = '<span class="t3js-form-proposal-accepted hidden d-inline-block bg-success mt-2 p-1 ps-2 pe-2 lh-base">' . sprintf(htmlspecialchars($successMessage), '<samp class="text-nowrap">' . htmlspecialchars($baseUrl) . '<span class="fw-bold">/abc/</span></samp>') . '</span>';
$mainFieldHtml[] = '<span class="t3js-form-proposal-different hidden d-inline-block bg-warning mt-2 p-1 ps-2 pe-2 lh-base">' . sprintf(htmlspecialchars($errorMessage), '<samp class="text-nowrap">' . htmlspecialchars($baseUrl) . '<span class="fw-bold">/abc/</span></samp>') . '</span>';
$mainFieldHtml[] = $fieldWizardHtml;
$mainFieldHtml[] = '</div>';
$mainFieldHtml[] = '</div>';
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment