.. include:: /Includes.rst.txt .. _important-91123: =========================================================== Important: #91123 - Avoid using BackendUtility::viewOnClick =========================================================== See :issue:`91123` Description =========== :php:`BackendUtility::viewOnClick()` is not used anymore in TYPO3 core to reduce the amount of inline JavaScript being generated in the backend user interface. :php:`\TYPO3\CMS\Backend\Routing\PreviewUriBuilder` should be used instead. Probably :php:`BackendUtility::viewOnClick()` 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. .. code-block:: php $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 = '...'; Above code snipped can be migrated to the following, given that RequireJS module :js:`TYPO3/CMS/Backend/ActionDispatcher` is loaded (which basically is the case in most backend modules). .. code-block:: php $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 = '...'; Generated :php:`$attributes` can be used directly of course, the example above was used to actually show the result and existence of those new data-attributes. .. index:: Backend, PHP-API, FullyScanned, ext:backend