2 declare(strict_types = 1);
19 use Psr\Http\Message\ResponseInterface;
20 use Psr\Http\Message\ServerRequestInterface;
21 use Psr\Http\Server\MiddlewareInterface;
22 use Psr\Http\Server\RequestHandlerInterface;
44 public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
47 $config =
$GLOBALS[
'BE_USER']->getTSConfig()[
'admPanel.'] ?? [];
48 $active = (int)
$GLOBALS[
'TSFE']->displayEditIcons === 1 || (
int)
$GLOBALS[
'TSFE']->displayFieldEditIcons === 1;
50 if ($active && isset($config[
'enable.'])) {
51 foreach ($config[
'enable.'] as $value) {
53 $parameters = $request->getParsedBody()[
'TSFE_EDIT'] ?? $request->getQueryParams()[
'TSFE_EDIT'] ??
null;
57 $pageTSConfig =
$GLOBALS[
'TSFE']->getPagesTSconfig();
58 $controllerKey = $pageTSConfig[
'TSFE.'][
'frontendEditingController'] ??
'default';
60 $controllerKey =
'default';
63 $controllerClassName =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
't3lib/class.t3lib_tsfebeuserauth.php'][
'frontendEditingController'][$controllerKey] ?? \TYPO3\CMS\Core\FrontendEditing\FrontendEditingController::class;
64 if (!empty($controllerClassName)) {
66 $GLOBALS[
'BE_USER']->frontendEdit = GeneralUtility::makeInstance(
71 if ($isValidEditAction) {
72 GeneralUtility::makeInstance(FrontendEditDataHandler::class, $parameters)->editAction();
79 return $handler->handle($request);
90 if (!is_array($parameters)) {
93 if ($parameters[
'cancel']) {
94 unset($parameters[
'cmd']);
96 $cmd = (string)$parameters[
'cmd'];
97 if (($cmd !==
'edit' || is_array($parameters[
'data']) && ($parameters[
'doSave'] || $parameters[
'update'] || $parameters[
'update_close'])) && $cmd !==
'new') {