If you are upgrading to version from an earlier version of Squiz Matrix, it is highly recommended that you review the Important Changes & Notices section of this page.

New Features & Enhancements

UI Improvements

This release features some well overdue and great improvements to several areas of the User Interface, mainly in the Admin Mode interface. Below are some of the most notable changes to the UI:

#6200 - Image Preview for Image Assets in the Edit+ Asset Finder - Idea by Philipp Struchtrup

When using the Asset Finder in Edit+, you now get a small image preview when you hover over image assets.

The preview includes the dimensions of the image and also works for image varieties.

#10636 - Improved Look and Feel of Asset Tags

Asset tags found pretty much everywhere in the Admin Mode interface have received a visual touch-up.

The blue info icon has been replaced with the coloured status square so that you can quickly see which assets are in which status. Hovering over this square now triggers the pop-up display of the More Info box.

The asset type icon has also been included so that you instantly know what type of asset has been selected for any field.

#7083 - Image Preview on the Details Screen of Image Assets and the Thumbnail Selector - Idea by Anthony Ponomarenko

The thumbnail selector field now shows you a small preview of the image you have selected as the thumbnail. You can also click on the image preview to open the full preview of the image in a new window.

The layout of the associated image information has also been improved.

The same change has also been applied when viewing the details screen of image file assets.

#7539 - Improved and Simplified Lock Details Info

The locking info area at the top of each asset screen has been simplified to be less cluttered with unnecessary info. The "Show Lock Details" button now displays the locks table with direct links to the users who are holding the locks for each lock type.

The same layout has also been applied to the locking info for the System Configuration screens.

#10609 - Forcibly Acquire Locks Improvements and Concept Name Change to "Steal Locks"

The previously named "Forcibly Acquire Locks" feature has been renamed and received a small UI improvement.

This concept is now called "Steal Locks", to make it clearer and better reflect what you are actually doing.

When another user has the locks on a certain asset screen, and you have the access to steal those locks from them, the button for acquiring the locks will now say, "Steal Locks".

The pop-up screen has also been simplified and the inaccessible and old CAPTCHA box removed completely.

#10683 - Improved Asset Type Select List Fields

We've added the popular Select2 jQuery plugin to the Admin Mode interface in order to create more functional and user-friendly select fields. Over time, we'll start applying this functionality to various select fields all across the interface.

The first place we focused on is the asset type selector fields. Previously, this list was huge and often included asset types that were incompatible with certain functionality that they were being selected for.

Not only have we made the selection of these fields much better with the Select2 plugin, but we've also removed incompatible types for things like Asset Listings and Asset Builders.

%asset_data% Keyword

#9916 - Idea by Brian McCarthy

A brand new keyword has been added that lets you print all relevant information about an asset as a JSON object.

The keyword is called %asset_data% and will print the following information:

  • Standard asset fields (name, status, updated date, thumbnail, etc.)
  • Attributes
  • Metadata

This means you can now access any attribute of an asset, even if there is no specific attribute keyword for it. You can also use the ^index keyword modifier to print a specific value from the JSON data.

For example, you can now retrieve all the options of a specific Metadata Select Field using a keyword like this:


Which returns all options as a JSON object:

  funnelback: "Funnelback",
  ikabo: "Ikabo",
  marketo: "Marketo",
  matrix: "Matrix",
  sugarcrm: "SugarCRM"

Improved Log Manager

#7320 - Idea by Susie Rowe

The Log Manager has received some functionality improvements and user interface changes.

The Known Logs table layout has been improved so that the information is more easily digestible.

Once you click to monitor a log, you now have several filter functions for the log results including the type of log message to display and filters for the username and message content.

Google reCAPTCHA Version 2 Support

#8329 - Idea by Andrew Byrne

Integration support for Google reCAPTCHA Version 2 has now been added for all asset types that supported version 1 of the tool, including assets such as Custom Forms, Asset Builders, and Account Managers.

Once you've added your keys from Google on the External Tools screen, you will be able to configure some options for it on the form's contents screen.

Once enabled, it automatically gets added to the bottom of the form, just before the "Submit" button. You can of course also customise the positioning of it using keywords.

New Marketo Form Submission Action


A new Form Submission Action has been added to Custom Form assets in order to make Marketo integration more powerful.

The action is called "Marketo Submit Form", and is used to trigger a true form submission from Matrix, into a form configured in Marketo.

This is useful if you want to have triggers that fire marketing campaigns in Marketo whenever a form submission is made. You also don't even have to set up any fields in the Marketo form to sync the attributes from the Matrix form fields to a Marketo record, you can simply just manage all the form fields on the Custom Form asset in Matrix.

Custom Metadata Field Output Formatting

#9009 - Idea by David Cook

On the Details screen of Metadata Fields, there is now a field called Meta Tag Format. This field lets you completely customise the output of the metadata value when it gets printed using the Metadata Design Area or the %asset_frontend_metadata% keyword.

Server Side JavaScript Debugging

#10704 - Idea by Chris Grist

A new URL query string feature has been added to help with Server Side JavaScript implementations and debugging.

If you have Write Access to an asset, you can now append ?SQ_VIEW_SERVER_JS to the URL when previewing it on the front-end in order to see a full output of the JS code that was sent to the JS engine in Matrix.

This is particularly useful if you are getting JS errors on the front-end that relate to a specific line number in your code, as you will be able to track down exactly which line the error is referring to.

Using JS comments, you can help indicate which specific asset each JavaScript block is coming from.

CSS Control for Individual Simple Edit Layouts


Back in version, we added the ability to turn off the default JavaScript files that Matrix was outputting for Simple Edit Layouts.

We've now added the same control for the CSS files. Previously this was a system-wide toggle that needed to be done on the Layout Manager. Now you can do it per Simple Edit Layout in order to have more control over what styles to use for your custom Edit Mode interfaces.

Ability to Clone Triggers

#7283 - Idea by Andrew Sharpe

Triggers are shadow assets, which means they previously couldn't be cloned like normal assets such as Standard Pages and Folders.

We've added some custom handling for cloning of shadow assets which has made it possible for Triggers to be cloned using the same Asset Map cloning tools available to normal asset types.

Other Features & Enhancements

  • #3756 - Change timezone config from text field to select drop down to improve timezone support in Matrix
  • #6191 - status output on purge_trash.php script
  • #7096 - Make Add Remap trigger action customisable
  • #7182 - When adding new Triggers by right clicking on a Category, the trigger should be created in that Category
  • #7406 - Commit button on workflow screen should be moved
  • #7580 - Add support for Modern HTML Tidy (5.x) for classic WYSIWYG, exposing new HTML5/XHTML5 option
  • #8242 - New image variety option for minimum size of smallest dimension
  • #8921 - Update minimum browser requirements for Edit+
  • #9145 - Links report minor enhancement for missing hostname urls
  • #9275 - Add email address to news asset details screen
  • #10365 - Always add width and height attributes to img tags
  • #10396 - The POST request body field on REST assets should use the ace editor if available
  • #10447 - Improve functionality and usability of the search and replace tool
  • #10538 - Change Labels/Helptext/Text in Admin screens
  • #10595 - Hide Roles screen from assets if Roles is disabled on the system
  • #10630 - Add generic select2 capability into matrix select fields
  • #10682 - Improve the screen header bar UI
  • #10698 - Add userLogin / userLogout internal Matrix events
  • #10738 - Create new JS file to house all global functions and initiators for editing interfaces
  • #10753 - Option to set the "HTTP Only" and "Secure" flags on the cookie created by SAML Account Manager
  • #10755 - Optimise attribute/metadata sync on SAML login
  • #10813 - WYSIWYG Inline tool to create <code> tags
  • #10814 - Update Viper to latest code for and
  • #10843 - Update default search manager noise word list
  • #10857 - Support SAML HTTP Post for SAML Single Logout
  • #10869 - Update polish translation files
  • #10877 - Support safe editing of special page assets on Site asset details screen
  • #10889 - Show notice and hide fields when Mollom and reCaptcha aren't configured or available
  • #10904 - Add .pptx to default file extensions to upload
  • #10980 - Asset map should prevent you from linking or moving an asset underneath itself
  • #11015 - Update default Log to DB Blacklist values
  • #11051 - Update of .gitignore

Important Changes & Notes

Root Users Group


A brand new type of User Group has been added which is used to house all users requiring Root User Access to the Matrix system.

The new group is automatically created under the System Administrators group under the System Management asset in the Asset Map on install.

When you upgrade to version or higher, the Root User asset will be automatically moved into this user group. Additionally, if your system has the Root User disabled, any existing System Administrators will be linked under this group when the upgrade script is run in order to retain their root access.

This change allows for more control over which users should have root access to your Squiz Matrix system, even when the Root User is disabled.

Only users with root access can move users in and out of this group and you can only place System Admin user types under it. This change also means that when the Root User is disabled using the setting in the main.inc fileSystem Administrators are no longer automatically granted root access.

System Administrator Permission Changes

As part of the Root Users Group feature, System Administrator users now have access to edit other System Administrators. This was previously not possible, meaning that you had to log in as the Root User to reset another administrator or move other users in and out of this group.

This change further reduces the need for more users to have Root User access to your Squiz Matrix system.

Disabled Password Fields for SAML & OAuth Users

#10093 - Idea by Andrew Byrne

Users who have been created in Matrix using the SAML or OAuth Account Manager asset with the Disallow Password Login field set to Yes, will now no longer have their password fields available for editing on their Details screen.

Instead, there is a message saying that the user's password is disabled as they can only log in via the external authentication method they used to create their account with.

Safe Editable Metadata Schemas Screen

#10968 - Idea by Mat Walker

Previously in Matrix, Metadata Schemas set on the Metadata Schemas screen on assets was never Safe Editable. Meaning that you could remove a schema on an asset whilst it was in Safe Edit, and if you cancelled the Safe Edit status, the schema would not get re-applied.

This caused issues with Content Templates due to them being able to apply Metadata Schemas to Content Containers. So in order to fully support Safe Edit for Content Templates, we've had to make the schemas applied to any asset on its Metadata Schemas screen Safe Editable.

This means you can now put a Standard Page (which has a Content Template applied to any of its Content Containers) into Safe Edit, change or remove the template from the container, and then properly revert the change if you cancel Safe Edit.

Removed Features

The following features and functions have been removed from this version of Squiz Matrix. Please review the Squizmap reports for further information on each removal.

  • #10376 - Removal of Choose a Pre-Uploaded File Functionality on File Assets
  • #10792 - Removal of Check Spelling Plugin in Classic WYSIWYG
  • #10667 - Removal of the Install Key

Bug Fixes

  • #6749 - Bug with compare to live functionality when content spans multiple tags
  • #6798 - System Config setting "Log Errors?" (SQ_CONF_LOG_ERRORS) is unused
  • #8281 - Webpath conflicts due to failed lookups
  • #8443 - Compare to Live in Edit+ displays errors when page uses image varieties
  • #8871 - Paint layouts can only be changed in Safe Edit if the asset has Workflow applied to it
  • #9103 - Custom form submission action 'Call Rest Resource' , 'Process Keywords In JavaScript Files' is visible at all times, should only be visible when file has been added.
  • #9236 - The Online Quiz Submission Logs page csv export does not update headers if Question Text is updated.
  • #9237 - Submission Logs screen fixes and improvements for downloading logs
  • #9296 - Security Restrictions Screen in User Group Assets should use Title of the type code to restrict with or instead of id.
  • #9343 - Unsaved changes warning appears incorrectly if you make changes to a screen which can't be saved
  • #9437 - Image Metadata for base64 data doesn't soft wrap, stretches Details screen
  • #9487 - On asset create and first commit, Assets versions are 0.0.2 and 0.04 respectively. Should be 0.0.1 and 0.0.2
  • #9498 - 'Sort By' 'Metadata Field' in 'Parent Asset' group  on 'Asset Grouping' screen of Asset Listing is allowing all asset types to be selected.
  • #9543 - Select Question: semicolon or encoded HTML entity breaks Custom Form question list
  • #9645 - Viper toolbar Insert Keyword and Insert Snippet buttons when disabled still have mouse down state.
  • #9797 - Hyperlink Safety in Live Assets
  • #9858 - Calendar Events Search Page is not grouping by Metadata Field.
  • #9885 - Deleting assets underneath search folder gives "Error: Unexpected end of JSON input"
  • #9993 - Remove invalid options for changing status on individual content containers
  • #10009 - Keyword displayed on the front end when entering a number as a new set for an asset builder
  • #10171 - In Edit+ you can add a limbo asset as a Create Location when you shouldnt be able to
  • #10174 - Email attachments missing when option "Log Submissions" is disabled
  • #10385 - Issue with Multiple Snippet Content Containers on the same page
  • #10439 - Public User Restriction - User IP Condition is not working if it is not a direct child
  • #10499 - You can set any type of Design Asset as the Design in Asset Settings.
  • #10501 - Viper Insert Image Popup Menu has a couple of issues when changing sections
  • #10512 - If no Default Persona is set on an assets Page Contents/Variation Page Contents, a Matrix Error is shown
  • #10523 - Insert Image plugin scrolls off the bottom of the window when uploading a tall image
  • #10535 - Restrictions on User Assets within User Groups do not Export when Exporting/Importing from XML
  • #10536 - Clicking the binoculars of a NOTICE link on linking screen fails to show the asset in tree and incorrectly tries to open children of content type asset
  • #10537 - OAuth2_Token: handle scenario where access token is NULL but refresh token still exists
  • #10569 - Assets where Parent controls locks on Decision Tree expires, dropping all locks
  • #10583 - Admin 'Asset Map' interface cloning ends up in the wrong drop zone
  • #10639 - Brackets not appearing around Under Construction menu items when using keyword modifiers on print tag value
  • #10647 - On force lock screen if commit button value is blank the button is empty.
  • #10660 - Status controls not showing on redirect pages after setting status.
  • #10661 - Do not display error message when login Matrix and LDAP server is offline
  • #10671 - Issue with RecordType filters in HPRM Saved Search
  • #10681 - Change Popup for supported Browsers for the Asset Map
  • #10686 - Static events are registered too early
  • #10695 - Don't display "Move to Trash" on assets that shouldn't be deletable
  • #10713 - Bug with edit table plugin in Classic Wysiwyg editor
  • #10715 - fatal error thrown if Internal Message field "subject" exceeds 255 character limit
  • #10721 - Changing the asset status to Safe Edit on Form Section will make the section's bodycopy disappear
  • #10724 - Setting invalid date on Metadata Date field throwing fatal error
  • #10733 - SSJS with use of %globals_asset_contents% is executing as a separate thread
  • #10739 - Design Area Menu Stalks throwing undefined var PHP notices
  • #10751 - Decision Tree Asset - Accessibility Issue (no label printed for form fields)
  • #10756 - Matrix will not display the available fields(column) of the selected lists in Create Sharepoint list item form submission action, if field display name consists of single quote(').
  • #10766 - Classic WYSIWYG's Insert Link plugin not linking to the asset with quote char in the asset name
  • #10771 - Edit Image modal: image content appears poorly during load
  • #10773 - Asset listing breaking on Asset Positions
  • #10785 - CSS "Basic Minifier" (cssmin.php) breaks rules with attribute selectors
  • #10791 - Matrix will timeout if keyword used in Sharepoint List Item form submission action is not replaced successfully.
  • #10823 - Copy pasting an image with base64 data for uploading fails the first time
  • #10846 - Use existing compression settings for memcached settings
  • #10850 - Cascade value tickbox needs to be removed from details screen of metadata date field
  • #10859 - Using the preview screen's "Use Cache" and "Show Diff" option more than once will fail the preview
  • #10862 - Viper editor - heading tags inside table headings
  • #10867 - Do non-strict version comparison in HPRM Saved Search asset when checking for updates
  • #10871 - Table button in Viper toolbar not active on initial focus of WYSIWYG area in Content Container
  • #10875 - Cannot upload the office doc files downloaded from Google Docs as docx, xlsx and pptx
  • #10887 - Trying to expand the children of a user asset you don't have permission to throws JS error
  • #10892 - Attempting to remove the extension from a File asset's File Name errors and deletes the asset's content
  • #10895 - Non-cascading metadata schemas are copied from parent to cloned children
  • #10908 - Creating assets via builders in a context throws errors
  • #10918 - OAuth2 Token: "Access Token Expiry" does not take effect
  • #10923 - SAML Manager's "Disallow Password Login" setting not applied the newly created users
  • #10924 - OAuth2 Token: when no scope set, the "scope" GET variable shouldn't be passed
  • #10930 - Binoculars don't work properly on collapsed Trigger Manager when trigger ID exceeds asset map set limit
  • #10932 - Cannot change to the context with name containing integer chars only using the backend context switcher
  • #10937 - Incorrect note on Persona details screen for Group Logic field
  • #10939 - Option to disable trigger action not working with trigger action's "Ignore Permissions" option enabled
  • #10944 - Trigger folders which have a sub-folder end up in an infinite loop when viewing Details screen
  • #10962 - Problems when moving a Trigger into a trigger folder
  • #10963 - Unable to change multiple options in one commit for Calendar Event in Edit+
  • #10969 - Asset Map's "Move here" option greyed out when target asset ID begins with asset ID of the asset being moved
  • #10998 - Styling issue on Action On Other Assets on trigger action
  • #11005 - Replace Keyword behaviour change if it is inside Globals_User in 5.4+
  • #11010 - Updated Default Container Content and Settings for Listing and Layout Assets not working for some new bodycopies
  • #11012 - New line breaks on content within <pre> tags are removed on save
  • #11040 - Large Metadata Select uploads can exceed the max_input_vars settings which results in truncations on save
  • #11052 - Status code class names in asset finder
  • #11075 - Search asset does not index results correctly when asset is created via asset builder