CoolCMS API

ParameterTreeTrait

Two-level nested feed parameter tree form.

The tree is saved by a dedicated bridge action (FeedManager::saveParameterTree()) outside the generic object-graph save, see FeedParameter.

NOTE: the nested multiplier has no redraw snippet of its own; it shares the {snippet parameterTree} of the outer multiplier.

Table of Contents

Properties

$feedParameterTreeCache  : array<int, array<string, mixed>>|null

Methods

addFeedParameterNodeControls()  : void
addFeedParameterTreeMultiplier()  : void
buildParameterTreeDefaultRows()  : array<int, array<string, mixed>>
Converts the stored tree into nested default rows (two levels) for the multiplier, passed through `$form->setDefaults()` in {@see FormTrait::setFeedFormDefaults()}.
extractSubmittedTree()  : array<int, array<string, mixed>>
Converts the nested `$values->parameters` (multiplier) into the shape expected by {@see \App\UI\Admin\Eshop\Models\Managers\FeedManager::saveParameterTree()}.
loadFeedParameterTree()  : array<int, array<string, mixed>>
Returns the feed parameter tree, memoized per request because `render()` and `createComponentEditForm()` can both ask for the prefill.

Properties

$feedParameterTreeCache

private array<int, array<string, mixed>>|null $feedParameterTreeCache = null

tree memoized per request (see loadFeedParameterTree())

Methods

addFeedParameterNodeControls()

private addFeedParameterNodeControls(Container $node) : void
Parameters
$node : Container

buildParameterTreeDefaultRows()

Converts the stored tree into nested default rows (two levels) for the multiplier, passed through `$form->setDefaults()` in {@see FormTrait::setFeedFormDefaults()}.

private buildParameterTreeDefaultRows() : array<int, array<string, mixed>>

IMPORTANT: never call Multiplier::addCopy() plus Container::setValues() on single copies. addCopy(?int $number) is typed ?int (a string index throws a TypeError), and the multiplier controls the number of copies itself in createCopies() from the values set. The nested level (children) is passed as a plain nested array.

Return values
array<int, array<string, mixed>>

extractSubmittedTree()

Converts the nested `$values->parameters` (multiplier) into the shape expected by {@see \App\UI\Admin\Eshop\Models\Managers\FeedManager::saveParameterTree()}.

private extractSubmittedTree(mixed $rows) : array<int, array<string, mixed>>
Parameters
$rows : mixed
Return values
array<int, array<string, mixed>>

loadFeedParameterTree()

Returns the feed parameter tree, memoized per request because `render()` and `createComponentEditForm()` can both ask for the prefill.

private loadFeedParameterTree() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>
On this page

Search results