Skip to content
Snippets Groups Projects
Commit 30b8d715 authored by Kevin Ditscheid's avatar Kevin Ditscheid
Browse files

[TASK] Solve deprecated editOnClick usage

parent 140b7e14
No related branches found
No related tags found
1 merge request!25Feature upgrade to typo3 10
...@@ -28,7 +28,10 @@ namespace SGalinski\SgNews\ViewHelpers\Backend; ...@@ -28,7 +28,10 @@ namespace SGalinski\SgNews\ViewHelpers\Backend;
use SGalinski\SgNews\Utility\BackendNewsUtility; use SGalinski\SgNews\Utility\BackendNewsUtility;
use SGalinski\SgNews\ViewHelpers\AbstractViewHelper; use SGalinski\SgNews\ViewHelpers\AbstractViewHelper;
use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Routing\Exception\RouteNotFoundException;
use TYPO3\CMS\Backend\Routing\UriBuilder;
use TYPO3\CMS\Core\Utility\ArrayUtility;
use TYPO3\CMS\Core\Utility\GeneralUtility;
/** /**
* Class EditOnClickViewHelper * Class EditOnClickViewHelper
...@@ -52,18 +55,36 @@ class EditOnClickViewHelper extends AbstractViewHelper { ...@@ -52,18 +55,36 @@ class EditOnClickViewHelper extends AbstractViewHelper {
* @return string * @return string
*/ */
public function render(): string { public function render(): string {
$table = $this->arguments['table']; $additionalParameters = [];
$uid = $this->arguments['uid']; if ($this->arguments['new'] && $this->arguments['table'] === 'pages' && in_array($this->arguments['type'], ['news', 'category'], TRUE)) {
$new = $this->arguments['new']; $additionalParameters = [
$type = $this->arguments['type']; 'overrideVals' =>
$additionalParameters = ''; [
if ($new && $table === 'pages' && in_array($type, ['news', 'category'], TRUE)) { 'pages' =>
$additionalParameters = '&overrideVals[pages][doktype]=' . [
($type === 'news' ? BackendNewsUtility::NEWS_DOKTYPE : BackendNewsUtility::CATEGORY_DOKTYPE); 'doktype' => $this->arguments['type'] === 'news' ? BackendNewsUtility::NEWS_DOKTYPE : BackendNewsUtility::CATEGORY_DOKTYPE
]
]
];
}
$parameters = [
'edit' => [
$this->arguments['table'] => [
$this->arguments['uid'] => [
$this->arguments['new'] ? 'new' : 'edit'
]
]
],
'returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))
];
ArrayUtility::mergeRecursiveWithOverrule($parameters, $additionalParameters);
try {
return GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute(
'record_edit',
$parameters
);
} catch (RouteNotFoundException $exception) {
return '';
} }
return BackendUtility::editOnClick(
'&edit[' . $table . '][' . $uid . ']=' . ($new ? 'new' : 'edit') . $additionalParameters, '', -1
);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment