‪TYPO3CMS  9.5
RecordProvider.php
Go to the documentation of this file.
1 <?php
2 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 
24 
29 {
35  protected ‪$record = [];
36 
42  protected ‪$pageRecord = [];
43 
49  protected ‪$pagePermissions = 0;
50 
54  protected ‪$itemsConfiguration = [
55  'view' => [
56  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.view',
57  'iconIdentifier' => 'actions-view',
58  'callbackAction' => 'viewRecord'
59  ],
60  'edit' => [
61  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.edit',
62  'iconIdentifier' => 'actions-open',
63  'callbackAction' => 'editRecord'
64  ],
65  'new' => [
66  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.new',
67  'iconIdentifier' => 'actions-add',
68  'callbackAction' => 'newRecord'
69  ],
70  'info' => [
71  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.info',
72  'iconIdentifier' => 'actions-document-info',
73  'callbackAction' => 'openInfoPopUp'
74  ],
75  'divider1' => [
76  'type' => 'divider'
77  ],
78  'copy' => [
79  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.copy',
80  'iconIdentifier' => 'actions-edit-copy',
81  'callbackAction' => 'copy'
82  ],
83  'copyRelease' => [
84  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.copy',
85  'iconIdentifier' => 'actions-edit-copy-release',
86  'callbackAction' => 'clipboardRelease'
87  ],
88  'cut' => [
89  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.cut',
90  'iconIdentifier' => 'actions-edit-cut',
91  'callbackAction' => 'cut'
92  ],
93  'cutRelease' => [
94  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.cutrelease',
95  'iconIdentifier' => 'actions-edit-cut-release',
96  'callbackAction' => 'clipboardRelease'
97  ],
98  'pasteAfter' => [
99  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.pasteafter',
100  'iconIdentifier' => 'actions-document-paste-after',
101  'callbackAction' => 'pasteAfter'
102  ],
103  'divider2' => [
104  'type' => 'divider'
105  ],
106  'more' => [
107  'type' => 'submenu',
108  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.more',
109  'iconIdentifier' => '',
110  'callbackAction' => 'openSubmenu',
111  'childItems' => [
112  'newWizard' => [
113  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_newWizard',
114  'iconIdentifier' => 'actions-add',
115  'callbackAction' => 'newContentWizard',
116  ],
117  'openListModule' => [
118  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_db_list',
119  'iconIdentifier' => 'actions-system-list-open',
120  'callbackAction' => 'openListModule',
121  ],
122  ],
123  ],
124  'divider3' => [
125  'type' => 'divider'
126  ],
127  'enable' => [
128  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:enable',
129  'iconIdentifier' => 'actions-edit-unhide',
130  'callbackAction' => 'enableRecord',
131  ],
132  'disable' => [
133  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:disable',
134  'iconIdentifier' => 'actions-edit-hide',
135  'callbackAction' => 'disableRecord',
136  ],
137  'delete' => [
138  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete',
139  'iconIdentifier' => 'actions-edit-delete',
140  'callbackAction' => 'deleteRecord',
141  ],
142  'history' => [
143  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_history',
144  'iconIdentifier' => 'actions-document-history-open',
145  'callbackAction' => 'openHistoryPopUp',
146  ],
147  ];
148 
154  public function ‪canHandle(): bool
155  {
156  if (in_array($this->table, ['sys_file', 'sys_filemounts', 'sys_file_storage', 'pages'], true)
157  || strpos($this->table, '-drag') !== false) {
158  return false;
159  }
160  return isset(‪$GLOBALS['TCA'][$this->table]);
161  }
162 
166  protected function ‪initialize()
167  {
168  parent::initialize();
169  $this->record = ‪BackendUtility::getRecordWSOL($this->table, $this->identifier);
170  $this->‪initPermissions();
171  }
172 
178  public function ‪getPriority(): int
179  {
180  return 60;
181  }
182 
189  public function ‪addItems(array $items): array
190  {
191  if (!empty($items)) {
192  return $items;
193  }
194  $this->‪initialize();
195  return $this->‪prepareItems($this->itemsConfiguration);
196  }
197 
205  protected function ‪canRender(string $itemName, string $type): bool
206  {
207  if (in_array($type, ['divider', 'submenu'], true)) {
208  return true;
209  }
210  if (in_array($itemName, $this->disabledItems, true)) {
211  return false;
212  }
213  $canRender = false;
214  switch ($itemName) {
215  case 'view':
216  $canRender = $this->‪canBeViewed();
217  break;
218  case 'edit':
219  case 'new':
220  $canRender = $this->‪canBeEdited();
221  break;
222  case 'newWizard':
223  $canRender = $this->‪canOpenNewCEWizard();
224  break;
225  case 'info':
226  $canRender = $this->‪canShowInfo();
227  break;
228  case 'enable':
229  $canRender = $this->‪canBeEnabled();
230  break;
231  case 'disable':
232  $canRender = $this->‪canBeDisabled();
233  break;
234  case 'delete':
235  $canRender = $this->‪canBeDeleted();
236  break;
237  case 'history':
238  $canRender = $this->‪canShowHistory();
239  break;
240  case 'openListModule':
241  $canRender = $this->‪canOpenListModule();
242  break;
243  case 'copy':
244  $canRender = $this->‪canBeCopied();
245  break;
246  case 'copyRelease':
247  $canRender = $this->‪isRecordInClipboard('copy');
248  break;
249  case 'cut':
250  $canRender = $this->‪canBeCut();
251  break;
252  case 'cutRelease':
253  $canRender = $this->‪isRecordInClipboard('cut');
254  break;
255  case 'pasteAfter':
256  $canRender = $this->‪canBePastedAfter();
257  break;
258  }
259  return $canRender;
260  }
261 
265  protected function ‪initPermissions()
266  {
267  $this->pageRecord = ‪BackendUtility::getRecord('pages', $this->record['pid']);
268  $this->pagePermissions = $this->backendUser->calcPerms($this->pageRecord);
269  }
270 
278  protected function ‪hasPagePermission(int $permission): bool
279  {
280  return $this->backendUser->isAdmin() || ($this->pagePermissions & $permission) == $permission;
281  }
282 
289  protected function ‪getAdditionalAttributes(string $itemName): array
290  {
291  $attributes = [];
292  if ($itemName === 'view') {
293  $attributes += $this->‪getViewAdditionalAttributes();
294  }
295  if ($itemName === 'enable' || $itemName === 'disable') {
296  $attributes += $this->‪getEnableDisableAdditionalAttributes();
297  }
298  if ($itemName === 'newWizard' && $this->table === 'tt_content') {
299  $moduleName = ‪BackendUtility::getPagesTSconfig($this->record['pid'])['mod.']['newContentElementWizard.']['override']
300  ?? 'new_content_element_wizard';
301  $urlParameters = [
302  'id' => $this->record['pid'],
303  'sys_language_uid' => $this->record['sys_language_uid'],
304  'colPos' => $this->record['colPos'],
305  'uid_pid' => -$this->record['uid']
306  ];
307  $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
308  $url = (string)$uriBuilder->buildUriFromRoute($moduleName, $urlParameters);
309  $attributes += [
310  'data-new-wizard-url' => htmlspecialchars($url),
311  'data-title' => $this->languageService->getLL('newContentElement'),
312  ];
313  }
314  if ($itemName === 'delete') {
315  $attributes += $this->‪getDeleteAdditionalAttributes();
316  }
317  if ($itemName === 'openListModule') {
318  $attributes += [
319  'data-page-uid' => $this->record['pid']
320  ];
321  }
322  if ($itemName === 'pasteAfter') {
323  $attributes += $this->‪getPasteAdditionalAttributes('after');
324  }
325  return $attributes;
326  }
327 
333  protected function ‪getViewAdditionalAttributes(): array
334  {
335  $attributes = [];
336  $viewLink = $this->‪getViewLink();
337  if ($viewLink) {
338  $attributes += [
339  'data-preview-url' => htmlspecialchars($viewLink),
340  ];
341  }
342  return $attributes;
343  }
344 
350  protected function ‪getEnableDisableAdditionalAttributes(): array
351  {
352  return [
353  'data-disable-field' => ‪$GLOBALS['TCA'][‪$this->table]['ctrl']['enablecolumns']['disabled'] ?? ''
354  ];
355  }
356 
363  protected function ‪getPasteAdditionalAttributes(string $type): array
364  {
365  $closeText = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel');
366  $okText = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:ok');
367  $attributes = [];
368  if ($this->backendUser->jsConfirmation(‪JsConfirmation::COPY_MOVE_PASTE)) {
369  $selItem = $this->clipboard->getSelectedRecord();
370  $title = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:clip_paste');
371 
372  $confirmMessage = sprintf(
373  $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:mess.'
374  . ($this->clipboard->currentMode() === 'copy' ? 'copy' : 'move') . '_' . $type),
375  GeneralUtility::fixed_lgd_cs($selItem['_RECORD_TITLE'], $this->backendUser->uc['titleLen']),
376  GeneralUtility::fixed_lgd_cs(‪BackendUtility::getRecordTitle($this->table, $this->record), $this->backendUser->uc['titleLen'])
377  );
378  $attributes += [
379  'data-title' => htmlspecialchars($title),
380  'data-message' => htmlspecialchars($confirmMessage),
381  'data-button-close-text' => htmlspecialchars($closeText),
382  'data-button-ok-text' => htmlspecialchars($okText),
383  ];
384  }
385  return $attributes;
386  }
387 
393  protected function ‪getDeleteAdditionalAttributes(): array
394  {
395  $closeText = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel');
396  $okText = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:delete');
397  $attributes = [];
398  if ($this->backendUser->jsConfirmation(‪JsConfirmation::DELETE)) {
399  $recordTitle = GeneralUtility::fixed_lgd_cs(‪BackendUtility::getRecordTitle($this->table, $this->record), $this->backendUser->uc['titleLen']);
400 
401  $title = $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:delete');
402  $confirmMessage = sprintf(
403  $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:mess.delete'),
404  $recordTitle
405  );
406  $confirmMessage .= ‪BackendUtility::referenceCount(
407  $this->table,
408  $this->record['uid'],
409  ' ' . $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToRecord')
410  );
411  $confirmMessage .= ‪BackendUtility::translationCount(
412  $this->table,
413  $this->record['uid'],
414  ' ' . $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.translationsOfRecord')
415  );
416  $attributes += [
417  'data-title' => htmlspecialchars($title),
418  'data-message' => htmlspecialchars($confirmMessage),
419  'data-button-close-text' => htmlspecialchars($closeText),
420  'data-button-ok-text' => htmlspecialchars($okText),
421  ];
422  }
423  return $attributes;
424  }
425 
431  protected function ‪getPreviewPid(): int
432  {
433  return (int)$this->record['pid'];
434  }
435 
441  protected function ‪getViewLink(): string
442  {
443  $anchorSection = '';
444  $additionalParams = '';
445  if ($this->table === 'tt_content') {
446  $anchorSection = '#c' . $this->record['uid'];
447  $language = (int)$this->record[‪$GLOBALS['TCA']['tt_content']['ctrl']['languageField']];
448  if ($language > 0) {
449  $additionalParams = '&L=' . $language;
450  }
451  }
452 
454  $this->‪getPreviewPid(),
455  '',
456  null,
457  $anchorSection,
458  '',
459  $additionalParams
460  );
461  }
462 
468  protected function ‪canShowInfo(): bool
469  {
470  return true;
471  }
472 
478  protected function ‪canShowHistory(): bool
479  {
480  $userTsConfig = $this->backendUser->getTSConfig();
481  return (bool)trim($userTsConfig['options.']['showHistory.'][$this->table] ?? $userTsConfig['options.']['showHistory'] ?? '1');
482  }
483 
489  protected function ‪canBeViewed(): bool
490  {
491  return $this->table === 'tt_content';
492  }
493 
499  protected function ‪canBeEdited(): bool
500  {
501  if (isset(‪$GLOBALS['TCA'][$this->table]['ctrl']['readOnly']) && ‪$GLOBALS['TCA'][$this->table]['ctrl']['readOnly']) {
502  return false;
503  }
504  if ($this->backendUser->isAdmin()) {
505  return true;
506  }
507  if (isset(‪$GLOBALS['TCA'][$this->table]['ctrl']['adminOnly']) && ‪$GLOBALS['TCA'][$this->table]['ctrl']['adminOnly']) {
508  return false;
509  }
510 
511  $access = !$this->‪isRecordLocked()
512  && $this->backendUser->check('tables_modify', $this->table)
514  && $this->backendUser->recordEditAccessInternals($this->table, $this->record);
515  return $access;
516  }
517 
523  protected function ‪isDeletionDisabledInTS(): bool
524  {
525  return (bool)\trim(
526  $this->backendUser->getTSConfig()['options.']['disableDelete.'][$this->table]
527  ?? $this->backendUser->getTSConfig()['options.']['disableDelete']
528  ?? ''
529  );
530  }
531 
537  protected function ‪canBeDeleted(): bool
538  {
539  return !$this->‪isDeletionDisabledInTS() && $this->‪canBeEdited();
540  }
541 
547  protected function ‪canBeEnabled(): bool
548  {
549  return $this->‪hasDisableColumnWithValue(1) && $this->‪canBeEdited();
550  }
551 
557  protected function ‪canBeDisabled(): bool
558  {
559  return $this->‪hasDisableColumnWithValue(0) && $this->‪canBeEdited();
560  }
561 
567  protected function ‪canOpenNewCEWizard(): bool
568  {
569  return $this->table === 'tt_content'
570  && (bool)(‪BackendUtility::getPagesTSconfig($this->record['pid'])['mod.']['web_layout.']['disableNewContentElementWizard'] ?? true)
571  && $this->‪canBeEdited();
572  }
573 
577  protected function ‪canOpenListModule(): bool
578  {
579  return $this->backendUser->check('modules', 'web_list');
580  }
581 
585  protected function ‪canBeCopied(): bool
586  {
587  return !$this->‪isRecordInClipboard('copy')
588  && !$this->‪isRecordATranslation();
589  }
590 
594  protected function ‪canBeCut(): bool
595  {
596  return !$this->‪isRecordInClipboard('cut')
597  && $this->‪canBeEdited()
598  && !$this->‪isRecordATranslation();
599  }
600 
606  protected function ‪canBePastedAfter(): bool
607  {
608  $clipboardElementCount = count($this->clipboard->elFromTable($this->table));
609 
610  return $clipboardElementCount
611  && $this->backendUser->check('tables_modify', $this->table)
613  }
614 
622  protected function ‪hasDisableColumnWithValue(int $value): bool
623  {
624  if (isset(‪$GLOBALS['TCA'][$this->table]['ctrl']['enablecolumns']['disabled'])) {
625  $hiddenFieldName = ‪$GLOBALS['TCA'][‪$this->table]['ctrl']['enablecolumns']['disabled'];
626  if (
627  $hiddenFieldName !== '' && !empty(‪$GLOBALS['TCA'][$this->table]['columns'][$hiddenFieldName])
628  && (
629  empty(‪$GLOBALS['TCA'][$this->table]['columns'][$hiddenFieldName]['exclude'])
630  || $this->backendUser->check('non_exclude_fields', $this->table . ':' . $hiddenFieldName)
631  )
632  ) {
633  return (int)$this->record[$hiddenFieldName] === (int)$value;
634  }
635  }
636  return false;
637  }
638 
644  protected function ‪isRecordLocked(): bool
645  {
646  return (int)$this->pageRecord['editlock'] === 1
647  || isset(‪$GLOBALS['TCA'][$this->table]['ctrl']['editlock'])
648  && (int)$this->record[‪$GLOBALS['TCA'][$this->table]['ctrl']['editlock']] === 1;
649  }
650 
656  protected function ‪isDeletePlaceholder(): bool
657  {
658  if (!isset($this->record['t3ver_state'])) {
659  return false;
660  }
661  return ‪VersionState::cast($this->record['t3ver_state'])->equals(‪VersionState::DELETE_PLACEHOLDER);
662  }
663 
670  protected function ‪isRecordInClipboard(string $mode = ''): bool
671  {
672  $isSelected = '';
673  if ($this->clipboard->current === 'normal') {
674  $isSelected = $this->clipboard->isSelected($this->table, $this->record['uid']);
675  }
676  return $mode === '' ? !empty($isSelected) : $isSelected === $mode;
677  }
678 
684  protected function ‪isRecordATranslation(): bool
685  {
686  return ‪BackendUtility::isTableLocalizable($this->table) && (int)$this->record[‪$GLOBALS['TCA'][$this->table]['ctrl']['transOrigPointerField']] !== 0;
687  }
688 
692  protected function ‪getIdentifier(): string
693  {
694  return $this->record['uid'];
695  }
696 }
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\$itemsConfiguration
‪array $itemsConfiguration
Definition: RecordProvider.php:50
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBePastedAfter
‪bool canBePastedAfter()
Definition: RecordProvider.php:602
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeCopied
‪bool canBeCopied()
Definition: RecordProvider.php:581
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getEnableDisableAdditionalAttributes
‪array getEnableDisableAdditionalAttributes()
Definition: RecordProvider.php:346
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeDeleted
‪bool canBeDeleted()
Definition: RecordProvider.php:533
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canOpenNewCEWizard
‪bool canOpenNewCEWizard()
Definition: RecordProvider.php:563
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeCut
‪bool canBeCut()
Definition: RecordProvider.php:590
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canShowHistory
‪bool canShowHistory()
Definition: RecordProvider.php:474
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\$record
‪array $record
Definition: RecordProvider.php:34
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeDisabled
‪bool canBeDisabled()
Definition: RecordProvider.php:553
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\isRecordInClipboard
‪bool isRecordInClipboard(string $mode='')
Definition: RecordProvider.php:666
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\AbstractProvider\$table
‪string $table
Definition: AbstractProvider.php:61
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\AbstractProvider\prepareItems
‪array prepareItems(array $itemsConfiguration)
Definition: AbstractProvider.php:165
‪TYPO3\CMS\Core\Versioning\VersionState\DELETE_PLACEHOLDER
‪const DELETE_PLACEHOLDER
Definition: VersionState.php:54
‪TYPO3\CMS\Backend\Utility\BackendUtility\referenceCount
‪static string referenceCount($table, $ref, $msg='', $count=null)
Definition: BackendUtility.php:3787
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\AbstractProvider
Definition: AbstractProvider.php:29
‪TYPO3\CMS\Core\Type\Bitmask\JsConfirmation\COPY_MOVE_PASTE
‪const COPY_MOVE_PASTE
Definition: JsConfirmation.php:33
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getViewAdditionalAttributes
‪array getViewAdditionalAttributes()
Definition: RecordProvider.php:329
‪TYPO3\CMS\Backend\Utility\BackendUtility\getPreviewUrl
‪static string getPreviewUrl( $pageUid, $backPath='', $rootLine=null, $anchorSection='', $alternativeUrl='', $additionalGetVars='', &$switchFocus=true)
Definition: BackendUtility.php:2656
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getViewLink
‪string getViewLink()
Definition: RecordProvider.php:437
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:23
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\isDeletePlaceholder
‪bool isDeletePlaceholder()
Definition: RecordProvider.php:652
‪TYPO3\CMS\Backend\Utility\BackendUtility\translationCount
‪static string translationCount($table, $ref, $msg='')
Definition: BackendUtility.php:3837
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\hasDisableColumnWithValue
‪bool hasDisableColumnWithValue(int $value)
Definition: RecordProvider.php:618
‪TYPO3\CMS\Core\Type\Bitmask\JsConfirmation\DELETE
‪const DELETE
Definition: JsConfirmation.php:38
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getPreviewPid
‪int getPreviewPid()
Definition: RecordProvider.php:427
‪TYPO3\CMS\Core\Type\Enumeration\cast
‪static static cast($value)
Definition: Enumeration.php:182
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canHandle
‪bool canHandle()
Definition: RecordProvider.php:150
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeViewed
‪bool canBeViewed()
Definition: RecordProvider.php:485
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getPasteAdditionalAttributes
‪array getPasteAdditionalAttributes(string $type)
Definition: RecordProvider.php:359
‪TYPO3\CMS\Backend\Routing\UriBuilder
Definition: UriBuilder.php:35
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getPriority
‪int getPriority()
Definition: RecordProvider.php:174
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getAdditionalAttributes
‪array getAdditionalAttributes(string $itemName)
Definition: RecordProvider.php:285
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecordTitle
‪static string getRecordTitle($table, $row, $prep=false, $forceResult=true)
Definition: BackendUtility.php:1811
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\isDeletionDisabledInTS
‪bool isDeletionDisabledInTS()
Definition: RecordProvider.php:519
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\initialize
‪initialize()
Definition: RecordProvider.php:162
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeEdited
‪bool canBeEdited()
Definition: RecordProvider.php:495
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canShowInfo
‪bool canShowInfo()
Definition: RecordProvider.php:464
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:72
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecordWSOL
‪static array getRecordWSOL( $table, $uid, $fields=' *', $where='', $useDeleteClause=true, $unsetMovePointers=false)
Definition: BackendUtility.php:174
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecord
‪static array null getRecord($table, $uid, $fields=' *', $where='', $useDeleteClause=true)
Definition: BackendUtility.php:130
‪TYPO3\CMS\Core\Versioning\VersionState
Definition: VersionState.php:23
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\$pageRecord
‪array $pageRecord
Definition: RecordProvider.php:40
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canOpenListModule
‪bool canOpenListModule()
Definition: RecordProvider.php:573
‪TYPO3\CMS\Backend\Utility\BackendUtility\isTableLocalizable
‪static bool isTableLocalizable($table)
Definition: BackendUtility.php:616
‪TYPO3\CMS\Core\Type\Bitmask\Permission\CONTENT_EDIT
‪const CONTENT_EDIT
Definition: Permission.php:52
‪TYPO3\CMS\Backend\Utility\BackendUtility\getPagesTSconfig
‪static array getPagesTSconfig($id, $rootLine=null, $returnPartArray=false)
Definition: BackendUtility.php:864
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider
Definition: RecordProvider.php:29
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getDeleteAdditionalAttributes
‪array getDeleteAdditionalAttributes()
Definition: RecordProvider.php:389
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\hasPagePermission
‪bool hasPagePermission(int $permission)
Definition: RecordProvider.php:274
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\getIdentifier
‪string getIdentifier()
Definition: RecordProvider.php:688
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\isRecordATranslation
‪bool isRecordATranslation()
Definition: RecordProvider.php:680
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\initPermissions
‪initPermissions()
Definition: RecordProvider.php:261
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\isRecordLocked
‪bool isRecordLocked()
Definition: RecordProvider.php:640
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:45
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canRender
‪bool canRender(string $itemName, string $type)
Definition: RecordProvider.php:201
‪TYPO3\CMS\Core\Type\Bitmask\JsConfirmation
Definition: JsConfirmation.php:24
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\$pagePermissions
‪int $pagePermissions
Definition: RecordProvider.php:46
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders
Definition: AbstractProvider.php:3
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\addItems
‪array addItems(array $items)
Definition: RecordProvider.php:185
‪TYPO3\CMS\Backend\ContextMenu\ItemProviders\RecordProvider\canBeEnabled
‪bool canBeEnabled()
Definition: RecordProvider.php:543