‪TYPO3CMS  10.4
TypoScriptTemplateObjectBrowserModuleFunctionController.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;
32 
38 {
39 
43  protected ‪$localLanguageFilePath;
44 
48  protected ‪$pObj;
49 
54  protected ‪$templateRow;
55 
59  protected ‪$templateService;
60 
64  protected ‪$id;
65 
69  protected ‪$request;
70 
77  public function ‪init(‪$pObj, ServerRequestInterface ‪$request)
78  {
79  $this->pObj = ‪$pObj;
80  $this->request = ‪$request;
81 
82  // Setting MOD_MENU items as we need them for logging:
83  $this->pObj->MOD_MENU = array_merge($this->pObj->MOD_MENU, $this->modMenu());
84  $this->pObj->modMenu_dontValidateList .= ',ts_browser_toplevel_setup,ts_browser_toplevel_const,ts_browser_TLKeys_setup,ts_browser_TLKeys_const';
85  $this->pObj->modMenu_setDefaultList .= ',ts_browser_showComments';
86  $this->localLanguageFilePath = 'EXT:tstemplate/Resources/Private/Language/locallang_objbrowser.xlf';
87  $this->id = (int)(‪$request->getParsedBody()['id'] ?? ‪$request->getQueryParams()['id'] ?? 0);
88  }
89 
95  protected function ‪modMenu()
96  {
97  $lang = $this->‪getLanguageService();
98  $lang->includeLLFile('EXT:tstemplate/Resources/Private/Language/locallang_objbrowser.xlf');
99  $modMenu = [
100  'ts_browser_type' => [
101  'const' => $lang->getLL('constants'),
102  'setup' => $lang->getLL('setup')
103  ],
104  'ts_browser_toplevel_setup' => [
105  '0' => mb_strtolower($lang->getLL('all'), 'utf-8')
106  ],
107  'ts_browser_toplevel_const' => [
108  '0' => mb_strtolower($lang->getLL('all'), 'utf-8')
109  ],
110  'ts_browser_const' => [
111  '0' => $lang->getLL('plainSubstitution'),
112  'subst' => $lang->getLL('substitutedGreen'),
113  'const' => $lang->getLL('unsubstitutedGreen')
114  ],
115  'ts_browser_regexsearch' => '1',
116  'ts_browser_showComments' => '1',
117  'ts_browser_alphaSort' => '1'
118  ];
119  foreach (['setup', 'const'] as $bType) {
120  $addKey = $this->request->getQueryParams()['addKey'] ?? null;
121  // If any plus-signs were clicked, it's registered.
122  if (is_array($addKey)) {
123  reset($addKey);
124  if (current($addKey)) {
125  $this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][key($addKey)] = key($addKey);
126  } else {
127  unset($this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][key($addKey)]);
128  }
129  $this->‪getBackendUserAuthentication()->‪pushModuleData('web_ts', $this->pObj->MOD_SETTINGS);
130  }
131  if (!empty($this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType])) {
132  $modMenu['ts_browser_toplevel_' . $bType]['-'] = '---';
133  $modMenu['ts_browser_toplevel_' . $bType] = $modMenu['ts_browser_toplevel_' . $bType] + $this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType];
134  }
135  }
136  return $modMenu;
137  }
138 
148  protected function ‪initialize_editor($pageId, $template_uid = 0)
149  {
150  // Defined global here!
151  $this->templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
152 
153  // Gets the rootLine
154  $rootlineUtility = GeneralUtility::makeInstance(RootlineUtility::class, $pageId);
155  $rootLine = $rootlineUtility->get();
156  // This generates the constants/config + hierarchy info for the template.
157  $this->templateService->runThroughTemplates($rootLine, $template_uid);
158 
159  // Get the row of the first VISIBLE template of the page. whereclause like the frontend.
160  $this->templateRow = $this->templateService->ext_getFirstTemplate($pageId, $template_uid);
161  return is_array($this->templateRow);
162  }
163 
169  public function ‪main()
170  {
171  $lang = $this->‪getLanguageService();
172  $POST = $this->request->getParsedBody();
173  // Checking for more than one template an if, set a menu...
174  $manyTemplatesMenu = $this->pObj->templateMenu($this->request);
175  $template_uid = 0;
176  if ($manyTemplatesMenu) {
177  $template_uid = $this->pObj->MOD_SETTINGS['templatesOnPage'];
178  }
179  $bType = $this->pObj->MOD_SETTINGS['ts_browser_type'];
180  $existTemplate = $this->‪initialize_editor($this->id, $template_uid);
181  // initialize
182  $assigns = [];
183  $assigns['LLPrefix'] = 'LLL:' . $this->localLanguageFilePath . ':';
184  $assigns['existTemplate'] = $existTemplate;
185  $assigns['tsBrowserType'] = $this->pObj->MOD_SETTINGS['ts_browser_type'];
186  if ($existTemplate) {
187  $assigns['templateRecord'] = ‪$this->templateRow;
188  $assigns['linkWrapTemplateTitle'] = $this->pObj->linkWrapTemplateTitle($this->templateRow['title'], ($bType === 'setup' ? 'config' : 'constants'));
189  $assigns['manyTemplatesMenu'] = $manyTemplatesMenu;
190 
191  if ($POST['add_property'] || $POST['update_value'] || $POST['clear_object']) {
192  // add property
193  $line = '';
194  if (is_array($POST['data'])) {
195  $name = key($POST['data']);
196  if ($POST['data'][$name]['name'] !== '') {
197  // Workaround for this special case: User adds a key and submits by pressing the return key. The form however will use "add_property" which is the name of the first submit button in this form.
198  unset($POST['update_value']);
199  $POST['add_property'] = 'Add';
200  }
201  if ($POST['add_property']) {
202  $property = trim($POST['data'][$name]['name']);
203  if (preg_replace('/[^a-zA-Z0-9_\\.]*/', '', $property) != $property) {
204  $badPropertyMessage = GeneralUtility::makeInstance(FlashMessage::class, $lang->getLL('noSpaces') . $lang->getLL('nothingUpdated'), $lang->getLL('badProperty'), ‪FlashMessage::ERROR);
205  $this->‪addFlashMessage($badPropertyMessage);
206  } else {
207  $pline = $name . '.' . $property . ' = ' . trim($POST['data'][$name]['propertyValue']);
208  $propertyAddedMessage = GeneralUtility::makeInstance(FlashMessage::class, $pline, $lang->getLL('propertyAdded'));
209  $this->‪addFlashMessage($propertyAddedMessage);
210  $line .= LF . $pline;
211  }
212  } elseif ($POST['update_value']) {
213  $pline = $name . ' = ' . trim($POST['data'][$name]['value']);
214  $updatedMessage = GeneralUtility::makeInstance(FlashMessage::class, $pline, $lang->getLL('valueUpdated'));
215  $this->‪addFlashMessage($updatedMessage);
216  $line .= LF . $pline;
217  } elseif ($POST['clear_object']) {
218  if ($POST['data'][$name]['clearValue']) {
219  $pline = $name . ' >';
220  $objectClearedMessage = GeneralUtility::makeInstance(FlashMessage::class, $pline, $lang->getLL('objectCleared'));
221  $this->‪addFlashMessage($objectClearedMessage);
222  $line .= LF . $pline;
223  }
224  }
225  }
226  if ($line) {
227  $saveId = $this->templateRow['_ORIG_uid'] ?: $this->templateRow['uid'];
228  // Set the data to be saved
229  $recData = [];
230  $field = $bType === 'setup' ? 'config' : 'constants';
231  $recData['sys_template'][$saveId][$field] = $this->templateRow[$field] . $line;
232  // Create new tce-object
233  $tce = GeneralUtility::makeInstance(DataHandler::class);
234  // Initialize
235  $tce->start($recData, []);
236  // Saved the stuff
237  $tce->process_datamap();
238  // re-read the template ...
239  $this->‪initialize_editor($this->id, $template_uid);
240  }
241  }
242  }
243  $tsbr = $this->request->getQueryParams()['tsbr'] ?? null;
244  $update = 0;
245  if (is_array($tsbr)) {
246  // If any plus-signs were clicked, it's registered.
247  $this->pObj->MOD_SETTINGS['tsbrowser_depthKeys_' . $bType] = $this->templateService->ext_depthKeys($tsbr, $this->pObj->MOD_SETTINGS['tsbrowser_depthKeys_' . $bType]);
248  $update = 1;
249  }
250  if ($POST['Submit']) {
251  // If any POST-vars are send, update the condition array
252  $this->pObj->MOD_SETTINGS['tsbrowser_conditions'] = $POST['conditions'];
253  $update = 1;
254  }
255  if ($update) {
256  $this->‪getBackendUserAuthentication()->‪pushModuleData('web_ts', $this->pObj->MOD_SETTINGS);
257  }
258  $this->templateService->matchAlternative = $this->pObj->MOD_SETTINGS['tsbrowser_conditions'];
259  $this->templateService->matchAlternative[] = 'dummydummydummydummydummydummydummydummydummydummydummy';
260  // This is just here to make sure that at least one element is in the array so that the tsparser actually uses this array to match.
261  $this->templateService->constantMode = $this->pObj->MOD_SETTINGS['ts_browser_const'];
262  // "sObj" is set by ExtendedTemplateService to edit single keys
263  $sObj = $this->request->getParsedBody()['sObj'] ?? $this->request->getQueryParams()['sObj'] ?? null;
264  if (!empty($sObj) && $this->templateService->constantMode) {
265  $this->templateService->constantMode = 'untouched';
266  }
267  $this->templateService->regexMode = $this->pObj->MOD_SETTINGS['ts_browser_regexsearch'];
268  $this->templateService->linkObjects = true;
269  $this->templateService->ext_regLinenumbers = true;
270  $this->templateService->ext_regComments = $this->pObj->MOD_SETTINGS['ts_browser_showComments'];
271  $this->templateService->bType = $bType;
272  $breakPointLN = $this->request->getParsedBody()['breakPointLN'] ?? $this->request->getQueryParams()['breakPointLN'] ?? 0;
273  if ($this->pObj->MOD_SETTINGS['ts_browser_type'] === 'const') {
274  $this->templateService->ext_constants_BRP = (int)$breakPointLN;
275  } else {
276  $this->templateService->ext_config_BRP = (int)$breakPointLN;
277  }
278  $this->templateService->generateConfig();
279  if ($bType === 'setup') {
280  $theSetup = $this->templateService->setup;
281  } else {
282  $theSetup = $this->templateService->setup_constants;
283  }
284  // EDIT A VALUE:
285  $assigns['typoScriptPath'] = $sObj;
286  if (!empty($sObj)) {
287  [$theSetup, $theSetupValue] = $this->templateService->ext_getSetup($theSetup, $sObj);
288  $assigns['theSetupValue'] = $theSetupValue;
289  if ($existTemplate === false) {
290  $noTemplateMessage = GeneralUtility::makeInstance(FlashMessage::class, $lang->getLL('noCurrentTemplate'), $lang->getLL('edit'), ‪FlashMessage::ERROR);
291  $this->‪addFlashMessage($noTemplateMessage);
292  }
293  // Links:
294  $urlParameters = [
295  'id' => ‪$this->id
296  ];
298  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
299  $aHref = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
300  $assigns['moduleUrl'] = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
301  $assigns['isNotInTopLevelKeyList'] = !isset($this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][$sObj]);
302  $assigns['hasProperties'] = !empty($theSetup);
303  if (!$this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][$sObj]) {
304  if (!empty($theSetup)) {
305  $assigns['moduleUrlObjectListAction'] = $aHref . '&addKey[' . rawurlencode($sObj) . ']=1&SET[ts_browser_toplevel_' . $bType . ']=' . rawurlencode($sObj);
306  }
307  } else {
308  $assigns['moduleUrlObjectListAction'] = $aHref . '&addKey[' . rawurlencode($sObj) . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0';
309  }
310  } else {
311  $this->templateService->tsbrowser_depthKeys = $this->pObj->MOD_SETTINGS['tsbrowser_depthKeys_' . $bType];
312  if (($this->request->getParsedBody()['search'] ?? false) && ($this->request->getParsedBody()['search_field'] ?? false)) {
313  // If any POST-vars are send, update the condition array
314  $searchString = $this->request->getParsedBody()['search_field'];
315  try {
316  $this->templateService->tsbrowser_depthKeys =
317  $this->templateService->ext_getSearchKeys(
318  $theSetup,
319  '',
320  $searchString,
321  []
322  );
323  } catch (Exception $e) {
324  $this->‪addFlashMessage(
325  GeneralUtility::makeInstance(FlashMessage::class, sprintf($lang->getLL('error.' . $e->getCode()), $searchString), '', ‪FlashMessage::ERROR)
326  );
327  }
328  }
329  $assigns['hasTsBrowserTypes'] = is_array($this->pObj->MOD_MENU['ts_browser_type']) && count($this->pObj->MOD_MENU['ts_browser_type']) > 1;
330  if (is_array($this->pObj->MOD_MENU['ts_browser_type']) && count($this->pObj->MOD_MENU['ts_browser_type']) > 1) {
331  $assigns['browserTypeDropdownMenu'] = ‪BackendUtility::getDropdownMenu($this->id, 'SET[ts_browser_type]', $bType, $this->pObj->MOD_MENU['ts_browser_type']);
332  }
333  $assigns['hasTopLevelInObjectList'] = is_array($this->pObj->MOD_MENU['ts_browser_toplevel_' . $bType]) && count($this->pObj->MOD_MENU['ts_browser_toplevel_' . $bType]) > 1;
334  if (is_array($this->pObj->MOD_MENU['ts_browser_toplevel_' . $bType]) && count($this->pObj->MOD_MENU['ts_browser_toplevel_' . $bType]) > 1) {
335  $assigns['objectListDropdownMenu'] = ‪BackendUtility::getDropdownMenu($this->id, 'SET[ts_browser_toplevel_' . $bType . ']', $this->pObj->MOD_SETTINGS['ts_browser_toplevel_' . $bType], $this->pObj->MOD_MENU['ts_browser_toplevel_' . $bType]);
336  }
337 
338  $assigns['regexSearchCheckbox'] = ‪BackendUtility::getFuncCheck($this->id, 'SET[ts_browser_regexsearch]', $this->pObj->MOD_SETTINGS['ts_browser_regexsearch'], '', '', 'id="checkTs_browser_regexsearch"');
339  $assigns['postSearchField'] = $POST['search_field'];
340  $theKey = $this->pObj->MOD_SETTINGS['ts_browser_toplevel_' . $bType];
341  if (!$theKey || !str_replace('-', '', $theKey)) {
342  $theKey = '';
343  }
344  [$theSetup, $theSetupValue] = $this->templateService->ext_getSetup($theSetup, $this->pObj->MOD_SETTINGS['ts_browser_toplevel_' . $bType] ?: '');
345  $tree = $this->templateService->ext_getObjTree($theSetup, $theKey, '', '', $theSetupValue, $this->pObj->MOD_SETTINGS['ts_browser_alphaSort']);
346  $tree = $this->templateService->substituteCMarkers($tree);
347  $urlParameters = [
348  'id' => ‪$this->id
349  ];
351  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
352  $aHref = (string)$uriBuilder->buildUriFromRoute('web_ts', $urlParameters);
353  // Parser Errors:
354  $pEkey = $bType === 'setup' ? 'config' : 'constants';
355  $assigns['hasParseErrors'] = !empty($this->templateService->parserErrors[$pEkey]);
356  if (!empty($this->templateService->parserErrors[$pEkey])) {
357  $assigns['showErrorDetailsUri'] = $aHref . '&SET[function]=TYPO3\\CMS\\Tstemplate\\Controller\\TemplateAnalyzerModuleFunctionController&template=all&SET[ts_analyzer_checkLinenum]=1#line-';
358  $assigns['parseErrors'] = $this->templateService->parserErrors[$pEkey];
359  }
360 
361  if (isset($this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][$theKey])) {
362  $assigns['moduleUrlRemoveFromObjectList'] = $aHref . '&addKey[' . $theKey . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0';
363  }
364 
365  $assigns['hasKeySelected'] = $theKey !== '';
366 
367  if ($theKey) {
368  $assigns['treeLabel'] = $theKey;
369  } else {
370  $assigns['rootLLKey'] = $bType === 'setup' ? 'setupRoot' : 'constantRoot';
371  }
372  $assigns['tsTree'] = $tree;
373 
374  // second row options
375  $assigns['isSetupAndCropLinesDisabled'] = $bType === 'setup';
376  $assigns['checkBoxShowComments'] = ‪BackendUtility::getFuncCheck($this->id, 'SET[ts_browser_showComments]', $this->pObj->MOD_SETTINGS['ts_browser_showComments'], '', '', 'id="checkTs_browser_showComments"');
377  $assigns['checkBoxAlphaSort'] = ‪BackendUtility::getFuncCheck($this->id, 'SET[ts_browser_alphaSort]', $this->pObj->MOD_SETTINGS['ts_browser_alphaSort'], '', '', 'id="checkTs_browser_alphaSort"');
378  if ($bType === 'setup') {
379  $assigns['dropdownDisplayConstants'] = ‪BackendUtility::getDropdownMenu($this->id, 'SET[ts_browser_const]', $this->pObj->MOD_SETTINGS['ts_browser_const'], $this->pObj->MOD_MENU['ts_browser_const']);
380  }
381 
382  // Conditions:
383  $assigns['hasConditions'] = is_array($this->templateService->sections) && !empty($this->templateService->sections);
384  if (is_array($this->templateService->sections) && !empty($this->templateService->sections)) {
385  $tsConditions = [];
386  foreach ($this->templateService->sections as $key => $val) {
387  $tsConditions[] = [
388  'key' => $key,
389  'value' => $val,
390  'label' => $this->templateService->substituteCMarkers(htmlspecialchars($val)),
391  'isSet' => $this->pObj->MOD_SETTINGS['tsbrowser_conditions'][$key] ? true : false
392  ];
393  }
394  $assigns['tsConditions'] = $tsConditions;
395  }
396  // Ending section displayoptions
397  }
398  $this->‪getPageRenderer()->‪loadRequireJsModule('TYPO3/CMS/Backend/Tooltip');
399  $view = GeneralUtility::makeInstance(StandaloneView::class);
400  $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName(
401  'EXT:tstemplate/Resources/Private/Templates/TemplateObjectBrowserModuleFunction.html'
402  ));
403  $view->assignMultiple($assigns);
404 
405  return $view->render();
406  }
407 
413  protected function ‪addFlashMessage(FlashMessage $flashMessage)
414  {
416  $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
418  $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
419  $defaultFlashMessageQueue->enqueue($flashMessage);
420  }
421 
425  protected function ‪getLanguageService(): ‪LanguageService
426  {
427  return ‪$GLOBALS['LANG'];
428  }
429 
434  {
435  return ‪$GLOBALS['BE_USER'];
436  }
437 
441  protected function ‪getPageRenderer(): ‪PageRenderer
442  {
443  return GeneralUtility::makeInstance(PageRenderer::class);
444  }
445 }
‪TYPO3\CMS\Core\DataHandling\DataHandler
Definition: DataHandler.php:84
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\modMenu
‪array modMenu()
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:90
‪TYPO3\CMS\Core\Exception
Definition: Exception.php:22
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\getLanguageService
‪LanguageService getLanguageService()
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:420
‪TYPO3\CMS\Core\Exception
‪TYPO3\CMS\Core\Utility\RootlineUtility
Definition: RootlineUtility.php:39
‪TYPO3\CMS\Tstemplate\Controller
Definition: TemplateAnalyzerModuleFunctionController.php:16
‪TYPO3\CMS\Core\TypoScript\ExtendedTemplateService
Definition: ExtendedTemplateService.php:43
‪TYPO3\CMS\Core\Page\PageRenderer\loadRequireJsModule
‪loadRequireJsModule($mainModuleName, $callBackFunction=null)
Definition: PageRenderer.php:1493
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$templateRow
‪array $templateRow
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:51
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:42
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\addFlashMessage
‪addFlashMessage(FlashMessage $flashMessage)
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:408
‪TYPO3\CMS\Backend\Routing\UriBuilder
Definition: UriBuilder.php:38
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\main
‪string main()
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:164
‪TYPO3\CMS\Backend\Utility\BackendUtility\getDropdownMenu
‪static string getDropdownMenu( $mainParams, $elementName, $currentValue, $menuItems, $script='', $addParams='')
Definition: BackendUtility.php:2653
‪TYPO3\CMS\Core\Authentication\AbstractUserAuthentication\pushModuleData
‪pushModuleData($module, $data, $noSave=0)
Definition: AbstractUserAuthentication.php:1161
‪TYPO3\CMS\Backend\Utility\BackendUtility\getFuncCheck
‪static string getFuncCheck( $mainParams, $elementName, $currentValue, $script='', $addParams='', $tagParams='')
Definition: BackendUtility.php:2709
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController
Definition: TypoScriptTemplateModuleController.php:48
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:428
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$templateService
‪ExtendedTemplateService $templateService
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:55
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\initialize_editor
‪bool initialize_editor($pageId, $template_uid=0)
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:143
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$request
‪ServerRequestInterface $request
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:64
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:24
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:34
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$id
‪$id
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:60
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\getPageRenderer
‪PageRenderer getPageRenderer()
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:436
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:38
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$localLanguageFilePath
‪string $localLanguageFilePath
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:42
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\init
‪init($pObj, ServerRequestInterface $request)
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:72
‪TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController\$pObj
‪TypoScriptTemplateModuleController $pObj
Definition: TypoScriptTemplateObjectBrowserModuleFunctionController.php:46
‪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