RecordProvider extends AbstractProvider
Class responsible for providing click menu items for db records which don't have custom provider (as e.g. pages)
Table of Contents
Properties
- $backendUser : BackendUserAuthentication
- $clipboard : Clipboard
- $context : string
- Context - from where the click menu was triggered (e.g. 'tree')
- $disabledItems : array<string|int, mixed>
- Click menu items disabled by TSConfig
- $identifier : string
- $itemsConfiguration : array<string|int, mixed>
- Array of items the class is providing
- $languageService : LanguageService
- Language Service property. Used to access localized labels
- $pagePermissions : Permission
- Local cache for the result of BackendUserAuthentication::calcPerms()
- $pageRecord : array<string|int, mixed>
- Database record of the page $this->record is placed on
- $record : array<string|int, mixed>
- Database record
- $table : string
- Current table name
Methods
- __construct() : mixed
- Lightweight constructor, just to be able to call ->canHandle(). Rest of the initialization is done in the initialize() method
- addItems() : array<string|int, mixed>
- This provider works as a fallback if there is no provider dedicated for certain table, thus it's only kicking in when $items are empty.
- canHandle() : bool
- Whether this provider should kick in
- getPriority() : int
- Priority is set to lower then default value, in order to skip this provider if there is less generic provider available.
- canBeCopied() : bool
- canBeCut() : bool
- canBeDeleted() : bool
- Checks if the user has the right to delete the record
- canBeDisabled() : bool
- Returns true if current record can be hidden
- canBeEdited() : bool
- Whether a record can be edited
- canBeEnabled() : bool
- Returns true if current record can be unhidden/enabled
- canBeNew() : bool
- Whether a record can be created
- canBePastedAfter() : bool
- Paste after is only shown for records from the same table (comparing record in clipboard and record clicked)
- canBeViewed() : bool
- Checks if the record can be previewed in frontend
- canOpenListModule() : bool
- canOpenNewCEWizard() : bool
- Returns true new content element wizard can be shown
- canRender() : bool
- Whether a given item can be rendered (e.g. user has enough permissions)
- canShowHistory() : bool
- Checks if the page is allowed to show info
- canShowInfo() : bool
- Checks if the page is allowed to show info
- getAdditionalAttributes() : array<string|int, mixed>
- Additional attributes for JS
- getDeleteAdditionalAttributes() : array<string|int, mixed>
- Additional data for a "delete" action (confirmation modal title and message)
- getEnableDisableAdditionalAttributes() : array<string|int, mixed>
- Additional attributes for the hide & unhide items
- getIdentifier() : string
- Returns a clicked record identifier
- getPasteAdditionalAttributes() : array<string|int, mixed>
- Additional attributes for the pasteInto and pasteAfter items
- getPreviewPid() : int
- Returns id of the Page used for preview
- getViewAdditionalAttributes() : array<string|int, mixed>
- Additional attributes for the 'view' item
- getViewLink() : string
- Returns the view link
- hasDisableColumnWithValue() : bool
- Checks if table have "disable" column (e.g. "hidden"), if user has access to this column and if it contains given value
- hasPagePermission() : bool
- Returns true if a current user have access to given permission
- initClipboard() : mixed
- Initialize clipboard object - necessary for all copy/cut/paste operations
- initDisabledItems() : mixed
- Fills $this->disabledItems with the values from TSConfig.
- initialize() : mixed
- Initialize db record
- initPermissions() : mixed
- Saves calculated permissions for a page containing given record, to speed things up
- isDeletePlaceholder() : bool
- Returns true is a current record is a delete placeholder
- isDeletionDisabledInTS() : bool
- Checks if disableDelete flag is set in TSConfig for the current table
- isRecordATranslation() : bool
- Returns true is a record ia a translation
- isRecordCurrentBackendUser() : bool
- Return true in case the current record is the current backend user
- isRecordInClipboard() : bool
- Checks if current record is in the "normal" pad of the clipboard
- isRecordLocked() : bool
- Record is locked if page is locked or page is not locked but record is
- parentPageCanBeViewed() : bool
- Check whether the elements' parent page can be viewed
- prepareItems() : array<string|int, mixed>
- Converts item configuration (from $this->itemsConfiguration) into an array ready for returning by controller
Properties
$backendUser
protected
BackendUserAuthentication
$backendUser
$clipboard
protected
Clipboard
$clipboard
$context
Context - from where the click menu was triggered (e.g. 'tree')
protected
string
$context
= ''
$disabledItems
Click menu items disabled by TSConfig
protected
array<string|int, mixed>
$disabledItems
= []
$identifier
protected
string
$identifier
= ''
clicked record identifier (usually uid or file combined identifier)
$itemsConfiguration
Array of items the class is providing
protected
array<string|int, mixed>
$itemsConfiguration
= ['view' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.view', 'iconIdentifier' => 'actions-view', 'callbackAction' => 'viewRecord'], 'edit' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.edit', 'iconIdentifier' => 'actions-open', 'callbackAction' => 'editRecord'], 'new' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.new', 'iconIdentifier' => 'actions-add', 'callbackAction' => 'newRecord'], 'info' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.info', 'iconIdentifier' => 'actions-document-info', 'callbackAction' => 'openInfoPopUp'], 'divider1' => ['type' => 'divider'], 'copy' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.copy', 'iconIdentifier' => 'actions-edit-copy', 'callbackAction' => 'copy'], 'copyRelease' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.copy', 'iconIdentifier' => 'actions-edit-copy-release', 'callbackAction' => 'clipboardRelease'], 'cut' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.cut', 'iconIdentifier' => 'actions-edit-cut', 'callbackAction' => 'cut'], 'cutRelease' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.cutrelease', 'iconIdentifier' => 'actions-edit-cut-release', 'callbackAction' => 'clipboardRelease'], 'pasteAfter' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.pasteafter', 'iconIdentifier' => 'actions-document-paste-after', 'callbackAction' => 'pasteAfter'], 'divider2' => ['type' => 'divider'], 'more' => ['type' => 'submenu', 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.more', 'iconIdentifier' => '', 'callbackAction' => 'openSubmenu', 'childItems' => ['newWizard' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_newWizard', 'iconIdentifier' => 'actions-add', 'callbackAction' => 'newContentWizard'], 'openListModule' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_db_list', 'iconIdentifier' => 'actions-system-list-open', 'callbackAction' => 'openListModule']]], 'divider3' => ['type' => 'divider'], 'enable' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:enable', 'iconIdentifier' => 'actions-edit-unhide', 'callbackAction' => 'enableRecord'], 'disable' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:disable', 'iconIdentifier' => 'actions-edit-hide', 'callbackAction' => 'disableRecord'], 'delete' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete', 'iconIdentifier' => 'actions-edit-delete', 'callbackAction' => 'deleteRecord'], 'history' => ['label' => 'LLL:EXT:core/Resources/Private/Language/locallang_misc.xlf:CM_history', 'iconIdentifier' => 'actions-document-history-open', 'callbackAction' => 'openHistoryPopUp']]
$languageService
Language Service property. Used to access localized labels
protected
LanguageService
$languageService
$pagePermissions
Local cache for the result of BackendUserAuthentication::calcPerms()
protected
Permission
$pagePermissions
$pageRecord
Database record of the page $this->record is placed on
protected
array<string|int, mixed>
$pageRecord
= []
$record
Database record
protected
array<string|int, mixed>
$record
= []
$table
Current table name
protected
string
$table
= ''
Methods
__construct()
Lightweight constructor, just to be able to call ->canHandle(). Rest of the initialization is done in the initialize() method
public
__construct(string $table, string $identifier[, string $context = '' ]) : mixed
Parameters
- $table : string
- $identifier : string
- $context : string = ''
addItems()
This provider works as a fallback if there is no provider dedicated for certain table, thus it's only kicking in when $items are empty.
public
addItems(array<string|int, mixed> $items) : array<string|int, mixed>
Parameters
- $items : array<string|int, mixed>
Return values
array<string|int, mixed>canHandle()
Whether this provider should kick in
public
canHandle() : bool
Return values
boolgetPriority()
Priority is set to lower then default value, in order to skip this provider if there is less generic provider available.
public
getPriority() : int
Return values
intcanBeCopied()
protected
canBeCopied() : bool
Return values
boolcanBeCut()
protected
canBeCut() : bool
Return values
boolcanBeDeleted()
Checks if the user has the right to delete the record
protected
canBeDeleted() : bool
Return values
boolcanBeDisabled()
Returns true if current record can be hidden
protected
canBeDisabled() : bool
Return values
boolcanBeEdited()
Whether a record can be edited
protected
canBeEdited() : bool
Return values
boolcanBeEnabled()
Returns true if current record can be unhidden/enabled
protected
canBeEnabled() : bool
Return values
boolcanBeNew()
Whether a record can be created
protected
canBeNew() : bool
Return values
boolcanBePastedAfter()
Paste after is only shown for records from the same table (comparing record in clipboard and record clicked)
protected
canBePastedAfter() : bool
Return values
boolcanBeViewed()
Checks if the record can be previewed in frontend
protected
canBeViewed() : bool
Return values
boolcanOpenListModule()
protected
canOpenListModule() : bool
Return values
boolcanOpenNewCEWizard()
Returns true new content element wizard can be shown
protected
canOpenNewCEWizard() : bool
Return values
boolcanRender()
Whether a given item can be rendered (e.g. user has enough permissions)
protected
canRender(string $itemName, string $type) : bool
Parameters
- $itemName : string
- $type : string
Return values
boolcanShowHistory()
Checks if the page is allowed to show info
protected
canShowHistory() : bool
Return values
boolcanShowInfo()
Checks if the page is allowed to show info
protected
canShowInfo() : bool
Return values
boolgetAdditionalAttributes()
Additional attributes for JS
protected
getAdditionalAttributes(string $itemName) : array<string|int, mixed>
Parameters
- $itemName : string
Return values
array<string|int, mixed>getDeleteAdditionalAttributes()
Additional data for a "delete" action (confirmation modal title and message)
protected
getDeleteAdditionalAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>getEnableDisableAdditionalAttributes()
Additional attributes for the hide & unhide items
protected
getEnableDisableAdditionalAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>getIdentifier()
Returns a clicked record identifier
protected
getIdentifier() : string
Return values
stringgetPasteAdditionalAttributes()
Additional attributes for the pasteInto and pasteAfter items
protected
getPasteAdditionalAttributes(string $type) : array<string|int, mixed>
Parameters
- $type : string
-
"after" or "into"
Return values
array<string|int, mixed>getPreviewPid()
Returns id of the Page used for preview
protected
getPreviewPid() : int
Return values
intgetViewAdditionalAttributes()
Additional attributes for the 'view' item
protected
getViewAdditionalAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>getViewLink()
Returns the view link
protected
getViewLink() : string
Return values
stringhasDisableColumnWithValue()
Checks if table have "disable" column (e.g. "hidden"), if user has access to this column and if it contains given value
protected
hasDisableColumnWithValue(int $value) : bool
Parameters
- $value : int
Return values
boolhasPagePermission()
Returns true if a current user have access to given permission
protected
hasPagePermission(int $permission) : bool
Parameters
- $permission : int
Tags
Return values
boolinitClipboard()
Initialize clipboard object - necessary for all copy/cut/paste operations
protected
initClipboard() : mixed
initDisabledItems()
Fills $this->disabledItems with the values from TSConfig.
protected
initDisabledItems() : mixed
Disabled items can be set separately for each context.
initialize()
Initialize db record
protected
initialize() : mixed
initPermissions()
Saves calculated permissions for a page containing given record, to speed things up
protected
initPermissions() : mixed
isDeletePlaceholder()
Returns true is a current record is a delete placeholder
protected
isDeletePlaceholder() : bool
Return values
boolisDeletionDisabledInTS()
Checks if disableDelete flag is set in TSConfig for the current table
protected
isDeletionDisabledInTS() : bool
Return values
boolisRecordATranslation()
Returns true is a record ia a translation
protected
isRecordATranslation() : bool
Return values
boolisRecordCurrentBackendUser()
Return true in case the current record is the current backend user
protected
isRecordCurrentBackendUser() : bool
Return values
boolisRecordInClipboard()
Checks if current record is in the "normal" pad of the clipboard
protected
isRecordInClipboard([string $mode = '' ]) : bool
Parameters
- $mode : string = ''
-
"copy", "cut" or '' for any mode
Return values
boolisRecordLocked()
Record is locked if page is locked or page is not locked but record is
protected
isRecordLocked() : bool
Return values
boolparentPageCanBeViewed()
Check whether the elements' parent page can be viewed
protected
parentPageCanBeViewed() : bool
Return values
boolprepareItems()
Converts item configuration (from $this->itemsConfiguration) into an array ready for returning by controller
protected
prepareItems(array<string|int, mixed> $itemsConfiguration) : array<string|int, mixed>
Parameters
- $itemsConfiguration : array<string|int, mixed>