I want to add a dynamic form. I defined it in system.xml
<group id="config_first_default_dynamic_form" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Quantity Ranges</label>
<field id="config_default" translate="label" sortOrder="5" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Ranges</label>
<frontend_model>Vendor\Module\Model\Config\FirstLabel</frontend_model>
<backend_model>Magento\Config\Model\Config\Backend\Serialized\ArraySerialized</backend_model>
</field>
</group>
In FirstLabel.Php
/**
* @return void
*/
public function _prepareToRender()
{
$this->addColumn(
'enabled_from',
[
'label' => __('Select date from'),
'class' => 'required-entry',
'renderer' => $this->getDateFromColumnRenderer(),
]
);
$this->addColumn(
'background_color',
[
'label' => __('Select background color'),
'class' => 'required-entry',
'renderer' => $this->getColorBackgroundColumnRenderer(),
]
);
$this->addColumn('logo', ['label' => __('Logo'), 'size' => '100%', 'class' => 'required-entry']);
$this->addColumn(
'flag_show_selector',
[
'label' => __('Selected categories'),
'class' => 'required-entry',
'renderer' => $this->getCategoryColumnRenderer(),
]
);
$this->_addAfter = false;
$this->_addButtonLabel = __('Add');
}
I have no problem with defining a selector or a multselect with categories:
protected function getCategoryColumnRenderer(): BlockInterface
{
if (!$this->categoryRenderer) {
$this->categoryRenderer = $this->getLayout()->createBlock(
CategoryTable::class,
''
);
}
return $this->categoryRenderer;
}
The problem appears when I want to add a color picker or datatime as a field or a field with an uploaded image. Anyone know how to add these fields to a dynamic form like in the picture below?