‪TYPO3CMS  10.4
NewContentElementController.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Psr\Http\Message\ResponseInterface;
21 use Psr\Http\Message\ServerRequestInterface;
38 
44 {
50  protected ‪$id;
51 
57  protected ‪$sys_language = 0;
58 
64  protected ‪$R_URI = '';
65 
71  protected ‪$colPos;
72 
76  protected ‪$uid_pid;
77 
83  protected ‪$config;
84 
88  protected ‪$pageInfo;
89 
93  protected ‪$view;
94 
98  protected ‪$menuItemView;
99 
105  protected ‪$moduleTemplate;
106 
110  protected ‪$uriBuilder;
111 
115  public function ‪__construct()
116  {
117  $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
118  ‪$GLOBALS['SOBE'] = $this;
119  $this->view = $this->‪getFluidTemplateObject();
120  $this->menuItemView = $this->‪getFluidTemplateObject('MenuItem.html');
121  $this->uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
122  }
123 
129  protected function ‪init(ServerRequestInterface $request)
130  {
131  $lang = $this->‪getLanguageService();
132  $lang->includeLLFile('EXT:core/Resources/Private/Language/locallang_misc.xlf');
133  $lang->includeLLFile('EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf');
134 
135  $parsedBody = $request->getParsedBody();
136  $queryParams = $request->getQueryParams();
137 
138  // Setting internal vars:
139  $this->id = (int)($parsedBody['id'] ?? $queryParams['id'] ?? 0);
140  $this->sys_language = (int)($parsedBody['sys_language_uid'] ?? $queryParams['sys_language_uid'] ?? 0);
141  $this->R_URI = GeneralUtility::sanitizeLocalUrl($parsedBody['returnUrl'] ?? $queryParams['returnUrl'] ?? '');
142  ‪$colPos = $parsedBody['colPos'] ?? $queryParams['colPos'] ?? null;
143  $this->colPos = ‪$colPos === null ? null : (int)‪$colPos;
144  $this->uid_pid = (int)($parsedBody['uid_pid'] ?? $queryParams['uid_pid'] ?? 0);
145  $this->config = ‪BackendUtility::getPagesTSconfig($this->id)['mod.']['wizards.']['newContentElement.']['wizardItems.'] ?? [];
146  // Setting up the context sensitive menu:
147  $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ContextMenu');
148  // Getting the current page and receiving access information (used in main())
149  $this->pageInfo = ‪BackendUtility::readPageAccess($this->id, $this->‪getBackendUser()->getPagePermsClause(‪Permission::PAGE_SHOW));
150  }
151 
159  public function ‪mainAction(ServerRequestInterface $request): ResponseInterface
160  {
161  $this->‪init($request);
162  $this->‪prepareContent('window');
163  $this->moduleTemplate->setContent($this->view->render());
164  return new ‪HtmlResponse($this->moduleTemplate->renderContent());
165  }
166 
174  public function ‪wizardAction(ServerRequestInterface $request): ResponseInterface
175  {
176  $this->‪init($request);
177  $this->‪prepareContent('list_frame');
178  return new ‪HtmlResponse($this->view->render());
179  }
180 
187  protected function ‪onClickInsertRecord(string $clientContext): string
188  {
189  // $this->uid_pid can be negative (= pointing to tt_content record) or positive (= "page ID")
190  $location = (string)$this->uriBuilder->buildUriFromRoute('record_edit', [
191  'edit[tt_content][' . $this->uid_pid . ']' => 'new',
192  'defVals[tt_content][colPos]' => $this->colPos,
193  'defVals[tt_content][sys_language_uid]' => $this->sys_language,
194  'returnUrl' => GeneralUtility::_GP('returnUrl')
195  ]);
196  return $clientContext . '.location.href=' . GeneralUtility::quoteJSvalue($location) . '+document.editForm.defValues.value; return false;';
197  }
198 
207  protected function ‪prepareContent(string $clientContext): void
208  {
209  // Setting up the buttons for docheader
210  $this->‪getButtons();
211  $hasAccess = $this->id && is_array($this->pageInfo);
212  if ($hasAccess) {
213  // If a column is pre-set
214  if (isset($this->colPos)) {
215  $onClickEvent = $this->‪onClickInsertRecord($clientContext);
216  } else {
217  $onClickEvent = '';
218  }
219  // ***************************
220  // Creating content
221  // ***************************
222  // Wizard
223  $wizardItems = $this->‪getWizards();
224  // Wrapper for wizards
225  // Hook for manipulating wizardItems, wrapper, onClickEvent etc.
226  foreach (‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms']['db_new_content_el']['wizardItemsHook'] ?? [] as $className) {
227  $hookObject = GeneralUtility::makeInstance($className);
228  if (!$hookObject instanceof ‪NewContentElementWizardHookInterface) {
229  throw new \UnexpectedValueException(
230  $className . ' must implement interface ' . NewContentElementWizardHookInterface::class,
231  1227834741
232  );
233  }
234  $hookObject->manipulateWizardItems($wizardItems, $this);
235  }
236 
237  // Traverse items for the wizard.
238  // An item is either a header or an item rendered with a radio button and title/description and icon:
239  $cc = ($key = 0);
240  $menuItems = [];
241 
242  $this->view->assignMultiple([
243  'hasClickEvent' => $onClickEvent !== '',
244  'onClickEvent' => 'function goToalt_doc() { ' . $onClickEvent . '}',
245  ]);
246 
247  foreach ($wizardItems as $wizardKey => $wInfo) {
248  $wizardOnClick = '';
249  if (isset($wInfo['header'])) {
250  $menuItems[] = [
251  'label' => $wInfo['header'] ?: '-',
252  'content' => ''
253  ];
254  $key = count($menuItems) - 1;
255  } else {
256  if (!$onClickEvent) {
257  // Radio button:
258  $wizardOnClick = 'document.editForm.defValues.value=unescape(' . GeneralUtility::quoteJSvalue(rawurlencode($wInfo['params'])) . '); window.location.hash=\'#sel2\';';
259  // Onclick action for icon/title:
260  $aOnClick = 'document.getElementsByName(\'tempB\')[' . $cc . '].checked=1;' . $wizardOnClick . 'return false;';
261  } else {
262  $aOnClick = "document.editForm.defValues.value=unescape('" . rawurlencode($wInfo['params']) . "');goToalt_doc();";
263  }
264 
265  // Go to DataHandler directly instead of FormEngine - Only when colPos must not be selected
266  if (($wInfo['saveAndClose'] ?? false) && $onClickEvent !== '') {
267  $urlParams = [];
269  parse_str($wInfo['params'], $urlParams);
270  $urlParams['data']['tt_content'][‪$id] = $urlParams['defVals']['tt_content'] ?? [];
271  $urlParams['data']['tt_content'][‪$id]['colPos'] = ‪$this->colPos;
272  $urlParams['data']['tt_content'][‪$id]['pid'] = ‪$this->uid_pid;
273  $urlParams['data']['tt_content'][‪$id]['sys_language_uid'] = ‪$this->sys_language;
274  $urlParams['redirect'] = GeneralUtility::_GP('returnUrl');
275  unset($urlParams['defVals']);
276  $url = $this->uriBuilder->buildUriFromRoute('tce_db', $urlParams);
277  $aOnClick = 'list_frame.location.href=' . GeneralUtility::quoteJSvalue((string)$url) . '; return false';
278  }
279  $icon = $this->moduleTemplate->getIconFactory()->getIcon($wInfo['iconIdentifier'])->render();
280 
281  $this->menuItemView->assignMultiple([
282  'onClickEvent' => $onClickEvent,
283  'aOnClick' => $aOnClick,
284  'wizardInformation' => $wInfo,
285  'icon' => $icon,
286  'wizardOnClick' => $wizardOnClick,
287  'wizardKey' => $wizardKey
288  ]);
289  $menuItems[$key]['content'] .= $this->menuItemView->render();
290  $cc++;
291  }
292  }
293 
294  $this->view->assign('renderedTabs', $this->moduleTemplate->getDynamicTabMenu(
295  $menuItems,
296  'new-content-element-wizard'
297  ));
298 
299  // If the user must also select a column:
300  if (!$onClickEvent) {
301  $this->‪definePositionMapEntries($clientContext);
302  }
303  }
304  $this->view->assign('hasAccess', $hasAccess);
305  }
306 
313  protected function ‪definePositionMapEntries(string $clientContext): void
314  {
315  // Load SHARED page-TSconfig settings and retrieve column list from there, if applicable:
316  $colPosArray = GeneralUtility::makeInstance(BackendLayoutView::class)->getColPosListItemsParsed((int)$this->id);
317  $colPosIds = array_column($colPosArray, 1);
318  // Removing duplicates, if any
319  $colPosList = implode(',', array_unique(array_map('intval', $colPosIds)));
320  // Finally, add the content of the column selector to the content:
321  // Init position map object
322  $posMap = GeneralUtility::makeInstance(
323  ContentCreationPagePositionMap::class,
324  null,
325  $clientContext
326  );
327  $posMap->cur_sys_language = ‪$this->sys_language;
328  $this->view->assign('posMap', $posMap->printContentElementColumns($this->id, 0, $colPosList, 1, $this->R_URI));
329  }
330 
334  protected function ‪getButtons()
335  {
336  $buttonBar = $this->moduleTemplate->getDocHeaderComponent()->getButtonBar();
337  if ($this->R_URI) {
338  $backButton = $buttonBar->makeLinkButton()
339  ->setHref($this->R_URI)
340  ->setTitle($this->‪getLanguageService()->getLL('goBack'))
341  ->setIcon($this->moduleTemplate->getIconFactory()->getIcon(
342  'actions-view-go-back',
344  ));
345  $buttonBar->addButton($backButton);
346  }
347  $cshButton = $buttonBar->makeHelpButton()->setModuleName('xMOD_csh_corebe')->setFieldName('new_ce');
348  $buttonBar->addButton($cshButton);
349  }
350 
357  protected function ‪getWizards(): array
358  {
359  $wizardItems = [];
360  $wizards = ‪$this->config;
361  $appendWizards = $this->‪getAppendWizards($wizards['elements.'] ?? []);
362  if (is_array($wizards)) {
363  foreach ($wizards as $groupKey => $wizardGroup) {
364  $this->‪prepareDependencyOrdering($wizards[$groupKey], 'before');
365  $this->‪prepareDependencyOrdering($wizards[$groupKey], 'after');
366  }
367  $wizards = GeneralUtility::makeInstance(DependencyOrderingService::class)->orderByDependencies($wizards);
368 
369  foreach ($wizards as $groupKey => $wizardGroup) {
370  $groupKey = rtrim($groupKey, '.');
371  $showItems = ‪GeneralUtility::trimExplode(',', $wizardGroup['show'], true);
372  $showAll = in_array('*', $showItems, true);
373  $groupItems = [];
374  if (is_array($appendWizards[$groupKey . '.']['elements.'])) {
375  $wizardElements = array_merge((array)$wizardGroup['elements.'], $appendWizards[$groupKey . '.']['elements.']);
376  } else {
377  $wizardElements = $wizardGroup['elements.'];
378  }
379  if (is_array($wizardElements)) {
380  foreach ($wizardElements as $itemKey => $itemConf) {
381  $itemKey = rtrim($itemKey, '.');
382  if ($showAll || in_array($itemKey, $showItems)) {
383  $tmpItem = $this->‪getWizardItem($itemConf);
384  if ($tmpItem) {
385  $groupItems[$groupKey . '_' . $itemKey] = $tmpItem;
386  }
387  }
388  }
389  }
390  if (!empty($groupItems)) {
391  $wizardItems[$groupKey] = $this->‪getWizardGroupHeader($wizardGroup);
392  $wizardItems = array_merge($wizardItems, $groupItems);
393  }
394  }
395  }
396  // Remove elements where preset values are not allowed:
397  $this->‪removeInvalidWizardItems($wizardItems);
398  return $wizardItems;
399  }
400 
405  protected function ‪getAppendWizards(array $wizardElements): array
406  {
407  if (is_array(‪$GLOBALS['TBE_MODULES_EXT']['xMOD_db_new_content_el']['addElClasses'])) {
408  foreach (‪$GLOBALS['TBE_MODULES_EXT']['xMOD_db_new_content_el']['addElClasses'] as $class => $path) {
409  if (!class_exists($class) && file_exists($path)) {
410  require_once $path;
411  }
412  $modObj = GeneralUtility::makeInstance($class);
413  if (method_exists($modObj, 'proc')) {
414  $wizardElements = $modObj->proc($wizardElements);
415  }
416  }
417  }
418  $returnElements = [];
419  foreach ($wizardElements as $key => $wizardItem) {
420  preg_match('/^[a-zA-Z0-9]+_/', $key, $group);
421  $wizardGroup = $group[0] ? substr($group[0], 0, -1) . '.' : $key;
422  $returnElements[$wizardGroup]['elements.'][substr($key, strlen($wizardGroup)) . '.'] = $wizardItem;
423  }
424  return $returnElements;
425  }
426 
431  protected function ‪getWizardItem(array $itemConf): array
432  {
433  $itemConf['title'] = $this->‪getLanguageService()->‪sL($itemConf['title']);
434  $itemConf['description'] = $this->‪getLanguageService()->‪sL($itemConf['description']);
435  $itemConf['saveAndClose'] = (bool)$itemConf['saveAndClose'];
436  $itemConf['tt_content_defValues'] = $itemConf['tt_content_defValues.'];
437  unset($itemConf['tt_content_defValues.']);
438  return $itemConf;
439  }
440 
445  protected function ‪getWizardGroupHeader(array $wizardGroup): array
446  {
447  return [
448  'header' => $this->‪getLanguageService()->‪sL($wizardGroup['header'])
449  ];
450  }
451 
460  protected function ‪removeInvalidWizardItems(array &$wizardItems): void
461  {
462  $removeItems = [];
463  $keepItems = [];
464  // Get TCEFORM from TSconfig of current page
465  $TCEFORM_TSconfig = ‪BackendUtility::getTCEFORM_TSconfig('tt_content', ['pid' => $this->id]);
466  $headersUsed = [];
467  // Traverse wizard items:
468  foreach ($wizardItems as $key => $cfg) {
469  // Exploding parameter string, if any (old style)
470  if ($wizardItems[$key]['params']) {
471  // Explode GET vars recursively
472  $tempGetVars = [];
473  parse_str($wizardItems[$key]['params'], $tempGetVars);
474  // If tt_content values are set, merge them into the tt_content_defValues array,
475  // unset them from $tempGetVars and re-implode $tempGetVars into the param string
476  // (in case remaining parameters are around).
477  if (is_array($tempGetVars['defVals']['tt_content'])) {
478  $wizardItems[$key]['tt_content_defValues'] = array_merge(
479  is_array($wizardItems[$key]['tt_content_defValues']) ? $wizardItems[$key]['tt_content_defValues'] : [],
480  $tempGetVars['defVals']['tt_content']
481  );
482  unset($tempGetVars['defVals']['tt_content']);
483  $wizardItems[$key]['params'] = ‪HttpUtility::buildQueryString($tempGetVars, '&');
484  }
485  }
486  // If tt_content_defValues are defined...:
487  if (is_array($wizardItems[$key]['tt_content_defValues'])) {
488  $backendUser = $this->‪getBackendUser();
489  // Traverse field values:
490  foreach ($wizardItems[$key]['tt_content_defValues'] as $fN => $fV) {
491  if (is_array(‪$GLOBALS['TCA']['tt_content']['columns'][$fN])) {
492  // Get information about if the field value is OK:
493  ‪$config = &‪$GLOBALS['TCA']['tt_content']['columns'][$fN]['config'];
494  $authModeDeny = ‪$config['type'] === 'select' && ‪$config['authMode']
495  && !$backendUser->checkAuthMode('tt_content', $fN, $fV, ‪$config['authMode']);
496  // explode TSconfig keys only as needed
497  if (!isset($removeItems[$fN]) && isset($TCEFORM_TSconfig[$fN]['removeItems']) && $TCEFORM_TSconfig[$fN]['removeItems'] !== '') {
498  $removeItems[$fN] = array_flip(‪GeneralUtility::trimExplode(
499  ',',
500  $TCEFORM_TSconfig[$fN]['removeItems'],
501  true
502  ));
503  }
504  if (!isset($keepItems[$fN]) && isset($TCEFORM_TSconfig[$fN]['keepItems']) && $TCEFORM_TSconfig[$fN]['keepItems'] !== '') {
505  $keepItems[$fN] = array_flip(‪GeneralUtility::trimExplode(
506  ',',
507  $TCEFORM_TSconfig[$fN]['keepItems'],
508  true
509  ));
510  }
511  $isNotInKeepItems = !empty($keepItems[$fN]) && !isset($keepItems[$fN][$fV]);
512  if ($authModeDeny || ($fN === 'CType' && (isset($removeItems[$fN][$fV]) || $isNotInKeepItems))) {
513  // Remove element all together:
514  unset($wizardItems[$key]);
515  break;
516  }
517  // Add the parameter:
518  $wizardItems[$key]['params'] .= '&defVals[tt_content][' . $fN . ']=' . rawurlencode($this->‪getLanguageService()->sL($fV));
519  $tmp = explode('_', $key);
520  $headersUsed[$tmp[0]] = $tmp[0];
521  }
522  }
523  }
524  }
525  // remove headers without elements
526  foreach ($wizardItems as $key => $cfg) {
527  $tmp = explode('_', $key);
528  if ($tmp[0] && !$tmp[1] && !in_array($tmp[0], $headersUsed)) {
529  unset($wizardItems[$key]);
530  }
531  }
532  }
533 
540  protected function ‪prepareDependencyOrdering(&$wizardGroup, $key)
541  {
542  if (isset($wizardGroup[$key])) {
543  $wizardGroup[$key] = ‪GeneralUtility::trimExplode(',', $wizardGroup[$key]);
544  $wizardGroup[$key] = array_map(function ($s) {
545  return $s . '.';
546  }, $wizardGroup[$key]);
547  }
548  }
549 
553  protected function ‪getLanguageService(): ‪LanguageService
554  {
555  return ‪$GLOBALS['LANG'];
556  }
557 
561  protected function ‪getBackendUser(): ‪BackendUserAuthentication
562  {
563  return ‪$GLOBALS['BE_USER'];
564  }
565 
571  protected function ‪getFluidTemplateObject(string $filename = 'Main.html'): StandaloneView
572  {
573  ‪$view = GeneralUtility::makeInstance(StandaloneView::class);
574  ‪$view->‪setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/Templates/NewContentElement/' . $filename));
576  return ‪$view;
577  }
578 
584  public function ‪getPageInfo(): array
585  {
586  return ‪$this->pageInfo;
587  }
588 
594  public function ‪getColPos(): ?int
595  {
596  return ‪$this->colPos;
597  }
598 
604  public function ‪getSysLanguage(): int
605  {
606  return ‪$this->sys_language;
607  }
608 
614  public function ‪getUidPid(): int
615  {
616  return ‪$this->uid_pid;
617  }
618 }
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$uriBuilder
‪UriBuilder $uriBuilder
Definition: NewContentElementController.php:99
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getWizardItem
‪array getWizardItem(array $itemConf)
Definition: NewContentElementController.php:420
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$view
‪StandaloneView $view
Definition: NewContentElementController.php:85
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getButtons
‪getButtons()
Definition: NewContentElementController.php:323
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$uid_pid
‪int $uid_pid
Definition: NewContentElementController.php:71
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getAppendWizards
‪array getAppendWizards(array $wizardElements)
Definition: NewContentElementController.php:394
‪TYPO3\CMS\Backend\Controller\ContentElement
Definition: ElementHistoryController.php:16
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController
Definition: NewContentElementController.php:44
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\__construct
‪__construct()
Definition: NewContentElementController.php:104
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getWizards
‪array getWizards()
Definition: NewContentElementController.php:346
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:194
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$moduleTemplate
‪ModuleTemplate $moduleTemplate
Definition: NewContentElementController.php:95
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:43
‪TYPO3\CMS\Backend\Tree\View\ContentCreationPagePositionMap
Definition: ContentCreationPagePositionMap.php:27
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:24
‪TYPO3\CMS\Fluid\View\StandaloneView\getRequest
‪TYPO3 CMS Extbase Mvc Request getRequest()
Definition: StandaloneView.php:116
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\definePositionMapEntries
‪definePositionMapEntries(string $clientContext)
Definition: NewContentElementController.php:302
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getUidPid
‪int getUidPid()
Definition: NewContentElementController.php:603
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$sys_language
‪int $sys_language
Definition: NewContentElementController.php:55
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$R_URI
‪string $R_URI
Definition: NewContentElementController.php:61
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getColPos
‪int null getColPos()
Definition: NewContentElementController.php:583
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\init
‪init(ServerRequestInterface $request)
Definition: NewContentElementController.php:118
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\onClickInsertRecord
‪string onClickInsertRecord(string $clientContext)
Definition: NewContentElementController.php:176
‪TYPO3\CMS\Backend\Routing\UriBuilder
Definition: UriBuilder.php:38
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\prepareContent
‪prepareContent(string $clientContext)
Definition: NewContentElementController.php:196
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$pageInfo
‪array $pageInfo
Definition: NewContentElementController.php:81
‪TYPO3\CMS\Core\Utility\HttpUtility\buildQueryString
‪static string buildQueryString(array $parameters, string $prependCharacter='', bool $skipEmptyParameters=false)
Definition: HttpUtility.php:163
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$config
‪array $config
Definition: NewContentElementController.php:77
‪TYPO3\CMS\Backend\Utility\BackendUtility\getPagesTSconfig
‪static array getPagesTSconfig($id)
Definition: BackendUtility.php:698
‪TYPO3\CMS\Extbase\Mvc\Request\setControllerExtensionName
‪setControllerExtensionName($controllerExtensionName)
Definition: Request.php:193
‪TYPO3\CMS\Fluid\View\AbstractTemplateView\setTemplatePathAndFilename
‪setTemplatePathAndFilename($templatePathAndFilename)
Definition: AbstractTemplateView.php:103
‪TYPO3\CMS\Core\Service\DependencyOrderingService
Definition: DependencyOrderingService.php:32
‪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\Backend\Wizard\NewContentElementWizardHookInterface
Definition: NewContentElementWizardHookInterface.php:23
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\mainAction
‪ResponseInterface mainAction(ServerRequestInterface $request)
Definition: NewContentElementController.php:148
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\removeInvalidWizardItems
‪removeInvalidWizardItems(array &$wizardItems)
Definition: NewContentElementController.php:449
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static string[] trimExplode($delim, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:1059
‪TYPO3\CMS\Backend\Utility\BackendUtility\readPageAccess
‪static array false readPageAccess($id, $perms_clause)
Definition: BackendUtility.php:597
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static string getUniqueId($prefix='')
Definition: StringUtility.php:92
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:34
‪TYPO3\CMS\Backend\View\BackendLayoutView
Definition: BackendLayoutView.php:36
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$colPos
‪int null $colPos
Definition: NewContentElementController.php:67
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\prepareDependencyOrdering
‪prepareDependencyOrdering(&$wizardGroup, $key)
Definition: NewContentElementController.php:529
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getWizardGroupHeader
‪array getWizardGroupHeader(array $wizardGroup)
Definition: NewContentElementController.php:434
‪TYPO3\CMS\Core\Utility\HttpUtility
Definition: HttpUtility.php:24
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getBackendUser
‪BackendUserAuthentication getBackendUser()
Definition: NewContentElementController.php:550
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$id
‪int $id
Definition: NewContentElementController.php:49
‪TYPO3\CMS\Backend\Utility\BackendUtility\getTCEFORM_TSconfig
‪static array getTCEFORM_TSconfig($table, $row)
Definition: BackendUtility.php:3096
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getLanguageService
‪LanguageService getLanguageService()
Definition: NewContentElementController.php:542
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getSysLanguage
‪int getSysLanguage()
Definition: NewContentElementController.php:593
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\$menuItemView
‪StandaloneView $menuItemView
Definition: NewContentElementController.php:89
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:22
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getPageInfo
‪array getPageInfo()
Definition: NewContentElementController.php:573
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\getFluidTemplateObject
‪StandaloneView getFluidTemplateObject(string $filename='Main.html')
Definition: NewContentElementController.php:560
‪TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController\wizardAction
‪ResponseInterface wizardAction(ServerRequestInterface $request)
Definition: NewContentElementController.php:163
‪TYPO3\CMS\Core\Http\HtmlResponse
Definition: HtmlResponse.php:26