4.18.0 RC1

Since Squiz Matrix was first released, the system has used a Java-based asset map navigation system, to allow users to browse and manage the assets within their systems, including adding and editing assets.

This Asset Map, however, has previously caused potential issues with different Java versions, including recent restrictions from Apple on OS X. With the addition of lengthy loading and operating times, an alternative was required.

This feature introduces the Modern Asset Map, a new JavaScript-based alternative to Squiz Matrix's existing offering.

The Modern Asset Map can be enabled on the Global Preferences screen within your system's System Configuration settings.

When the Modern Asset Map is enabled, the JavaScript-based asset map will be displayed, if the user's browser can support it. If the browser does not support the JavaScript asset map, Squiz Matrix will revert back to the original Java-based asset map.

The Modern Asset Map has been designed to retain the same look and feel as the original asset map.

This new asset map was also developed to include all existing functionality, while providing a faster and more reliable user experience.

Everything you already love about the asset map is still available but just a whole lot more efficient. Creating and deleting assets, drag-and-drop asset moving, expanding asset trees, displaying asset colours, refreshing the asset map... it's all quicker and easier now than ever before! 

Custom Form: New Option to Specify Submission URL (#6458)

A new option added to the Custom Form Page asset to set the submission URL of the form. The options available on the Form Submission URL field include The Current URL or This Page's Own URL.

When the The Current URL option is selected, the form will submit to the current URL that the user is visiting. On the other hand, when the This Page's Own URL option is selected, the form will submit to the Custom Form Page's URL.

This option is useful when the form is nested in another page and it is required to submit to the original form's URL, instead of the current nesting page's URL.

Show If Design Area: New 'Has Children' Condition (#6498) 

The Show If design area allows you to display content within the design of your assets using conditional variables, for example, if the user is logged in, a link to a simple edit interface could be displayed.

This feature introduces a new condition variable, allowing you to show content if the asset has child assets of a specified type code.

The has_children variable can be used to display content if either type 1, 2, 3 or notice linked children are present. An example is displayed below; the condition will be met if the asset has children of either type 1, 2 or notice (8) linked. 

<MySource_AREA id_name="children_or_peers" design_area="show_if">
<MySource_SET name="condition" value="has_children" />
<MySource_SET name="condition_types" value="page_standard, folder" />
<MySource_SET name="condition_link_types" value="1,2,8 />


This feature was kindly contributed by Keith Brown (The University of Edinburgh).

Customise the Layout of the Account Manager's Logged-In User Details Form (#6509) 

Squiz Matrix's Account Manager Page allows public users to create user accounts on your system, as well as allowing existing users to edit the details of their accounts. 

During the configuration process of the Account Manager, you can specify to customise the layout of the Create New Account form for public users, rather than use the default layout.

Previously, however, this option was not also available for the User Details form for logged-in users, which allowed them to edit their account details.

This feature introduces a new option to the Details screen of the Acount Manager Page, allowing you to customise the User Details form for logged-in users. 

When the Logged in Bodycopy Customisation setting is enabled, a new layout asset will be added under the Account Manager in the asset map. You can use the simple edit keyword replacements available for user account assets on this layout bodycopy to customise the look and feel of the form.

New Script to Clean Invalid Remaps (#6515)

A new script has been added to help clean up invalid remaps. These may include useless remaps that lead to non-existent pages or infinite redirect loops.

The usage of the system_integrity_invalid_remaps.php script is as follows:

$ php system_integrity_invalid_remaps.php system=<SYSTEM_ROOT>  [--expired_remaps] [--invalid_old_url] [--redirect_chain]  [--invalid_new_url] [--execute]  

This script takes the following optional arguments:

  • [--expired_remaps] : Identify remaps that have expired.
  • [--invalid_old_url] : Identify remaps that have old, invalid URLs that match to existing assets.
  • [--invalid_new_url] : Identify remaps with invalid new, invalid URLs, for example, redirecting to an non-existent asset URL.
  • [--redirect_chain] : Identify redirect chains, shortening remaps if execute is specified.
  • [--execute] : Clean the invalid remaps found in above reports.

Specify Service Address on SOAP Assets (#6525)

Previously, SOAP assets within Squiz Matrix (including trigger actions, form actions and data sources) would only use the default SOAP service address and binding, as specified in the WSDL file.

This feature introduces a new drop-down field on these assets, allowing you to specify the service address to send requests to.

Workflow Schema: New Notification Options (#6530) 

Squiz Matrix's Workflow Schema assets provide options to notify the initiator of the workflow process on an asset when the process is completed and the asset changes have been made live.

This feature introduces two new options to the Details screen of the Workflow Schema asset, allowing you to specify to notify both the initiator of the workflow process and the workflow approvers after changes have been approved. 

When the Notify Starter After Approval and Notify Approvers After Approval settings are enabled, the configured Workflow Approval Message custom message will be sent to these users when the changes made to an asset are approved.

By default, the Notify Starter option is disabled, while the Notify Approvers option is enabled, following the existing notification behaviour within Squiz Matrix.

New User Account Password History Check (#6531) 

The system's Password Rules Configuration screen allows you to configure rules for the passwords of user accounts within your system. This includes minimum length and specific character rules, for example, 'must include numbers'.

This feature adds a new setting on this screen to specify the number of unique passwords used on a user account before reusing an old password. 

The Password History Enforcement setting allows you to enable new passwords to be checked against the password history of a user account. If the new password is not unique when compared to a specified number of previous password (e.g. the last five passwords used), it will not be accepted.

By default, this setting is disabled, meaning that new passwords won't be checked against previously used passwords.

This feature has been added to improve security on your system by allowing you to enforce policies to prevent the reuse of old passwords, reducing the chance of user accounts being compromised.

Promotional Code Asset: Condition Variables (#6534) 

The E-Commerce package's Promotional Code asset allows you to create rule-based promotional codes for your customers to receive discounts on items within your store.

These discounts are determined by promotional rules, either using a Fixed Amount or Percentage discount type.

This feature introduces new promotional conditions to further configure the promotional codes available within your e-commerce store and specify when a discount should be applied.

These new conditions can be configured in the Promotional Conditions section of the Details screen of the promotional code asset. 

This section allows you to configure a Compare Value condition on the Promotional Code asset, allowing you to compare two values in order to meet the condition, based on a variety of comparison types.

You can use global keywords in the Source and Compare value fields, for example, to compare the metadata of the e-commerce user to a specified value.

So, let's say you created a special 20% discount promotional code, which you want to make available to all Australian users of your store. You can achieve this by creating a promotional condition, using the keyword replacement as the source value and Australia as the comparison, with the comparison type as String - Contains.

This example condition would check the address metadata of customers' user accounts, validating the promotional code if their address contained the string Australia. As a result, users from Australia, who entered this code, would have the 20% discount validated on their order.

This feature has been added to allow you to provide greater flexibility when configuring promotional discounts on your store.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #4067: E-Commerce Default Delivery Method to Remember Form Answers.
  • Minor Enhancement #6447: TRIM Saved Search: Login Screen on File Download URLs for Users Without Read Access.
  • Minor Enhancement #6501: New Field to Specify the Name of Downloaded Files on a TRIM Saved Search . 
  • Minor Enhancement #6516: Improved Error Handling on the TRIM Saved Search asset.
  • Minor Enhancement #6519: Promotional Code Asset Enhancements.
  • Minor Enhancement #6529: New Force Update Button on the TRIM Saved Search.
  • Minor Enhancement #6535: Customise the Email Footer for Emails Sent by Squiz Matrix.
  • Minor Enhancement #6542: JavaScript API: Sync Context Enhancements. 
  • Minor Enhancement #6563: Asset Created Trigger Event Support for Thesaurus Term Assets. 
  • Minor Enhancement #6569: Enhancements to the striphtml Keyword Modifier to Specify Allowed Tags.


  • Fixed Bug #6329: Data Records allowed as children of Standard Pages only via Edit+, not Admin.
  • Fixed Bug #6341: setMetadataAllFields returns invalid JSON on errors.
  • Fixed Bug #6495: Single Page A-Z Listing "Page Link Format" doesn't work.
  • Fixed Bug #6507: If asset is deep in the asset tree and also linked to many parents, one might run into ORA-01795 error.
  • Fixed Bug #6508: Send Submission Log Cron Job doesn't clean up.
  • Fixed Bug #6510: minor problem when cron job script is given path to Matrix as argument.
  • Fixed Bug #6511: On IE the links to assets within Matrix get corrupted on frontend.
  • Fixed Bug #6512: Spell Checker removing links from the content.
  • Fixed Bug #6518: Rest resource asset won't pass additional GET var from nested content.
  • Fixed Bug #6523: Specific Cache Management Settings does not handle situations where isUnderRootNodes returns  FALSE.
  • Fixed Bug #6526: viewing form with _nocache suffix would not submit.
  • Fixed Bug #6536: Metadata fields defaulting to %metadata_field_<name>% do not trigger update when referenced field updates.
  • Fixed Bug #6539: minor issue with Force Secure URL redirecting.
  • Fixed Bug #6541: Bodycopy div with type Image does not pick up caption for image variety.
  • Fixed Bug #6544: metadata in context cancelling "use default" on default context results DB errors duplicate key.
  • Fixed Bug #6545: Keyword replacements popup links to system static URL.
  • Fixed Bug #6548: Having \' in a matrix URL throws a DB error.
  • Fixed Bug #6549: Fatal Error when Redis cache connected to a slave.
  • Fixed Bug #6553: Custom form and safe editing do not play well.
  • Fixed Bug #6555: Global SQ_PAINT_LAYOUT_ID is not reset correctly.
  • Fixed Bug #6556: WYSIWYG insert link popup displays absolute links incorrectly.
  • Fixed Bug #6557: DB datasource connection using complete DSN to non pgsql data fail.
  • Fixed Bug #6560: not getting replaced in the default workflow start email.
  • Fixed Bug #6561: Preview screen not picking the correct URL for the dependant asset.
  • Fixed Bug #6564: Cannot set dynamic parameters value without setting the tag id in the Set Tag trigger action.
  • Fixed Bug #6567: Fatal error when menu design area uses a non-exist asset as root node.


  • Fixed Bug #6506: AssetCreated event still gets triggered when New reCAPTCHA fails in asset builder.
  • Fixed Bug #6513: Send Submissions Cron Job attachment has no extension.
  • Fixed Bug #6550: Remote Content page nested in the login design throws fatal error.
  • Fixed Bug #6554: Single square bracket ([ or ]) in First Name or Last Name of System Administrator causes warnings on changing password.  


  • Fixed Bug #6520: Upcoming events list gets lists single and recurring events in wrong order.
  • Fixed Bug #6538: Calendar Events Search Page not listing events in Safe Edit.
  • Fixed Bug #6543: Calendar instance keywords don't work properly with replace_keyword.


  • Fixed Bug #6558: RSS Data Source multiple fields reducing to single entity.

Google Maps

  • Fixed Bug #6547: Google Maps not rendering basic keywords.

Web Services

  • Fixed Bug #6505: REST resource option to 'Allow Keyword replacement' can stop all the keywords from replacing.