SingleFieldContainer extends AbstractContainer

Container around a "single field".

This container is the last one in the chain before processing is handed over to single element classes. If a single field is of type flex or inline, it however creates FlexFormEntryContainer or InlineControlContainer.

The container does various checks and processing for a given single fields.

Table of Contents

Properties

$data  : array<string|int, mixed>
Main data array to work on, given from parent to child elements
$defaultFieldControl  : array<string|int, mixed>
A list of default field controls added to the element / container.
$defaultFieldInformation  : array<string|int, mixed>
A list of default field information added to the element / container.
$defaultFieldWizard  : array<string|int, mixed>
A list of default field wizards added to the element / container.
$nodeFactory  : NodeFactory
Instance of the node factory to create sub elements, container and single element expansions.

Methods

__construct()  : mixed
Set data to data array and register node factory to render sub elements
render()  : array<string|int, mixed>
Entry method
arrayCompareComplex()  : bool
Handles complex comparison requests on an array.
explodeSingleFieldShowItemConfiguration()  : array<string|int, mixed>
A single field of TCA 'types' 'showitem' can have three semicolon separated configuration options: fieldName: Name of the field to be found in TCA 'columns' section fieldLabel: An alternative field label paletteName: Name of a palette to be found in TCA 'palettes' section that is rendered after this field
getBackendUserAuthentication()  : BackendUserAuthentication
getLanguageService()  : LanguageService
getValidationDataAsJsonString()  : string
Build JSON string for validations rules.
initializeResultArray()  : array<string|int, mixed>
Initialize the array that is returned to parent after calling. This structure is identical for *all* nodes. Parent will merge the return of a child with its own stuff and in itself return an array of the same structure.
inlineFieldShouldBeSkipped()  : bool
Rendering of inline fields should be skipped under certain circumstances
isAssociativeArray()  : bool
Checks whether an object is an associative array.
isInlineChildAndLabelField()  : bool
Checks if the $table is the child of an inline type AND the $field is the label field of this table.
mergeChildReturnIntoExistingResult()  : array<string|int, mixed>
Merge existing data with a child return array.
renderFieldControl()  : array<string|int, mixed>
Merge field control configuration with default controls and render them.
renderFieldInformation()  : array<string|int, mixed>
Merge field information configuration with default and render them.
renderFieldWizard()  : array<string|int, mixed>
Merge field wizard configuration with default wizards and render them.
renderTabMenu()  : string
Render tabs with label and content. Used by TabsContainer and FlexFormTabsContainer.

Properties

$data

Main data array to work on, given from parent to child elements

protected array<string|int, mixed> $data = []

$defaultFieldControl

A list of default field controls added to the element / container.

protected array<string|int, mixed> $defaultFieldControl = []

This property is often reset by single elements.

$defaultFieldInformation

A list of default field information added to the element / container.

protected array<string|int, mixed> $defaultFieldInformation = []

$defaultFieldWizard

A list of default field wizards added to the element / container.

protected array<string|int, mixed> $defaultFieldWizard = []

This property is often reset by single elements.

$nodeFactory

Instance of the node factory to create sub elements, container and single element expansions.

protected NodeFactory $nodeFactory

Methods

__construct()

Set data to data array and register node factory to render sub elements

public __construct(NodeFactory $nodeFactory, array<string|int, mixed> $data) : mixed
Parameters
$nodeFactory : NodeFactory
$data : array<string|int, mixed>

render()

Entry method

public render() : array<string|int, mixed>
Tags
throws
InvalidArgumentException
Return values
array<string|int, mixed>

As defined in initializeResultArray() of AbstractNode

arrayCompareComplex()

Handles complex comparison requests on an array.

protected arrayCompareComplex(array<string|int, mixed> $subjectArray, array<string|int, mixed> $searchArray[, string $type = '' ]) : bool

A request could look like the following:

$searchArray = array( '%AND' => array( 'key1' => 'value1', 'key2' => 'value2', '%OR' => array( 'subarray' => array( 'subkey' => 'subvalue' ), 'key3' => 'value3', 'key4' => 'value4' ) ) );

It is possible to use the array keys '%AND.1', '%AND.2', etc. to prevent overwriting the sub-array. It could be necessary, if you use complex comparisons.

The example above means, key1 AND key2 (and their values) have to match with the $subjectArray and additional one OR key3 or key4 have to meet the same condition. It is also possible to compare parts of a sub-array (e.g. "subarray"), so this function recurses down one level in that sub-array.

Parameters
$subjectArray : array<string|int, mixed>

The array to search in

$searchArray : array<string|int, mixed>

The array with keys and values to search for

$type : string = ''

Use '%AND' or '%OR' for comparison

Return values
bool

The result of the comparison

explodeSingleFieldShowItemConfiguration()

A single field of TCA 'types' 'showitem' can have three semicolon separated configuration options: fieldName: Name of the field to be found in TCA 'columns' section fieldLabel: An alternative field label paletteName: Name of a palette to be found in TCA 'palettes' section that is rendered after this field

protected explodeSingleFieldShowItemConfiguration(string $field) : array<string|int, mixed>
Parameters
$field : string

Semicolon separated field configuration

Tags
throws
RuntimeException
Return values
array<string|int, mixed>

getValidationDataAsJsonString()

Build JSON string for validations rules.

protected getValidationDataAsJsonString(array<string|int, mixed> $config) : string
Parameters
$config : array<string|int, mixed>
Return values
string

initializeResultArray()

Initialize the array that is returned to parent after calling. This structure is identical for *all* nodes. Parent will merge the return of a child with its own stuff and in itself return an array of the same structure.

protected initializeResultArray() : array<string|int, mixed>
Return values
array<string|int, mixed>

inlineFieldShouldBeSkipped()

Rendering of inline fields should be skipped under certain circumstances

protected inlineFieldShouldBeSkipped() : bool
Return values
bool

TRUE if field should be skipped based on inline configuration

isAssociativeArray()

Checks whether an object is an associative array.

protected isAssociativeArray(mixed $object) : bool
Parameters
$object : mixed

The object to be checked

Return values
bool

Returns TRUE, if the object is an associative array

isInlineChildAndLabelField()

Checks if the $table is the child of an inline type AND the $field is the label field of this table.

protected isInlineChildAndLabelField(string $table, string $field) : bool

This function is used to dynamically update the label while editing. This has no effect on labels, that were processed by a FormEngine-hook on saving.

Parameters
$table : string

The table to check

$field : string

The field on this table to check

Return values
bool

Is inline child and field is responsible for the label

mergeChildReturnIntoExistingResult()

Merge existing data with a child return array.

protected mergeChildReturnIntoExistingResult(array<string|int, mixed> $existing, array<string|int, mixed> $childReturn[, bool $mergeHtml = true ]) : array<string|int, mixed>

The incoming $childReturn array should be initialized using initializeResultArray() beforehand.

Parameters
$existing : array<string|int, mixed>

Currently merged array

$childReturn : array<string|int, mixed>

Array returned by child

$mergeHtml : bool = true

If false, the ['html'] section of $childReturn will NOT be added to $existing

Return values
array<string|int, mixed>

Result array

renderFieldControl()

Merge field control configuration with default controls and render them.

protected renderFieldControl() : array<string|int, mixed>
Return values
array<string|int, mixed>

Result array

renderFieldInformation()

Merge field information configuration with default and render them.

protected renderFieldInformation() : array<string|int, mixed>
Return values
array<string|int, mixed>

Result array

renderFieldWizard()

Merge field wizard configuration with default wizards and render them.

protected renderFieldWizard() : array<string|int, mixed>
Return values
array<string|int, mixed>

Result array

renderTabMenu()

Render tabs with label and content. Used by TabsContainer and FlexFormTabsContainer.

protected renderTabMenu(array<string|int, mixed> $menuItems, string $domId[, int $defaultTabIndex = 1 ]) : string

Re-uses the template Tabs.html which is also used by ModuleTemplate.php.

Parameters
$menuItems : array<string|int, mixed>

Tab elements, each element is an array with "label" and "content"

$domId : string

DOM id attribute, will be appended with an iteration number per tab.

$defaultTabIndex : int = 1
Return values
string

        
On this page

Search results