MySource Matrix Developer

MySource Matrix has been superseded by Squiz Matrix. This site will remain available for archival purposes only; it is not intended as a current source of Matrix information. For all the latest on Matrix, including documentation and release information, visit the Squiz Matrix site.

Main Content

MySource Matrix Changelog - 3.26.x to 3.28.0

Featured Changes

Allow Multiple 'asset_contents_paint_#' Keywords in Type Format Bodycopy

[ Feature Request #4374 ]

When printing an asset in a Listing Engine, the type format only supports one instance of printing asset contents with an arbitrary bodycopy, using 'asset_contents_paint_#'. This feature allows multiple arbitrary paint layout keywords be used in the one type format.

Allow Access to Asset Keywords from Alternate Contexts

[ Feature Request #4373 ]

This new keyword feature allows you to draw a keyword replacement from a context other than the currently used one.

The new feature works like a keyword modifier, using the name of the context as its parameter. For instance, %asset_keyword^context:Context_Name%. If a keyword is not contextable, this modifier will have no effect.

Trigger Action to Update Twitter Status

[ Feature Request #4316 ]

This feature allows you to update the status of a Twitter account from a trigger, based on the content of the triggering asset. Global keywords and keywords of the triggering asset are supported in the Tweet format.

The Set Twitter Status Trigger Action which were added to this release requires the I18N_UnicodeNormalizer PEAR package, version 1.0.0 to be installed.

JS API Function to Get Applied Workflows

[ Feature Request #4395 ]

A new JS API function has been added which returns applied/denied workflow schema on a asset.

%asset_url_<context>% Keyword

[ Feature Request #4348 ]

When a site has multiple URLs with different base contexts, this keyword will only return the asset URL of a Context if that Context is set as a Base Context of the Site URL.

e.g. %asset_url_Default_Context% will return the asset URL in default context and %asset_url_French% will return the asset URL for French context.

%globals_context% Keyword

[ Feature Request #4350 ]

A new global keyword %globals_context% which returns the name of the current context.

Make Metadata Selection Field Consistent in Different Contexts

[ Feature Request #4341 ]

This feature allows you to create consistent metadata selections over multiple contexts.

For example, in a system using a Default English Context and an Alternate French Context, a Selection Metadata Field named Title has two options with different values for the two contexts:

        mr => Mr (Eng) and Monsieur (Fr)
        ms => Ms (Eng) and Mademoiselle (Fr)

If 'Mr' is selected on the English context, 'Monsieur' would be selected automatically on the French context.

JS API Ability to Specify _admin / _edit Access

[ Feature Request #4372 ]

Right now when JS API function call is made, it behaves like being called in the backend. For example, if the status of an asset is changed and if this results in workflow email to be generated, then the links in the email will have _admin links.

This feature allows a function call to be made acting as if it were made from Simple Edit Interface. So in the above example, we could have an _edit link in the emails instead.

Hide Frames in Simple Edit Mode

[ Feature Request #4347 ]

In the Simple Edit Interface, the top bar frame and asset map (hidden) are displayed. This new option allows users to remove these frames completely and only display the main frame. This option is per design.

Exit Design Area

[ Feature Request #4378 ]

A new design area called 'exit' has been added. This design area is used when the design needs to stop printing and ignore the rest of the body. Can be used in conjunction with design area if condition.

New Soap Authentication Feature Allows Users to Login

[ Feature Request #4377 ]

A new API function is added to SOAP Asset Service to allow authentication to MySource Matrix using username and password. Upon logging in, the API function will produce a session id and a session key, which can be used to authenticate cross domain.

Display the Key or Value of a Metadata Selection Field

[ Feature Request #1404 ]

New keywords are added to display the key to a selection metadata on one screen and the value on another. The keywords will be %asset_metadata_X_key% and %asset_metadata_X_value%

Additional Features for the SOAP API

[ Feature Request #4307 ]

A number of SOAP API functions have been added to the web services package:

  • Asset service new features:
    • Get page content
    • Get asset type descendants
    • Get assets children, lineages, typecode, name in batch
    • Get Asset URLs by root node
  • Link service new features:
    • Get parent assets under particular tree
    • Get lineages under a particular root node
  • File service new feature:
    • Get image information: title, size, width, height, mime type
WYSIWYG Snippets Performance Enhancements

[ Feature Request #4127 ]

Queries related to permission checking when loading Snippet keywords can now be disabled when rendered in the drop-down list of keywords shown when printing the WYSIWYG container. This can provide a noticeable performance enhancement.

The option to configure permission checking is available under Global Preferences for the Snippet Content Type. Permissions are checked under normal operation to ensure that the user has Read Permission to the associated containers before including Snippet keywords.

Target Remap URL on Web Paths Screen

[ Feature Request #4220 ]

In line with the display in the Remap Manager, the asset Web Paths screen now shows the Target URL in the Remaps list.

Re-factoring of Clear Cache Code for System Cache Types

[ Feature Request #4243 ]

Code to handle clearing caches has been moved into the cache type, in order to prevent unnecessary calls to the MySource Matrix database for systems using non-default caching mechanisms such as Memcache.

Bulkmail Allows Multiple Subscriptions of an Email Address

[ Feature Request #3131 ]

An 'already subscribed' message is sent to users via email, when an email address is submitted to a Bulkmail Subscription Page for which this address already exists on the relevant lists.

Please note that this functionality is only available when Subscribe Verification is enabled to the subscription page, and is applicable to both public and Matrix users.

Usage Screen for Schemas

[ Feature Request #3871 ]

A Usage screen is now available for Metadata and Workflow Schemas, to show where these schemas are referenced in the system. This is implemented similarly to the existing Usage screen for Designs.

Expired Matrix Cache Cron Job

[ Feature Request #4004 ]

An Expired Matrix Cache Cron Job has been added to clean up expired cache entries on invocation of the Matrix cron script run.php. This is set to every 15 minutes by default on new installations.

Ability to Download Current Log from the Log Manager

[ Feature Request #4267 ]

A 'Download File' button is now available to download current logs (ie; those which have not been rotated).

New Keywords for Date/Time Fields

[ Feature Request #4276 ]

Additional formats are available for Date/Time field types which allow these values to be displayed relative to the current date, and with or without a time component.

The keywords to use this functionality are as follows (using %asset_created% as an example):

  • %asset_created_relative% -> '3 days ago'
  • %asset_created_relative-dow% -> '5pm on Tuesday'
Filesystem Bridge

[ Feature Request #4290 ]

A Filesystem Bridge asset is now available which provides shadow assets representing a server file system. A path to the filesystem location is provided, and files and directories are represented by Physical File and Physical Folder asset types. This allows files to be browsed from within MySource Matrix, even though they are not real assets.

An 'Import File' tool is also available under Tools, to allow the referenced files to be imported as solid assets into MySource Matrix.

XML/XSL File Assets

[ Feature Request #4291 ]

XML and XSL File assets are now available. The XML File asset allows an association with an XSL File asset for extensible style sheet language styling of the file upon preview. This functionality requires PHP to have XSL support supplied at compile time.

Status, Permission and HIPO Scripts

[ Feature Request #4292 ]

Command-line scripts have been added to manipulate asset status and permissions en masse, as well as to manage running of HIPO Jobs.The script usage for each is as follows:

Status Change

php scripts/status_change.php [matrix_dir] [root_node] [status_code] [child_nodes]
--
[root_node]the asset id of the asset from which to apply status changes
[status_code] a valid status number (eg; 16 for Live etc.) [child_nodes] optional and will descend to children if specified as 'y'
Permission Change
php scripts/permission_change.php [matrix_dir] [root_node] [user_id] [permission] [grant] [child_nodes]
--
[root_node]the asset id of the asset from which to apply/deny permissions
[user_id]the asset id of the user
[permission]specified as either 'read', 'write' or 'admin'
[grant]will grant permissions when specified as 'y', deny when specified as 'n'
[child_nodes] will include child nodes when specified as 'y', or won't (ie; apply only to the root_node) when specified as 'n'
 HIPO Management
php scripts/hipo_management.php [matrix_dir]
--
This script provides user prompts for all operations
Remap Manager: Total Remaps

[ Feature Request #3432 ]

The total number of Remaps displayed in Remap Manager is now shown within the list.

Remap Manager: Export to CSV

[ Feature Request #3449 ]

A 'Download File' button is provided within the Remap Manager to export Remap entries to CSV format.

Link Asset: Allow Linking Under Standard Page Assets

[ Feature Request #4281 ]

Link Assets can now be linked under Standard Pages.

Password Change Screen: Force Secure Login Functionality

[ Feature Request #4306 ]

The Force Secure Login rules applied to a Site are now respected when a user is presented with a Matrix-generated Password Change screen.

Backup Script: 'Database Backup Only' Option

[ Feature Request #4310 ]

A new switch --database-only is available in the Matrix backup script which will create a database dump only instead of a combined database and filesystem backup.

Differentiate Between Matrix Remaps and Custom Remaps

[ Feature Request #474 ]

A new column 'Type' is now available in the asset Remap List and Remap Manager, to denote whether the remap was created by MySource Matrix (specified as 'Automatic') or by the user (specified as 'Manual').

What's New Page: Pre-Configured Time Frames

[ Feature Request #2062 ]

The Date Range specifications for What's New Page now allows selection from a:

  • Fixed date and time (dd-mm-yyyy hh:ii:ss)
  • Period relative to the current date and time (x [time period] in the [past/future])
  • Period relative to a fixed time on current date (x [time period] [before/after] today at huh:ii:ss)
JS API: Set Asset Status

[ Feature Request #4252 ]

A new Javascript function has been added to the JS API to set the status of an asset and dependent assets. This status can be optionally cascaded to non-dependent child assets.This function returns an array, which contains either error details or empty upon success. For example, to set the status of asset 123 and all child as sets to Live (status code 16):

        [asset_id], [status], [cascade], [dataCallback]
setAssetStatus(123,16,1,assetCallback);

 Status codes can be obtained by referring to the system filecore/include/init.inc

JS API Enhancements

[ Feature Request #4200 ]

Configurable number of asset levels in call to getParents()

The getParents() asset function in the JS API has been modified to allow a second argument referring to the number of levels to return,similar to getChildren(). When omitted, or set to 0, all parent asset IDs will be returned. Previous functionality of getParents() was to return only the first level, equivalent to setting levels to 1.

Multiple Set Attribute function

A new function 'setMultipleAttributes()' is now available in the JS API. This function takes a single array of attribute names and their corresponding values to enable updating multiple attributes for an asset in one request.

JS API: Lookups Updated When Performing Webpath Actions

[ Feature Request #4142 ]

JS API functions which manipulate or remove asset links, as given below, will update related lookups to ensure these actions are completed in accordance with normal backend operation.

The modified JS API functions are: moveLinks(), trashAsset(),removeLink(), createLink().

Implementations should include an 'in progress' or spinner device as these actions will take some time to complete and return.

JS API: Provision of Asset, Global and Simple Edit Keyword Replacements

[ Feature Request #4210 ]

A new function, getKeywordsReplacements(), has been added to the JS API to return keyword replacements for requested asset, global and Simple Edit keywords.

Keywords are supplied in a Javascript array, which can either be with or without surrounding percentage (%) signs. Only one keyword may be supplied per array element, and no static text may be supplied alongside these values.

The function signature is:

getKeywordsReplacements(asset_id, keywords_array, dataCallback)

A usage example might be (for asset ID 123):

 var keywords = {'asset_name', 'asset_id'};
getKeywordsReplacements(123, keywords, kwResult); // where kwResult is a defined function to obtain the result
JS API: Asset Lock Extended Functionality

[ Feature Request #4238 ]

The asset lock acquisition and release functionality has been improved as follows:

  • new function getLocksInfo() to return information about locks acquired, the user holding locks, and lock expiry time
  • any other error that might have occurred during processing of locks
  • locks may be acquired on dependent or non-dependent child assets
  • locks can now be forcibly acquired
  • new function getLocksInfo() which will return
JS API: Update and Trash Multiple Asset Links, Get Child Count Functionality

[ Feature Request #4271 ]

A new function updateMultipleLinks() has been added, as well as an extension to the trashAsset() function to provide the ability to perform these operations upon multiple assets. The trashAsset()function can still operate on a single asset as given by current functionality.

Link sort order, type, value, and locking can be controlled from the link update functions.

Another new function getChildCount() has been included to obtain the number of direct children and/or dependents.

 In most functions, success and error information is returned in an array structure.

JS API: New Functions to Retrieve Web Paths

[ Feature Request #4358 ]

Two new functions have been added to the JS API: getwebpath() and savewebpath().

getWebPath() takes in assetid we dealing with and custom callback function as 2 arguments. It will reutn the Array of webpath that are associated with Asset.

saveWebpath() takes in assetid we are dealing with, array of webpath, boolean auto_remap and custom callback function as arguments. auto_remap argument is default to TRUE. This function returns Array of success/error/failure message after performing op.

JS API: Function to Remove Multiple Links

[ Feature Request #4315 ]

The new function removeMultipleLinks() has been added, which takes in a JSON Object of link information to be removed. This function makes just one ajax call to remove all the links that are specified.

A New E-Commerce Payment Gateway for uTransact Solutions

[ Feature Request #4383 ]

A connection to the Ubiquity Web Service for UTransact (MySource Matrix acting as a SOAP Client) is configured and established from his new E-Commerce payment gateway. The UTransact Payment Gateway is selectable wherever a Gateway is accepted by the E-Commerce Package. Additional fields have also been added to Product assets for use during the payment process on the new gateway.