When you install a Module, a front-end form file is automatically generated within your Module, in a folder called form
. It automatically contains all fields from the Module. You can view this folder using Code Editor, it is next to the detail
and list
folders for your Module.
Output your Module form on a page to create new items:
Edit forms should be outputted inside a standard Module layout's item.liquid file, to make sure it has access to the {{this.id}} variable. It will need this to load the form with the correct resource_id.
Note when developing a layout for an edit form, be sure to use the HTML value attribute to give the fields their current values from the database.
Using a SiteBuilder form layout will save you this step.
Toolbox has support for Module input forms, and the following options will be given in the modal, or you can set them yourself:
enabled
- default is false
- Boolean - Determines if items are auto-enabled or not
expiry_date
- default is never expires
- Timestamp - When the new item will expire
release_date
- default is as soon as the form is submitted
- Timestamp - When the new item will be released
upload_dir
- String - default is documents/form_uploads/module_1/
Where uploaded files will be stored. Must follow this format - 'folder/optional_folder/'
Some fields are required for the form to be able to set up the Module items correctly. These fields are for 'enabled', 'expiry_date', 'release_date', 'upload_dir', and 'slug'. They stay the same each form, and don't have a Module specific ID attached to them.
All forms should be wrapped in a Liquid form tag: <div data-gb-custom-block data-tag="form"></div>
All forms need a submission button:<button onClick="s_form_submit_v2(this,'module_1')">Submit</button>
This example can be used for a Module Submit form that is displayed within a the layout of another WebApp or Module.
this.category_array[0]
- finds the first category the current item is categorised to and can be changed to be a full array, or specific category ID.
This example can be used on pages other than WebApp and Module layouts.
123456
- replace with the ID of a category of your choice.
Location Field (optional)
You can submit a Location value for a Module item as shown in the following example:
The value should be a stringified JSON object.