# Add/Edit a section

You can add a section to a block with the function **`MBAdmin.shared.addSectionToBlock()`**`.`

To call this function you need to create an array of elements confrom to **`MBUploadableElementProtocol`**.

To create it use the **`MBUploadableElementsFactory`** that is created.

A **`MBUploadableElementsFactory`** is allocated with a locale identifier and creates object with this locale identifier

{% hint style="info" %}
All the integrity controls of the server are still present in the APIs, and you will find the description of the error in the object passed to the failure block.&#x20;
{% endhint %}

Below is an example code to create a section.

```dart
MBUploadableElementsFactory factory = MBUploadableElementsFactory('it');
List<MBUploadableElement> elements = [
  factory.createTextElement('name', 'text'),
  factory.createImageElement(
    'image',
    '/path/to/image',
    MediaType.parse('img/jpg'),
  )
];
MBAdmin.shared.addSectionToBlock(BLOCK_ID, elements);
```

{% hint style="info" %}
To create images or files you'll need to specify a `MediaType`, and you will need to include the `http_parser` package
{% endhint %}

With a `MBUploadableElementsFactory` you can create:

* an array or a single of image with `MBUploadableImagesElement`
* a text with `MBUploadableTextElement`
* a checkbox element with `MBUploadableCheckboxElement`

The edit function is very similar to the add.&#x20;

{% hint style="info" %}
It will modify only the fields passed and the other elements will remain untouched.
{% endhint %}
