RecordLinkHandler extends AbstractLinkHandler implements LinkHandlerInterface, LinkParameterProviderInterface
This link handler allows linking to arbitrary database records.
They can be configured in addition to default core link handlers and are rendered as additional tab in the link browser.
A typical use case is linking a single new record.
Additional page TSconfig TCEMAIN.linkHandler setup is necessary to use this.
A typical configuration looks like the below snippet. It configures a tab that allows linking to ext:news news records ("table" is mandatory), labels them as "Book reports" (LLL: is possible), forces a specific page-uid (optional), and hides page-tree selection (optional).
TCEMAIN.linkHandler.bookreports { handler = TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler label = Book Reports configuration { table = tx_news_domain_model_news storagePid = 42 hidePageTree = 1 } }
This class is a specific LinkHandler implementation and is not part of the TYPO3's Core API.
Attributes
- #[Autoconfigure]
- $public: true
- $shared: false
Table of Contents
Interfaces
- LinkHandlerInterface
- Interface for link handlers displayed in the LinkBrowser.
- LinkParameterProviderInterface
Properties
- $configuration : array<string|int, mixed>
- Specific TSconfig for the current instance (corresponds to TCEMAIN.linkHandler.record.<identifier>.configuration)
- $expandPage : int
- $iconFactory : IconFactory
- $identifier : string
- Configuration key in TSconfig TCEMAIN.linkHandler.<identifier>
- $linkAttributes : array<string|int, string>
- Available additional link attributes
- $linkBrowser : AbstractLinkBrowserController
- $linkParts : array<string|int, mixed>
- Parts of the current link
- $pageRenderer : PageRenderer
- $updateSupported : bool
- $view : ViewInterface
Methods
- __construct() : mixed
- canHandleLink() : bool
- Checks if this is the right handler for the given link.
- formatCurrentUrl() : string
- Formats information for the current record for HTML output.
- getBodyTagAttributes() : array<string|int, string>
- Returns attributes for the body tag.
- getLinkAttributes() : array<string|int, mixed>
- getUrlParameters() : array<string|int, string>
- Returns all parameters needed to build a URL with all the necessary information.
- initialize() : mixed
- isUpdateSupported() : bool
- Return TRUE if the handler supports to update a link.
- modifyLinkAttributes() : array<string|int, string>
- render() : string
- Renders the link handler.
- setView() : void
- getBackendUser() : BackendUserAuthentication
- getLanguageService() : LanguageService
- renderTableRecords() : string
- Render elements of configured table
Properties
$configuration
Specific TSconfig for the current instance (corresponds to TCEMAIN.linkHandler.record.<identifier>.configuration)
protected
array<string|int, mixed>
$configuration
= []
$expandPage
protected
int
$expandPage
= 0
$iconFactory
protected
IconFactory
$iconFactory
$identifier
Configuration key in TSconfig TCEMAIN.linkHandler.<identifier>
protected
string
$identifier
$linkAttributes
Available additional link attributes
protected
array<string|int, string>
$linkAttributes
= ['target', 'title', 'class', 'params', 'rel']
'rel' only works in RTE, still we have to declare support for it.
$linkBrowser
protected
AbstractLinkBrowserController
$linkBrowser
$linkParts
Parts of the current link
protected
array<string|int, mixed>
$linkParts
= []
$pageRenderer
protected
PageRenderer
$pageRenderer
$updateSupported
protected
bool
$updateSupported
= true
$view
protected
ViewInterface
$view
Methods
__construct()
public
__construct(ElementBrowserRecordList $elementBrowserRecordList, RecordSearchBoxComponent $recordSearchBoxComponent, LinkService $linkService) : mixed
Parameters
- $elementBrowserRecordList : ElementBrowserRecordList
- $recordSearchBoxComponent : RecordSearchBoxComponent
- $linkService : LinkService
canHandleLink()
Checks if this is the right handler for the given link.
public
canHandleLink(array<string|int, mixed> $linkParts) : bool
Also stores information locally about currently linked record.
Parameters
- $linkParts : array<string|int, mixed>
-
Link parts as returned from TypoLinkCodecService
Return values
boolformatCurrentUrl()
Formats information for the current record for HTML output.
public
formatCurrentUrl() : string
Return values
stringgetBodyTagAttributes()
Returns attributes for the body tag.
public
getBodyTagAttributes() : array<string|int, string>
Return values
array<string|int, string> —Array of body-tag attributes
getLinkAttributes()
public
getLinkAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>getUrlParameters()
Returns all parameters needed to build a URL with all the necessary information.
public
getUrlParameters(array<string|int, mixed> $values) : array<string|int, string>
Parameters
- $values : array<string|int, mixed>
-
Array of values to include into the parameters or which might influence the parameters
Return values
array<string|int, string> —Array of parameters which have to be added to URLs
initialize()
public
initialize(AbstractLinkBrowserController $linkBrowser, mixed $identifier, array<string|int, mixed> $configuration) : mixed
Parameters
- $linkBrowser : AbstractLinkBrowserController
- $identifier : mixed
- $configuration : array<string|int, mixed>
isUpdateSupported()
Return TRUE if the handler supports to update a link.
public
isUpdateSupported() : bool
This is useful for e.g. file or page links, when only attributes are changed.
Return values
boolmodifyLinkAttributes()
public
modifyLinkAttributes(array<string|int, string> $fieldDefinitions) : array<string|int, string>
Parameters
- $fieldDefinitions : array<string|int, string>
-
Array of link attribute field definitions
Return values
array<string|int, string>render()
Renders the link handler.
public
render(ServerRequestInterface $request) : string
Parameters
- $request : ServerRequestInterface
Return values
stringsetView()
public
setView(ViewInterface $view) : void
Parameters
- $view : ViewInterface
getBackendUser()
protected
getBackendUser() : BackendUserAuthentication
Return values
BackendUserAuthenticationgetLanguageService()
protected
getLanguageService() : LanguageService
Return values
LanguageServicerenderTableRecords()
Render elements of configured table
protected
renderTableRecords(ServerRequestInterface $request) : string
Parameters
- $request : ServerRequestInterface