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
addFeedParameterTreeMultiplier()
private
addFeedParameterTreeMultiplier(Form $form) : void
Parameters
- $form : Form
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>>