Important: #91123 - Avoid using BackendUtility::viewOnClick
See forge#91123
Description
Backend
is not used anymore in TYPO3 core to
reduce the amount of inline JavaScript being generated in the backend user
interface. \TYPO3\
should be
used instead.
Probably Backend
will be deprecated in TYPO3 v11
and finally removed in TYPO3 v12.0 - for TYPO3 v10 LTS it's still available.
The following example demonstrates how implementations can be adjusted to make use of the new functionality without using inline JavaScript.
$onclick = \TYPO3\CMS\Backend\Utility\BackendUtility::viewOnClick(
$pageId, $backPath, $rootLine, $section,
$viewUri, $getVars, $switchFocus
);
$serializedAttributes = \TYPO3\CMS\Core\Utility\GeneralUtility::implodeAttributes([
'href' => '#',
'onclick' => $onclick,
], true);
$html = '<a ' . $serializedAttributes . '>...</a>';
Above code snipped can be migrated to the following, given that RequireJS module
TYPO3/
is loaded (which basically is the case
in most backend modules).
$attributes = \TYPO3\CMS\Backend\Routing\PreviewUriBuilder::create($pageId, $viewUri)
->withRootLine($rootLine)
->withSection($section)
->withAdditionalQueryParameters($getVars)
->buildDispatcherDataAttributes([
\TYPO3\CMS\Backend\Routing\PreviewUriBuilder::OPTION_SWITCH_FOCUS => $switchFocus,
]);
$serializedAttributes = \TYPO3\CMS\Core\Utility\GeneralUtility::implodeAttributes([
'href' => '#',
'data-dispatch-action' => $attributes['data-dispatch-action'],
'data-dispatch-args' => $attributes['data-dispatch-args'],
], true);
$html = '<a ' . $serializedAttributes . '>...</a>';
Generated $attributes
can be used directly of course, the example above
was used to actually show the result and existence of those new data-attributes.