‪TYPO3CMS  11.5
TypoScriptTemplateModuleController.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
25 use TYPO3\CMS\Backend\Utility\BackendUtility;
28 use TYPO3\CMS\Core\Database\Query\QueryBuilder;
38 use TYPO3\CMS\Core\Page\PageRenderer;
40 use TYPO3\CMS\Core\TypoScript\ExtendedTemplateService;
45 
51 {
55  protected ‪$perms_clause;
56 
60  public ‪$modMenu_dontValidateList = '';
61 
65  public ‪$modMenu_setDefaultList = '';
66 
70  protected ‪$pageinfo = [];
71 
75  protected ‪$access = false;
76 
82  protected ‪$moduleName = 'web_ts';
83 
89  protected ‪$moduleTemplate;
90 
94  protected ‪$templateService;
95 
99  protected ‪$id;
100 
107  public ‪$MOD_MENU = [
108  'function' => [],
109  ];
110 
116  public ‪$MOD_SETTINGS = [];
117 
123  protected ‪$modTSconfig;
124 
130  protected ‪$extClassConf;
131 
138  protected ‪$extObj;
139 
143  protected ‪$request;
144 
146  protected PageRenderer ‪$pageRenderer;
147  protected ‪UriBuilder ‪$uriBuilder;
149 
150  public function ‪__construct(
152  PageRenderer ‪$pageRenderer,
155  ) {
156  $this->iconFactory = ‪$iconFactory;
157  $this->pageRenderer = ‪$pageRenderer;
158  $this->uriBuilder = ‪$uriBuilder;
159  $this->moduleTemplateFactory = ‪$moduleTemplateFactory;
160  }
161 
167  protected function ‪generateMenu()
168  {
169  $menu = $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->makeMenu();
170  $menu->setIdentifier('WebFuncJumpMenu');
171  foreach ($this->MOD_MENU['function'] as $controller => $title) {
172  $item = $menu
173  ->makeMenuItem()
174  ->setHref(
175  (string)$this->uriBuilder->buildUriFromRoute(
176  $this->moduleName,
177  [
178  'id' => $this->id,
179  'SET' => [
180  'function' => $controller,
181  ],
182  ]
183  )
184  )
185  ->setTitle($title);
186  if ($controller === $this->MOD_SETTINGS['function']) {
187  $item->setActive(true);
188  }
189  $menu->addMenuItem($item);
190  }
191  $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
192  }
193 
201  public function ‪mainAction(ServerRequestInterface ‪$request): ResponseInterface
202  {
203  $this->moduleTemplate = $this->moduleTemplateFactory->create(‪$request);
204  $this->‪getLanguageService()->‪includeLLFile('EXT:tstemplate/Resources/Private/Language/locallang.xlf');
205  $this->request = ‪$request;
206  $this->id = (int)(‪$request->getParsedBody()['id'] ?? ‪$request->getQueryParams()['id'] ?? 0);
207  $changedMenuSettings = ‪$request->getParsedBody()['SET'] ?? ‪$request->getQueryParams()['SET'] ?? [];
208  $changedMenuSettings = is_array($changedMenuSettings) ? $changedMenuSettings : [];
209  $this->‪menuConfig($changedMenuSettings);
210  // Loads $this->extClassConf with the configuration for the CURRENT function of the menu.
211  $this->extClassConf = $this->‪getExternalItemConfig('web_ts', 'function', $this->MOD_SETTINGS['function']);
212  $this->perms_clause = $this->‪getBackendUser()->‪getPagePermsClause(‪Permission::PAGE_SHOW);
213 
214  // Checking for first level external objects
215  $this->‪checkExtObj($changedMenuSettings, ‪$request);
216 
217  // Access check...
218  // The page will show only if there is a valid page and if this page may be viewed by the user
219  $this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause) ?: [];
220  $this->access = $this->pageinfo !== [];
221  $view = $this->‪getFluidTemplateObject('tstemplate');
222  if ($this->id && $this->access) {
223  // Setting up the context sensitive menu
224  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ContextMenu');
225  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Element/ImmediateActionElement');
226  // Build the module content
227  $view->assign('pageId', $this->id);
228  $view->assign('typoscriptTemplateModuleContent', $this->‪getExtObjContent());
229  // Setting up the buttons and markers for docheader
230  $this->‪getButtons();
231  $this->‪generateMenu();
232  } else {
233  $workspaceId = $this->‪getBackendUser()->workspace;
234  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
235  ->getQueryBuilderForTable('sys_template');
236  $queryBuilder->getRestrictions()
237  ->removeAll()
238  ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
240  $queryBuilder,
241  'sys_template',
242  $workspaceId
243  );
244  $result = $queryBuilder
245  ->select(
246  'uid',
247  'pid',
248  'title',
249  'root',
250  'hidden',
251  'starttime',
252  'endtime',
253  't3ver_oid',
254  't3ver_wsid',
255  't3ver_state'
256  )
257  ->from('sys_template')
258  ->orderBy('sys_template.pid')
259  ->addOrderBy('sys_template.sorting')
260  ->executeQuery();
261  $pArray = [];
262  while ($record = $result->fetchAssociative()) {
263  BackendUtility::workspaceOL('sys_template', $record, $workspaceId, true);
264  if (empty($record) || ‪VersionState::cast($record['t3ver_state'])->equals(‪VersionState::DELETE_PLACEHOLDER)) {
265  continue;
266  }
267  $additionalFieldsForRootline = ['sorting', 'shortcut'];
268  $rootline = BackendUtility::BEgetRootLine($record['pid'], '', true, $additionalFieldsForRootline);
269  if (empty($rootline)) {
270  continue;
271  }
272  $this->‪setInPageArray($pArray, $rootline, $record);
273  }
274 
275  $view->getRenderingContext()->setControllerAction('PageZero');
276  $view->assign('pageTree', $pArray);
277 
278  // RENDER LIST of pages with templates, END
279  // Setting up the buttons and markers for docheader
280  $this->‪getButtons();
281  }
282  $this->moduleTemplate->setContent($view->render());
283 
284  $this->moduleTemplate->setTitle(
285  $this->‪getLanguageService()->sL($this->extClassConf['title']),
286  $this->pageinfo['title'] ?? ''
287  );
288 
289  return new ‪HtmlResponse($this->moduleTemplate->renderContent());
290  }
291 
295  protected function ‪getButtons()
296  {
297  $buttonBar = $this->moduleTemplate->getDocHeaderComponent()->getButtonBar();
298  $lang = $this->‪getLanguageService();
299 
300  if ($this->id && $this->access) {
301  // View page
302  $previewDataAttributes = ‪PreviewUriBuilder::create((int)$this->pageinfo['uid'])
303  ->withRootLine(BackendUtility::BEgetRootLine($this->pageinfo['uid']))
304  ->buildDispatcherDataAttributes();
305  $viewButton = $buttonBar->makeLinkButton()
306  ->setHref('#')
307  ->setDataAttributes($previewDataAttributes ?? [])
308  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.showPage'))
309  ->setIcon($this->iconFactory->getIcon('actions-view-page', ‪Icon::SIZE_SMALL));
310  $buttonBar->addButton($viewButton, ‪ButtonBar::BUTTON_POSITION_LEFT, 99);
311 
312  $sObj = $this->request->getParsedBody()['sObj'] ?? $this->request->getQueryParams()['sObj'] ?? null;
313  if ($this->extClassConf['name'] === TypoScriptTemplateInformationModuleFunctionController::class) {
314  // NEW button
315  $urlParameters = [
316  'id' => ‪$this->id,
317  'template' => 'all',
318  'createExtension' => 'new',
319  ];
320  $newButton = $buttonBar->makeLinkButton()
321  ->setHref((string)$this->uriBuilder->buildUriFromRoute('web_ts', $urlParameters))
322  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:db_new.php.pagetitle'))
323  ->setIcon($this->iconFactory->getIcon('actions-add', ‪Icon::SIZE_SMALL));
324  $buttonBar->addButton($newButton);
325  } elseif ($this->extClassConf['name'] === TypoScriptTemplateConstantEditorModuleFunctionController::class
326  && !empty($this->MOD_MENU['constant_editor_cat'])) {
327  // SAVE button
328  $saveButton = $buttonBar->makeInputButton()
329  ->setName('_savedok')
330  ->setValue('1')
331  ->setForm('TypoScriptTemplateModuleController')
332  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:rm.saveDoc'))
333  ->setIcon($this->iconFactory->getIcon('actions-document-save', ‪Icon::SIZE_SMALL))
334  ->setShowLabelText(true);
335  $buttonBar->addButton($saveButton);
336  } elseif ($this->extClassConf['name'] === TypoScriptTemplateObjectBrowserModuleFunctionController::class
337  && !empty($sObj)
338  ) {
339  // back button in edit mode of object browser. "sObj" is set by ExtendedTemplateService
340  $urlParameters = [
341  'id' => ‪$this->id,
342  ];
343  $backButton = $buttonBar->makeLinkButton()
344  ->setHref((string)$this->uriBuilder->buildUriFromRoute('web_ts', $urlParameters))
345  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack'))
346  ->setIcon($this->iconFactory->getIcon('actions-view-go-back', ‪Icon::SIZE_SMALL));
347  $buttonBar->addButton($backButton);
348  }
349  }
350  // Shortcut
351  $shortcutButton = $buttonBar->makeShortcutButton()
352  ->setRouteIdentifier('web_ts')
353  ->setDisplayName($this->‪getShortcutTitle())
354  ->setArguments(['id' => (int)$this->id]);
355  $buttonBar->addButton($shortcutButton);
356  }
357 
365  public function ‪linkWrapTemplateTitle($title, $onlyKey = '')
366  {
367  $urlParameters = [
368  'id' => ‪$this->id,
369  ];
370  if ($onlyKey) {
371  $urlParameters['e'] = [$onlyKey => 1];
372  } else {
373  $urlParameters['e'] = ['constants' => 1];
374  }
375  $urlParameters['SET'] = ['function' => TypoScriptTemplateInformationModuleFunctionController::class];
376  $url = (string)$this->uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
377  return '<a href="' . htmlspecialchars($url) . '">' . htmlspecialchars($title) . '</a>';
378  }
379 
386  public function ‪noTemplate($newStandardTemplate = 0)
387  {
388  $this->templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
389 
390  $moduleContent = [];
391  $moduleContent['state'] = ‪InfoboxViewHelper::STATE_INFO;
392 
393  // New standard?
394  if ($newStandardTemplate) {
395  $selector = '';
396  $staticsText = '';
397  // Hook to change output, implemented for statictemplates
398  $hookObject = $this->‪getHookObjectForAction('newStandardTemplateView');
399  if (!empty($hookObject)) {
400  $reference = [
401  'selectorHtml' => &$selector,
402  'staticsText' => &$staticsText,
403  ];
404  GeneralUtility::callUserFunction(
405  $hookObject,
406  $reference,
407  $this
408  );
409  $selector = $reference['selectorHtml'];
410  $staticsText = $reference['staticsText'];
411  }
412  // Extension?
413  $moduleContent['staticsText'] = $staticsText;
414  $moduleContent['selector'] = $selector;
415  }
416  $view = $this->‪getFluidTemplateObject('tstemplate', 'NoTemplate');
417  // Go to previous Page with a template
418  $view->assign('previousPage', $this->templateService->ext_prevPageWithTemplate($this->id, $this->perms_clause));
419  $view->assign('content', $moduleContent);
420  return $view->render();
421  }
422 
429  public function ‪templateMenu(ServerRequestInterface ‪$request)
430  {
431  $this->templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
432 
433  $all = $this->templateService->ext_getAllTemplates($this->id);
434  if (count($all) > 1) {
435  $this->MOD_MENU['templatesOnPage'] = [];
436  foreach ($all as $d) {
437  $this->MOD_MENU['templatesOnPage'][$d['uid']] = $d['title'];
438  }
439  }
440  $this->MOD_SETTINGS = BackendUtility::getModuleData(
441  $this->MOD_MENU,
442  ‪$request->getParsedBody()['SET'] ?? ‪$request->getQueryParams()['SET'] ?? [],
443  'web_ts',
444  '',
445  $this->modMenu_dontValidateList,
446  $this->modMenu_setDefaultList
447  );
448  return BackendUtility::getFuncMenu(
449  $this->id,
450  'SET[templatesOnPage]',
451  $this->MOD_SETTINGS['templatesOnPage'] ?? '',
452  $this->MOD_MENU['templatesOnPage'] ?? []
453  );
454  }
455 
463  public function ‪createTemplate(‪$id, $actTemplateId = 0)
464  {
465  $recData = [];
466  $tce = GeneralUtility::makeInstance(DataHandler::class);
467 
468  if ($this->request->getParsedBody()['createExtension'] ?? $this->request->getQueryParams()['createExtension'] ?? false) {
469  $recData['sys_template']['NEW'] = [
470  'pid' => $actTemplateId ? -1 * $actTemplateId : ‪$id,
471  'title' => '+ext',
472  ];
473  $tce->start($recData, []);
474  $tce->process_datamap();
475  } elseif ($this->request->getParsedBody()['newWebsite'] ?? $this->request->getQueryParams()['newWebsite'] ?? false) {
476  // Hook to handle row data, implemented for statictemplates
477  $hookObject = $this->‪getHookObjectForAction('newStandardTemplateHandler');
478  if (!empty($hookObject)) {
479  $reference = [
480  'recData' => &$recData,
481  'id' => ‪$id,
482  ];
483  GeneralUtility::callUserFunction(
484  $hookObject,
485  $reference,
486  $this
487  );
488  $recData = $reference['recData'];
489  } else {
490  $recData['sys_template']['NEW'] = [
491  'pid' => ‪$id,
492  'title' => $this->‪getLanguageService()->‪getLL('titleNewSite'),
493  'sorting' => 0,
494  'root' => 1,
495  'clear' => 3,
496  'config' => '
497 # Default PAGE object:
498 page = PAGE
499 page.10 = TEXT
500 page.10.value = HELLO WORLD!
501 ',
502  ];
503  }
504  $tce->start($recData, []);
505  $tce->process_datamap();
506  }
507  return $tce->substNEWwithIDs['NEW'] ?? '';
508  }
509 
518  protected function ‪setInPageArray(&$pArray, $rlArr, $row)
519  {
520  ksort($rlArr);
521  reset($rlArr);
522  if (!$rlArr[0]['uid']) {
523  array_shift($rlArr);
524  }
525  $cEl = current($rlArr);
526  if (empty($pArray[$cEl['uid']])) {
527  $pArray[$cEl['uid']] = $cEl;
528  }
529  array_shift($rlArr);
530  if (!empty($rlArr)) {
531  if (empty($pArray[$cEl['uid']]['_nodes'])) {
532  $pArray[$cEl['uid']]['_nodes'] = [];
533  }
534  $this->‪setInPageArray($pArray[$cEl['uid']]['_nodes'], $rlArr, $row);
535  } else {
536  $pArray[$cEl['uid']]['_templates'][] = $row;
537  }
538  uasort($pArray, static function ($a, $b) {
539  return $a['sorting'] - $b['sorting'];
540  });
541  }
542 
550  protected function ‪getFluidTemplateObject($extensionName, $templateName = 'Main')
551  {
552  $view = GeneralUtility::makeInstance(StandaloneView::class);
553  $view->getRenderingContext()->getTemplatePaths()->fillDefaultsByPackageName($extensionName);
554  $view->getRenderingContext()->setControllerAction($templateName);
555  $view->getRequest()->setControllerExtensionName('tstemplate');
556  return $view;
557  }
558 
567  protected function ‪applyWorkspaceConstraint(
568  QueryBuilder $queryBuilder,
569  string $tableName,
570  int $workspaceId
571  ) {
572  if (!BackendUtility::isTableWorkspaceEnabled($tableName)) {
573  return;
574  }
575 
576  $queryBuilder->getRestrictions()->add(
577  GeneralUtility::makeInstance(WorkspaceRestriction::class, $workspaceId)
578  );
579  }
580 
585  protected function ‪getHookObjectForAction(string $action): string
586  {
587  return (string)(‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class][$action] ?? '');
588  }
589 
600  protected function ‪menuConfig($changedSettings)
601  {
602  // Page / user TSconfig settings and blinding of menu-items
603  $this->modTSconfig['properties'] = BackendUtility::getPagesTSconfig($this->id)['mod.']['web_ts.'] ?? [];
604  $this->MOD_MENU['function'] = $this->‪mergeExternalItems('web_ts', 'function', $this->MOD_MENU['function']);
605  $blindActions = $this->modTSconfig['properties']['menu.']['function.'] ?? [];
606  foreach ($blindActions as $key => $value) {
607  if (!$value && array_key_exists($key, $this->MOD_MENU['function'])) {
608  unset($this->MOD_MENU['function'][$key]);
609  }
610  }
611  $this->MOD_SETTINGS = BackendUtility::getModuleData($this->MOD_MENU, $changedSettings, 'web_ts', '', $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
612  }
613 
625  protected function ‪mergeExternalItems($modName, $menuKey, $menuArr)
626  {
627  $mergeArray = ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
628  if (is_array($mergeArray)) {
629  foreach ($mergeArray as $k => $v) {
630  if (((string)$v['ws'] === '' || ($this->‪getBackendUser()->workspace === 0 && GeneralUtility::inList($v['ws'], 'online')))
631  || ($this->‪getBackendUser()->workspace > 0 && GeneralUtility::inList($v['ws'], 'custom'))
632  ) {
633  $menuArr[$k] = $this->‪getLanguageService()->‪sL($v['title']);
634  }
635  }
636  }
637  return $menuArr;
638  }
639 
649  protected function ‪getExternalItemConfig($modName, $menuKey, $value = '')
650  {
651  if (isset(‪$GLOBALS['TBE_MODULES_EXT'][$modName])) {
652  return (string)$value !== ''
653  ? ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey][$value]
654  : ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
655  }
656  return null;
657  }
658 
669  protected function ‪checkExtObj($changedSettings, ServerRequestInterface ‪$request)
670  {
671  if (is_array($this->extClassConf) && $this->extClassConf['name']) {
672  $this->extObj = GeneralUtility::makeInstance($this->extClassConf['name']);
673  $this->extObj->init($this, ‪$request);
674  // Re-write:
675  $this->MOD_SETTINGS = BackendUtility::getModuleData($this->MOD_MENU, $changedSettings, 'web_ts', '', $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
676  }
677  }
678 
684  protected function ‪getExtObjContent()
685  {
686  // Calls the 'main' function inside the "Function menu module" if present
687  if ($this->extObj === null) {
688  $flashMessage = GeneralUtility::makeInstance(
689  FlashMessage::class,
690  $this->‪getLanguageService()->sL('LLL:EXT:backend/Resources/Private/Language/locallang.xlf:no_modules_registered'),
691  $this->‪getLanguageService()->getLL('title'),
693  );
694  $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
695  $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
696  $defaultFlashMessageQueue->enqueue($flashMessage);
697  } elseif (is_callable([$this->extObj, 'main'])) {
698  return $this->extObj->main();
699  }
700 
701  return null;
702  }
703 
709  protected function ‪getShortcutTitle(): string
710  {
711  return sprintf(
712  '%s: %s [%d]',
713  $this->‪getLanguageService()->sL('LLL:EXT:tstemplate/Resources/Private/Language/locallang_mod.xlf:mlang_labels_tablabel'),
714  BackendUtility::getRecordTitle('pages', $this->pageinfo),
715  $this->id
716  );
717  }
718 
723  protected function ‪getLanguageService(): ‪LanguageService
724  {
725  return ‪$GLOBALS['LANG'];
726  }
727 
732  protected function ‪getBackendUser(): ‪BackendUserAuthentication
733  {
734  return ‪$GLOBALS['BE_USER'];
735  }
736 }
‪TYPO3\CMS\Core\DataHandling\DataHandler
Definition: DataHandler.php:86
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getExtObjContent
‪string null getExtObjContent()
Definition: TypoScriptTemplateModuleController.php:670
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\checkExtObj
‪checkExtObj($changedSettings, ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:655
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getShortcutTitle
‪string getShortcutTitle()
Definition: TypoScriptTemplateModuleController.php:695
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\applyWorkspaceConstraint
‪applyWorkspaceConstraint(QueryBuilder $queryBuilder, string $tableName, int $workspaceId)
Definition: TypoScriptTemplateModuleController.php:553
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$MOD_MENU
‪array $MOD_MENU
Definition: TypoScriptTemplateModuleController.php:98
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$MOD_SETTINGS
‪array $MOD_SETTINGS
Definition: TypoScriptTemplateModuleController.php:106
‪TYPO3\CMS\Backend\Template\Components\ButtonBar\BUTTON_POSITION_LEFT
‪const BUTTON_POSITION_LEFT
Definition: ButtonBar.php:36
‪TYPO3\CMS\Backend\Template\Components\ButtonBar
Definition: ButtonBar.php:32
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$moduleTemplateFactory
‪ModuleTemplateFactory $moduleTemplateFactory
Definition: TypoScriptTemplateModuleController.php:134
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getFluidTemplateObject
‪StandaloneView getFluidTemplateObject($extensionName, $templateName='Main')
Definition: TypoScriptTemplateModuleController.php:536
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\noTemplate
‪string noTemplate($newStandardTemplate=0)
Definition: TypoScriptTemplateModuleController.php:372
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication\getPagePermsClause
‪string getPagePermsClause($perms)
Definition: BackendUserAuthentication.php:460
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$perms_clause
‪string $perms_clause
Definition: TypoScriptTemplateModuleController.php:54
‪TYPO3\CMS\Backend\Routing\PreviewUriBuilder\create
‪static static create(int $pageId, string $alternativeUri=null)
Definition: PreviewUriBuilder.php:75
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪TYPO3\CMS\Backend\Template\ModuleTemplateFactory
Definition: ModuleTemplateFactory.php:29
‪TYPO3\CMS\Fluid\ViewHelpers\Be\InfoboxViewHelper\STATE_INFO
‪const STATE_INFO
Definition: InfoboxViewHelper.php:62
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getExternalItemConfig
‪mixed getExternalItemConfig($modName, $menuKey, $value='')
Definition: TypoScriptTemplateModuleController.php:635
‪TYPO3\CMS\Tstemplate\Controller
Definition: TemplateAnalyzerModuleFunctionController.php:16
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\templateMenu
‪string templateMenu(ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:415
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\linkWrapTemplateTitle
‪string linkWrapTemplateTitle($title, $onlyKey='')
Definition: TypoScriptTemplateModuleController.php:351
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\mainAction
‪ResponseInterface mainAction(ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:187
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$access
‪bool $access
Definition: TypoScriptTemplateModuleController.php:70
‪TYPO3\CMS\Core\Versioning\VersionState\DELETE_PLACEHOLDER
‪const DELETE_PLACEHOLDER
Definition: VersionState.php:61
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:161
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$pageinfo
‪array $pageinfo
Definition: TypoScriptTemplateModuleController.php:66
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\menuConfig
‪menuConfig($changedSettings)
Definition: TypoScriptTemplateModuleController.php:586
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:46
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:26
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$iconFactory
‪IconFactory $iconFactory
Definition: TypoScriptTemplateModuleController.php:131
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\setInPageArray
‪setInPageArray(&$pArray, $rlArr, $row)
Definition: TypoScriptTemplateModuleController.php:504
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$uriBuilder
‪UriBuilder $uriBuilder
Definition: TypoScriptTemplateModuleController.php:133
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$extObj
‪object $extObj
Definition: TypoScriptTemplateModuleController.php:125
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$id
‪$id
Definition: TypoScriptTemplateModuleController.php:91
‪TYPO3\CMS\Core\Type\Enumeration\cast
‪static static cast($value)
Definition: Enumeration.php:186
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$pageRenderer
‪PageRenderer $pageRenderer
Definition: TypoScriptTemplateModuleController.php:132
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$templateService
‪ExtendedTemplateService $templateService
Definition: TypoScriptTemplateModuleController.php:86
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getBackendUser
‪BackendUserAuthentication getBackendUser()
Definition: TypoScriptTemplateModuleController.php:718
‪TYPO3\CMS\Backend\Routing\UriBuilder
Definition: UriBuilder.php:40
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getHookObjectForAction
‪string getHookObjectForAction(string $action)
Definition: TypoScriptTemplateModuleController.php:571
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController
Definition: TypoScriptTemplateModuleController.php:51
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$extClassConf
‪array $extClassConf
Definition: TypoScriptTemplateModuleController.php:118
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Core\Type\Bitmask\Permission\PAGE_SHOW
‪const PAGE_SHOW
Definition: Permission.php:35
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$moduleTemplate
‪ModuleTemplate $moduleTemplate
Definition: TypoScriptTemplateModuleController.php:82
‪TYPO3\CMS\Core\Versioning\VersionState
Definition: VersionState.php:24
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\createTemplate
‪string createTemplate($id, $actTemplateId=0)
Definition: TypoScriptTemplateModuleController.php:449
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modMenu_setDefaultList
‪string $modMenu_setDefaultList
Definition: TypoScriptTemplateModuleController.php:62
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getLanguageService
‪LanguageService getLanguageService()
Definition: TypoScriptTemplateModuleController.php:709
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$request
‪ServerRequestInterface $request
Definition: TypoScriptTemplateModuleController.php:129
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\mergeExternalItems
‪array mergeExternalItems($modName, $menuKey, $menuArr)
Definition: TypoScriptTemplateModuleController.php:611
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:26
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modMenu_dontValidateList
‪string $modMenu_dontValidateList
Definition: TypoScriptTemplateModuleController.php:58
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modTSconfig
‪array $modTSconfig
Definition: TypoScriptTemplateModuleController.php:112
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\__construct
‪__construct(IconFactory $iconFactory, PageRenderer $pageRenderer, UriBuilder $uriBuilder, ModuleTemplateFactory $moduleTemplateFactory)
Definition: TypoScriptTemplateModuleController.php:136
‪TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction
Definition: DeletedRestriction.php:28
‪TYPO3\CMS\Backend\Routing\PreviewUriBuilder
Definition: PreviewUriBuilder.php:32
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\generateMenu
‪generateMenu()
Definition: TypoScriptTemplateModuleController.php:153
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$moduleName
‪string $moduleName
Definition: TypoScriptTemplateModuleController.php:76
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getButtons
‪getButtons()
Definition: TypoScriptTemplateModuleController.php:281
‪TYPO3\CMS\Fluid\ViewHelpers\Be\InfoboxViewHelper
Definition: InfoboxViewHelper.php:59
‪TYPO3\CMS\Core\Localization\LanguageService\includeLLFile
‪array includeLLFile($fileRef)
Definition: LanguageService.php:271
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\Core\Localization\LanguageService\getLL
‪string getLL($index)
Definition: LanguageService.php:121
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Messaging\FlashMessageService
Definition: FlashMessageService.php:27
‪TYPO3\CMS\Core\Messaging\AbstractMessage\ERROR
‪const ERROR
Definition: AbstractMessage.php:31
‪TYPO3\CMS\Core\Http\HtmlResponse
Definition: HtmlResponse.php:26
‪TYPO3\CMS\Core\Database\Query\Restriction\WorkspaceRestriction
Definition: WorkspaceRestriction.php:40