29-Feb-2024 | v6.11.0 | Updates to 'Settings' > 'Site User Permissions' now with individual settings for frontend API functions
28-Oct-2021 | v6.2.1 | Added information for importing for nested modules
17-Mar-2021 | v5.9.0 | Added section on module searching
20-Jan-2021 | v5.6.0 | Added workflow select descriptions for Add/Edit/Delete user-submitted items (Site User Permissions)
Added info on Parent/Child module settings switcher (breadcrumbs).
Custom Modules (AKA WebApps)
Custom Modules can be used to construct simple or complex data structures as a way to dynamically manage the content on your site or web application.
From a simple staff profile listing, detailed image gallery, to a complex real estate directory, Custom modules help you display data sets consistently, allowing content administrators ease of management and even provide an opportunity for user-submitted content in a secure way.
Benefits & Use Cases
If coming from Business Catalyst these are much like WebApps, although Custom Modules are much more powerful and flexible.
There are several aspects which make Custom Modules so much more flexible:
Better management and easier access to multiple layout views for both Detail view and List view layouts.
Ability to control various aspects of how items are listed and managed within the admin, such as enabling or disabling; multiple detail views, release and expiry dates, weighting, categories, tags and author, among many other settings.
Flexibility to create nested items, combining one Custom Module with other Custom Module with the ability to add/edit nested item from within either of the lists views. Making complex content management easier, more structured and more intuitive for your client or administrator. See 'Advanced Settings' in the 'Settings' section below for more details.
Creating a new Custom Module
To create a new Custom Module and configure the settings, expand the 'Custom Modules' item in the left hand menu and click "+ Add New module". Then progress through the tabbed section to configure your Custom Module.
Below are further explanation of the available options.
Custom Module Settings
From the Custom Modules item list view, click the " EDIT SETTINGS" button to display a menu for further options, as detailed below.
Settings
These settings relate to the overall Custom Modules options and functionality and how content might be managed by site administrators.
For nested modules, such as Blogs, Events, Banners, Galleries, FAQs, and any nested Custom Modules, you may wish to edit the settings for each of the 2 nested modules. You can easily switch between the 2 module's settings using the switcher at the top of page (under the modules name). The disabled, greyed out item, indicates the currently active module - while the highlighted linked item, provides a link to the connected module.
The Module Name to describe the type of content it will contain or the purpose it will serve.
URL
The system will generate a base URL derived from the module name given. You can however, adjust this URL path name if desired. This will set the directory structure for this content on your site. So, for example, if you set a Module's name as “Web Technologies” the URL for this module might be https://your-domain.com/web-technologies. And given an item within this module called “JavaScript”, the item might be accessed via the URL https://your-domain.com/web-technologies/javascript.
Changing an existing Modules URL may affect all of this Module's existing items URLs on your website.
Alternate Item name
Once your Module is configured and ready for adding items, the site admin will generally use the ‘Create New’ item button in the Module's list view. When the list view is changed to display in ‘Tree View’ mode (ie: when using nested/grouped modules) the admin will see a dropdown option referring to the name of the Module item to be created. By default this will show the name of the Module you've created, for example: “Create new… Staff List”. However, while “Staff List” might be appropriate for the overall Module name it’s not quite the right terminology for creating individual items. So instead, you can set this alternative naming to give your Module better context and usability, for example, changing the button option to: “Create New… Staff Member”.
Icon
Change the module item’s default list icon when using nested/grouped custom modules. This setting can be applied to the parent module and/or the child module to customise the item’s icons when being viewed in ‘Tree View’. By default, in ‘Tree View’, parent items will have a folder icon () while child items will have a file icon ().
Use the add file icon () in this field to choose from a range of system icons or alternatively upload your own custom image. Only uploaded images to the system directory can be used here. No external or absolute image paths are allowed. The suggested icon dimensions are 24px x 24px and .svg file format is preferred, however, most other image sizes and formats should work.
Media Files Upload Folder
Here, you can set the location you want to exclusively use for this Module's media assets (when using any Media property type). This helps keep the file manager organized and prevents files from being uploaded into folders you don't want them stored in.
You will only be able to access the set folder from the media file field. Setting a folder here also prevents manual typing/pasting file paths into the media field and requires the user to use the file picker to select the media.
Notes
This allows you to add a custom message that will display in the admin at the top of the Module items list view. This can be used to describe the Module's use or providing instructions for the administrator.
Disable detail layout
If checked, this setting prevents all of this Module's items from having URLs that can be resolved/reached and the item's URL field will be set to disabled - disallowing the URL to be edited either from the admin or via front-end processes. This Module's `Detail Layout` option will also be hidden and set to `Don't Use` by default, preventing the item from using any detail layout and omitting the item from the automatic sitemap.xml file.
For front-end site users, permissions can be set to control how they can interact with the front-end APIs used for creating and/or modifying module items.
Settings can also be adjusted here to define the functions that these APIs trigger (such as Workflows and Autoresponders).
Create Module Item
The following options relate specifically to the 'Create Module Item' action.
Workflow
Option
Description
Select Workflows
The workflow notification/s that will be triggered upon a user taking this action.
Multiple workflows can be selected and will all be triggered at the same time.
Autoresponder
The autoresponder is an email sent out to the user after the form has been submitted from the front-end of the website.
Option
Description
Enable
Enable the autoresponder email to be sent.
Receiver
Determines who's email address to use for delivery of the autoresponder email.
Form sender Use the email address of the user submitting the form.
Item owner Use the email address of the assigned module item's owner.
Sender and owner Use both email addresses of the user submitting the form and module item's owner.
If the autoresponder relates to the 'Create Module Item' action, both 'form sender' and 'item owner' will be the same. Therefore, all options will result in the same autoresponder delivery.
Template
The Email Template to be used for the autoresponder email.
From Name
The display name used for the email sender.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
From Email
The email address used for the email sender and reply address.
If using a non-verified email domain you’ll see a warning message and icon (). For more info on Email Domain verification see here.
Subject
The subject line used for the autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
Body
The content of your autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
API Restrictions
Here you can allow website users to submit, or otherwise manipulate, the Module's items from the front-end of the website. Furthermore, these options allow you to control the permissions those users have.
Option
Description
Enable endpoint/Checkbox
Turns the endpoint on (if checked) or off (if unchecked) for the site, allowing frontend user access based on the additional settings below.
Allowed to the Following Type of Users
Logged in users(default) Specifies that the user needs to be logged in to perform this action.
Users from the following secure zones Specifies that the user needs to be logged in to one of the selected secure zones to perform this action.
Admin Users Specifies that the logged in user needs to be of an 'Admin User' role in the CRM to perform this action.
To facilitate module item editing from the front-end you’ll need to add the ‘Create/Update/Delete Item’ form/s (found in the Components Manager) to your layouts or pages, or otherwise pass the required item data to the API endpoints.
Update Module Item
The following options relate specifically to the 'Update Module Item' action.
Workflow
Option
Description
Select Workflows
The workflow notification/s that will be triggered upon a user taking this action.
Multiple workflows can be selected and will all be triggered at the same time.
Autoresponder
The autoresponder is an email sent out to the user after the form has been submitted from the front-end of the website.
Option
Description
Enable
Enable the autoresponder email to be sent.
Receiver
Determines who's email address to use for delivery of the autoresponder email.
Form sender Use the email address of the user submitting the form.
Item owner Use the email address of the assigned module item's owner.
Sender and owner Use both email addresses of the user submitting the form and module item's owner.
If the autoresponder relates to the 'Create Module Item' action, both 'form sender' and 'item owner' will be the same. Therefore, all options will result in the same autoresponder delivery.
Template
The Email Template to be used for the autoresponder email.
From Name
The display name used for the email sender.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
From Email
The email address used for the email sender and reply address.
If using a non-verified email domain you’ll see a warning message and icon (). For more info on Email Domain verification see here.
Subject
The subject line used for the autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
Body
The content of your autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
API Restrictions
Here you can allow website users to submit, or otherwise manipulate, the Module's items from the front-end of the website. Furthermore, these options allow you to control the permissions those users have.
Option
Description
Enable endpoint/Checkbox
Turns the endpoint on (if checked) or off (if unchecked) for the site, allowing frontend user access based on the additional settings below.
Allowed to the Following Type of Users
Logged in users(default) Specifies that the user needs to be logged in to perform this action.
Users from the following secure zones Specifies that the user needs to be logged in to one of the selected secure zones to perform this action.
Admin Users Specifies that the logged in user needs to be of an 'Admin User' role in the CRM to perform this action.
Ownership Restriction
Only Owner allowed(default) Restricts this action to only the item's owner.
Anyone allowed Permits this action for any user regardless of the item's ownership.
The above 'Allowed to the Following Type of User' permission is used in conjunction with this option. eg: If you've selected a specific Secure Zone required for the types of users and selected only the owner can update, the owner must also belong to the selected secure zone to have permission to access the endpoint.
To facilitate module item editing from the front-end you’ll need to add the ‘Create/Update/Delete Item’ form/s (found in the Components Manager) to your layouts or pages, or otherwise pass the required item data to the API endpoints.
Delete Module Item
The following options relate specifically to the 'Delete Module Item' action.
Workflow
Option
Description
Select Workflows
The workflow notification/s that will be triggered upon a user taking this action.
Multiple workflows can be selected and will all be triggered at the same time.
Autoresponder
The autoresponder is an email sent out to the user after the form has been submitted from the front-end of the website.
Option
Description
Enable
Enable the autoresponder email to be sent.
Receiver
Determines who's email address to use for delivery of the autoresponder email.
Form sender Use the email address of the user submitting the form.
Item owner Use the email address of the assigned module item's owner.
Sender and owner Use both email addresses of the user submitting the form and module item's owner.
If the autoresponder relates to the 'Create Module Item' action, both 'form sender' and 'item owner' will be the same. Therefore, all options will result in the same autoresponder delivery.
Template
The Email Template to be used for the autoresponder email.
From Name
The display name used for the email sender.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
From Email
The email address used for the email sender and reply address.
If using a non-verified email domain you’ll see a warning message and icon (). For more info on Email Domain verification see here.
Subject
The subject line used for the autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
Body
The content of your autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
API Restrictions
Here you can allow website users to submit, or otherwise manipulate, the Module's items from the front-end of the website. Furthermore, these options allow you to control the permissions those users have.
Option
Description
Enable endpoint/Checkbox
Turns the endpoint on (if checked) or off (if unchecked) for the site, allowing frontend user access based on the additional settings below.
Allowed to the Following Type of Users
Logged in users(default) Specifies that the user needs to be logged in to perform this action.
Users from the following secure zones Specifies that the user needs to be logged in to one of the selected secure zones to perform this action.
Admin Users Specifies that the logged in user needs to be of an 'Admin User' role in the CRM to perform this action.
Ownership Restriction
Only Owner allowed(default) Restricts this action to only the item's owner.
Anyone allowed Permits this action for any user regardless of the item's ownership.
The above 'Allowed to the Following Type of User' permission is used in conjunction with this option. eg: If you've selected a specific Secure Zone required for the types of users and selected only the owner can update, the owner must also belong to the selected secure zone to have permission to access the endpoint.
To facilitate module item editing from the front-end you’ll need to add the ‘Create/Update/Delete Item’ form/s (found in the Components Manager) to your layouts or pages, or otherwise pass the required item data to the API endpoints.
Update Draft Module Item
The following options relate specifically to the 'Update Draft Module Item' action.
Workflow
Option
Description
Select Workflows
The workflow notification/s that will be triggered upon a user taking this action.
Multiple workflows can be selected and will all be triggered at the same time.
Autoresponder
The autoresponder is an email sent out to the user after the form has been submitted from the front-end of the website.
Option
Description
Enable
Enable the autoresponder email to be sent.
Receiver
Determines who's email address to use for delivery of the autoresponder email.
Form sender Use the email address of the user submitting the form.
Item owner Use the email address of the assigned module item's owner.
Sender and owner Use both email addresses of the user submitting the form and module item's owner.
If the autoresponder relates to the 'Create Module Item' action, both 'form sender' and 'item owner' will be the same. Therefore, all options will result in the same autoresponder delivery.
Template
The Email Template to be used for the autoresponder email.
From Name
The display name used for the email sender.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
From Email
The email address used for the email sender and reply address.
If using a non-verified email domain you’ll see a warning message and icon (). For more info on Email Domain verification see here.
Subject
The subject line used for the autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
Body
The content of your autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
API Restrictions
Here you can allow website users to submit, or otherwise manipulate, the Module's items from the front-end of the website. Furthermore, these options allow you to control the permissions those users have.
Option
Description
Enable endpoint/Checkbox
Turns the endpoint on (if checked) or off (if unchecked) for the site, allowing frontend user access based on the additional settings below.
Allowed to the Following Type of Users
Logged in users(default) Specifies that the user needs to be logged in to perform this action.
Users from the following secure zones Specifies that the user needs to be logged in to one of the selected secure zones to perform this action.
Admin Users Specifies that the logged in user needs to be of an 'Admin User' role in the CRM to perform this action.
Ownership Restriction
Only Owner allowed(default) Restricts this action to only the item's owner.
Anyone allowed Permits this action for any user regardless of the item's ownership.
The above 'Allowed to the Following Type of User' permission is used in conjunction with this option. eg: If you've selected a specific Secure Zone required for the types of users and selected only the owner can update, the owner must also belong to the selected secure zone to have permission to access the endpoint.
To facilitate module item editing from the front-end you’ll need to add the ‘Create/Update/Delete Item’ form/s (found in the Components Manager) to your layouts or pages, or otherwise pass the required item data to the API endpoints.
Publish Draft Module Item
The following options relate specifically to the 'Publish Draft Module Item' action.
Workflow
Option
Description
Select Workflows
The workflow notification/s that will be triggered upon a user taking this action.
Multiple workflows can be selected and will all be triggered at the same time.
Autoresponder
The autoresponder is an email sent out to the user after the form has been submitted from the front-end of the website.
Option
Description
Enable
Enable the autoresponder email to be sent.
Receiver
Determines who's email address to use for delivery of the autoresponder email.
Form sender Use the email address of the user submitting the form.
Item owner Use the email address of the assigned module item's owner.
Sender and owner Use both email addresses of the user submitting the form and module item's owner.
If the autoresponder relates to the 'Create Module Item' action, both 'form sender' and 'item owner' will be the same. Therefore, all options will result in the same autoresponder delivery.
Template
The Email Template to be used for the autoresponder email.
From Name
The display name used for the email sender.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
From Email
The email address used for the email sender and reply address.
If using a non-verified email domain you’ll see a warning message and icon (). For more info on Email Domain verification see here.
Subject
The subject line used for the autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
Body
The content of your autoresponder email.
This field supports Liquid which can be used to insert dynamic content such as member details, form submission details or even data from other modules.
API Restrictions
Here you can allow website users to submit, or otherwise manipulate, the Module's items from the front-end of the website. Furthermore, these options allow you to control the permissions those users have.
Option
Description
Enable endpoint/Checkbox
Turns the endpoint on (if checked) or off (if unchecked) for the site, allowing frontend user access based on the additional settings below.
Allowed to the Following Type of Users
Logged in users(default) Specifies that the user needs to be logged in to perform this action.
Users from the following secure zones Specifies that the user needs to be logged in to one of the selected secure zones to perform this action.
Admin Users Specifies that the logged in user needs to be of an 'Admin User' role in the CRM to perform this action.
Ownership Restriction
Only Owner allowed(default) Restricts this action to only the item's owner.
Anyone allowed Permits this action for any user regardless of the item's ownership.
The above 'Allowed to the Following Type of User' permission is used in conjunction with this option. eg: If you've selected a specific Secure Zone required for the types of users and selected only the owner can update, the owner must also belong to the selected secure zone to have permission to access the endpoint.
To facilitate module item editing from the front-end you’ll need to add the ‘Create/Update/Delete Item’ form/s (found in the Components Manager) to your layouts or pages, or otherwise pass the required item data to the API endpoints.
Option
Description
Specify Item Expiry Date
Enables logged in users to edit the Expiry Date and/or Days before Expiry for their submitted items for this Module.
The Expiry Date and Days before Expiry fields will be included in the ‘Create/Update Item’ form (found in the Components Manager).
Requires Approval
Submitted items for this Module will be set as disabled. A website admin will be required to enable the item via the admin in order to approve the item and have it published to the website front-end. Use in conjunction with the Select Workflows option below to be notified of user submitted items.
Here default secure zone/s can be set in which newly created items will automatically be assigned to. This applies both to items created within the admin and via the front-end of the website.
Option
Description
Select Secure Zones
A list of available Secure Zones. Multiple Secure Zones can be selected.
Advanced settings for configuring your Module functionality and behaviour such as nested items and admin list view options.
Option
Description
Enable bookings
When enabled, this will show the capacity field in module item edit page and allows for the subscription logic to work for item.
Allow multiple parent items
In the case of grouped/nested module structures, if this option is enabled for the child module, it will display a tab with the name of the Parent module when editing child items. Likewise the name of the Child module will be displayed as a tab for the Parent module item view.
This tab will allow the selecting of multiple parent relationships of which their URLs can be uses to access the child items.
Additionally, the multiple URLs now created for an item will be listed as preview links along with the primary URL on the item's edit page.
Allow creating foreign items from other existing Modules
Here you can enable the visual grouping of Modules within each other - to form sub items within a parent item.
This allows for more intuitive editing of content items when a parent/child relationship is desired. It also allows deeper, more complex content structures to be created where parent/child content is needed to be displayed on your website.
You will not be able to set a module here if that module is already being used as a parent/child module elsewhere.
Choose Module
Select the existing Module to nest within the Module you are currently working in.
When creating child items, you'll be prompted to select the parent item to be assigned to and this will also determine that items URL structure. For example, having a parent Module called 'Web Technologies' with an item 'Javascript', assigning a sub item to 'Javascript' called 'String' might produce a URL to the sub item like so https://your-domain.com/web-technologies/javascript/string. The sub item named 'String', although belonging to its own Module (in this case called 'Technology Types') no longer takes on its own URL structure of https://your-domain.com/technology-types/string because it has now been assigned to the parent Module.
See the External Resources section below for a basic demo of Modules in action.
Module Items View Settings
With Modules in a nested structure, items from the chosen Module can now be nested under items of the current Module and therefore it makes sense to display them to the administrator that way.
So here you can configure how the list of items can be displayed in the admin area and which view should be the default.
Option
Description
Allow Items Tree View
Enables the option to view parent level items as folders, that when clicked, show only a list of their child items (rather than clicking through to edit the parent item itself). In order to edit the parent item, click on the pencil icon associated with that item on the far right of the list.
Allow Items List View
Enables the option to view ALL items, in the child Module, as a list without the need to drill down into separate parent folders. This option is not available for the parent Module.
In this view you can still determine the item grouping by looking at the URL shown in the list view, as it will show the directory structure including the parent items URL.
You can also use the search field at the top of the list to filter items based on both their name AND the URL contents.
Allow Simplified Tree View
Enables a more simplistic and condensed view when listing and creating items. Including the ability to edit, delete, move order/nest items all from the one list view.
This option is ideal for managing parent level items that only require basic settings (such as a name and hierarchy) and where the details of the item are generally not needing to be accessed.
Default View
Set which of the above view options are default.
Creating New Items
With Modules in a nested structure, you'll have the option to allow (or restrict) both the creation of parent level items and child items from within the current Module itself - without the administrator having to navigate multiple separate modules in order to manage complex content structures.
The options here allow granular control on how you set this up to manage which items can be added and from where.
For example, you could restrict the creation of parent items altogether - allowing only child items to be created.
Or perhaps, only allow child items to be created when the administrator is within a parent item - to avoid items being created in the wrong place.
Sub items can however, still be added/edited from within its own Module as well if that makes more sense for the administrator.
Item Properties
Here you can define the various options that might be available when creating Custom Module items, such as the system data fields to be used, default expiry, SEO settings, custom fields, and more...
The default properties relate to system fields and settings available to this module.
Option
Description
Default Template
A list of available Content Templates. The selected Content Template will be applied to newly created Module items by default. Both from within the admin and user submitted.
Enable Multiple Detail Layouts
Show the Detail Layout option when editing module items. This allows the website administrators to select from multiple detail layouts (if multiple Detail Layouts have been created).
Does not affect ‘Create/Update Item’ form fields for user submitted items.
Multiple Detail Layouts are only available in Pro plans or higher.
Enable Release Date
Show the Release Date option when editing module items. This allows the website administrators to set a date and time in which the item will be published and available for access on the website front-end.
Does not affect ‘Create/Update Item’ form fields for user submitted items.
Enable Expiration Date
Show the Expiration Date option when editing module items. This allows the website administrators to set a date and time in which the item will be unpublished and no longer available for access on the website front-end.
Does not affect ‘Create/Update Item’ form fields for user submitted items.
Item Expire
When a number of days is activated, the expiry date will automatically be calculated based on the number of days set.
Does not affect ‘Create/Update Item’ form fields for user submitted items.
The number of days setting is not used to calculate expiry dates for user submitted items. For this, use the expiry date fields in the ‘Create/Update Item’ form.
Enable Weighting
Show the Weighting option when editing module items. This allows the website administrators to set a numerical value in which the item will be sorted by in default list views on the website front-end. By default, higher values see the item listed above lower value items. When a weighting value is applied to an item it overrides the default alpha-numeric sorting of lists (based on the item Name).
Does not affect ‘Create/Update Item’ form fields for user submitted items. The Weighting option is always available by default in the ‘Create/Update Item’ form.
Enable Categories
Show the Categories option when editing module items. This allows the website administrators to assign global Categories for various display/filtering/sorting options on the website front-end.
Does not affect ‘Create/Update Item’ form fields for user submitted items. Categories cannot be assigned during the user submitted/editing process.
Root Category
Select the parent category that will define the available child categories when adding/editing items. This allows you to lock out other unrelated category groups from cluttering up the category dropdown for this module's items.
Enable Tags
Show the Tags option when editing module items. This allows the website administrators to assign module specific Tags for various display/filtering/sorting options on the website front-end.
Does not affect ‘Create/Update Item’ form fields for user submitted items. Tags cannot be assigned during the user submitted/editing process.
Enable Author
Show the Author option when editing module items. This allows the website administrators to assign a system Author for various display/filtering/sorting options on the website front-end.
This option also adds the Author field to the ‘Create/Update Item’ form for user submitted items.
Disable All Items From Site Search
Sets the ‘Disable From Site Search’ option to true, as a default, for all module items created after this setting has been enabled.
Does not affect ‘Create/Update Item’ form fields for user submitted items. ‘Disable From Site Search’ cannot be assigned during the user submitted/editing process.
Show New Items for Search Engines
Sets the ‘Show this page for search engines’ option to true (under the SEO tab), as a default, for all module items created after this setting has been enabled.
Does not affect ‘Create/Update Item’ form fields for user submitted items. ‘Show this page for search engines’ cannot be assigned during the user submitted/editing process.
Default Priority
Sets the ‘SEO Priority’ value (under the SEO tab) for all module items created after this value has been set.
Does not affect ‘Create/Update Item’ form fields for user submitted items. ‘SEO Priority’ cannot be assigned during the user submitted/editing process.
Here you can add custom field types to your Module setup. These new properties will then be available for you to save data against and sort/filter by on the website front-end.
Create New Property
Click the '+ Create New Property' button to start adding custom fields to your module.
Give your new field a relevant name. This name will be used as the data handle in which to render the fields value in your Layouts.
Field Types allow you to select the appropriate input type for your data requirements.
When creating a custom property, the Mandatory checkbox allows you to set the field as required when an item is being created via the admin AND via the website front-end as a user submitted item.
Be sure to save the new custom property to apply it to your Module setup.
The various input field types are listed below:
Type
Data
Description
CRM Record
number (CRM Record ID)
Allows the selection of a CRM Record (by Email) to create a relationship. The linked record‘s ID is included with the current items liquid data. Only one item is able to be selected per CRM Record field, however, multiple CRM Record fields can be added to your Module setup. When populating a module item, upon focusing a CRM Record field, an empty search will be performed displaying a dropdown of up to the first 50 items found (for performance reasons). Further typing will perform live searches based on the entered characters matching to the record email address.
Only CRM Records with appropriate permission applied will be available to select in CRM Record fields (Due to GDPR/privacy compliance).
Data Source
number (Item ID)
Allows the selection of another Module item (by Name) to create a relationship. The linked item's ID, Name and URL are included with the current items liquid data. Only one item is able to be selected per Data Source field, however, multiple Data Source fields can be added to your Module setup. When populating a module item, upon focusing a Data Source field, an empty search will be performed displaying a dropdown of up to the first 50 items found (for performance reasons). Further typing will perform live searches based on the entered characters matching to the item name.
Date Time
number (seconds since 1970)
Allow a date and time to be set via a date/time picker.
List (Checkbox List)
string (comma separated values)
Allow multiple options to be selected from a list of available options as checkboxes.
List (Dropdown List)
string (comma separated values)
Allow a single option to be selected from a dropdown list of available options. Also with the additional option to switch to a multi-select box where multiple options can be selected from a list of available options.
List (Radio List)
string (comma separated values)
Allow a single option to be selected from a list of available options as radio buttons.
Media
string (local path to file)
A file input allowing website administrators to select or upload files from the File Manager. With user submitted items from the website front-end, this provides a file upload field.
When rendering a media property value (filename/path) via Liquid, the filename will be URL encoded for correct use in HTML attributes. The encoded link will also be provided in the File Manager when using the 'copying to clipboard' function.
Multiline (Text)
string
Multiline inputs allow larger amounts of text to be entered along with line breaks. The following options can be enable for this field type:
Code View: Enables the admin editor interface to allow Code View for advanced code content formatting and markup control. WYSIWYG: Enables the admin editor interface to allow WYSIWYG view for advanced content formatting and markup control.
Both options can be enable to show a toggle state between Code View and WYSIWYG mode. If neither option is checked, the admin interface will display a basic textarea field with no formatting options.
Number
number
Accepts only whole numbers (positive or negative). Decimal values are rounded to their nearest whole number.
Single Line (Text)
string
String inputs allow for a single line of text.
True False (Boolean)
boolean (number 0 or 1)
Booleans allow only a true or false selection. When not selected its submitted value will be blank and when selected its value is on.
Once custom properties have been created they’ll be listed on the page where you can further edit, delete or re-order them.
Converting Custom Properties
If you later need to change a custom property’s field type to a different field type you can do so here, using the same interface.
Simply click on the custom property name, or its pencil icon and make the required change/s.
Changing field types can destroy or change existing data associated with those fields. Below is a conversion table describing the data transformation likely to occur.
Existing Property
Conversion Property
Transformation
Data Source number (Item ID)
Data Source
-
Date Time
Use as number of seconds from 1970
List (Checkbox List)
Convert to string of selected values. Add value as prevalue
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
Set number value
Text (Multiline)
Convert to string
Text (String)
WYSIWYG
True False (Boolean)
If number > 0 then true otherwise false
Date Time number (seconds since 1970)
Data Source
Set number value
Date Time
-
List (Checkbox List)
Convert to string of selected values. Add value as prevalue
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
set number value
Text (Multiline)
Convert number to string
Text (String)
WYSIWYG
True False (Boolean)
If number > 0 then true otherwise false
List (Checkbox List) List (Dropdown List) List (Listbox List) List (Radio List) string (coma separated values)
Data Source
Try parse as number. If failed set empty
Date Time
Try parse as number and create date by seconds. If failed set empty
List (Checkbox List)
If multi-select type is converting to a single-select type, than set value to first value from the coma separated values
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
Try parse as number. If failed set empty
Text (Multiline)
Set csv string as text
Text (String)
WYSIWYG
True False (Boolean)
Try parse as number. If number > 0 then true otherwise false
Number number
Data Source
set number value
Date Time
Use as number of seconds from 1970
List (Checkbox List)
Convert to string of selected values. Add value as prevalue
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
-
Text (Multiline)
Convert number to string
Text (String)
WYSIWYG
True False (Boolean)
If number > 0 then true otherwise false
Text (Multiline) Text(String) WYSIWYG string
Data Source
Try parse as number. If failed set empty string
Date Time
Try parse as number and create date by seconds. If failed set empty string
List (Checkbox List)
Try parse csv string as values. Add value as prevalue
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
Try parse as number. If failed set empty string
Text (Multiline)
Set text
Text (String)
WYSIWYG
True False (Boolean)
If empty then false otherwise true
True False (Boolean) boolean (number 0 or 1)
Data Source
Set 0 or 1
Date Time
Set empty
List (Checkbox List)
Convert number to string of selected values. Add value as prevalue
List (Dropdown List)
List (Listbox List)
List (Radio List)
Number
Set 0 or 1
Text (Multiline)
Set 0 or 1 as string
Text (String)
WYSIWYG
True False (Boolean)
-
Layouts
Layouts are the containers for an item's data to be rendered into, along with your custom markup. They are output by way of their associated component tag.
eg:
When the component is output it loops through all of its relevant items and renders their data into the specified Layout, as defined by the layout parameter of the component tag.
In other words, the Layout acts as a type of template for displaying the Custom Module's data.
You create your HTML markup or custom code and insert something similar to “data merge tags” by way of Liquid objects (eg: {{this['name']}} would render the item’s name).
List Layouts
Layouts of type ‘List’ are typically used for rendering repeating data sets. So, if the component you've configured retrieves 3 items, the List Layout will be rendered 3 times, each with a different item’s data being inserted within a defined markup.
Here is a simple example of how the Layout works, rendering a heading with the item's name as a link:
So, as per the example above, if viewing the first Custom Module, the Layout would render something like this:
<div>
<h2>Custom Module Item 1</h2>
<div>
This is the description content of Custom Module Item 1.
</div>
</div>
Adding/Editing Layouts
You have the freedom of editing these layouts as you need to, with any HTML, CSS or JS as appropriate for your project. As well as creating unlimited, additional layouts.
Click the 'ADD NEW LAYOUT' button at the top to create additional list or detail layouts.
You can then add your custom markup and insert dynamic Liquid objects into your layout. Using the ' Properties' manager (found at the top right of the editor), simply click on the desired Liquid object name from the list to have it inserted at your cursors position within your markup, or click on the copy icon () to copy it to your clipboard.
Additionally, you can even add other modules inside of these Layouts, just as you might insert them onto a regular page. Simply click on the ' Components' manager (found at the top right of the editor) and follow the prompts to configure any additional component tags for the desired data output.
Table
This setting allows you to customise the column headers in the table/list view of module items in the admin. Allowing you to provide a better editing experience for you and the site admins.
For example, looking at a list of products, you’d likely want to see, and sort by, different columns of data than you would for a list of gallery slides or a list of staff members.
Reposition or Remove Table Columns
The Tables interface shows a representation of the current column headers which can be repositioned (via drag and drop), or deleted (via the x () icon, shown on hover).
Any changes made to the headers here are saved automatically.
Editing Table Columns
You can add additional columns to your module list view by clicking the “Add New Column” button, or you can edit existing ones via the pencil () icon (shown next to the column label on hover).
Column options are as follows:
Option
Description
Column Name
The display name shown in the column header
Property
The data field from your module items to display in the column
Width
The default column width (in pixels)
Mobile Width
The column width (in pixels) when viewed on a mobile device
Hide on Mobile
Allows hiding of the column when viewed on mobile devices
Duplicating the Module
This option allows you to copy an entire module setup, including all of it's settings and properties, but excluding it's individual items (these can be exported and re-imported into the new module if needed). You'll be prompted for a new module name and URL during the duplication process.
This option is accessed when editing a module's settings via the duplicate icon found next to the module name at the top of the 'Settings' screen.
Duplication of modules is available on the PRO plan and higher.
Duplication of built-in system modules is available, however, they will be converted to regular Custom Modules void of their specific System Properties.
Managing Custom Module Items
Views
There are 3 different list views your Custom Module items can be configured to display in, or switched to via the icons ( ) in the top right of the item view.
Depending on how the module is configured, some or all of these icons may be visible and the default view may be different to that of how other modules display.
List View ()
A direct listing of all the current module items, in a tabular layout, which can be clicked on to access their content. A typical view for singular, self contained modules.
Tree View ()
Relevant for nested module structures, this view shows all current module items, in a tabular layout, as folders (parent items) which can be clicked into to access a List View of their child module items.
Simplified Tree View ()
Relevant for nested module structures, this view shows all current module items (parent items) in a simplified list of items only. These can be reordered or nested via drag and drop or further edited via the auxiliary menu () visible next to the item on hover.
For more details on these view options see the module ‘Advanced Settings’ section above.
Import / Export
Found under the main auxiliary menu (), you can import/export data to/from your Custom Modules module where you can then further update your items in bulk using a spreadsheet application and re-import item data in an Excel file format (.xlsx).
If re-importing to update existing items, be sure to maintain the same 'External ID' values from those exported items.
Export the current items in order to get a template import file you can use for importing new data. If you're starting from scratch, first create a dummy item with some sample data so you can see the import format needed.
Import for Nested (Parent/Child) Modules
Nested modules include eCommerce (Products/Catalogs), Pages, Blogs, Events, Banners, Galleries & Sliders, FAQs, and any Custom Modules that have been configured to ‘Allow creating foreign items from other existing Custom Modules’.
The import file for such child modules will include a ‘Parents’ column which allows the imported item (row) to be assigned to a parent item (or its root level) via it’s URL path/slug. Or even multiple parents, if ‘Allow multiple parent items’ is configured in the parent module.
For example; if we have a parent module called “Web Technologies” with an item called “Javascript” and we wanted to assign an item from a nested module to it, we would include the following path in the child item’s “Parent” column cell: /web-technologies/javascript
The item’s full URL would then become /web-technologies/javascript/item-name
And if assigning to multiple parents, we would include each parent item’s slug separated by a semicolon (;), like so: /web-technologies/javascript;/web-technologies/liquid
Similarly, if we want to assign the child item to the root level parent module, include the module slug without any parent item slug included: /web-technologies
If the import file for the child items has empty ‘Parent’ cells or if the column is not present, the child items will be imported into the view you initiated the import from. So if you are viewing the parent items in ‘List View’ or are at the top level/root using ‘Tree View’, the imported items will be assigned to the root level of the parent module. Likewise, if you have navigated into a parent “folder” and initiate the import process, the child items will be assigned to the currently viewed “folder” (only if the Parent cell is empty or omitted from the file).
You can also assign child items as parents to other child items, in the same module, during the same import process. For example; if we have two child items called “Number type” and “Integer” an wanted “Integer” to be a child of “Number type”, then it’s Parent cell value would include the parent module’s root slug and the target child item’s slug, like so: /web-technologies/number-type
Resulting in the item’s full URL to become /web-technologies/number-type/integer
The sequence of the imported items in the spreadsheet is not important here. They can be in any order.
URL Conflicts
If, upon attempting to create an imported item with the constructed parent/child URL, the URL already exists in your site, the item will be handled in one of two ways (based on the site’s setting in ‘Settings’ > ‘Misc’ > ‘Disable autocomplete for already taken URL slugs’):
If setting is unchecked (URL autocomplete enabled) then the conflicting URL will be appended with an incrementing number.
If setting is checked (URL autocomplete disabled) then the import will present an error for that item and skip any update/creation of the item.
URL list column
The ‘URL list’ column in an export file is for export display purposes only (to display a full construction of both parent and item slug paths). This column is ignored for imported data and item URLs are determined by the individual parent and slug values.
Other Errors
The import process will present an error of each imported item if any of the following conditions are encountered (and will skip that item from being updated/created):
If multiple parent slugs are included in the Parent cell but the module is not configured with the setting “Allow multiple parent items”
If multiple parent slugs are included in the Parent cell and one or more of those slugs do not match any existing parent module items (missing parent items will not be created during import).
If the slug included in the Parent cell is the same as the item slug being updated/created (cannot assign itself as parent).
If an error is thrown on a child item that is elsewhere assigned, in the import file, to be a parent to other child items, then all of those child items will also be skipped during import, since their parent cannot be created.
Deleting
Found under the main auxiliary menu (), you can delete ALL Custom Modules in bulk using the "Delete All Items" option.
Additionally, you can make bulk selections from the item list view (by ticking the checkboxes on the left of each item) and click the "DELETE SELECTION" button that will appear at the base of the list view.
Individual items can be deleted either by expanding the auxiliary menu to the right of each item and selecting the "Delete" option or when on the item's edit page, click the trash can icon () in the lower right of the page.
Bulk Apply Template
After making a selection of module items, using the checkboxes to the left of each item, an “Apply Template” option will become available in the main auxiliary menu () allowing you to assign a template, in bulk, to the selected items.
Populating Custom Module Items
From the Custom Modules item list view, click the “CREATE NEW” button at the top to start creating a new item or click directly on the name of any existing item in the list.
Upon editing an item you have access to the following options.
This group of options mostly correspond with how your Module was configured (see above configuration steps) along with some item specific options.
If your screen doesn’t show some of the options here it’s likely due to how the Module is configured, or due to a site plan functionality restriction.
You can quickly collapse this section, by clicking on its header, to condense your workspace and help with moving to the next set of options.
Below is a detailed explanation of all possible options found here:
Option
Description
Item Name
Set the item's Name This is used to describe the item within the admin area and also typically used as the display name of the item when rendered to your website front-end.
URL
The system will generate a unique base URL derived from the name you set. You can however, adjust this path (slug) if desired simply by setting a new value in this field. URL slugs are limited to 254 characters in length.
<Source Module>
If the item belongs to a nested module structure you'll see the name of the parent module here with the ability to select which of those parent module items this new item will belong too.
Nested Modules are only available in Pro plan or higher.
Template
A list of available Content Templates. The selected Content Template will be applied to newly created Module item when viewed at its unique URL.
Detail Layout
The Detail Layout to use for the item when viewed at its unique URL.
Multiple Detail Layouts are only available in Pro plan or higher.
Enabled
Uncheck this option to disable the item from being published to the website front-end. The item will remain available in the admin but will not be made live.
Set as Home Page
If checked, the item will be displayed at the websites root domain (ie: https://www.mydomain.com/) and be flagged as the sites Home page.
Only one item in the site can be assigned as the Home Page. Setting this option for an item will remove any previously assigned home Page setting from another item.
Disable From Site Search
If checked, the item will not be retrieved in any front-end site searches.
Release Date
Set a date and time in which the item will be published and available for access on the website front-end.
Expiration Date
Set a date and time in which the item will be unpublished and no longer available for access on the website front-end.
Weighting
Set a numerical value in which the item will be sorted by in default list views on the website front-end. By default, higher values see the item listed above lower value items. When a weighting value is applied to an item it overrides the default alpha-numeric sorting of lists (based on the item Name).
Make Item Secure
A list of available Secure Zones the item can be assigned to. Multiple Secure Zones can be selected. Assigning a Secure Zone will set its unique URL to authorised access only. Only if the viewer is logged in and is subscribed to the relevant Secure Zone/s can the item be accessed.
Secured items, by default, will still be listed in any relevant searches, list views and liquid collections on the website front-end even when the viewer is not logged in to any secure zones.
With all child items
Secure Zone inheritance for nested child items. If your module is configured in a nested configuration, where this item belongs to the parent module, all of its child items will inherit this Secure Zone setting.
Site Search Keywords
Should contain Comma Separated Values (CSV) for keywords. Provides additional keywords to influence Site Search results, along with the item name and description.
This group of options correspond with the built-in System Properties specific to this particular module providing special system functionality.
If the ‘System Properties’ section is missing altogether it’s likely due to no system properties being applicable for this module.
You can quickly collapse this section, by clicking on its header, to condense your workspace and help with moving to the next set of options.
Below is a detailed explanation of all possible options found here:
Option
Description
Added By
You can assign a relationship for the item to any contact record that exists in the CRM (new email addresses will not be saved). If the item was created by a user submitting it from the website front-end, that users email address will be assigned here.
This property will only be available if the module is configured to allow adding/editing/deleting of items via the 'Site User Permissions' settings.
This group of options correspond with the Custom Properties configured for your Module (see above configuration steps).
If the ‘Custom Properties’ section is missing altogether it’s likely due to no custom properties being added.
You can quickly collapse this section, by clicking on its header, to condense your workspace and help with moving to the next set of options.
This group of options correspond with how your Module was configured (see above configuration steps).
If your screen doesn’t show some of the options here it’s likely due to how the Module is configured, or due to a site plan functionality restriction.
If the ‘Default Properties’ section is missing altogether it’s likely none of these system properties have been enabled.
You can quickly collapse this section, by clicking on its header, to condense your workspace and help with moving to the next set of options.
Below is a detailed explanation of all possible options found here:
Option
Description
Categories
Assign global Categories for various display/filtering/sorting options on the website front-end. Use the “+ Add New Category” button to create new Categories and/or manage existing ones.
Global Categories can also be managed under 'Settings' > 'Categories' in the main admin menu.
Tags
Assign Tags (unique to the current module) for various display/filtering/sorting options on the website front-end. Use the “+ Add New Tag” button to create new Tags and/or manage existing ones.
Author
Assign a system Author for various display/filtering/sorting options on the website front-end.
Authors can be managed under 'Content' > 'Authors' in the main admin menu.
The content section is typically used for adding/editing the main body of content for the item, or otherwise described as the main description of the item.
This editor can be toggled between WYSIWYG (design/layout) view and Code View to provide full freedom and flexibility for the content that you can add here, including HTML, CSS, JS, images, video, embed codes, text styling and more.
The editor also supports Liquid and component tags can be added using the ‘Component’ manager at the top right of the editor.
Parent
This tab will only be visible when the module is in a nested configuration, with a parent and child module grouping, and when the child module allows ‘multiple parent items’ in its advanced settings.
The tab will carry the name of the parent/child module, depending on which module you are viewing.
See module Advanced Setting above for more details on this configuration.
This page will display the items from the Parent module and allows you to assign multiple Parent to the current Custom Module item - by dragging and dropping from the available items on the left into the assigned list on the right. Or you can remove Parent from the Custom Module by moving them from right to left.
Additionally, the directional arrows in the middle can be used to move selected items right or left, or to move ALL items together right or left (using the double arrow buttons). This can be useful to clear all assigned Parent from the Custom Module quickly, for example.
A preview of how the below metadata might display in search engine listings.
This is a simulated preview only. Actual search engine listings may vary.
Meta Title
The descriptive title of the document. Typically displayed in the browser's title bar or tab. This value, if set, will be automatically output as <title><Meta Title></title> and added to the <head> of the item's page. If left empty, the item's Name will be used instead.
If your Content Template already contains a hard-coded <title> element it will not be replaced by the system.
Meta Description
A short description of the document. This value, if set, will be automatically output as <meta name"description” content"Meta Description"/> and added to the <head> of the item's page. If left empty, no <meta name"description"> element will be added.
If your Content Template already contains a hard-coded <meta name"description"> element the system will add an additional <meta name"description"> element if this value is set.
Additional <head> Code
Item specific <head> elements can be added here for the system to include in the item's <head> section. Can be used for adding additional metadata, styles, scripts, etc.
Liquid is not currently supported in this field.
Show this page for search engines
If unchecked, the system will add <meta name"robots” content"noindex, nofollow"> to the item's <head> section. This helps inform search engines to not display this item's page in search engine results or follow any of the page's links for indexing purposes.
If your Content Template already contains a hard-coded <meta name"robots"> element the system will add an additional <meta name"robots"> element if this option is unchecked.
Canonical Link
The preferred content URL when other similar content pages may exist. This value should be an absolute URL. The site's primary domain will be displayed as the first option here. Setting a canonical link helps inform search engines of the primary content source when duplicate or similar content pages exist so as to help avoid SEO penalties and other linking confusion. This value, if set, will be automatically output as <link rel"canonical” href"Canonical Link"> and added to the <head> of the item's page. If left empty, no <link rel"canonical"> element will be added.
If your Content Template already contains a hard-coded <link rel"canonical"> element the system will add an additional <link rel"canonical"> element if this value is set.
SEO Priority
The priority value in your system generated sitemap.xml file. This value, if set, will replace the default priority value of 0.5 in the <priority> element for this item's sitemap entry.
The values provided here help other platforms, such as social media services (particularly Facebook) to better define this item's content. These values, if set, will be automatically generated into the Open Graph metadata schema into the <head> of the item's page. eg: <meta property"og:PROP_TYPE" content"PROP_VALUE"/>
If your Content Template already contains any hard-coded <meta property"og:PROP_TYPE"> elements, the system will add an additional <meta property"og:PROP_TYPE"> elements if these values are set.
You can render Custom Module items to your website front-end in a variety of ways and places such as; pages, layouts, templates, emails and just about anywhere else that supports Liquid.
Most commonly though, we would use a standard web page to render to and we would insert a Liquid component tag to define the data that is to be displayed there.
You can use the Component Manager to configure your Custom Module component tag and insert it into the editor, or you can manually configure them by coding the desired parameters directly into the tag.
Using the Component Manager
Found at the top right of the content editor section, clicking the ‘ Components’ button will reveal a list of available modules and other system items.
Expanding the 'Custom Modules' section and selecting 'List of items' to open the component configuration panel.
Follow the prompts to configure the way you'd like to retrieve Custom Modules (such as; how to filter and sort items, how many to render, use of pagination, etc.) then click the blue link/s at the end to copy the constructed component code to your clipboard. Now you can paste this code into your page content or where otherwise required. To learn more about these render options, view the 'Component Tag Advanced Customisation' documentation link/s below.
Searching within Custom Modules can be achieved with a search form and the module’s component tag configured with the isSearchResult parameter.
Simple keyword based searches can be set up as well as more advanced search forms with specific system and custom fields searchable along with range searches for date and price/number fields.
Custom Module search code can be generated via the Component Manager when using the admin editor for any page/layout.
Expanding the Custom Module item from the available module list and choosing “Search Forms” will provide the component builder along with the full search form code to be copied for that module.
You can configure a Custom Module search with two parts; the search form and the module’s component tag. More on these parts below:
This will allow the component to reference search parameters in the resulting URL.
URL search parameters will override any corresponding parameters in the component. If no search parameters are present in the URL, isSearchResult will be ignored.
You may want to separate the search form from the component tag if you want a dedicated search results page, or where you have a search input in the header or footer of all pages as so searches could be made from any page.
This method also alleviates a side-effect of the isSearchResult configured component whereby it will output all indexed items by default if no search query has been specified (ie: when a user first navigates to a search page).
If you do want one single search page, with both search form and component and don’t want to initially list all results, another solution to this is to wrap the component tag in a Liquid condition which looks for the presence of the prop_KeyWords parameter in the URL, like so:
This form element includes a prop_KeyWords text input, prop_ModuleId hidden input, a submit button and no form action attribute.
The prop_ModuleId hidden input tells the search which module to search (replace ‘1234’ with the ID of your module).
The prop_KeyWords text input allows multiple keywords to be entered for searching.
The search logic combines multiple keywords with an AND operator, so items will be returned only if they include ALL keywords entered.
Currently, searching does not support any manual logic operators to be used in the keyword input field (such as; AND, OR, NOT...)
When the form is submitted, prop_ModuleId and prop_KeyWords, along with their values, will be passed as URL parameters for the isSearchResult configured component tag to interpret.
By default, the search form has no action attribute, so it will redirect to the current page with the URL parameter appended to the current page URL.
You can, instead, separate the search form from the ‘site_search’ component, having the module component on a separate page and sending the search query to that page instead of the current page.
To do this, you’d add the other page URL slug to the form element. So if the other page was “/search-results”, you’d adjust the form to include an action attribute as such:
<form action="/search-results">
Advanced Search Form
Building further on the basic form structure above, you can add Custom Module specific fields to search their contents, either individually or combined with other fields and/or keyword queries.
The search logic combines all field queries with an AND operator, so items will be returned only if they include ALL the queries entered.
The fields (providing they are available to the module) that can be search upon include:
Name
URL (Slug)
SKU Code
Release Date
Expiry Date
Site Search Keywords
Rating
Description
Any ‘Default Properties’ (eg: Categories, Tags, Author...)
Any ‘Custom Properties’
Module specific ‘System Properties’ (Price, Product Dimensions, Unit Type, Capacity...)
To add these fields to your search form, create an appropriate input with the name attribute configured like prop_PropertyName.
So, if you were adding a search field for a custom property called “Vehicle Colour”, the form input might look like this:
<input type="text" name="prop_VehicleColour">
Follow this same format for most other properties. Although you may like to change the input type to suit the type of data required.
For example, if our above “Vehicle Colour” property was actually a dropdown field with predefined colour values, you may choose to create a <select> element instead, like so:
After the search form has been submitted, you might also like to keep the search queries filled in the search form fields, for better usability. So to do this you can pull the query parameters out of the URL and into the input values, like so:
For property types such as dates, prices, ratings and numbers, you can search with a to-from/min-max range by adding _Min or _Max to the property name.
So let’s say you want to search for items within a certain date range, based on their release/expiry dates.
Searching for a minimum release date will return all items with a release date newer (or the same as) the query date. And likewise searching for a maximum expiry date will return all items with an expiry date older (or the same as) the query date.
Programmatically Search (without a form)
There may be times when you require the search results for a module based on constructed data, other than that of a user’s input into a search form.
This parameter allows a search on the module without search parameters needed in the URL. Instead, search parameters are added to the value of this parameter. Therefore, this parameter can be used to output module specific search results from hard-coded (or Liquid constructed) values without the use of a search form.
The search queries are similar to that used in the above form based search method, but use JSON syntax for their construction.
Below is an example of a constructed searchScope configured component tag, with min/max release date search, keywords and multiple tags query:
The search logic combines all field queries with an AND operator, so items will be returned only if they include ALL the queries entered.
Related Articles
Liquid Components module (Custom Modules) This module component fetches data relating to Custom Modules.
OpenAPI (Admin) Modules API Create, Retrieve, Update and Delete Modules via the public API endpoint using "where" filtering.
OpenAPI (Admin) Module Properties API Create, Retrieve, Update and Delete Module Properties via the public API endpoint as well as setting their sort order and Retrieving and Updating Property settings.
OpenAPI (Admin) Module Items API Create, Retrieve, Update and Delete Module Items via the public API endpoint using "where" filtering as well as Retrieve and Update Module Item's SEO data.
OpenAPI (Admin) Module Items Attributes API Create, Retrieve, Update and Delete Module Items Attributes via the public API endpoint via "where" filtering as well as update the attribute sort order.
OpenAPI (Admin) Module Items Attribute Options API Create, Update and Delete Module Items Attribute Options via the public API endpoint.
OpenAPI (Admin) Module Item Draft API Update and Delete Module Item Drafts via the public API endpoint including the publishing of drafts.
OpenAPI (Admin) Module Item Prices API Create, Retrieve, Update and Delete a Module Item's Prices via the public API endpoint.
OpenAPI (Admin) Module Item Inventory API Retrieve, Update and Delete Module Item Inventory via the public API endpoint as well as generating inventory variations.
OpenAPI (Admin) Module Item Related Items API Retrieve and Update a Module Item's Related Items via the public API endpoint.
OpenAPI (Admin) Module Item Grouped Items API Create, Retrieve, Update and Delete a Module Item's Grouped Items via the public API endpoint.
OpenAPI (Admin) Module Item Parent Items API Retrieve and Update a Module Item's Parent Items via the public API endpoint.
Extensions Import/Export of Modules Quickly and easily replicate (or back-up) a complete Custom Module configuration via import/export, including; Settings, Properties, Layouts and Table setup.
OpenAPI (Admin) Module Layouts API Create, Retrieve, Update or Delete Module Layouts via the public API endpoint using "where" filtering.
Please let us know if you have any other contributions or know of any helpful resources you'd like to see added here.
Questions?
We are always happy to help with any questions you may have.
Visit the Treepl Forum for community support and to search previously asked questions or send us a message at support@webinone.com and we will consult you as soon as possible.