Clipboard
TYPO3 clipboard for records and files
This class is a specific Backend implementation and is not considered part of the Public TYPO3 API.
Table of Contents
Properties
- $changed : bool
- $clipData : array<string|int, mixed>
- Clipboard data kept here
- $current : string
- $lockToNormal : bool
- $numberOfPads : int
- $iconFactory : IconFactory
- $request : ServerRequestInterface|null
- $resourceFactory : ResourceFactory
- $tcaSchemaFactory : TcaSchemaFactory
- $uriBuilder : UriBuilder
Methods
- __construct() : mixed
- cleanCurrent() : void
- This traverses the elements on the current clipboard pane and unsets elements which does not exist anymore or are disabled.
- cleanUpCBC() : array<string|int, mixed>
- Cleans up an incoming element array $CBarr (Array selecting/deselecting elements)
- confirmMsgText() : string
- Returns confirm JavaScript message
- currentMode() : string
- Returns the current mode, 'copy' or 'cut'
- elFromTable() : array<string|int, mixed>
- Counts the number of elements from the table $matchTable. If $matchTable is blank, all tables (except '_FILE' of course) is counted.
- endClipboard() : void
- Call this after initialization and setCmd in order to save the clipboard to the user session.
- getClipboardData() : array<string|int, mixed>
- getSelectedRecord() : array<string|int, mixed>
- Returns the first element on the current clipboard Makes sense only for DB records - not files!
- hasElements() : bool
- Returns true if the clipboard contains elements
- initializeClipboard() : void
- Initialize the clipboard from the be_user session
- isSelected() : string
- Verifies if the item $table/$uid is on the current pad.
- lockToNormal() : void
- Call this method after initialization if you want to lock the clipboard to operate on the normal pad only.
- pasteUrl() : string
- pasteUrl of the element (database and file) For the meaning of $table and $uid, please read from ->makePasteCmdArray!!! The URL will point to tce_file or tce_db depending in $table
- removeElement() : void
- Removes element on clipboard
- selUrlDB() : string
- Returns the select-url for database elements
- selUrlFile() : string
- Returns the select-url for files
- setCmd() : void
- The array $cmd may hold various keys which notes some action to take.
- setCurrentPad() : void
- Setting the current pad on clipboard
- buildUrl() : string
- Builds a URL to the current module with the received parameters, merged / replaced by additional parameters.
- clipboardLabel() : string
- Clipboard label - getting from "EXT:core/Resources/Private/Language/locallang_core.xlf:"
- getBackendUser() : BackendUserAuthentication
- getLanguageService() : LanguageService
- getLocalizations() : array<string|int, mixed>
- Gets all localizations of the current record.
- getTabInfo() : string
- Additional information for the tab. This is either the current copyMode (for "normal") or the elements count, for numeric tabs. Latter will not be shown, in case no elements exist for the tab.
- getTabItems() : array<string|int, mixed>
- Get the items for the given pad identifier
- isElements() : bool
- Reports if the current pad has elements (does not check file/DB type OR if file/DBrecord exists or not. Only counting array)
- linkItemText() : string
- Wraps the title of the element in a link to the page/folder where they originate from.
- saveClipboard() : void
- Saves the clipboard, no questions asked.
Properties
$changed
        public
            bool
    $changed
     = false
    
    
    
    
    
$clipData
Clipboard data kept here
        public
            array<string|int, mixed>
    $clipData
     = []
        Keys: 'normal' 'tab_[x]' where x is >=1 and denotes the pad-number 'mode' : 'copy' means copy-mode, default = moving ('cut') 'el' : Array of elements: DB: keys = '[tablename]|[uid]' eg. 'tt_content:123' DB: values = 1 (basically insignificant) FILE: keys = '_FILE|[md5 of path]' eg. '_FILE|9ebc7e5c74' FILE: values = The full filepath, eg. '/www/htdocs/typo3/32/dummy/fileadmin/sem1_3_examples/alternative_index.php' or 'C:/www/htdocs/typo3/32/dummy/fileadmin/sem1_3_examples/alternative_index.php'
'current' pointer to current tab (among the above...)
The virtual tablename '_FILE' will always indicate files/folders. When checking for elements from eg. 'all tables' (by using an empty string) '_FILE' entries are excluded (so in effect only DB elements are counted)
$current
        public
            string
    $current
     = ''
    
    
    
    
    
$lockToNormal
        public
            bool
    $lockToNormal
     = false
    
    
    
    
    
$numberOfPads
        public
            int
    $numberOfPads
     = 3
    
    
    
    
    
$iconFactory read-only
        protected
            IconFactory
    $iconFactory
    
    
    
    
    
    
$request
        protected
            ServerRequestInterface|null
    $request
     = null
    
    
    
    
    
$resourceFactory read-only
        protected
            ResourceFactory
    $resourceFactory
    
    
    
    
    
    
$tcaSchemaFactory read-only
        protected
            TcaSchemaFactory
    $tcaSchemaFactory
    
    
    
    
    
    
$uriBuilder read-only
        protected
            UriBuilder
    $uriBuilder
    
    
    
    
    
    
Methods
__construct()
    public
                    __construct(IconFactory $iconFactory, UriBuilder $uriBuilder, ResourceFactory $resourceFactory, TcaSchemaFactory $tcaSchemaFactory) : mixed
    Parameters
- $iconFactory : IconFactory
- $uriBuilder : UriBuilder
- $resourceFactory : ResourceFactory
- $tcaSchemaFactory : TcaSchemaFactory
cleanCurrent()
This traverses the elements on the current clipboard pane and unsets elements which does not exist anymore or are disabled.
    public
                    cleanCurrent() : void
    cleanUpCBC()
Cleans up an incoming element array $CBarr (Array selecting/deselecting elements)
    public
                    cleanUpCBC(array<string|int, mixed> $CBarr, string $table[, bool $removeDeselected = false ]) : array<string|int, mixed>
    Parameters
- $CBarr : array<string|int, mixed>
- 
                    Element array from outside ("key" => "selected/deselected") 
- $table : string
- 
                    The 'table which is allowed'. Must be set. 
- $removeDeselected : bool = false
- 
                    Can be set in order to remove entries which are marked for deselection. 
Return values
array<string|int, mixed> —Processed input $CBarr
confirmMsgText()
Returns confirm JavaScript message
    public
                    confirmMsgText(string $table, array<string|int, mixed>|string $reference, string $type[, CountMode $countMode = CountMode::CURRENT ]) : string
    Parameters
- $table : string
- 
                    Table name 
- $reference : array<string|int, mixed>|string
- 
                    For records its an array, for files its a string (path) 
- $type : string
- 
                    Type-code 
- $countMode : CountMode = CountMode::CURRENT
Return values
string —the text for a confirm message
currentMode()
Returns the current mode, 'copy' or 'cut'
    public
                    currentMode() : string
    Return values
string —"copy" or "cut
elFromTable()
Counts the number of elements from the table $matchTable. If $matchTable is blank, all tables (except '_FILE' of course) is counted.
    public
                    elFromTable([string $matchTable = '' ][, string $padIdentifier = '' ]) : array<string|int, mixed>
    Parameters
- $matchTable : string = ''
- 
                    Table to match/count for. 
- $padIdentifier : string = ''
- 
                    Can optionally be used to set another pad than the current. 
Return values
array<string|int, mixed> —Array with keys from the CB.
endClipboard()
Call this after initialization and setCmd in order to save the clipboard to the user session.
    public
                    endClipboard() : void
    The function will check if the internal flag ->changed has been set and if so, save the clipboard. Else not.
getClipboardData()
    public
                    getClipboardData([string $table = '' ]) : array<string|int, mixed>
    Parameters
- $table : string = ''
Return values
array<string|int, mixed>getSelectedRecord()
Returns the first element on the current clipboard Makes sense only for DB records - not files!
    public
                    getSelectedRecord() : array<string|int, mixed>
    Return values
array<string|int, mixed> —Element record with extra field _RECORD_TITLE set to the title of the record
hasElements()
Returns true if the clipboard contains elements
    public
                    hasElements() : bool
    Return values
boolinitializeClipboard()
Initialize the clipboard from the be_user session
    public
                    initializeClipboard([ServerRequestInterface|null $request = null ]) : void
    Parameters
- $request : ServerRequestInterface|null = null
isSelected()
Verifies if the item $table/$uid is on the current pad.
    public
                    isSelected(string $table, string|int $identifier) : string
    If the pad is "normal" and the element exists, the mode value is returned. Thus you'll know if the item was copied or cut.
Parameters
- $table : string
- 
                    Table name, (_FILE for files...) 
- $identifier : string|int
- 
                    Either the records' uid or a filepath 
Return values
string —If selected the current mode is returned, otherwise an empty string
lockToNormal()
Call this method after initialization if you want to lock the clipboard to operate on the normal pad only.
    public
                    lockToNormal() : void
    Trying to switch pad through ->setCmd will not work. This is used by the clickmenu since it only allows operation on single elements at a time (that is the "normal" pad)
pasteUrl()
pasteUrl of the element (database and file) For the meaning of $table and $uid, please read from ->makePasteCmdArray!!! The URL will point to tce_file or tce_db depending in $table
    public
                    pasteUrl(string $table, string|int $identifier[, bool $setRedirect = true ][, array<string|int, mixed>|null $update = null ]) : string
    Parameters
- $table : string
- 
                    Tablename (_FILE for files) 
- $identifier : string|int
- 
                    "destination": can be positive or negative indicating how the paste is done (paste into / paste after). For files, this is the combined identifier. 
- $setRedirect : bool = true
- 
                    If set, then the redirect URL will point back to the current script, but with CB reset. 
- $update : array<string|int, mixed>|null = null
- 
                    Additional key/value pairs which should get set in the moved/copied record (via DataHandler) 
Return values
stringremoveElement()
Removes element on clipboard
    public
                    removeElement(string $elementKey) : void
    Parameters
- $elementKey : string
- 
                    Key of element in ->clipData array 
selUrlDB()
Returns the select-url for database elements
    public
                    selUrlDB(string $table, int $uid[, bool $copy = false ][, bool $deselect = false ]) : string
    Parameters
- $table : string
- 
                    Table name 
- $uid : int
- 
                    Uid of record 
- $copy : bool = false
- 
                    If set, copymode will be enabled 
- $deselect : bool = false
- 
                    If set, the link will deselect, otherwise select. 
Return values
string —URL linking to the current script but with the CB array set to select the element with table/uid
selUrlFile()
Returns the select-url for files
    public
                    selUrlFile(string $path[, bool $copy = false ][, bool $deselect = false ]) : string
    Parameters
- $path : string
- 
                    Filepath 
- $copy : bool = false
- 
                    If set, copymode will be enabled 
- $deselect : bool = false
- 
                    If set, the link will deselect, otherwise select. 
Return values
string —URL linking to the current script but with the CB array set to select the path
setCmd()
The array $cmd may hold various keys which notes some action to take.
    public
                    setCmd(array<string|int, mixed> $cmd) : void
    Normally perform only one action at a time. In scripts like db_list.php / filelist/mod1/index.php the GET-var CB is used to control the clipboard.
Selecting / Deselecting elements Array $cmd['el'] has keys = element-ident, value = element value (see description of clipData array in header) Selecting elements for 'copy' should be done by simultaneously setting setCopyMode.
Parameters
- $cmd : array<string|int, mixed>
- 
                    Array of actions, see function description 
setCurrentPad()
Setting the current pad on clipboard
    public
                    setCurrentPad(string $padIdentifier) : void
    Parameters
- $padIdentifier : string
- 
                    Key in the array $this->clipData 
buildUrl()
Builds a URL to the current module with the received parameters, merged / replaced by additional parameters.
    protected
                    buildUrl([array<string|int, mixed> $parameters = [] ]) : string
    Parameters
- $parameters : array<string|int, mixed> = []
Return values
stringclipboardLabel()
Clipboard label - getting from "EXT:core/Resources/Private/Language/locallang_core.xlf:"
    protected
                    clipboardLabel(string $key) : string
    Parameters
- $key : string
- 
                    Label Key 
Return values
string —htmspecialchared' label
getBackendUser()
    protected
                    getBackendUser() : BackendUserAuthentication
    Return values
BackendUserAuthenticationgetLanguageService()
    protected
                    getLanguageService() : LanguageService
    Return values
LanguageServicegetLocalizations()
Gets all localizations of the current record.
    protected
                    getLocalizations(string $table, array<string|int, mixed> $parentRecord, bool $isRequestedTable) : array<string|int, mixed>
    Parameters
- $table : string
- 
                    The table 
- $parentRecord : array<string|int, mixed>
- 
                    The parent record 
- $isRequestedTable : bool
- 
                    Whether the element is from the requested table 
Return values
array<string|int, mixed> —HTML table rows
getTabInfo()
Additional information for the tab. This is either the current copyMode (for "normal") or the elements count, for numeric tabs. Latter will not be shown, in case no elements exist for the tab.
    protected
                    getTabInfo(string $padIdentifier[, string $table = '' ]) : string
    Parameters
- $padIdentifier : string
- 
                    Identifier for the clipboard pad 
- $table : string = ''
- 
                    The table name to count for elements 
Return values
stringgetTabItems()
Get the items for the given pad identifier
    protected
                    getTabItems(string $padIdentifier, string $currentTable) : array<string|int, mixed>
    Parameters
- $padIdentifier : string
- 
                    Pad reference 
- $currentTable : string
Return values
array<string|int, mixed> —The tab items
isElements()
Reports if the current pad has elements (does not check file/DB type OR if file/DBrecord exists or not. Only counting array)
    protected
                    isElements() : bool
    Return values
bool —TRUE if elements exist.
linkItemText()
Wraps the title of the element in a link to the page/folder where they originate from.
    protected
                    linkItemText(string $itemText, array<string|int, mixed>|string $reference, bool $isRequestedTable) : string
    Will be wrapped into "muted" style in case the element is not from the currently requested table.
Parameters
- $itemText : string
- 
                    Title of element - must be htmlspecialchar'ed on beforehand. 
- $reference : array<string|int, mixed>|string
- 
                    If array, a record is expected. If string, its the folders' combined identifier 
- $isRequestedTable : bool
- 
                    Whether the element is from the requested table 
Return values
stringsaveClipboard()
Saves the clipboard, no questions asked.
    protected
                    saveClipboard() : void
    Use ->endClipboard normally (as it checks if changes has been done so saving is necessary)