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;
use SGalinski\SgNews\Utility\BackendNewsUtility;
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
......@@ -52,18 +55,36 @@ class EditOnClickViewHelper extends AbstractViewHelper {
* @return string
*/
public function render(): string {
$table = $this->arguments['table'];
$uid = $this->arguments['uid'];
$new = $this->arguments['new'];
$type = $this->arguments['type'];
$additionalParameters = '';
if ($new && $table === 'pages' && in_array($type, ['news', 'category'], TRUE)) {
$additionalParameters = '&overrideVals[pages][doktype]=' .
($type === 'news' ? BackendNewsUtility::NEWS_DOKTYPE : BackendNewsUtility::CATEGORY_DOKTYPE);
$additionalParameters = [];
if ($this->arguments['new'] && $this->arguments['table'] === 'pages' && in_array($this->arguments['type'], ['news', 'category'], TRUE)) {
$additionalParameters = [
'overrideVals' =>
[
'pages' =>
[
'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