‪TYPO3CMS  10.4
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 
36 use TYPO3Fluid\Fluid\View\Exception\InvalidTemplateResourceException;
37 
43 {
49  protected ‪$docHeaderComponent;
50 
57  protected ‪$javascriptCodeArray = [];
58 
64  protected ‪$pageRenderer;
65 
69  protected ‪$uiBlock = false;
70 
76  protected ‪$templateRootPaths = ['EXT:backend/Resources/Private/Templates'];
77 
83  protected ‪$partialRootPaths = ['EXT:backend/Resources/Private/Partials'];
84 
90  protected ‪$layoutRootPaths = ['EXT:backend/Resources/Private/Layouts'];
91 
97  protected ‪$templateFile = 'Module.html';
98 
104  protected ‪$view;
105 
111  protected ‪$content = '';
112 
118  protected ‪$iconFactory;
119 
124 
130  protected ‪$moduleId = '';
131 
137  protected ‪$moduleName = '';
138 
144  protected ‪$title = '';
145 
151  protected ‪$bodyTag = '<body>';
152 
158  protected ‪$flashMessageQueue;
159 
165  public function ‪getBodyTag()
166  {
167  return ‪$this->bodyTag;
168  }
169 
176  public function ‪setBodyTag(‪$bodyTag): self
177  {
178  $this->bodyTag = ‪$bodyTag;
179  return $this;
180  }
181 
187  public function ‪getView()
188  {
189  return ‪$this->view;
190  }
191 
198  public function ‪setContent(‪$content): self
199  {
200  $this->view->assign('content', ‪$content);
201  return $this;
202  }
203 
210  public function ‪setTitle(‪$title): self
211  {
212  $this->title = ‪$title;
213  return $this;
214  }
215 
221  public function ‪getIconFactory()
222  {
223  return ‪$this->iconFactory;
224  }
225 
235  public function ‪__construct(
236  PageRenderer ‪$pageRenderer,
237  IconFactory ‪$iconFactory,
238  FlashMessageService ‪$flashMessageService
239  ) {
240  $this->view = GeneralUtility::makeInstance(StandaloneView::class);
241  $this->view->setPartialRootPaths($this->partialRootPaths);
242  $this->view->setTemplateRootPaths($this->templateRootPaths);
243  $this->view->setLayoutRootPaths($this->layoutRootPaths);
244  $this->view->setTemplate($this->templateFile);
245  $this->pageRenderer = ‪$pageRenderer;
246  $this->iconFactory = ‪$iconFactory;
247  $this->flashMessageService = ‪$flashMessageService;
248  $this->docHeaderComponent = GeneralUtility::makeInstance(DocHeaderComponent::class);
249  $this->‪setupPage();
250  $this->‪loadJavaScripts();
251  $this->‪loadStylesheets();
252  }
253 
257  protected function ‪loadJavaScripts()
258  {
259  $this->pageRenderer->loadRequireJsModule('bootstrap');
260 
261  if ($this->‪getBackendUserAuthentication() && !empty($this->‪getBackendUserAuthentication()->user)) {
262  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ContextHelp');
263  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/DocumentHeader');
264  }
265  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/GlobalEventHandler');
266  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ActionDispatcher');
267  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Element/ImmediateActionElement');
268  }
269 
273  protected function ‪loadStylesheets()
274  {
275  if (!empty(‪$GLOBALS['TBE_STYLES']['stylesheet'])) {
276  $this->pageRenderer->addCssFile(‪$GLOBALS['TBE_STYLES']['stylesheet']);
277  }
278  if (!empty(‪$GLOBALS['TBE_STYLES']['stylesheet2'])) {
279  $this->pageRenderer->addCssFile(‪$GLOBALS['TBE_STYLES']['stylesheet2']);
280  }
281  // Add all *.css files of the directory $path to the stylesheets
282  foreach ($this->‪getRegisteredStylesheetFolders() as $folder) {
283  // Read all files in directory and sort them alphabetically
284  foreach (GeneralUtility::getFilesInDir($folder, 'css', true) as $cssFile) {
285  $this->pageRenderer->addCssFile($cssFile);
286  }
287  }
288  }
289 
293  protected function ‪getRegisteredStylesheetFolders(): array
294  {
295  $stylesheetDirectories = [];
296  foreach (‪$GLOBALS['TBE_STYLES']['skins'] ?? [] as $skin) {
297  foreach ($skin['stylesheetDirectories'] ?? [] as $stylesheetDir) {
298  $directory = GeneralUtility::getFileAbsFileName($stylesheetDir);
299  if (!empty($directory)) {
300  $stylesheetDirectories[] = $directory;
301  }
302  }
303  }
304  return $stylesheetDirectories;
305  }
306 
310  protected function ‪setupPage()
311  {
312  // Yes, hardcoded on purpose
313  $this->pageRenderer->setXmlPrologAndDocType('<!DOCTYPE html>');
314  $this->pageRenderer->setCharSet('utf-8');
315  $this->pageRenderer->setLanguage($this->‪getLanguageService()->lang);
316  $this->pageRenderer->setMetaTag('name', 'viewport', 'width=device-width, initial-scale=1');
317  $this->pageRenderer->setFavIcon($this->‪getBackendFavicon());
318  $this->pageRenderer->enableConcatenateCss();
319  $this->pageRenderer->enableConcatenateJavascript();
320  $this->pageRenderer->enableCompressCss();
321  $this->pageRenderer->enableCompressJavascript();
322  $languageCode = $this->pageRenderer->getLanguage() === 'default' ? 'en' : $this->pageRenderer->getLanguage();
323  $this->pageRenderer->setHtmlTag('<html lang="' . htmlspecialchars($languageCode) . '">');
324  if (‪$GLOBALS['TYPO3_CONF_VARS']['BE']['debug']) {
325  $this->pageRenderer->enableDebugMode();
326  }
327  }
328 
332  protected function ‪setJavaScriptCodeArray()
333  {
334  foreach ($this->javascriptCodeArray as $name => $code) {
335  $this->pageRenderer->addJsInlineCode($name, $code, false);
336  }
337  }
338 
346  public function ‪addJavaScriptCode($name = '', $code = ''): self
347  {
348  $this->javascriptCodeArray[$name] = $code;
349  return $this;
350  }
351 
357  public function ‪getDocHeaderComponent()
358  {
360  }
361 
367  public function ‪renderContent()
368  {
369  $this->‪setJavaScriptCodeArray();
370  $this->pageRenderer->setTitle($this->title);
371 
372  $this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent());
373  if ($this->moduleId) {
374  $this->view->assign('moduleId', $this->moduleId);
375  }
376  if ($this->moduleName) {
377  $this->view->assign('moduleName', $this->moduleName);
378  }
379  $this->view->assign('uiBlock', $this->uiBlock);
380  $this->view->assign('flashMessageQueueIdentifier', $this->‪getFlashMessageQueue()->getIdentifier());
381  $renderedPage = $this->pageRenderer->render(‪PageRenderer::PART_HEADER);
382  $renderedPage .= ‪$this->bodyTag;
383  $renderedPage .= $this->view->render();
384  $this->pageRenderer->addJsFooterInlineCode('updateSignals', ‪BackendUtility::getUpdateSignalCode());
385  $renderedPage .= $this->pageRenderer->render(‪PageRenderer::PART_FOOTER);
386 
387  return $renderedPage;
388  }
389 
395  public function ‪getPageRenderer()
396  {
397  return ‪$this->pageRenderer;
398  }
399 
406  public function ‪setForm($formTag = ''): self
407  {
408  $this->view->assign('formTag', $formTag);
409  return $this;
410  }
411 
418  public function ‪setModuleId(‪$moduleId): self
419  {
420  $this->moduleId = ‪$moduleId;
422  return $this;
423  }
424 
431  public function ‪setModuleName(‪$moduleName): self
432  {
433  $this->moduleName = ‪$moduleName;
434  return $this;
435  }
436 
443  public function ‪registerModuleMenu($moduleMenuIdentifier): self
444  {
445  if (isset(‪$GLOBALS['TBE_MODULES_EXT'][$moduleMenuIdentifier])) {
446  $menuEntries =
447  ‪$GLOBALS['TBE_MODULES_EXT'][$moduleMenuIdentifier]['MOD_MENU']['function'];
448  $menu = $this->‪getDocHeaderComponent()->‪getMenuRegistry()->‪makeMenu()->‪setIdentifier('MOD_FUNC');
449  foreach ($menuEntries as $menuEntry) {
450  $menuItem = $menu->‪makeMenuItem()
451  ->‪setTitle($menuEntry['title'])
452  ->setHref('#');
453  $menu->addMenuItem($menuItem);
454  }
455  $this->docHeaderComponent->getMenuRegistry()->addMenu($menu);
456  }
457  return $this;
458  }
459 
477  public function ‪getDynamicTabMenu(array $menuItems, $domId, $defaultTabIndex = 1, $collapsible = false, $wrapContent = true, $storeLastActiveTab = true)
478  {
479  $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Tabs');
480  $templatePath = ‪ExtensionManagementUtility::extPath('backend')
481  . 'Resources/Private/Templates/DocumentTemplate/';
482  ‪$view = GeneralUtility::makeInstance(StandaloneView::class);
483  ‪$view->‪setTemplatePathAndFilename($templatePath . ($collapsible ? 'Collapse.html' : 'Tabs.html'));
484  ‪$view->‪setPartialRootPaths([$templatePath . 'Partials']);
486  'id' => 'DTM-' . GeneralUtility::shortMD5($domId),
487  'items' => $menuItems,
488  'defaultTabIndex' => $defaultTabIndex,
489  'wrapContent' => $wrapContent,
490  'storeLastActiveTab' => $storeLastActiveTab,
491  ]);
492  return ‪$view->‪render();
493  }
494 
495  /*******************************************
496  * THE FOLLOWING METHODS ARE SUBJECT TO BE DEPRECATED / DROPPED!
497  *
498  * These methods have been copied over from DocumentTemplate and enables
499  * core modules to drop the dependency to DocumentTemplate altogether without
500  * rewriting these modules now.
501  * The methods below are marked as internal and will be removed
502  * one-by-one with further refactoring of modules.
503  *
504  * Do not use these methods within own extensions if possible or
505  * be prepared to change this later again.
506  *******************************************/
530  public function ‪makeShortcutIcon($gvList, $setList, $modName, $motherModName = '', $displayName = '', $classes = 'btn btn-default btn-sm')
531  {
532  $gvList = 'route,id,' . $gvList;
533  $storeUrl = $this->‪makeShortcutUrl($gvList, $setList);
534  $pathInfo = parse_url(GeneralUtility::getIndpEnv('REQUEST_URI'));
535  // Fallback for alt_mod. We still pass in the old xMOD... stuff,
536  // but TBE_MODULES only knows about "record_edit".
537  // We still need to pass the xMOD name to createShortcut below,
538  // since this is used for icons.
539  ‪$moduleName = $modName === 'xMOD_alt_doc.php' ? 'record_edit' : $modName;
540  // Add the module identifier automatically if typo3/index.php is used:
541  // @todo: routing
542  if (GeneralUtility::_GET('route') !== null) {
543  $storeUrl = '&route=' . ‪$moduleName . $storeUrl;
544  }
545  if ((int)$motherModName === 1) {
546  $motherModule = 'top.currentModuleLoaded';
547  } elseif (is_string($motherModName) && $motherModName !== '') {
548  $motherModule = GeneralUtility::quoteJSvalue($motherModName);
549  } else {
550  $motherModule = '\'\'';
551  }
552  $confirmationText = GeneralUtility::quoteJSvalue(
553  $this->‪getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.makeBookmark')
554  );
555 
556  $shortcutUrl = $pathInfo['path'] . '?' . $storeUrl;
557  $shortcutRepository = GeneralUtility::makeInstance(ShortcutRepository::class);
558  $shortcutExist = $shortcutRepository->shortcutExists($shortcutUrl);
559 
560  if ($shortcutExist) {
561  return '<a class="active ' . htmlspecialchars($classes) . '" title="">' .
562  $this->iconFactory->getIcon('actions-system-shortcut-active', ‪Icon::SIZE_SMALL)->render() . '</a>';
563  }
564 
565  $url = GeneralUtility::quoteJSvalue(rawurlencode($shortcutUrl));
566  $onClick = 'top.TYPO3.ShortcutMenu.createShortcut(' . GeneralUtility::quoteJSvalue(rawurlencode($modName)) .
567  ', ' . $url . ', ' . $confirmationText . ', ' . $motherModule . ', this, ' . GeneralUtility::quoteJSvalue($displayName) . ');return false;';
568 
569  return '<a href="#" class="' . htmlspecialchars($classes) . '" onclick="' . htmlspecialchars($onClick) . '" title="' .
570  htmlspecialchars($this->‪getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.makeBookmark')) . '">' .
571  $this->iconFactory->getIcon('actions-system-shortcut-new', ‪Icon::SIZE_SMALL)->render() . '</a>';
572  }
573 
586  public function ‪makeShortcutUrl($gvList, $setList)
587  {
588  $getParams = GeneralUtility::_GET();
589  $storeArray = array_merge(
590  GeneralUtility::compileSelectedGetVarsFromArray($gvList, $getParams),
591  ['SET' => GeneralUtility::compileSelectedGetVarsFromArray($setList, (array)(‪$GLOBALS['SOBE']->MOD_SETTINGS ?? []))]
592  );
593  return ‪HttpUtility::buildQueryString($storeArray, '&');
594  }
595 
601  protected function ‪getBackendFavicon()
602  {
603  $backendFavicon = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('backend', 'backendFavicon');
604  if (!empty($backendFavicon)) {
605  $path = $this->‪getUriForFileName($backendFavicon);
606  } else {
607  $path = ‪ExtensionManagementUtility::extPath('backend') . 'Resources/Public/Icons/favicon.ico';
608  }
610  }
611 
620  protected function ‪getUriForFileName($filename)
621  {
622  if (strpos($filename, '://')) {
623  return $filename;
624  }
625  $urlPrefix = '';
626  if (strpos($filename, 'EXT:') === 0) {
627  $absoluteFilename = GeneralUtility::getFileAbsFileName($filename);
628  $filename = '';
629  if ($absoluteFilename !== '') {
630  $filename = ‪PathUtility::getAbsoluteWebPath($absoluteFilename);
631  }
632  } elseif (strpos($filename, '/') !== 0) {
633  $urlPrefix = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH');
634  }
635  return $urlPrefix . $filename;
636  }
637 
643  protected function ‪getBackendUserAuthentication()
644  {
645  return ‪$GLOBALS['BE_USER'];
646  }
647 
653  protected function ‪getLanguageService()
654  {
655  return ‪$GLOBALS['LANG'];
656  }
657 
666  public function ‪redirectUrls($thisLocation = '')
667  {
668  $thisLocation = $thisLocation ?: GeneralUtility::linkThisScript([
669  'CB' => '',
670  'SET' => '',
671  'cmd' => '',
672  'popViewId' => ''
673  ]);
674  $out = '
675  // @deprecated
676  var T3_RETURN_URL = ' . GeneralUtility::quoteJSvalue(str_replace('%20', '', rawurlencode(GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'))))) . ';
677  // @deprecated
678  var T3_THIS_LOCATION = ' . GeneralUtility::quoteJSvalue(str_replace('%20', '', rawurlencode($thisLocation))) . '
679  ';
680  return $out;
681  }
682 
691  public function ‪header($text)
692  {
693  return '
694 
695  <!-- MAIN Header in page top -->
696  <h1 class="t3js-title-inlineedit">' . htmlspecialchars($text) . '</h1>
697 ';
698  }
699 
710  public function ‪addFlashMessage($messageBody, $messageTitle = '', $severity = ‪AbstractMessage::OK, $storeInSession = true): self
711  {
712  if (!is_string($messageBody)) {
713  throw new \InvalidArgumentException('The message body must be of type string, "' . gettype($messageBody) . '" given.', 1446483133);
714  }
715  /* @var \TYPO3\CMS\Core\Messaging\FlashMessage $flashMessage */
716  $flashMessage = GeneralUtility::makeInstance(
717  FlashMessage::class,
718  $messageBody,
719  $messageTitle,
720  $severity,
721  $storeInSession
722  );
723  $this->‪getFlashMessageQueue()->‪enqueue($flashMessage);
724  return $this;
725  }
726 
731  public function ‪setFlashMessageQueue(‪$flashMessageQueue): self
732  {
733  $this->flashMessageQueue = ‪$flashMessageQueue;
734  return $this;
735  }
736 
740  protected function ‪getFlashMessageQueue()
741  {
742  if (!isset($this->flashMessageQueue)) {
743  $this->flashMessageQueue = $this->flashMessageService->getMessageQueueByIdentifier();
744  }
746  }
747 
751  public function ‪isUiBlock(): bool
752  {
753  return ‪$this->uiBlock;
754  }
755 
760  public function ‪setUiBlock(bool ‪$uiBlock): self
761  {
762  $this->uiBlock = ‪$uiBlock;
763  return $this;
764  }
765 }
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\makeMenuItem
‪MenuItem makeMenuItem()
Definition: Menu.php:133
‪TYPO3\CMS\Backend\Template\ModuleTemplate\loadJavaScripts
‪loadJavaScripts()
Definition: ModuleTemplate.php:240
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\Backend\Backend\Shortcut\ShortcutRepository
Definition: ShortcutRepository.php:44
‪TYPO3\CMS\Backend\Template\Components\DocHeaderComponent
Definition: DocHeaderComponent.php:24
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setupPage
‪setupPage()
Definition: ModuleTemplate.php:293
‪TYPO3\CMS\Core\Utility\PathUtility
Definition: PathUtility.php:24
‪TYPO3\CMS\Core\Messaging\AbstractMessage
Definition: AbstractMessage.php:26
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$docHeaderComponent
‪DocHeaderComponent $docHeaderComponent
Definition: ModuleTemplate.php:48
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getLanguageService
‪LanguageService getLanguageService()
Definition: ModuleTemplate.php:636
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$moduleId
‪string $moduleId
Definition: ModuleTemplate.php:117
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$bodyTag
‪string $bodyTag
Definition: ModuleTemplate.php:135
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$moduleName
‪string $moduleName
Definition: ModuleTemplate.php:123
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setTitle
‪self setTitle($title)
Definition: ModuleTemplate.php:193
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setForm
‪self setForm($formTag='')
Definition: ModuleTemplate.php:389
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$pageRenderer
‪PageRenderer $pageRenderer
Definition: ModuleTemplate.php:61
‪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:315
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: ModuleTemplate.php:626
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setUiBlock
‪self setUiBlock(bool $uiBlock)
Definition: ModuleTemplate.php:743
‪TYPO3\CMS\Backend\Template\ModuleTemplate\isUiBlock
‪bool isUiBlock()
Definition: ModuleTemplate.php:734
‪TYPO3\CMS\Backend\Template\ModuleTemplate\header
‪string header($text)
Definition: ModuleTemplate.php:674
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$templateFile
‪string $templateFile
Definition: ModuleTemplate.php:89
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getUriForFileName
‪string getUriForFileName($filename)
Definition: ModuleTemplate.php:603
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getPageRenderer
‪PageRenderer getPageRenderer()
Definition: ModuleTemplate.php:378
‪TYPO3\CMS\Backend\Template\ModuleTemplate\__construct
‪__construct(PageRenderer $pageRenderer, IconFactory $iconFactory, FlashMessageService $flashMessageService)
Definition: ModuleTemplate.php:218
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:33
‪TYPO3\CMS\Backend\Template\ModuleTemplate\redirectUrls
‪string redirectUrls($thisLocation='')
Definition: ModuleTemplate.php:649
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\setIdentifier
‪Menu setIdentifier($identifier)
Definition: Menu.php:73
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$content
‪string $content
Definition: ModuleTemplate.php:101
‪TYPO3\CMS\Backend\Template\ModuleTemplate\makeShortcutUrl
‪string makeShortcutUrl($gvList, $setList)
Definition: ModuleTemplate.php:569
‪TYPO3\CMS\Core\Messaging\FlashMessageQueue\enqueue
‪FlashMessageQueue enqueue($message)
Definition: FlashMessageQueue.php:60
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getFlashMessageQueue
‪FlashMessageQueue getFlashMessageQueue()
Definition: ModuleTemplate.php:723
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setModuleId
‪self setModuleId($moduleId)
Definition: ModuleTemplate.php:401
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:43
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$layoutRootPaths
‪string[] $layoutRootPaths
Definition: ModuleTemplate.php:83
‪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\$iconFactory
‪IconFactory $iconFactory
Definition: ModuleTemplate.php:107
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:42
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$javascriptCodeArray
‪array $javascriptCodeArray
Definition: ModuleTemplate.php:55
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setBodyTag
‪self setBodyTag($bodyTag)
Definition: ModuleTemplate.php:159
‪TYPO3\CMS\Backend\Template\ModuleTemplate\addJavaScriptCode
‪self addJavaScriptCode($name='', $code='')
Definition: ModuleTemplate.php:329
‪TYPO3\CMS\Core\Page\PageRenderer\PART_FOOTER
‪const PART_FOOTER
Definition: PageRenderer.php:46
‪TYPO3\CMS\Core\Utility\HttpUtility\buildQueryString
‪static string buildQueryString(array $parameters, string $prependCharacter='', bool $skipEmptyParameters=false)
Definition: HttpUtility.php:163
‪TYPO3\CMS\Backend\Template
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$uiBlock
‪bool $uiBlock
Definition: ModuleTemplate.php:65
‪TYPO3\CMS\Fluid\View\AbstractTemplateView\setTemplatePathAndFilename
‪setTemplatePathAndFilename($templatePathAndFilename)
Definition: AbstractTemplateView.php:103
‪TYPO3\CMS\Backend\Template\ModuleTemplate\makeShortcutIcon
‪string makeShortcutIcon($gvList, $setList, $modName, $motherModName='', $displayName='', $classes='btn btn-default btn-sm')
Definition: ModuleTemplate.php:513
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$flashMessageService
‪FlashMessageService $flashMessageService
Definition: ModuleTemplate.php:111
‪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:460
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Backend\Template\ModuleTemplate\registerModuleMenu
‪self registerModuleMenu($moduleMenuIdentifier)
Definition: ModuleTemplate.php:426
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBodyTag
‪string getBodyTag()
Definition: ModuleTemplate.php:148
‪TYPO3\CMS\Backend\Template\ModuleTemplate\addFlashMessage
‪self addFlashMessage($messageBody, $messageTitle='', $severity=AbstractMessage::OK, $storeInSession=true)
Definition: ModuleTemplate.php:693
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$partialRootPaths
‪string[] $partialRootPaths
Definition: ModuleTemplate.php:77
‪TYPO3\CMS\Backend\Template\Components\DocHeaderComponent\getMenuRegistry
‪MenuRegistry getMenuRegistry()
Definition: DocHeaderComponent.php:72
‪TYPO3\CMS\Core\Messaging\AbstractMessage\OK
‪const OK
Definition: AbstractMessage.php:29
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$flashMessageQueue
‪FlashMessageQueue $flashMessageQueue
Definition: ModuleTemplate.php:141
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getRegisteredStylesheetFolders
‪getRegisteredStylesheetFolders()
Definition: ModuleTemplate.php:276
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setContent
‪self setContent($content)
Definition: ModuleTemplate.php:181
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:24
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:34
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getIconFactory
‪IconFactory getIconFactory()
Definition: ModuleTemplate.php:204
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setModuleName
‪self setModuleName($moduleName)
Definition: ModuleTemplate.php:414
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getDocHeaderComponent
‪DocHeaderComponent getDocHeaderComponent()
Definition: ModuleTemplate.php:340
‪TYPO3\CMS\Extbase\Mvc\View\ViewInterface\render
‪string render()
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getBackendFavicon
‪string getBackendFavicon()
Definition: ModuleTemplate.php:584
‪TYPO3\CMS\Backend\Template\ModuleTemplate\setFlashMessageQueue
‪self setFlashMessageQueue($flashMessageQueue)
Definition: ModuleTemplate.php:714
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\extPath
‪static string extPath($key, $script='')
Definition: ExtensionManagementUtility.php:127
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$templateRootPaths
‪string[] $templateRootPaths
Definition: ModuleTemplate.php:71
‪TYPO3\CMS\Core\Utility\HttpUtility
Definition: HttpUtility.php:24
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$title
‪string $title
Definition: ModuleTemplate.php:129
‪TYPO3\CMS\Fluid\View\AbstractTemplateView\setPartialRootPaths
‪setPartialRootPaths(array $partialRootPaths)
Definition: AbstractTemplateView.php:134
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Backend\Template\Components\AbstractControl\setTitle
‪$this setTitle($title)
Definition: AbstractControl.php:109
‪TYPO3\CMS\Core\Utility\PathUtility\getAbsoluteWebPath
‪static string getAbsoluteWebPath($targetPath)
Definition: PathUtility.php:43
‪TYPO3\CMS\Backend\Utility\BackendUtility\getUpdateSignalCode
‪static string getUpdateSignalCode()
Definition: BackendUtility.php:2824
‪TYPO3\CMS\Core\Page\PageRenderer\PART_HEADER
‪const PART_HEADER
Definition: PageRenderer.php:45
‪TYPO3\CMS\Core\Messaging\FlashMessageQueue
Definition: FlashMessageQueue.php:29
‪TYPO3\CMS\Extbase\Mvc\View\ViewInterface\assignMultiple
‪TYPO3 CMS Extbase Mvc View ViewInterface assignMultiple(array $values)
‪TYPO3\CMS\Backend\Template\ModuleTemplate\$view
‪StandaloneView $view
Definition: ModuleTemplate.php:95
‪TYPO3\CMS\Core\Messaging\FlashMessageService
Definition: FlashMessageService.php:27
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getView
‪StandaloneView getView()
Definition: ModuleTemplate.php:170
‪TYPO3\CMS\Backend\Template\ModuleTemplate\renderContent
‪string renderContent()
Definition: ModuleTemplate.php:350
‪TYPO3\CMS\Backend\Template\ModuleTemplate\loadStylesheets
‪loadStylesheets()
Definition: ModuleTemplate.php:256