The latest 2 releases for the 5.2 and 5.3 branch were released today with the 5.3.3.0 version packing some serious new Matrix goodness. Checkout the release notes for both releases and read on below to discover the new enhancements that have been added.

New keyword modifier format to pass parameters to keywords

A new type of "pre evaluation" keyword modifier format has been added that enables you to pass dynamic values to a keyword as GET or POST parameters which will get evaluated before the contents of the keyword will. This format is mainly aimed at the %asset_contents% keyword type and will let you pass parameters in a similar way that nested content containers allow you to.

The 3 new keyword modifiers include:

^with_get

^with_post

^with_context (alias for the existing ^context modifier)

For example, if you are referencing the asset contents of an asset listing that accepts dynamic root nodes as GET parameters, you can use the new ^with_get modifier to send a value like this:

%globals_asset_contents:1234^with_get:root=9999%

This keyword will pass "9999" as a GET parameter to asset 1234 before being rendered.

You can also pass multiple parameters and use the ^replace_keywords modifier to make the values dynamic:

New "Asset Map" sort order for listing assets

Previously in listing based assets when you wanted to list asset in the order they appear in the asset map, you needed to turn on the "Direct Links" only setting. However turning this setting on restricted you somewhat in the other listing functionality such as link type filtering and multi level listing.

A new dedicated sort order type has now been added to all listing assets that allows you to natively sort by the order of the Asset Map, effective sorting on the asset's "Sort Order" attribute. The new setting can be found on the "Asset Sorting" screen of listing assets and needs to be enabled within
the "Extra Sort-by options" section before showing up as a new sort order option.

If listing assets over multiple levels, the listing will first list all assets of the first level including it's children before proceeding to the next asset at the first level. For example, if we have the following asset structure in place:

New else_begin keyword format for conditional keywords

Conditional keywords are powerful for printing content if a certain condition is met. You can also easily print alternative content if the condition is false.

A new keyword format has now been added to these conditional keywords that lets you chain conditions after each other and only print the first version of the content when the first of multiple conditions is met.

Using the %else_begin_<keyword>%, you can conditionally print alternative content if the previous condition was false, for example:

%begin_asset_thumbnail%<!--@@ Print the asset's thumbnail if it has one @@-->
%asset_thumbnail%
%else_begin_asset_metadata_related-image%<!--@@ Otherwise, print the image asset set in the related metadata field if it has one @@-->
%asset_metadata_related-image^as_asset:asset_contents%
%else_begin_asset_parent^as_asset:asset_thumbnail%<!--@@ Otherwise, print the thumbnail of the parent asset if it has one @@-->
%asset_parent^as_asset:asset_thumbnail%
%else_asset%<!--@@ Otherwise, print a note @@-->
<em>No Thumbnail</em>
%end_asset%

Ability to escape reserved characters in keyword modifiers

Reserved special characters within keyword modifiers can now be escaped using a backslash. This is useful if you want to replace content with characters that contain these reserved characters, namely colons and carets:

:
^

For example, the following keyword will replace the "http://" value in the keyword with "https://":

%globals_asset_url^replace:https\::http\:%

Because the backslash now works as an escape character for colons and carets, a script called upgrade_escape_keyword_modifier_char.php has been added that can help you identify any areas in your Matrix instance that have these characters in place already as they will need to be reviewed and potentially replaced with double backslashes, for example instead of this:

\:
\^

You will need to do this:

\\:
\\^

Optional keyword replacements in REST JS files

A performance enhancement has been added to the REST JS interfaces including the REST JavaScript Asset, Trigger Action, and Form Submission Action when processing keywords in included JavaScript files.

The new configuration option allows you to control which JS files you want to replace keywords within before being used in the processing. Disabling keyword replacement on large JS files can help speed up the performance when processing the JS code and rendering of the content.

Welcome to another addition of the Matrix Newsletter. Apologies for the time it has taken since the last one, we have been a bit slack in this department. However, that's because we haven't been slack in others!

We had a great break over Christmas but got right back into gear when 2016 started and we are working on some big and exciting new things for Matrix this year!

Read on and have a look at some of the cool new stuff that was released in the 5.3 branch for these releases:

New Features in 5.3.1.1

Re-sizeable Columns in the Edit+ Asset Finder

Much like the asset map feature added to admin mode in 5.2, the columns in the Asset Finder in Edit+ are now re-sizeable as well. Users can now drag & drop to re-size each column of the finder to make it easier to read long asset names.

The width of each column is remembered so that each time the Asset Finder loads, the user's preferred widths are applied.

http://www.squizlabs.com/__documents/general/videos/resize.mp4

Ability to Clear Specific Squid Cache URLs

This feature will allow you to specify specific URLs to clear Squid Cache for. This is particularly useful if you want to clear cache on Matrix redirect URLs on which you can't use the /_recache method on.

Root Node Restriction on Related Metadata Field

The Related Metadata Field has had another enhancement added to it. You can now set root node restrictions on this field which will limit the areas where users can pick assets from. This is useful
for when you want to improve the usability and speed for users when quickly picking assets from a specific area.

When used in Edit+, the Asset Finder will list each root node in the left column to restrict the user from quickly viewing the correct area to pick assets from.

Edit+ Asset Finder Performance & Usability Improvement

Previously in Edit+ the Asset Finder would by default always refresh every time it was opened. This proved to be an usability and performance issue as it would constantly reload each column of assets even when you didn't have updated assets in the system.

This is now disabled so that users can quickly launch the Finder and return to where they last were. There is also a "Refresh" button available if the user needs to manually force an update to the Finder.

New Workflow Keywords for Notify On Live Message

Additional keywords have been added to the Notify on Live custom message configuration for Workflow Schemas. You can now use keywords that print valuable information about the asset when it was approved to go live,
such as the name and workflow message of the user who last approved the changes.

These are the same keywords that are already available for other workflow steps, however these keywords have been added to the Notify on Live custom message as well so that you can print information about the last approval event of the workflow before it was approved to go live.

New Keyword for Printing Raw Contents of Containers

With the new Container Template feature introduced in 5.3, you are able to apply Paint Layouts to each content container of a Standard Page. Sometimes however, you might want to print the contents of those containers without the Paint Layout presentation layer, just like you can with %globals_asset_contents_raw%.

A new keyword, %globals_asset_contents_raw_containers%, has now been added which will print the contents of a page without any Paint Layout applied on the page or its content containers.

New Features in
5.3.2.0

Improved File Storage on Server

Whenever a file asset went live and had public read access, it used to get stored in 3 locations in the server /data directory. This caused unnecessary storage space on the server being taken up as a 1mb file would effectively take up 3mb on the server.

The method of storing the file in these 3 locations has now been improved. The file is physically only placed in 1 location and linked into the other 2 (think asset linking in Matrix). This new method significantly reduces the storage space taken up by physical files uploaded via Matrix.

A new script called "shrink_matrix_file_assets.php" has also been developed that can be run on existing systems that upgrade to 5.3.2.0 or later to fix existing files so that they use this new method.

Set File Contents Trigger Action

With a similar feature released for the JS API in version 5.3.1.0, we've now added a Trigger Action for updating the contents of a file asset.

This new Trigger Action allows you to update the contents of a File asset by passing the new content as a base64 encoded string or plain text if updating text based assets.

Option to Disable Default JavaScript on Simple Edit Layouts

A new option has been added to Simple Edit Layouts that lets you disable any default JavaScript that Matrix outputs as part of the layout.

This lets you customise and control what JavaScript to be included on the layout form and where. Note that some Matrix JavaScript will still be added for certain fields that require it, such as WYSIWYG fields.

New Relative and DOW Keyword Modifiers

2 new date based keyword modifiers have been added to print relative date formats. These are similar to the already existing relative date formats for the global date and standard asset date keywords. These
new modifiers can be used on any keyword that returns a date in an ISO8601 format such as calendar event or metadata dates.

%<date keyword>^date_relative% - This will print the date in a relative format to the servers current date and time.

%<date keyword>^date_relative-dow% - This will print the time and date relative to the day of the current week.

Example, if the current date and time is 2016-02-08 13:25:00 the keywords will print:

Script to Fix Rollback Time Gaps

There are instances where time gaps can get introduced in Rollback entries of the Rollback Database tables. This could be a result of failures when enabling/disabling Rollback on a Matrix system. A new script called "system_integrity_fix_rollback_gaps.php" has been developed to identify and fix these time gaps if required.

Multiple Asset Selection in Asset Finder

With the ability to have multiple assets selected for a Metadata Related Asset Field, you often want to pick multiple assets at once when opening the Asset Finder.

A new enhancement to the Asset Finder has now been added to allow just that. When invoking the Asset Finder from a field that accepts multiple Asset selections, you can select multiple assets at once by holding down the CTRL key and clicking on the assets you want to pick.

Single Password Field on User Creation Form

A new option has been added to the Details screen of Account Manager page called "Confirm Password on Create". By default this setting is set to Yes, meaning that when user's create a new account they will have to enter their password in twice to confirm they enter the intended password in.

If this setting is set to No, the Account Manager will only output a single password field so that the user can create a new account easier and quicker.

In the Pipeline

Not only do we have brand new releases for both Matrix 5.2 and 5.3 just around the corner (5.2.9.1 and 5.3.2.1 scheduled for next week), but we've also started and completed some exciting new 5.4 features.

First of all, the next 5.3 release will see a new keyword for retrieving all URLs applied to an asset. This will essentially extend the existing %asset_url% keyword in that you will get all URLs available in an array that you can then use for things like Squid cache clearing triggers and canonical
URL implementations.

In addition to that, we'll also see a new keyword that can be used in Simple Edit Layouts for always being able to print the asset ID of the current asset being edited. With so many new ways of editing assets in Matrix 5.3 (Content Templates, Asset Builder Editing, etc), this
keyword will greatly come in handy when constructing your custom editing interfaces.

Even though 5.4 is still a fair bit away, we thought we'd give a sneak peak of the upcoming new stuff in today's newsletter:

New Image Editing Features

We are working on some big new features for being able to edit images better in Squiz Matrix. A new improvement to the Edit+ WYSIWYG Editor's Image Plugin is coming that will let you easily switch between image varieties without having to launch the asset finder.

We are also introducing image variety editing capabilities into the Edit+ interface, as currently these are only available in Admin Mode.

And lastly, a brand new image editing tool is getting added that will let you edit your uploaded images directly within the browser. This tool will allow basic image edits to let you quickly change things like rotation, size, and cropping.

Context Improvements

Several improvements and new features are also being worked on for the Contexts feature in Matrix. Contexts are extremely powerful and useful for things like multilingual sites and even personalisation.

In order to help you use contexts, we are improving the User Interface to make it easier and clearer for the user to know what context they are currently in.

A revert context feature is also being added so that you can cancel content that has been edited for a context so that it uses the default context's content instead.

A new report type asset that lets you run a report on your system which tells you what assets are using what context will also be available.

These new improvements will make contexts more manageable and significantly easier to use.

Server Side JS Processing

Currently you can only run server side JavaScript within the REST JS asset in Matrix. This is extremely useful for when you need to process data and manipulate it before printing it out on the webpage on the front end.

We are taking this functionality further so that you can essentially run server side JS within any bodycopy type asset, mainly raw HTML content containers. For example, the below code takes an array of asset IDs stored within a related metadata field and uses a JS for loop to print the name of each
asset in an unordered list.

New Matrix Community Website

We are building a new site!

In an aim to improve our product communication, supporting materials, and resources for the beast that is Squiz Matrix, we have decided that it is due time and a great opportunity to do something new and improved in this space.

Currently we've got pieces of information relating to Matrix scattered in various places such as the Manuals, Forums, and off course, this website. This is all great, but it can sometimes be hard for users to find this great content.

One of our goals for 2016 is to improve this and add more stuff to it. So to do so we are building a new Community and Knowledge Base website that will be the portal and one-stop-shop for all your Matrix needs. The sections of this site we have identified so far include:

Matrix Manuals

Release Information

News

Guides & Tutorial Articles

Forums

Tools & Resources

As you can imagine, this is an ambitious project. To tackle it, we are splitting it into several stages with Phase 1 including a new design and a "matrix.squiz.net" landing page. This phase will also include applying the new design to the Matrix Manuals site.

Once we have done this in place it will pave the way for us to gradually add all the new stuff including improvements to the Manuals and a much more powerful search tool.

One of the big new things we are planning is a Guides & Tutorials section. This will be a place for Squiz and community members to post articles on anything relating to Matrix such as tips & tricks, videos, troubleshooting guides, etc. We'll also have a brand new Matrix email subscription service
people can sign up for.

We have a lot of ideas and plans for this, but we are off course also keen to hear your thoughts and ideas on what else we might be able to do so please share them on the forums or get in touch with us on email for any questions or more info.

Everything should be the same as before as it was a like-for-like migration, but please let us know if you spot any issues by either using the suggestion feedback form or emailing us directly at matrix-manuals@squiz.net.

This is just the beginning as well. Now that the site is in Squiz Matrix it will allow us to add more improvements and enhancements to it including en eventual re-design.

Stay tuned over the next couple of months for more announcements and news regarding the Matrix Manuals website.

Welcome to the Squiz Matrix Newsletter, a monthly look at all the latest and greatest Matrix news, direct to you from our Squiz Labs development team.

We've been extremely busy over the last couple of months, so much so that our Monthly Newsletter has had to take a step down on the priority of our list of things to do. We do apologise for the lack of news lately, but it only means this edition is jammed packed with things to catch up on.

Enough talk, grab a coffee and read on for the latest news surrounding Squiz Matrix.

SQUIZ MATRIX 5.3 RELEASED

Last month saw the release of the long anticipated and awaited release of Squiz Matrix 5.3. As the fourth release in the 5.X series of Matrix, this expansion sees some very innovative and powerful new features be included alongside the Matrix core offering.

Let's examine some of these features as well as the benefits they will bring to content authors and website implementers in their day-to-day creation, publishing and management of information and web content.

Content Templates

Content Templates is a powerful new feature that allows you to combine Paint Layouts, Metadata Schemas, and Simple Edit Layouts and apply them to content containers as templates. These content templates can be used by editors on the Contents screen of Standard Page assets, taking care of the presentation,
data storage, and editing interface for the containers they are applied.

This new feature should allow you to create unique and tailored front-end content as well as custom user intuitive and friendly editing experiences that are targeted for specific implementation requirements and solutions.

As part of our testing we've been able to come up a variety of different template ideas using these new features, such as:

A tabbed content template, allowing users to create content blocks in tabs easily with flexibility over how many tabs to create.

A template for embedding Google Maps within content with auto-complete street address searching for the default map marker position.

A column content template allowing for easy creation and management of content in column boxes with an optional background image.

Structured content can also be easy to manage and edit using a custom editing interface for all field values similar to that of the metadata screen.

These are, of course, just the tip of the iceberg. We envision a multitude of potential template ideas, really, the possibilities are endless.

With a growing awareness of the power of high quality content, these container templates should provide your editors with more freedom when creating content, taking away any worry of initial HTML creation and element styling, as well as the overheads for initial setup and training.

WYSIWYG Commenting

Inline WYSIWYG comments allows you to add comments to content in a WYSIWYG content container. These comments can then be replied to by other users for easier collaboration on content authoring.

Comments and threads can be deleted by the user who created them and existing comments can be edited which will also track the time-stamp of the edit.

Each comment thread can be marked as resolved at which point they become locked down for further editing until the thread is unresolved again. A pagination tool is also available to quickly navigate through each comment thread and see the associated content.

A new keyword (%asset_attribute_comments%) can also be used to extract all comment data from a particular page into JSON format.

GIT File Bridge

Git is a widely used version control system for software development. It is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.

The Git File Bridge asset enables you to integrate static file assets from a Git repository directly into the Matrix file system.

Once a connection between a Git repository and Matrix has been established, Matrix will load all of the files from the external repository into its file system and represent each file in the asset tree.

You can also set up Git Hooks in your Git system in order to automatically update the files on the Matrix server every time the Git repository is updated with events such as a push or commit.

WYSIWYG Class Picker

The Edit+ WYSIWYG Editor has been enhanced with a class picker. Editors can now easily style up their content with a simple select list of pre-defined styles created for them specifically to work with the site design they are publishing content within.

Classes can be shared between the edit mode and preview so that editors can easily see what their content with applied classes will look like directly within the editing interface.

Classes are applied on the Design assets in the back end and are automatically cascaded down to customisations. Control can be given as well on what HTML elements certain classes can be applied to.

Asset Editor

This feature is actually a powerful extension to the already versatile and useful Asset Builder Page.

Previously you could only create new assets with the Asset Builder, leaving you to have to create additional pages and screens for exposing custom editing interfaces for the assets users were building.

Similar to the Account Manager Page, this enhancement now lets you edit assets via the Asset Builder as well as create them. You can create custom editing interfaces for each type of asset and keywords are available for things like success and error messages when an edit has been performed.

Updated Edit+ Interface

The Edit+ interface has had a bit of a facelift to further modernise and improve the user experience. A lighter theme has now been applied and various minor improvements to editing elements have been tweaked and improved.

The Metadata screen in particular has received some attention in terms of spacing, layout, and consistency.

Multiple Related Asset Metadata Field

There is now a setting where you enter a number value of how many related asset selections you want to allow for the field. Setting this to anything higher than 1 will automatically turn it into a multi asset select picker on the metadata entry screen.

When multiple assets are selected by this field, the output is printed in a JSON structure that can also be turned into XML or CSV using keyword modifiers.

In Edit+, each related asset selection can have its order changed via the easy drag and drop interface tools.

Trigger Logs

Logging of changes have been added to the Trigger Assets in the Admin Interface. System Administrators of a Matrix instance can now easily review all changes made to a Trigger and more importantly, which user made the changes, to help properly audit these power assets.

HPRM 8 Connector

A new dedicated connector and Saved Search asset have been created for connecting a HPRM 8 system to Matrix. This connector and functionality is essentially the same as the existing TRIM connector in Matrix, but is powered off the new REST API that is available in HPRM.

LDAP With SAML Authentication

Both LDAP and SAML authentication has been available in Matrix for a long time. Now these two powerful and popular authentication mechanisms can work together to let your users login to Matrix using external user accounts through a SAML login screen, and managed within Matrix as LDAP user assets.

Braintree Payment Gateway

A new payment gateway system has been added to Matrix to increase the E-Commerce implementation and integration capabilities. Braintree, a PayPayl owned company, specialises in payment solutions for websites to enable fast and easy payment processing online.

This payment gateway can be connected with the standard E-Commerce functionality in Matrix such as the E-Commerce Form and Shopping Cart assets.

LDAP Login Using Email

The LDAP Bridge allows Matrix to display the structure of your LDAP directory in the asset map. You can browse your directory from Squiz Matrix and use the users and groups just as if they were created within Squiz Matrix
itself. You can assign permissions for LDAP users and groups, and apply security restrictions to them to limit their interaction with the administration interfaces.

A small enhancement has been added to the LDAP Bridge to let users login using their email address rather than their usernames.

Parse Push Notification Trigger Action

A new Trigger Action has been added to Matrix that can connect to the Parse Push Notification API to send updates from your website into users device notification systems for things like tablets and smart phones.

With the release of 5.3 on November 2nd 2015, it also means we saw our last version of the 5.1 branch released on the same day (5.1.15.0). It also means that the 5.2
branch has now switched over into a support branch meaning it will only contain bug fixes and security enhancements in all its future releases.

WHAT ELSE IS NEW IN OUR LATEST RELEASES?

It's not only Matrix 5.3 that we've been celebrating. Since our last newsletter, several other enhancements have been added into the various Matrix version releases. Click on the links below to view the release notes for each version:

Better Error Handling For REST Calls

Better error handling and reporting has now been added to REST web service calls for things like the Trigger Action and REST Resource asset.

If a REST call fails, you can print and check the error message and code that was returned as part of the failed web service call. These error values are part of the REST.response JSON data and can be accessed and printed within the JavaScript execution code:

print(_REST.response.error);
print(_REST.response.error_code;

Introduced in version 5.2.7.7

Ability to Create Children Under Assets in Workflow

When an asset is in workflow, all of its attributes and metadata are locked down while the asset's status is in "Up For Review" or "Pending Approval". This is to ensure no data is changed while the asset is in a review state.

This however also meant that the asset's linking information was locked down, and in turn meant that no new child assets could get created under it. This minor enhancement now removes this restriction.

Introduced in version 5.2.7.7

Logging of Changes on File Assets

A new type of logging has been added for File based assets called "file.updated". This log will track changes made to a file and will allow you to download the file at any specific point in time of when it was updated. This will especially be useful for reverting accidental overwritten text based files
such as CSS and JS.

XPath support for tag name extraction on XML Datasource asset

When selecting with tag names to use to extract values from on an XML Datasource asset, you can now use the XPath syntax to extract specific tags that share the same names as tags on other levels of the XML structure. For example, if your XML structure looks like this:

Dynamic Keyword Support for Start Position Setting on Listing Assets

Similar to the "Assets Per Page" setting on listing assets, the "Start Position" setting now supports dynamic keywords as the setting value. For example, passing a URL parameter of "start=3" to an asset listing and setting the "Start Position" value to %globals_get_start%,
will make the asset listing start the list at position 3.

Introduced in version 5.3.1.0

OAuth2 2-Legged Authentication

OAuth2 2-legged authentication has now been added as a new authentication method within Squiz Matrix. This is similar to the already existing OAuth2 3-legged authentication where user needs to be redirected to another website server to login and authenticate the connection.

This new 2-legged method inherits current OAuth2 functionality but doesn't require any redirection on the front end, Matrix will instead work in background to grab the Access Token directly from the end point using server side interaction calls.

Update File Contents JS API Function

A new JS API function has been added that allows you to update the contents of a file by passing the file data as a base64 encoded string. This is particularly useful when creating front-end web apps that let you create and update file assets such as images without the need to use asset builders or
a simple edit layout.

New Keyword Modifiers for base64url Decoding and Encoding

A couple of new keyword modifiers have been added to enable encoding and decoding of strings into base64url format. This is similar to the already existing base64 keyword modifiers, except they encode the string slightly differently to cater for use in URL implementations in order to properly escape
URL sensitive characters.

One example where this is required is when integrating with the Google Gmail API. A ":no_pad" argument can also be passed to strip whites space characters from the end of the string.

Example where the value is "foo bar":

%asset_name^base64url_encode% => Zm9vIGJhcg

Introduced in version 5.3.1.0

USER MANUAL LIBRARY MOVING TO MATRIX

You may not be aware of this, but for the entirety of their lifetime, the User Manuals Website for Matrix has been running on Squiz CMS. This is a smaller based Web CMS built and developed by Squiz Labs which is no longer active in its development.

While it has served us well as a basic CMS that allows us to edit and create pages quickly with basic site functionality, we now have bigger and better plans for the Manuals, which means we need to look elsewhere for a system that is able to support it. The obvious solution is of course, Matrix!

Subsequently, with this migration already in motion, the plan is to have the Manual's Website fully relocated 'like-for-like' to a Squiz Matrix platform in the next couple of weeks. When this has been completed and the migration is live, we can start working on all the new improvements we have in store for the site.

Stay tuned for further updates and keep an eye out for changes and improvements coming to the site over the next few months.

INTERNET EXPLORER CHANGING SUPPORT

Microsoft has announced that support for older versions of Internet Explorer ends on January 12, 2016.

"Beginning January 12, 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical supports and security updates. Internet Explorer 11 is the last version of Internet Explorer, and will continue to receive security updates, compatibility fixes, and technical support on Windows 7, Windows 8.1, and Windows 10."

This also means that the next big release of Matrix (5.4, scheduled for start of Q2 2016) will not be supported in IE8, IE9, and IE10. All other existing browsers will still be supported with the addition of Microsoft Edge.

This will hugely impact the development and testing in Matrix for new features that are getting built as we can build tools and improvements that solely rely on new and powerful web browser technology.

NEW SUBSCRIPTION SERVICE COMING SOON

In order to ensure you always get the latest news regarding Squiz Matrix and Squiz Labs products in general, we have decided to start a brand new email subscription service!

This will be an email newsletter containing updates and news on all Squiz Labs product development. Never miss a release note, bug fix, minor enhancement, newsletter, or announcement again by getting everything new about Squiz Labs products directly in your email inbox.

Squiz Labs

Squiz Labs is the research and development division of Squiz, the company behind the Squiz Suite of web experience management and development tools.

Our PHP and JavaScript developers are responsible for producing innovative enterprise-quality software while our interface designers and testing team ensure our products both look great and are easy to use.