Project

General

Profile

Actions

Story #103412

open

Make it possible again to open backend links in a new window

Added by Christian Buelter 2 months ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Backend API
Target version:
-
Start date:
2024-03-18
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Sprint Focus:

Description

As an editor I want to be able to open links in backend module in a new window or tab because I don't wan't to lose the original page when I open some kind of edit link.

More information

In TYPO3 11 it was possible to hold STRG and click on a link in backend modules and open the corresponding link in a new window. In TYPO3 12 the user get's redirected to the dashboard (or maybe the first module if the dashboard isn't installed). This is due to some parameters being removed to make the URLs shorter: https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.0/Feature-97096-Non-namespacedArgumentsInExtbaseBackendModules.html

Expected behavior

Link of backend modules can be opened in new windows or tabs when the user holds STRG and clicks the link.

Question: Is there a solution which will continue to work "in the long run", not only temporary fix as described below?

Temporary fix / Workaround

Enable feature toggle "enableNamespacedArgumentsForBackend"

https://docs.typo3.org/m/typo3/reference-typoscript/12.4/en-us/TopLevelObjects/Module.html#features-enablenamespacedargumentsforbackend

This only a temporary fix because that feature toggle is already deprecated. And this will also toggle change behaviour in other places like `FormViewHelper` and `RequestBuilder`.

Another (hacky) solution would be to overwrite the function `buildBackendUri` of `\TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder` and comment out these lines:

            // Build route identifier to the actually requested sub route (controller / action pair) - if any -
            // and unset corresponding arguments, because "enableNamespacedArgumentsForBackend" is turned off.

            // remove the following part for now as a temporary fix
            /*if ($routeIdentifier && isset($arguments['controller'], $arguments['action'])) {
                $routeIdentifier .= '.' . $arguments['controller'] . '_' . $arguments['action'];
                unset($arguments['controller'], $arguments['action']);
            }*/

No data to display

Actions

Also available in: Atom PDF