2 declare(strict_types = 1);
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
34 use TYPO3Fluid\Fluid\View\ViewInterface;
69 $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
70 $this->moduleTemplate->getPageRenderer()->loadRequireJsModule(
'TYPO3/CMS/Backend/Modal');
71 $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
87 $this->moduleTemplate->setContent($this->view->render());
88 return new HtmlResponse($this->moduleTemplate->renderContent());
99 $redirectRepository = GeneralUtility::makeInstance(RedirectRepository::class, $demand);
100 $count = $redirectRepository->countRedirectsByByDemand();
102 $this->view->assignMultiple([
103 'redirects' => $redirectRepository->findRedirectsByDemand(),
104 'hosts' => $redirectRepository->findHostsOfRedirects(),
105 'statusCodes' => $redirectRepository->findStatusCodesOfRedirects(),
107 'defaultUrl' => GeneralUtility::makeInstance(UrlService::class)->getDefaultUrl(),
108 'showHitCounter' => GeneralUtility::makeInstance(Features::class)->isFeatureEnabled(
'redirects.hitCount'),
109 'pagination' => $this->preparePagination($demand, $count),
122 $numberOfPages = ceil($count / $demand->getLimit());
123 $endRecord = $demand->getOffset() + $demand->getLimit();
124 if ($endRecord > $count) {
129 'current' => $demand->getPage(),
130 'numberOfPages' => $numberOfPages,
131 'hasLessPages' => $demand->getPage() > 1,
132 'hasMorePages' => $demand->getPage() < $numberOfPages,
133 'startRecord' => $demand->getOffset() + 1,
134 'endRecord' => $endRecord
136 if ($pagination[
'current'] < $pagination[
'numberOfPages']) {
137 $pagination[
'nextPage'] = $pagination[
'current'] + 1;
139 if ($pagination[
'current'] > 1) {
140 $pagination[
'previousPage'] = $pagination[
'current'] - 1;
150 $this->view = GeneralUtility::makeInstance(StandaloneView::class);
151 $this->view->setTemplate($templateName);
152 $this->view->setTemplateRootPaths([
'EXT:redirects/Resources/Private/Templates/Management']);
153 $this->view->setPartialRootPaths([
'EXT:redirects/Resources/Private/Partials']);
154 $this->view->setLayoutRootPaths([
'EXT:redirects/Resources/Private/Layouts']);
163 $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
165 $buttonBar = $this->moduleTemplate->getDocHeaderComponent()->getButtonBar();
168 $newRecordButton = $buttonBar->makeLinkButton()
169 ->setHref((
string)$uriBuilder->buildUriFromRoute(
172 'edit' => [
'sys_redirect' => [
'new'],
174 'returnUrl' => (
string)$uriBuilder->buildUriFromRoute(
'site_redirects'),
182 $reloadButton = $buttonBar->makeLinkButton()
183 ->setHref(GeneralUtility::getIndpEnv(
'REQUEST_URI'))
184 ->setTitle($this->
getLanguageService()->sL(
'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.reload'))
190 if ($mayMakeShortcut) {
191 $getVars = [
'id',
'route'];
193 $shortcutButton = $buttonBar->makeShortcutButton()
194 ->setModuleName(
'site_redirects')
195 ->setGetVariables($getVars);