# Add/Edit a section

You can add a section to a block with the function **`addSectionToBlock(withBlockId:elements:success:failure:)`**.

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.

> Swift

```swift
let factory = MBUploadableElementsFactory(localeIdentifier: "it")
let elements: [MBUplodableElementProtocol] = [factory.createTextElement(name: "name", text: "text"),
factory.createImageElement(name: "name", image: UIImage(named: "image_name")!)]

MBAdmin.addSectionToBlock(withBlockId: BLOCCK_ID, elements: elements, success: { sectionId in

}, failure: { error in
            
})
```

With a `MBUploadableElementsFactory` you can create:

* an array or a single of image with `MBUploadableImagesElement`
* an array or a single of image with `MBUploadableFilesElement`
* 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 %}
