menu

Forms

Support the documentation

This documentation was written by volunteers. Please help support our effort:

Help us improve the documentation

HTTP Forms are a very old and important concept of the Web Platform. Neos offers you different ways to create, render and store them.

Defining forms

Neos offers you two ways to create forms:

Fusion based Rendering

For legacy reasons, by default form rendering is based on the FluidRenderer and templates for all the Form Elements.

That approach is flexible and probably the easiest for developers that are used to working with Fluid. When a lot of custom rendering is required, though, it can lead to a duplication and accidental complexity.
For these cases the – also brandnew – Neos.Form.FusionRenderer package will come handy.

It defines a new Form Preset that replaces the default Form Renderer with a Fusion implementation. The default prototypes render elements just like the "default" preset would. But now the complete output is adjustable with a bit of Fusion code.

The following example will remove the labels of all elements and render their content as placeholders instead: 

prototype(Neos.Form.FusionRenderer:FormElement) {
    label >
    fieldContainer.field.attributes.placeholder = ${element.label}
}

Make sure to have a look at the Fusion prototypes to see how they work together and how they can be manipulated to your needs.