‪TYPO3CMS  10.4
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;
42 
48 {
49 
53  protected ‪$perms_clause;
54 
58  public ‪$modMenu_dontValidateList = '';
59 
63  public ‪$modMenu_setDefaultList = '';
64 
68  protected ‪$pageinfo = [];
69 
73  protected ‪$access = false;
74 
80  protected ‪$moduleName = 'web_ts';
81 
87  protected ‪$moduleTemplate;
88 
92  protected ‪$templateService;
93 
97  protected ‪$id;
98 
105  public ‪$MOD_MENU = [
106  'function' => []
107  ];
108 
114  public ‪$MOD_SETTINGS = [];
115 
121  protected ‪$modTSconfig;
122 
128  protected ‪$extClassConf;
129 
136  protected ‪$extObj;
137 
141  protected ‪$request;
142 
146  public function ‪__construct()
147  {
148  $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
149  $this->‪getLanguageService()->‪includeLLFile('EXT:tstemplate/Resources/Private/Language/locallang.xlf');
150  }
151 
157  protected function ‪generateMenu()
158  {
159  $menu = $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->makeMenu();
160  $menu->setIdentifier('WebFuncJumpMenu');
161  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
162  foreach ($this->MOD_MENU['function'] as $controller => $title) {
163  $item = $menu
164  ->makeMenuItem()
165  ->setHref(
166  (string)$uriBuilder->buildUriFromRoute(
167  $this->moduleName,
168  [
169  'id' => $this->id,
170  'SET' => [
171  'function' => $controller
172  ]
173  ]
174  )
175  )
176  ->setTitle($title);
177  if ($controller === $this->MOD_SETTINGS['function']) {
178  $item->setActive(true);
179  }
180  $menu->addMenuItem($item);
181  }
182  $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
183  }
184 
192  public function ‪mainAction(ServerRequestInterface ‪$request): ResponseInterface
193  {
194  $this->request = ‪$request;
195  $this->id = (int)(‪$request->getParsedBody()['id'] ?? ‪$request->getQueryParams()['id'] ?? 0);
196  $changedMenuSettings = ‪$request->getParsedBody()['SET'] ?? ‪$request->getQueryParams()['SET'] ?? [];
197  $changedMenuSettings = is_array($changedMenuSettings) ? $changedMenuSettings : [];
198  $this->‪menuConfig($changedMenuSettings);
199  // Loads $this->extClassConf with the configuration for the CURRENT function of the menu.
200  $this->extClassConf = $this->‪getExternalItemConfig('web_ts', 'function', $this->MOD_SETTINGS['function']);
201  $this->perms_clause = $this->‪getBackendUser()->‪getPagePermsClause(‪Permission::PAGE_SHOW);
202 
203  // Checking for first level external objects
204  $this->‪checkExtObj($changedMenuSettings, ‪$request);
205 
206  // Access check...
207  // The page will show only if there is a valid page and if this page may be viewed by the user
208  $this->pageinfo = ‪BackendUtility::readPageAccess($this->id, $this->perms_clause);
209  $this->access = is_array($this->pageinfo);
210  $view = $this->‪getFluidTemplateObject('tstemplate');
211  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
212  if ($this->id && $this->access) {
213  $urlParameters = [
214  'id' => ‪$this->id,
215  'template' => 'all'
216  ];
217  $aHref = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
218 
219  // JavaScript
220  $this->moduleTemplate->addJavaScriptCode(
221  'TSTemplateInlineJS',
222  'function uFormUrl(aname) {
223  document.forms[0].action = ' . GeneralUtility::quoteJSvalue($aHref . '#') . '+aname;
224  }
225  function brPoint(lnumber,t) {
226  window.location.href = '
227  . GeneralUtility::quoteJSvalue(
228  $aHref . '&SET[function]=TYPO3\\CMS\\Tstemplate\\Controller\\'
229  . 'TypoScriptTemplateObjectBrowserModuleFunctionController&SET[ts_browser_type]='
230  ) . '+(t?"setup":"const")+"&breakPointLN="+lnumber;
231  return false;
232  }
233  if (top.fsMod) top.fsMod.recentIds["web"] = ' . $this->id . ';'
234  );
235  $this->moduleTemplate->getPageRenderer()->addCssInlineBlock(
236  'TSTemplateInlineStyle',
237  'TABLE#typo3-objectBrowser { width: 100%; margin-bottom: 24px; }
238  TABLE#typo3-objectBrowser A { text-decoration: none; }
239  TABLE#typo3-objectBrowser .comment { color: maroon; font-weight: bold; }
240  .ts-typoscript { width: 100%; }
241  .tsob-search-submit {margin-left: 3px; margin-right: 3px;}
242  .tst-analyzer-options { margin:5px 0; }'
243  );
244  // Setting up the context sensitive menu:
245  $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ContextMenu');
246  // Build the module content
247  $view->assign('actionName', $aHref);
248  $view->assign('typoscriptTemplateModuleContent', $this->‪getExtObjContent());
249  // Setting up the buttons and markers for docheader
250  $this->‪getButtons();
251  $this->‪generateMenu();
252  } else {
253  $workspaceId = $this->‪getBackendUser()->workspace;
254  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
255  ->getQueryBuilderForTable('sys_template');
256  $queryBuilder->getRestrictions()
257  ->removeAll()
258  ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
260  $queryBuilder,
261  'sys_template',
262  $workspaceId
263  );
264  $result = $queryBuilder
265  ->select(
266  'uid',
267  'pid',
268  'title',
269  'sitetitle',
270  'root',
271  'hidden',
272  'starttime',
273  'endtime',
274  't3ver_oid',
275  't3ver_wsid',
276  't3ver_state',
277  't3ver_move_id'
278  )
279  ->from('sys_template')
280  ->orderBy('sys_template.pid')
281  ->addOrderBy('sys_template.sorting')
282  ->execute();
283  $pArray = [];
284  while ($record = $result->fetch()) {
285  ‪BackendUtility::workspaceOL('sys_template', $record, $workspaceId, true);
286  if (empty($record) || ‪VersionState::cast($record['t3ver_state'])->equals(‪VersionState::DELETE_PLACEHOLDER)) {
287  continue;
288  }
289  $additionalFieldsForRootline = ['sorting', 'shortcut'];
290  $rootline = ‪BackendUtility::BEgetRootLine($record['pid'], '', true, $additionalFieldsForRootline);
291  $this->‪setInPageArray($pArray, $rootline, $record);
292  }
293 
294  $view->getRenderingContext()->setControllerAction('PageZero');
295  $view->assign('pageTree', $pArray);
296 
297  // RENDER LIST of pages with templates, END
298  // Setting up the buttons and markers for docheader
299  $this->‪getButtons();
300  }
301  $this->moduleTemplate->setContent($view->render());
302  return new ‪HtmlResponse($this->moduleTemplate->renderContent());
303  }
304 
308  protected function ‪getButtons()
309  {
310  $buttonBar = $this->moduleTemplate->getDocHeaderComponent()->getButtonBar();
311  $lang = $this->‪getLanguageService();
312 
313  if ($this->id && $this->access) {
314  // View page
315  $viewButton = $buttonBar->makeLinkButton()
316  ->setHref('#')
317  ->setOnClick(‪BackendUtility::viewOnClick(
318  $this->pageinfo['uid'],
319  '',
320  ‪BackendUtility::BEgetRootLine($this->pageinfo['uid'])
321  ))
322  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.showPage'))
323  ->setIcon($this->moduleTemplate->getIconFactory()->getIcon('actions-view-page', ‪Icon::SIZE_SMALL));
324  $buttonBar->addButton($viewButton, ‪ButtonBar::BUTTON_POSITION_LEFT, 99);
325 
326  $sObj = $this->request->getParsedBody()['sObj'] ?? $this->request->getQueryParams()['sObj'] ?? null;
327  if ($this->extClassConf['name'] === TypoScriptTemplateInformationModuleFunctionController::class) {
328  // NEW button
329  $urlParameters = [
330  'id' => ‪$this->id,
331  'template' => 'all',
332  'createExtension' => 'new'
333  ];
334  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
335  $newButton = $buttonBar->makeLinkButton()
336  ->setHref((string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters))
337  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:db_new.php.pagetitle'))
338  ->setIcon($this->moduleTemplate->getIconFactory()->getIcon(
339  'actions-add',
341  ));
342  $buttonBar->addButton($newButton);
343  } elseif ($this->extClassConf['name'] === TypoScriptTemplateConstantEditorModuleFunctionController::class
344  && !empty($this->MOD_MENU['constant_editor_cat'])) {
345  // SAVE button
346  $saveButton = $buttonBar->makeInputButton()
347  ->setName('_savedok')
348  ->setValue('1')
349  ->setForm('TypoScriptTemplateModuleController')
350  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:rm.saveDoc'))
351  ->setIcon($this->moduleTemplate->getIconFactory()->getIcon(
352  'actions-document-save',
354  ))
355  ->setShowLabelText(true);
356  $buttonBar->addButton($saveButton);
357  } elseif ($this->extClassConf['name'] === TypoScriptTemplateObjectBrowserModuleFunctionController::class
358  && !empty($sObj)
359  ) {
360  // back button in edit mode of object browser. "sObj" is set by ExtendedTemplateService
361  $urlParameters = [
362  'id' => ‪$this->id
363  ];
364  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
365  $backButton = $buttonBar->makeLinkButton()
366  ->setHref((string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters))
367  ->setClasses('typo3-goBack')
368  ->setTitle($lang->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack'))
369  ->setIcon($this->moduleTemplate->getIconFactory()->getIcon(
370  'actions-view-go-back',
372  ));
373  $buttonBar->addButton($backButton);
374  }
375  }
376  // Shortcut
377  $shortcutButton = $buttonBar->makeShortcutButton()
378  ->setModuleName('web_ts')
379  ->setGetVariables(['id', 'route']);
380  $buttonBar->addButton($shortcutButton);
381  }
382 
390  public function ‪linkWrapTemplateTitle($title, $onlyKey = '')
391  {
392  $urlParameters = [
393  'id' => ‪$this->id
394  ];
395  if ($onlyKey) {
396  $urlParameters['e'] = [$onlyKey => 1];
397  } else {
398  $urlParameters['e'] = ['constants' => 1];
399  }
400  $urlParameters['SET'] = ['function' => TypoScriptTemplateInformationModuleFunctionController::class];
401  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
402  $url = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
403  return '<a href="' . htmlspecialchars($url) . '">' . htmlspecialchars($title) . '</a>';
404  }
405 
412  public function ‪noTemplate($newStandardTemplate = 0)
413  {
414  $this->templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
415 
416  $moduleContent = [];
417  $moduleContent['state'] = ‪InfoboxViewHelper::STATE_INFO;
418 
419  // New standard?
420  if ($newStandardTemplate) {
421  $selector = '';
422  $staticsText = '';
423  // Hook to change output, implemented for statictemplates
424  $hookObject = $this->‪getHookObjectForAction('newStandardTemplateView');
425  if (!empty($hookObject)) {
426  $reference = [
427  'selectorHtml' => &$selector,
428  'staticsText' => &$staticsText
429  ];
430  GeneralUtility::callUserFunction(
431  $hookObject,
432  $reference,
433  $this
434  );
435  $selector = $reference['selectorHtml'];
436  $staticsText = $reference['staticsText'];
437  }
438  // Extension?
439  $moduleContent['staticsText'] = $staticsText;
440  $moduleContent['selector'] = $selector;
441  }
442  // Go to previous Page with Template...
443  $previousPage = $this->templateService->ext_prevPageWithTemplate($this->id, $this->perms_clause);
444  if ($previousPage) {
445  $urlParameters = [
446  'id' => $previousPage['uid']
447  ];
448  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
449  $previousPage['aHref'] = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
450  $moduleContent['previousPage'] = $previousPage;
451  }
452  $view = $this->‪getFluidTemplateObject('tstemplate', 'NoTemplate');
453  $view->assign('content', $moduleContent);
454  return $view->render();
455  }
456 
463  public function ‪templateMenu(ServerRequestInterface ‪$request)
464  {
465  $this->templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
466 
467  $all = $this->templateService->ext_getAllTemplates($this->id);
468  if (count($all) > 1) {
469  $this->MOD_MENU['templatesOnPage'] = [];
470  foreach ($all as $d) {
471  $this->MOD_MENU['templatesOnPage'][$d['uid']] = $d['title'];
472  }
473  }
474  $this->MOD_SETTINGS = ‪BackendUtility::getModuleData(
475  $this->MOD_MENU,
476  ‪$request->getParsedBody()['SET'] ?? ‪$request->getQueryParams()['SET'] ?? [],
477  'web_ts',
478  '',
479  $this->modMenu_dontValidateList,
480  $this->modMenu_setDefaultList
481  );
483  $this->id,
484  'SET[templatesOnPage]',
485  $this->MOD_SETTINGS['templatesOnPage'],
486  $this->MOD_MENU['templatesOnPage']
487  );
488  }
489 
497  public function ‪createTemplate(‪$id, $actTemplateId = 0)
498  {
499  $recData = [];
500  $tce = GeneralUtility::makeInstance(DataHandler::class);
501 
502  if ($this->request->getParsedBody()['createExtension'] ?? $this->request->getQueryParams()['createExtension'] ?? false) {
503  $recData['sys_template']['NEW'] = [
504  'pid' => $actTemplateId ? -1 * $actTemplateId : ‪$id,
505  'title' => '+ext'
506  ];
507  $tce->start($recData, []);
508  $tce->process_datamap();
509  } elseif ($this->request->getParsedBody()['newWebsite'] ?? $this->request->getQueryParams()['newWebsite'] ?? false) {
510  // Hook to handle row data, implemented for statictemplates
511  $hookObject = $this->‪getHookObjectForAction('newStandardTemplateHandler');
512  if (!empty($hookObject)) {
513  $reference = [
514  'recData' => &$recData,
515  'id' => ‪$id,
516  ];
517  GeneralUtility::callUserFunction(
518  $hookObject,
519  $reference,
520  $this
521  );
522  $recData = $reference['recData'];
523  } else {
524  $recData['sys_template']['NEW'] = [
525  'pid' => ‪$id,
526  'title' => $this->‪getLanguageService()->‪getLL('titleNewSite'),
527  'sorting' => 0,
528  'root' => 1,
529  'clear' => 3,
530  'config' => '
531 # Default PAGE object:
532 page = PAGE
533 page.10 = TEXT
534 page.10.value = HELLO WORLD!
535 '
536  ];
537  }
538  $tce->start($recData, []);
539  $tce->process_datamap();
540  }
541  return $tce->substNEWwithIDs['NEW'];
542  }
543 
552  protected function ‪setInPageArray(&$pArray, $rlArr, $row)
553  {
554  ksort($rlArr);
555  reset($rlArr);
556  if (!$rlArr[0]['uid']) {
557  array_shift($rlArr);
558  }
559  $cEl = current($rlArr);
560  if (empty($pArray[$cEl['uid']])) {
561  $pArray[$cEl['uid']] = $cEl;
562  }
563  array_shift($rlArr);
564  if (!empty($rlArr)) {
565  if (empty($pArray[$cEl['uid']]['_nodes'])) {
566  $pArray[$cEl['uid']]['_nodes'] = [];
567  }
568  $this->‪setInPageArray($pArray[$cEl['uid']]['_nodes'], $rlArr, $row);
569  } else {
570  $pArray[$cEl['uid']]['_templates'][] = $row;
571  }
572  uasort($pArray, function ($a, $b) {
573  return $a['sorting'] - $b['sorting'];
574  });
575  }
576 
584  protected function ‪getFluidTemplateObject($extensionName, $templateName = 'Main')
585  {
586  $view = GeneralUtility::makeInstance(StandaloneView::class);
587  $view->getRenderingContext()->getTemplatePaths()->fillDefaultsByPackageName($extensionName);
588  $view->getRenderingContext()->setControllerAction($templateName);
589  $view->getRequest()->setControllerExtensionName('tstemplate');
590  return $view;
591  }
592 
601  protected function ‪applyWorkspaceConstraint(
602  ‪QueryBuilder $queryBuilder,
603  string $tableName,
604  int $workspaceId
605  ) {
607  return;
608  }
609 
610  $queryBuilder->‪getRestrictions()->‪add(
611  GeneralUtility::makeInstance(WorkspaceRestriction::class, $workspaceId)
612  );
613  }
614 
619  protected function ‪getHookObjectForAction($action)
620  {
621  if (!empty(‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class][$action])) {
622  return ‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class][$action];
623  }
624  return null;
625  }
626 
637  protected function ‪menuConfig($changedSettings)
638  {
639  // Page / user TSconfig settings and blinding of menu-items
640  $this->modTSconfig['properties'] = ‪BackendUtility::getPagesTSconfig($this->id)['mod.']['web_ts.'] ?? [];
641  $this->MOD_MENU['function'] = $this->‪mergeExternalItems('web_ts', 'function', $this->MOD_MENU['function']);
642  $blindActions = $this->modTSconfig['properties']['menu.']['function.'] ?? [];
643  foreach ($blindActions as $key => $value) {
644  if (!$value && array_key_exists($key, $this->MOD_MENU['function'])) {
645  unset($this->MOD_MENU['function'][$key]);
646  }
647  }
648  $this->MOD_SETTINGS = ‪BackendUtility::getModuleData($this->MOD_MENU, $changedSettings, 'web_ts', '', $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
649  }
650 
662  protected function ‪mergeExternalItems($modName, $menuKey, $menuArr)
663  {
664  $mergeArray = ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
665  if (is_array($mergeArray)) {
666  foreach ($mergeArray as $k => $v) {
667  if (((string)$v['ws'] === '' || $this->‪getBackendUser()->workspace === 0 && GeneralUtility::inList($v['ws'], 'online')) || $this->‪getBackendUser()->workspace === -1 && GeneralUtility::inList($v['ws'], 'offline') || $this->‪getBackendUser()->workspace > 0 && GeneralUtility::inList($v['ws'], 'custom')) {
668  $menuArr[$k] = $this->‪getLanguageService()->‪sL($v['title']);
669  }
670  }
671  }
672  return $menuArr;
673  }
674 
684  protected function ‪getExternalItemConfig($modName, $menuKey, $value = '')
685  {
686  if (isset(‪$GLOBALS['TBE_MODULES_EXT'][$modName])) {
687  return (string)$value !== ''
688  ? ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey][$value]
689  : ‪$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
690  }
691  return null;
692  }
693 
704  protected function ‪checkExtObj($changedSettings, ServerRequestInterface ‪$request)
705  {
706  if (is_array($this->extClassConf) && $this->extClassConf['name']) {
707  $this->extObj = GeneralUtility::makeInstance($this->extClassConf['name']);
708  $this->extObj->init($this, ‪$request);
709  // Re-write:
710  $this->MOD_SETTINGS = ‪BackendUtility::getModuleData($this->MOD_MENU, $changedSettings, 'web_ts', '', $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
711  }
712  }
713 
719  protected function ‪getExtObjContent()
720  {
721  // Calls the 'main' function inside the "Function menu module" if present
722  if ($this->extObj === null) {
723  $flashMessage = GeneralUtility::makeInstance(
724  FlashMessage::class,
725  $this->‪getLanguageService()->sL('LLL:EXT:backend/Resources/Private/Language/locallang.xlf:no_modules_registered'),
726  $this->‪getLanguageService()->getLL('title'),
728  );
729  $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
731  $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
732  $defaultFlashMessageQueue->enqueue($flashMessage);
733  } elseif (is_callable([$this->extObj, 'main'])) {
734  return $this->extObj->main();
735  }
736 
737  return null;
738  }
739 
744  protected function ‪getLanguageService(): ‪LanguageService
745  {
746  return ‪$GLOBALS['LANG'];
747  }
748 
753  protected function ‪getBackendUser(): ‪BackendUserAuthentication
754  {
755  return ‪$GLOBALS['BE_USER'];
756  }
757 
761  protected function ‪getPageRenderer(): PageRenderer
762  {
763  return GeneralUtility::makeInstance(PageRenderer::class);
764  }
765 }
‪TYPO3\CMS\Core\DataHandling\DataHandler
Definition: DataHandler.php:84
‪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:705
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getHookObjectForAction
‪string getHookObjectForAction($action)
Definition: TypoScriptTemplateModuleController.php:605
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\checkExtObj
‪checkExtObj($changedSettings, ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:690
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getPageRenderer
‪PageRenderer getPageRenderer()
Definition: TypoScriptTemplateModuleController.php:747
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\applyWorkspaceConstraint
‪applyWorkspaceConstraint(QueryBuilder $queryBuilder, string $tableName, int $workspaceId)
Definition: TypoScriptTemplateModuleController.php:587
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$MOD_MENU
‪array $MOD_MENU
Definition: TypoScriptTemplateModuleController.php:96
‪TYPO3\CMS\Core\Localization\LanguageService\includeLLFile
‪array includeLLFile($fileRef, $setGlobal=null, $mergeLocalOntoDefault=null)
Definition: LanguageService.php:297
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$MOD_SETTINGS
‪array $MOD_SETTINGS
Definition: TypoScriptTemplateModuleController.php:104
‪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\getFluidTemplateObject
‪StandaloneView getFluidTemplateObject($extensionName, $templateName='Main')
Definition: TypoScriptTemplateModuleController.php:570
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\noTemplate
‪string noTemplate($newStandardTemplate=0)
Definition: TypoScriptTemplateModuleController.php:398
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication\getPagePermsClause
‪string getPagePermsClause($perms)
Definition: BackendUserAuthentication.php:499
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$perms_clause
‪string $perms_clause
Definition: TypoScriptTemplateModuleController.php:52
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪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:670
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\__construct
‪__construct()
Definition: TypoScriptTemplateModuleController.php:132
‪TYPO3\CMS\Tstemplate\Controller
Definition: TemplateAnalyzerModuleFunctionController.php:16
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\templateMenu
‪string templateMenu(ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:449
‪TYPO3\CMS\Core\Database\Query\QueryBuilder\getRestrictions
‪QueryRestrictionContainerInterface getRestrictions()
Definition: QueryBuilder.php:104
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\linkWrapTemplateTitle
‪string linkWrapTemplateTitle($title, $onlyKey='')
Definition: TypoScriptTemplateModuleController.php:376
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\mainAction
‪ResponseInterface mainAction(ServerRequestInterface $request)
Definition: TypoScriptTemplateModuleController.php:178
‪TYPO3\CMS\Core\TypoScript\ExtendedTemplateService
Definition: ExtendedTemplateService.php:43
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$access
‪bool $access
Definition: TypoScriptTemplateModuleController.php:68
‪TYPO3\CMS\Core\Versioning\VersionState\DELETE_PLACEHOLDER
‪const DELETE_PLACEHOLDER
Definition: VersionState.php:55
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:194
‪TYPO3\CMS\Backend\Utility\BackendUtility\BEgetRootLine
‪static array BEgetRootLine($uid, $clause='', $workspaceOL=false, array $additionalFields=[])
Definition: BackendUtility.php:343
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$pageinfo
‪array $pageinfo
Definition: TypoScriptTemplateModuleController.php:64
‪TYPO3\CMS\Backend\Utility\BackendUtility\getFuncMenu
‪static string getFuncMenu( $mainParams, $elementName, $currentValue, $menuItems, $script='', $addParams='')
Definition: BackendUtility.php:2599
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\menuConfig
‪menuConfig($changedSettings)
Definition: TypoScriptTemplateModuleController.php:623
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:43
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:24
‪TYPO3\CMS\Core\Database\Query\QueryBuilder
Definition: QueryBuilder.php:52
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\setInPageArray
‪setInPageArray(&$pArray, $rlArr, $row)
Definition: TypoScriptTemplateModuleController.php:538
‪TYPO3\CMS\Backend\Utility\BackendUtility\isTableWorkspaceEnabled
‪static bool isTableWorkspaceEnabled($table)
Definition: BackendUtility.php:4021
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$extObj
‪object $extObj
Definition: TypoScriptTemplateModuleController.php:123
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$id
‪$id
Definition: TypoScriptTemplateModuleController.php:89
‪TYPO3\CMS\Core\Type\Enumeration\cast
‪static static cast($value)
Definition: Enumeration.php:186
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:42
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$templateService
‪ExtendedTemplateService $templateService
Definition: TypoScriptTemplateModuleController.php:84
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getBackendUser
‪BackendUserAuthentication getBackendUser()
Definition: TypoScriptTemplateModuleController.php:739
‪TYPO3\CMS\Backend\Routing\UriBuilder
Definition: UriBuilder.php:38
‪TYPO3\CMS\Backend\Utility\BackendUtility\getPagesTSconfig
‪static array getPagesTSconfig($id)
Definition: BackendUtility.php:698
‪TYPO3\CMS\Backend\Utility\BackendUtility\getModuleData
‪static array getModuleData( $MOD_MENU, $CHANGED_SETTINGS, $modName, $type='', $dontValidateList='', $setDefaultList='')
Definition: BackendUtility.php:2893
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController
Definition: TypoScriptTemplateModuleController.php:48
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$extClassConf
‪array $extClassConf
Definition: TypoScriptTemplateModuleController.php:116
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Core\Type\Bitmask\Permission\PAGE_SHOW
‪const PAGE_SHOW
Definition: Permission.php:33
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$moduleTemplate
‪ModuleTemplate $moduleTemplate
Definition: TypoScriptTemplateModuleController.php:80
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Core\Versioning\VersionState
Definition: VersionState.php:24
‪TYPO3\CMS\Backend\Utility\BackendUtility\readPageAccess
‪static array false readPageAccess($id, $perms_clause)
Definition: BackendUtility.php:597
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\createTemplate
‪string createTemplate($id, $actTemplateId=0)
Definition: TypoScriptTemplateModuleController.php:483
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modMenu_setDefaultList
‪string $modMenu_setDefaultList
Definition: TypoScriptTemplateModuleController.php:60
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getLanguageService
‪LanguageService getLanguageService()
Definition: TypoScriptTemplateModuleController.php:730
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$request
‪ServerRequestInterface $request
Definition: TypoScriptTemplateModuleController.php:127
‪TYPO3\CMS\Backend\Utility\BackendUtility\viewOnClick
‪static string viewOnClick( $pageUid, $backPath='', $rootLine=null, $anchorSection='', $alternativeUrl='', $additionalGetVars='', $switchFocus=true)
Definition: BackendUtility.php:2359
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\mergeExternalItems
‪array mergeExternalItems($modName, $menuKey, $menuArr)
Definition: TypoScriptTemplateModuleController.php:648
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:24
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:34
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modMenu_dontValidateList
‪string $modMenu_dontValidateList
Definition: TypoScriptTemplateModuleController.php:56
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$modTSconfig
‪array $modTSconfig
Definition: TypoScriptTemplateModuleController.php:110
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Backend\Utility\BackendUtility\workspaceOL
‪static workspaceOL($table, &$row, $wsid=-99, $unsetMovePointers=false)
Definition: BackendUtility.php:3586
‪TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction
Definition: DeletedRestriction.php:28
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\generateMenu
‪generateMenu()
Definition: TypoScriptTemplateModuleController.php:143
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\$moduleName
‪string $moduleName
Definition: TypoScriptTemplateModuleController.php:74
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\getButtons
‪getButtons()
Definition: TypoScriptTemplateModuleController.php:294
‪TYPO3\CMS\Fluid\ViewHelpers\Be\InfoboxViewHelper
Definition: InfoboxViewHelper.php:59
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\Core\Database\Query\Restriction\QueryRestrictionContainerInterface\add
‪QueryRestrictionContainerInterface add(QueryRestrictionInterface $restriction)
‪TYPO3\CMS\Core\Localization\LanguageService\getLL
‪string getLL($index)
Definition: LanguageService.php:154
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪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:39