Important

You are browsing upcoming documentation for version 6.0 of OroCommerce, OroCRM, and OroPlatform, scheduled for release in 2024. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.

See our Release Process documentation for more information on the currently supported and upcoming releases.

UI DataBlock Config Overview 

This functionality adds the ability to configure DataBlocks for the UI component inside FormType instead of the template.

Configure Block in Template 

update.html.twig

{% set dataBlocks = [{
            'title': 'First Block',
            'class': '',
            'subblocks': [
                {
                    'title': '',
                    'data': [
                        form_row(form.name),
                        form_row(form.age)
                    ]
                },
                {
                    'title': 'Email SubBlock',
                    'data': [
                        form_row(form.email),
                    ]
                }
            ]
        }]

%}

Configure Block in FormType 

class UserType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name', TextType::class, ['block' => 'first']);
        $builder->add('age', IntegerType::class, ['block' => 'first', 'subblock' => 'first']);
        $builder->add('email', EmailType::class, ['block' => 'second']);
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(
            [
                'block_config' => [
                    'first'  => [
                        'priority'  => 2,
                        'title'     => 'First Block',
                        'subblocks' => [
                            'first'  => [],
                            'second' => [
                                'title' => 'Email SubBlock'
                            ],
                        ],
                    ],
                ],
            ]
        );
    }
}
{% set dataBlocks = form_data_blocks(form) %}
  • ‘block’ - the code of a block.

    If a block is not configured in ‘block_config’, a block will be created. If a block title is not configured in ‘block_config’, title of block will be the same as the code. If form type filed options do not have a ‘block’ attribute, this field will be ignored.

  • ‘sub-block’ - the code of a sub-block.

    If a sub-block is not configured in ‘block_config’, a subBlock will be created. If form type filed options do not have a ‘sub-block’ attribute, this field will be added to the first sub-block in the block.

    If ‘sub-block’ is configured but ‘block’ is not configured, the field will be ignored.

  • ‘block_config’ is an optional attribute.

    This attribute contains the config for the block and sub-block (title, class, sub-blocks).