‪TYPO3CMS  11.5
ModuleTemplate.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\ServerRequestInterface;
23 use TYPO3\CMS\Backend\Utility\BackendUtility;
33 use TYPO3\CMS\Core\Page\PageRenderer;
39 use TYPO3Fluid\Fluid\View\ViewInterface;
40 
46 {
52  protected ‪$docHeaderComponent;
53 
61  protected ‪$javascriptCodeArray = [];
62 
68  protected ‪$pageRenderer;
69 
73  protected ‪$uiBlock = false;
74 
80  protected ‪$templateRootPaths = ['EXT:backend/Resources/Private/Templates'];
81 
87  protected ‪$partialRootPaths = ['EXT:backend/Resources/Private/Partials'];
88 
94  protected ‪$layoutRootPaths = ['EXT:backend/Resources/Private/Layouts'];
95 
101  protected ‪$templateFile = 'Module.html';
102 
108  protected ‪$view;
109 
115  protected ‪$content = '';
116 
119  protected ServerRequestInterface ‪$request;
120 
126  protected ‪$moduleId = '';
127 
133  protected ‪$moduleName = '';
134 
140  protected ‪$moduleClass = '';
141 
147  protected ‪$title = '';
148 
154  protected ‪$bodyTag = '<body>';
155 
161  public function ‪getBodyTag()
162  {
163  return ‪$this->bodyTag;
164  }
165 
172  public function ‪setBodyTag(‪$bodyTag): self
173  {
174  $this->bodyTag = ‪$bodyTag;
175  return $this;
176  }
177 
183  public function ‪getView()
184  {
185  return ‪$this->view;
186  }
187 
194  public function ‪setContent(‪$content): self
195  {
196  $this->view->assign('content', ‪$content);
197  return $this;
198  }
199 
207  public function ‪setTitle(‪$title, $context = ''): self
208  {
209  $titleComponents = [
210  ‪$title,
211  ];
212  if ($context !== '') {
213  $titleComponents[] = $context;
214  }
215  $this->title = implode(' ยท ', $titleComponents);
216  return $this;
217  }
218 
222  public function ‪getIconFactory(): ‪IconFactory
223  {
224  trigger_error(
225  'Method ' . __METHOD__ . ' is deprecated and will be removed in TYPO3 12.0. Inject the service directly instead.',
226  E_USER_DEPRECATED
227  );
228  return ‪$this->iconFactory;
229  }
230 
241  public function ‪__construct(
242  PageRenderer ‪$pageRenderer,
244  ‪FlashMessageService $flashMessageService,
245  ServerRequestInterface ‪$request = null,
246  ViewInterface ‪$view = null
247  ) {
248  $this->pageRenderer = ‪$pageRenderer;
249  $this->iconFactory = ‪$iconFactory;
250  $this->flashMessageQueue = $flashMessageService->‪getMessageQueueByIdentifier();
251  // @todo: Make $request argument non-optional in v12.
252  $this->request = ‪$request ?? ‪$GLOBALS['TYPO3_REQUEST'];
253 
254  $currentRoute = $this->request->getAttribute('route');
255  if ($currentRoute instanceof ‪Route) {
256  if ($currentRoute->hasOption('module') && $currentRoute->getOption('module')) {
257  $moduleConfiguration = $currentRoute->getOption('moduleConfiguration');
258  if ($moduleConfiguration['name']) {
259  $this->‪setModuleName($moduleConfiguration['name']);
260  }
261  } else {
262  $this->‪setModuleName($currentRoute->getOption('_identifier'));
263  }
264  }
265  if (‪$view === null) {
266  $this->view = GeneralUtility::makeInstance(StandaloneView::class);
267  $this->view->setPartialRootPaths($this->partialRootPaths);
268  $this->view->setTemplateRootPaths($this->templateRootPaths);
269  $this->view->setLayoutRootPaths($this->layoutRootPaths);
270  $this->view->setTemplate($this->templateFile);
271  } else {
272  $this->view = ‪$view;
273  }
274  $this->docHeaderComponent = GeneralUtility::makeInstance(DocHeaderComponent::class);
275  $this->‪setupPage();
276  $this->‪loadJavaScripts();
277  $this->‪loadStylesheets();
278  }
279 
283  protected function ‪loadJavaScripts()
284  {
285  $this->pageRenderer->loadRequireJsModule('bootstrap');
286 
287  if ($this->‪getBackendUserAuthentication() && !empty($this->‪getBackendUserAuthentication()->user)) {
288  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ContextHelp');
289  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/DocumentHeader');
290  }
291  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/GlobalEventHandler');
292  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ActionDispatcher');
293  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Element/ImmediateActionElement');
294  }
295 
299  protected function ‪loadStylesheets()
300  {
301  if (!empty(‪$GLOBALS['TBE_STYLES']['stylesheet'])) {
302  $this->pageRenderer->addCssFile(‪$GLOBALS['TBE_STYLES']['stylesheet']);
303  }
304  if (!empty(‪$GLOBALS['TBE_STYLES']['stylesheet2'])) {
305  $this->pageRenderer->addCssFile(‪$GLOBALS['TBE_STYLES']['stylesheet2']);
306  }
307  // Add all *.css files of the directory $path to the stylesheets
308  foreach ($this->‪getRegisteredStylesheetFolders() as $folder) {
309  // Read all files in directory and sort them alphabetically
310  foreach (GeneralUtility::getFilesInDir($folder, 'css', true) as $cssFile) {
311  $this->pageRenderer->addCssFile($cssFile);
312  }
313  }
314  }
315 
319  protected function ‪getRegisteredStylesheetFolders(): array
320  {
321  $stylesheetDirectories = [];
322  foreach (‪$GLOBALS['TBE_STYLES']['skins'] ?? [] as $skin) {
323  foreach ($skin['stylesheetDirectories'] ?? [] as $stylesheetDir) {
324  $directory = GeneralUtility::getFileAbsFileName($stylesheetDir);
325  if (!empty($directory)) {
326  $stylesheetDirectories[] = $directory;
327  }
328  }
329  }
330  return $stylesheetDirectories;
331  }
332 
336  protected function ‪setupPage()
337  {
338  // Yes, hardcoded on purpose
339  $this->pageRenderer->setXmlPrologAndDocType('<!DOCTYPE html>');
340  $this->pageRenderer->setCharSet('utf-8');
341  $this->pageRenderer->setLanguage($this->‪getLanguageService()->lang);
342  $this->pageRenderer->setMetaTag('name', 'viewport', 'width=device-width, initial-scale=1');
343  $this->pageRenderer->setFavIcon($this->‪getBackendFavicon());
344  $this->pageRenderer->disableConcatenateCss();
345  $this->pageRenderer->disableConcatenateJavascript();
346  $this->pageRenderer->disableCompressCss();
347  $this->pageRenderer->disableCompressJavascript();
348  $languageCode = $this->pageRenderer->getLanguage() === 'default' ? 'en' : $this->pageRenderer->getLanguage();
349  $this->pageRenderer->setHtmlTag('<html lang="' . htmlspecialchars($languageCode) . '">');
350  if (‪$GLOBALS['TYPO3_CONF_VARS']['BE']['debug']) {
351  $this->pageRenderer->enableDebugMode();
352  }
353  }
354 
359  protected function ‪setJavaScriptCodeArray()
360  {
361  foreach ($this->javascriptCodeArray as $name => $code) {
362  $this->pageRenderer->addJsInlineCode($name, $code, false);
363  }
364  }
365 
374  public function ‪addJavaScriptCode($name = '', $code = ''): self
375  {
376  $this->javascriptCodeArray[$name] = $code;
377  return $this;
378  }
379 
385  public function ‪getDocHeaderComponent()
386  {
388  }
389 
395  public function ‪renderContent()
396  {
397  $this->‪setJavaScriptCodeArray();
398  $this->pageRenderer->setTitle($this->title);
399 
400  $this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent());
401  if ($this->moduleId) {
402  $this->view->assign('moduleId', $this->moduleId);
403  }
404  if ($this->moduleName) {
405  $this->view->assign('moduleName', $this->moduleName);
406  }
407  if ($this->moduleClass) {
408  $this->view->assign('moduleClass', $this->moduleClass);
409  }
410  $this->view->assign('uiBlock', $this->uiBlock);
411  $this->view->assign('flashMessageQueueIdentifier', $this->flashMessageQueue->getIdentifier());
412  $this->pageRenderer->addBodyContent($this->bodyTag . $this->view->render());
413 
414  $updateSignalDetails = BackendUtility::getUpdateSignalDetails();
415  if (!empty($updateSignalDetails['html'])) {
416  $this->pageRenderer->addHeaderData(
417  implode("\n", $updateSignalDetails['html'])
418  );
419  }
420  // @todo deprecate inline JavaScript in TYPO3 v12.0
421  if (!empty($updateSignalDetails['script'])) {
422  $this->pageRenderer->addJsFooterInlineCode(
423  'updateSignals',
424  implode("\n", $updateSignalDetails['script'])
425  );
426  }
427  return $this->pageRenderer->render();
428  }
429 
433  public function ‪getPageRenderer(): PageRenderer
434  {
435  trigger_error(
436  'Method ' . __METHOD__ . ' is deprecated and will be removed in TYPO3 12.0. Inject the service directly instead.',
437  E_USER_DEPRECATED
438  );
439  return ‪$this->pageRenderer;
440  }
441 
448  public function ‪setForm($formTag = ''): self
449  {
450  $this->view->assign('formTag', $formTag);
451  return $this;
452  }
453 
460  public function ‪setModuleId(‪$moduleId): self
461  {
462  $this->moduleId = ‪$moduleId;
464  return $this;
465  }
466 
473  public function ‪setModuleName(‪$moduleName): self
474  {
475  $this->moduleName = ‪$moduleName;
476  return $this;
477  }
478 
485  public function ‪setModuleClass(‪$moduleClass): self
486  {
487  $this->moduleClass = ‪$moduleClass;
488  return $this;
489  }
490 
497  public function ‪registerModuleMenu($moduleMenuIdentifier): self
498  {
499  if (isset(‪$GLOBALS['TBE_MODULES_EXT'][$moduleMenuIdentifier])) {
500  $menuEntries =
501  ‪$GLOBALS['TBE_MODULES_EXT'][$moduleMenuIdentifier]['MOD_MENU']['function'];
502  $menu = $this->‪getDocHeaderComponent()->‪getMenuRegistry()->‪makeMenu()->‪setIdentifier('MOD_FUNC');
503  foreach ($menuEntries as $menuEntry) {
504  $menuItem = $menu->‪makeMenuItem()
505  ->‪setTitle($menuEntry['title'])
506  ->setHref('#');
507  $menu->addMenuItem($menuItem);
508  }
509  $this->docHeaderComponent->getMenuRegistry()->addMenu($menu);
510  }
511  return $this;
512  }
513 
531  public function ‪getDynamicTabMenu(array $menuItems, $domId, $defaultTabIndex = 1, $collapsible = false, $wrapContent = true, $storeLastActiveTab = true)
532  {
533  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Tabs');
534  $templatePath = ‪ExtensionManagementUtility::extPath('backend')
535  . 'Resources/Private/Templates/DocumentTemplate/';
536  ‪$view = GeneralUtility::makeInstance(StandaloneView::class);
537  ‪$view->setTemplatePathAndFilename($templatePath . ($collapsible ? 'Collapse.html' : 'Tabs.html'));
538  ‪$view->setPartialRootPaths([$templatePath . 'Partials']);
539  ‪$view->assignMultiple([
540  'id' => 'DTM-' . md5($domId),
541  'items' => $menuItems,
542  'defaultTabIndex' => $defaultTabIndex,
543  'wrapContent' => $wrapContent,
544  'storeLastActiveTab' => $storeLastActiveTab,
545  ]);
546  return ‪$view->render();
547  }
548 
549  /*******************************************
550  * THE FOLLOWING METHODS ARE SUBJECT TO BE DEPRECATED / DROPPED!
551  *
552  * These methods have been copied over from DocumentTemplate and enables
553  * core modules to drop the dependency to DocumentTemplate altogether without
554  * rewriting these modules now.
555  * The methods below are marked as internal and will be removed
556  * one-by-one with further refactoring of modules.
557  *
558  * Do not use these methods within own extensions if possible or
559  * be prepared to change this later again.
560  *******************************************/
585  public function ‪makeShortcutIcon($gvList, $setList, $modName, $motherModName = '', $displayName = '', $classes = 'btn btn-default btn-sm')
586  {
587  trigger_error('Method makeShortcutIcon() is deprecated and will be removed in v12. Please use ShortcutButton->setArguments() instead.', E_USER_DEPRECATED);
588  $gvList = 'route,id,' . $gvList;
589  $storeUrl = $this->‪makeShortcutUrl($gvList, $setList);
590  $pathInfo = parse_url(‪$GLOBALS['TYPO3_REQUEST']->getAttribute('normalizedParams')->getRequestUri());
591  // Fallback for alt_mod. We still pass in the old xMOD... stuff,
592  // but TBE_MODULES only knows about "record_edit".
593  // We still need to pass the xMOD name to createShortcut below,
594  // since this is used for icons.
595  ‪$moduleName = $modName === 'xMOD_alt_doc.php' ? 'record_edit' : $modName;
596  // Add the module identifier automatically if typo3/index.php is used:
597  // @todo: routing
598  if (GeneralUtility::_GET('route') !== null) {
599  $storeUrl = '&route=' . ‪$moduleName . $storeUrl;
600  }
601 
602  $shortcutUrl = $pathInfo['path'] . '?' . $storeUrl;
603 
604  // We simply let the above functionality as it is for maximum backwards compatibility and now
605  // just process the generated $shortcutUrl to match the new format (routeIdentifier & arguments)
606  [$routeIdentifier, $arguments] = $this->‪getCreateShortcutProperties($shortcutUrl);
607 
608  if (GeneralUtility::makeInstance(ShortcutRepository::class)->shortcutExists($routeIdentifier, $arguments)) {
609  return '<a class="active ' . htmlspecialchars($classes) . '" title="">' .
610  $this->iconFactory->getIcon('actions-system-shortcut-active', ‪Icon::SIZE_SMALL)->render() . '</a>';
611  }
612 
613  $confirmationText = $this->‪getLanguageService()->‪sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.makeBookmark');
614 
615  $attrs = [
616  'href' => '#',
617  'class' => $classes,
618  'title' => $confirmationText,
619  'data-dispatch-action' => 'TYPO3.ShortcutMenu.createShortcut',
620  'data-dispatch-args' => GeneralUtility::jsonEncodeForHtmlAttribute([
621  $routeIdentifier,
622  $arguments,
623  $displayName,
624  $confirmationText,
625  '{$target}',
626  ], false),
627  ];
628  return sprintf(
629  '<a %s>%s</a>',
630  GeneralUtility::implodeAttributes($attrs, true),
631  $this->iconFactory->getIcon('actions-system-shortcut-new', ‪Icon::SIZE_SMALL)->render()
632  );
633  }
634 
648  public function ‪makeShortcutUrl($gvList, $setList)
649  {
650  $getParams = GeneralUtility::_GET();
651  $storeArray = array_merge(
652  GeneralUtility::compileSelectedGetVarsFromArray($gvList, $getParams),
653  ['SET' => GeneralUtility::compileSelectedGetVarsFromArray($setList, (array)(‪$GLOBALS['SOBE']->MOD_SETTINGS ?? []))]
654  );
655  return ‪HttpUtility::buildQueryString($storeArray, '&');
656  }
657 
667  protected function ‪getCreateShortcutProperties(string $shortcutUrl): array
668  {
669  $routeIdentifier = '';
670  $arguments = [];
671 
672  parse_str(parse_url($shortcutUrl)['query'] ?? '', $arguments);
673  $routePath = (string)($arguments['route'] ?? '');
674 
675  if ($routePath !== '') {
676  foreach (GeneralUtility::makeInstance(Router::class)->getRoutes() as $identifier => $route) {
677  if ($route->getPath() === $routePath
678  && (
679  $route->hasOption('moduleName')
680  || in_array($identifier, ['record_edit', 'file_edit', 'wizard_rte'], true)
681  )
682  ) {
683  $routeIdentifier = $identifier;
684  }
685  }
686  }
687 
688  unset($arguments['route'], $arguments['returnUrl']);
689 
690  return [$routeIdentifier, json_encode($arguments)];
691  }
692 
698  protected function ‪getBackendFavicon()
699  {
700  $backendFavicon = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('backend', 'backendFavicon');
701  if (!empty($backendFavicon)) {
702  return $this->‪getUriForFileName($backendFavicon);
703  }
704 
705  return ‪PathUtility::getPublicResourceWebPath('EXT:backend/Resources/Public/Icons/favicon.ico');
706  }
707 
716  protected function ‪getUriForFileName($filename)
717  {
718  if (‪PathUtility::hasProtocolAndScheme($filename)) {
719  return $filename;
720  }
721  $urlPrefix = '';
722  if (‪PathUtility::isExtensionPath($filename)) {
723  $filename = ‪PathUtility::getPublicResourceWebPath($filename);
724  } elseif (strpos($filename, '/') !== 0) {
725  $urlPrefix = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH');
726  }
727  return $urlPrefix . $filename;
728  }
729 
735  protected function ‪getBackendUserAuthentication()
736  {
737  return ‪$GLOBALS['BE_USER'];
738  }
739 
745  protected function ‪getLanguageService()
746  {
747  return ‪$GLOBALS['LANG'];
748  }
749 
759  public function ‪header(string $text, bool $inlineEdit = true)
760  {
761  return '
762 
763  <!-- MAIN Header in page top -->
764  <h1 ' . ($inlineEdit ? 'class="t3js-title-inlineedit"' : '') . '>' . htmlspecialchars($text) . '</h1>
765 ';
766  }
767 
778  public function ‪addFlashMessage($messageBody, $messageTitle = '', $severity = ‪AbstractMessage::OK, $storeInSession = true): self
779  {
780  if (!is_string($messageBody)) {
781  throw new \InvalidArgumentException('The message body must be of type string, "' . gettype($messageBody) . '" given.', 1446483133);
782  }
783  /* @var \TYPO3\CMS\Core\Messaging\FlashMessage $flashMessage */
784  $flashMessage = GeneralUtility::makeInstance(
785  FlashMessage::class,
786  $messageBody,
787  $messageTitle,
788  $severity,
789  $storeInSession
790  );
791  $this->flashMessageQueue->enqueue($flashMessage);
792  return $this;
793  }
794 
799  public function ‪setFlashMessageQueue(‪$flashMessageQueue): self
800  {
801  $this->flashMessageQueue = ‪$flashMessageQueue;
802  return $this;
803  }
804 
808  public function ‪isUiBlock(): bool
809  {
810  return ‪$this->uiBlock;
811  }
812 
817  public function ‪setUiBlock(bool ‪$uiBlock): self
818  {
819  $this->uiBlock = ‪$uiBlock;
820  return $this;
821  }
822 }
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\makeMenuItem
‪MenuItem makeMenuItem()
Definition: Menu.php:133
‪TYPO3\CMS\Backend\Template\ModuleTemplate\loadJavaScripts
‪loadJavaScripts()
Definition: ModuleTemplate.php:268
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\Backend\Backend\Shortcut\ShortcutRepository
Definition: ShortcutRepository.php:45
‪TYPO3\CMS\Backend\Template\Components\DocHeaderComponent
Definition: DocHeaderComponent.php:25
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setupPage
‪setupPage()
Definition: ModuleTemplate.php:321
‪TYPO3\CMS\Core\Utility\PathUtility
Definition: PathUtility.php:25
‪TYPO3\CMS\Core\Messaging\AbstractMessage
Definition: AbstractMessage.php:26
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$docHeaderComponent
‪DocHeaderComponent $docHeaderComponent
Definition: ModuleTemplate.php:51
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getLanguageService
‪LanguageService getLanguageService()
Definition: ModuleTemplate.php:730
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$moduleId
‪string $moduleId
Definition: ModuleTemplate.php:115
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$bodyTag
‪string $bodyTag
Definition: ModuleTemplate.php:139
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$moduleName
‪string $moduleName
Definition: ModuleTemplate.php:121
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setForm
‪self setForm($formTag='')
Definition: ModuleTemplate.php:433
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$pageRenderer
‪PageRenderer $pageRenderer
Definition: ModuleTemplate.php:65
‪TYPO3\CMS\Core\Configuration\ExtensionConfiguration
Definition: ExtensionConfiguration.php:45
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setJavaScriptCodeArray
‪setJavaScriptCodeArray()
Definition: ModuleTemplate.php:344
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: ModuleTemplate.php:720
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setUiBlock
‪self setUiBlock(bool $uiBlock)
Definition: ModuleTemplate.php:802
‪TYPO3\CMS\Backend\Template\ModuleTemplate\isUiBlock
‪bool isUiBlock()
Definition: ModuleTemplate.php:793
‪TYPO3\CMS\Core\Utility\PathUtility\isExtensionPath
‪static bool isExtensionPath(string $path)
Definition: PathUtility.php:121
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setTitle
‪self setTitle($title, $context='')
Definition: ModuleTemplate.php:192
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$templateFile
‪string $templateFile
Definition: ModuleTemplate.php:93
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getUriForFileName
‪string getUriForFileName($filename)
Definition: ModuleTemplate.php:701
‪TYPO3\CMS\Core\Utility\PathUtility\getPublicResourceWebPath
‪static string getPublicResourceWebPath(string $resourcePath, bool $prefixWithSitePath=true)
Definition: PathUtility.php:98
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\setIdentifier
‪Menu setIdentifier($identifier)
Definition: Menu.php:73
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:161
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$content
‪string $content
Definition: ModuleTemplate.php:105
‪TYPO3\CMS\Backend\Routing\Route
Definition: Route.php:24
‪TYPO3\CMS\Backend\Template\ModuleTemplate\header
‪string header(string $text, bool $inlineEdit=true)
Definition: ModuleTemplate.php:744
‪TYPO3\CMS\Backend\Template\ModuleTemplate\makeShortcutUrl
‪string makeShortcutUrl($gvList, $setList)
Definition: ModuleTemplate.php:633
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setModuleId
‪self setModuleId($moduleId)
Definition: ModuleTemplate.php:445
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:46
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$layoutRootPaths
‪string[] $layoutRootPaths
Definition: ModuleTemplate.php:87
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility
Definition: ExtensionManagementUtility.php:43
‪TYPO3\CMS\Backend\Template\Components\MenuRegistry\makeMenu
‪Menu makeMenu()
Definition: MenuRegistry.php:74
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getCreateShortcutProperties
‪array getCreateShortcutProperties(string $shortcutUrl)
Definition: ModuleTemplate.php:652
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$iconFactory
‪IconFactory $iconFactory
Definition: ModuleTemplate.php:107
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$javascriptCodeArray
‪array $javascriptCodeArray
Definition: ModuleTemplate.php:59
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setBodyTag
‪self setBodyTag($bodyTag)
Definition: ModuleTemplate.php:157
‪TYPO3\CMS\Backend\Template\ModuleTemplate\addJavaScriptCode
‪self addJavaScriptCode($name='', $code='')
Definition: ModuleTemplate.php:359
‪TYPO3\CMS\Core\Utility\HttpUtility\buildQueryString
‪static string buildQueryString(array $parameters, string $prependCharacter='', bool $skipEmptyParameters=false)
Definition: HttpUtility.php:171
‪TYPO3\CMS\Backend\Template
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$uiBlock
‪bool $uiBlock
Definition: ModuleTemplate.php:69
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$request
‪ServerRequestInterface $request
Definition: ModuleTemplate.php:109
‪TYPO3\CMS\Backend\Template\ModuleTemplate\makeShortcutIcon
‪string makeShortcutIcon($gvList, $setList, $modName, $motherModName='', $displayName='', $classes='btn btn-default btn-sm')
Definition: ModuleTemplate.php:570
‪TYPO3\CMS\Core\Messaging\FlashMessageService\getMessageQueueByIdentifier
‪FlashMessageQueue getMessageQueueByIdentifier($identifier='core.template.flashMessages')
Definition: FlashMessageService.php:41
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getDynamicTabMenu
‪string getDynamicTabMenu(array $menuItems, $domId, $defaultTabIndex=1, $collapsible=false, $wrapContent=true, $storeLastActiveTab=true)
Definition: ModuleTemplate.php:516
‪TYPO3\CMS\Backend\Template\ModuleTemplate\registerModuleMenu
‪self registerModuleMenu($moduleMenuIdentifier)
Definition: ModuleTemplate.php:482
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBodyTag
‪string getBodyTag()
Definition: ModuleTemplate.php:146
‪TYPO3\CMS\Backend\Template\ModuleTemplate\addFlashMessage
‪self addFlashMessage($messageBody, $messageTitle='', $severity=AbstractMessage::OK, $storeInSession=true)
Definition: ModuleTemplate.php:763
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$partialRootPaths
‪string[] $partialRootPaths
Definition: ModuleTemplate.php:81
‪TYPO3\CMS\Backend\Template\Components\DocHeaderComponent\getMenuRegistry
‪MenuRegistry getMenuRegistry()
Definition: DocHeaderComponent.php:78
‪TYPO3\CMS\Core\Messaging\AbstractMessage\OK
‪const OK
Definition: AbstractMessage.php:29
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$flashMessageQueue
‪FlashMessageQueue $flashMessageQueue
Definition: ModuleTemplate.php:108
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$moduleClass
‪string $moduleClass
Definition: ModuleTemplate.php:127
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getRegisteredStylesheetFolders
‪getRegisteredStylesheetFolders()
Definition: ModuleTemplate.php:304
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setContent
‪self setContent($content)
Definition: ModuleTemplate.php:179
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:26
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setModuleClass
‪self setModuleClass($moduleClass)
Definition: ModuleTemplate.php:470
‪TYPO3\CMS\Core\Utility\PathUtility\hasProtocolAndScheme
‪static bool hasProtocolAndScheme(string $path)
Definition: PathUtility.php:463
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getPageRenderer
‪getPageRenderer()
Definition: ModuleTemplate.php:418
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setModuleName
‪self setModuleName($moduleName)
Definition: ModuleTemplate.php:458
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getDocHeaderComponent
‪DocHeaderComponent getDocHeaderComponent()
Definition: ModuleTemplate.php:370
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBackendFavicon
‪string getBackendFavicon()
Definition: ModuleTemplate.php:683
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setFlashMessageQueue
‪self setFlashMessageQueue($flashMessageQueue)
Definition: ModuleTemplate.php:784
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\extPath
‪static string extPath($key, $script='')
Definition: ExtensionManagementUtility.php:142
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$templateRootPaths
‪string[] $templateRootPaths
Definition: ModuleTemplate.php:75
‪TYPO3\CMS\Core\Utility\HttpUtility
Definition: HttpUtility.php:22
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Backend\Template\ModuleTemplate\__construct
‪__construct(PageRenderer $pageRenderer, IconFactory $iconFactory, FlashMessageService $flashMessageService, ServerRequestInterface $request=null, ViewInterface $view=null)
Definition: ModuleTemplate.php:226
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$title
‪string $title
Definition: ModuleTemplate.php:133
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Backend\Template\Components\AbstractControl\setTitle
‪$this setTitle($title)
Definition: AbstractControl.php:128
‪TYPO3\CMS\Backend\Routing\Router
Definition: Router.php:39
‪TYPO3\CMS\Core\Messaging\FlashMessageQueue
Definition: FlashMessageQueue.php:29
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getIconFactory
‪getIconFactory()
Definition: ModuleTemplate.php:207
‪TYPO3\CMS\Core\Messaging\FlashMessageService
Definition: FlashMessageService.php:27
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$view
‪ViewInterface $view
Definition: ModuleTemplate.php:99
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getView
‪StandaloneView getView()
Definition: ModuleTemplate.php:168
‪TYPO3\CMS\Backend\Template\ModuleTemplate\renderContent
‪string renderContent()
Definition: ModuleTemplate.php:380
‪TYPO3\CMS\Backend\Template\ModuleTemplate\loadStylesheets
‪loadStylesheets()
Definition: ModuleTemplate.php:284