Change log

Blogs

Blogs provide a robust blogging platform allowing multiple Blogs per site with unlimited Blog Posts and custom layouts and behaviours.

Whether you need a simple list of news items to a full-featured blogging site, the Treepl CMS Blog module can be configured for your requirements, including tags, categories, authors, search, dynamic content and more.

The Blogs module and its settings can be found under the 'Content' item in the left hand admin menu, then choose "Blogs".

Quick Start

Blog Settings

From the Blogs item list view, click the " EDIT SETTINGS" button to display a menu for further options, as detailed below.

Blogs - Edit

Settings

These settings relate to the overall Blogs 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.

Blogs - Edit Parent/Child Switcher
Settings
Option
Description
Module Name
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.

Site User Permissions

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.

Secure Zones

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

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 Blog items, such as the system data fields to be used, default expiry, SEO settings, custom fields, and more...

Default Properties

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.

Custom Properties

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:

{% component type: "module", source: "Blog", layout: "List" %}

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 Blog'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).

From the Blog Layouts screen you’ll also have access to the Blog Post Layouts as this is a grouped module.

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:

<div>
    <h2><a href="{{this['Url']}}">{{this['Name']}}</a></h2>
</div>

Using the example above of 3 items, the result on the website's front-end would look something like this:

<div>
    <h2><a href="/module-url/Blog-1">Blog 1</a></h2>
</div>
<div>
    <h2><a href="/module-url/Blog-2">Blog 2</a></h2>
</div>
<div>
    <h2><a href="/module-url/Blog-3">Blog 3</a></h2>
</div>

Detail Layouts

Layouts of type ‘Detail’ are typically used for rendering a single item's detail view, as displayed when browsing to that item’s unique URL.

Here is a simple example of how the detail Layout could look, rendering a heading with the item's name and the item's description field:

<div>
    <h2>{{this['Name']}}</h2>
    <div>
        {{this['Description']}}
    </div>
</div>

So, as per the example above, if viewing the first Blog, the Layout would render something like this:

<div>
    <h2>Blog 1</h2>
    <div>
        This is the description content of Blog 1.
    </div>
</div>

Blog Specific Layouts

Since Blogs are a grouped/nested module, when calling the parent module in your component tag, the parent’s Detail layout is configured to then list the child items via the child component tag.
So, the default Blog detail layout, called “General Blog Layout”, looks something like the below - calling the child Blog Post component filtered by its parent ID:

<div>
    <h1>{{this['Name']}}</h1>
    {% component type:"module", source: "Blog Post", layout:"List", filterBy:"parentid", filterValue:"{{this.id}}" %}
</div>

Therefore, if your site had 3 parent Blogs each with a child Blog Post, the Layout would render something like this:

<div>
    <h1>Blog 1</h1>
    <div>
        <h2><a href="/module-url/Blog-1/Blog-Post-A">Blog Post A</a></h2>
    </div>
</div>
<div>
    <h1>Blog 2</h1>
    <div>
        <h2><a href="/module-url/Blog-2/Blog-Post-B">Blog Post B</a></h2>
    </div>
</div>
<div>
    <h1>Blog 3</h1>
    <div>
        <h2><a href="/module-url/Blog-3/Blog-Post-C">Blog Post C</a></h2>
    </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 'CREATE NEW' button at the top and choose which grouped module you wish to add a list or detail layout for.

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.

Duplicate Module

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 Blog Items

Views

There are 3 different list views your Blog 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 Blogs 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 Blogs 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.

Blog Groups

The Blogs module is a grouped/nested module by default, which means there are actually two modules configured together in a relationship. One to act as a parent Blog (the overall Blog itself) and the other as the individual child Blog items (the Blog Posts).

By default, this module is configured to create Blogs (Blog groups) since the module listing is set to ‘Tree View’ () and by clicking the “CREATE NEW” button it will give the option to create a ‘Blog’ group. Individual Blog Posts can then be added when navigating within that Blog group.

Blog Groups - Tree View

The ‘Tree View’ () will display any Blog groups you’ve created as well as any Blog Posts that are outside of any group.

To create a Blog Post within a Blog group, simply enter the desired group (by clicking the group name with the folder icon) and then follow the instructions below for ‘Populating Blog Items’.

To assign an existing Blog Post to a group, edit the Blog Post details and select the desired group from the “Blog” field.

Blogs - Assign to Group

Editing Blog Groups

Since clicking on a Blog group will enter into that group's list view of items rather than going to its edit page, you can instead access the Blog group's deatils by clicking the auxiliary menu () on the far right of its item row and choosing "Edit".

Blogs - Edit a Group

Populating Blog Items

From the Blogs 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.

Settings

Item Settings

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.

System Properties

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.

Custom Properties

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.

Default Properties

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.

Content

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.

Blog

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 Blog module and allows you to assign multiple Blog to the current Blog item - by dragging and dropping from the available items on the left into the assigned list on the right. Or you can remove Blog from the Blog 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 Blog from the Blog quickly, for example.

SEO

SEO Content
Option
Description
Preview

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.

Open Graph
Option
Description
Open Graph

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.

AMP Content
Option
Description
Enable AMP

Activate AMP content.

Content

Your AMP coded content.

Displaying Blog Items

You can render Blog 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 Blog 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.

Accessing Component Manager

Expanding the 'Blogs' section and selecting 'List of Blogs' (to list parent Blogs) or 'List of Blog's Posts' (to list child Blog Posts), or any other relevant option for you needs.

Follow the prompts to configure the way you'd like to retrieve Blogs (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.

Component Manager Copying Code

Component Tag Advanced Customisation

See here for more detailed documentation on manually configuring the Blog component tag.

See here for more detailed documentation on manually configuring the Blog Post component tag.

Searching Blog Items

Searching within Blogs 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.

You can configure a Blog search with two parts; the search form and the module’s component tag. More on these parts below:

Component Tag with ‘isSearchResult’

To render the search results to the page and/or a collection, you need to configure the module’s component tag with the isSearchResult parameter set to true (see the Blog component documentation for technical details).

{% component type: "module", source: "Blog", layout: "List", isSearchResult: "true" %}

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:

{% if request.request_url.params.prop_KeyWords %}
    {% component type: "module", source: "Blog", layout: "List", isSearchResult: "true" %}
{% endif %}

Basic Search Form

A basic keyword based search form for Blogs would be constructed like the following:

<form>
    <input type="hidden" name="prop_ModuleId" value="1234">
    <label>Keywords</label>
    <input type="text" name="prop_KeyWords" maxlength="255" value="{{request.request_url.params.prop_KeyWords}}">
    <input type="submit" value="Search">
</form>

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 Blog 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:

<select name="prop_VehicleColour">
    <option value="Red">Red</option>
    <option value="Blue">Blue</option>
    <option value="Green">Green</option>
</select>

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:

<input type="text" name="prop_VehicleColour" value="{{request.request_url.params.prop_VehicleColour}}">

Search Within Number Ranges

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.

<input type="datetime-local" name="prop_ReleaseDate_Min">
<input type="datetime-local" name="prop_ExpiryDate_Max">

And to populate these fields with the searched values:

<input type="datetime-local" name="prop_ReleaseDate_Min" value="{{request.request_url.params.prop_ReleaseDate_Min | date: "%Y-%m-%dT%H:%M"}}">
<input type="datetime-local" name="prop_ExpiryDate_Max" value="{{request.request_url.params.prop_ExpiryDate_Max | date: "%Y-%m-%dT%H:%M"}}">

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.

You can achieve this with the use of the searchScope parameter on the module’s component tag (see the Blog component documentation for technical details).

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:

{% component type: "module", source: "Blog", layout: "List", searchScope: "{'prop_ReleaseDate_Min':'2018-07-01', 'prop_ReleaseDate_Max':'2018-07-31', 'prop_KeyWords':'Your Keywords', 'prop_ItemTags':['tag1','tag2']}" %}

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 (Blog)

    This module component fetches data relating to Blogs. {% component type: "module", source: "Blog", layout:...
  • Liquid Components
    module (Blog Post)

    This module component fetches data relating to Blog Posts. {% component type: "module", source: "Blog...

External Resources


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@treepl.co and we will consult you as soon as possible.