4

Bug Fixes

  • Fixed Bug #5667: When an asset without workflow and incomplete metadata is place into Safe Edit, Status Switcher offers an impossible status.
  • Fixed Bug #5686: After submitting, an Asset Builder Metadata Fields should be populated if they were on submit.
  • Fixed Bug #5690: The pre tag needs to have a "white-space: pre-wrap;" css property in admin.
  • Fixed Bug #5692: Unable to create child asset under Data Record Asset.
  • Fixed Bug #5693: Account Manager's Customise the Editing Layout Form issues.
  • Fixed Bug #5696: Workflow From Email Address should allow From Name to be specified with format 'fromname <fromemail@test.com>'.
  • Fixed Bug #5698: Asset id links "./?a=xxx" getting cached in Custom Form Section bodycopy.
  • Fixed Bug #5705: Setting a form to multi-page without sections throws an error.
  • Fixed Bug #5706: Multi-text metadata field throwing undefined variable "is_default" PHP notice.
  • Fixed Bug #5717: test_message.php should destroy session immediately after execution so it won't leave useless sessions on the server.

Bug Fixes 

  • Fixed Bug #5350: Bug/Asset Builder/Create Locations screen.
  • Fixed Bug #5433: regen_metadata_by_root_nodes.php failed to process assets in workflow because of lack of permission.
  • Fixed Bug #5450: Cron Job should not throw E_USER_ERROR (unrecoverable fatal error) on failing its pre-checks on its creation.
  • Fixed Bug #5455: Remote content page doesn't tunnel correctly the URL with white spaces.
  • Fixed Bug #5479: Spell Checker plugin popup doesn't load fully and remains at 'Please wait...' status.
  • Fixed Bug #5490: Upcoming event listing does not listed correctly in nested content.
  • Fixed Bug #5492: Custom form incorrect inline error messages when Section body copies are used.
  • Fixed Bug #5495: Data source XML incorrect results when nested more than once.
  • Fixed Bug #5503: Accessible form sections missing closing tag since 4.18.6.
  • Fixed Bug #5589: Custom accessible form does not show inline errors as per expected behaviour.
  • Fixed Bug #5364: IE 11 doesn't populate the link assetid for Insert link plugin.
  • Fixed Bug #5462: Adjusting Headings style in blank Edit+ WYSIWYG Content Container disables that container.
  • Fixed Bug #5485: Import Assets from XML Tool with Squiz Server leaves orphaned HIPO jobs when importing Designs.
  • Fixed Bug #5500: WYSIWYG select CSS style isn't working properly in IE 9.
  • Fixed Bug #5501: What's New asset's date range doesn't works if "Direct Links" set to Yes.
  • Fixed Bug #5510: Calender Page broken when using default event soruce as root node.
  • Fixed Bug #5515: JSON data source throws error in details screen if a dynamic variable is defined in the Dynamic Input screen.
  • Fixed Bug #5516: Expanding Asset Map to show children of images doesn't work.
  • Fixed Bug #5523: Under PHP54 sq_error_handler generates new errors.
  • Fixed Bug #5527: Asset_Manager::assetExists() returns false for valid form question shadow ids.
  • Fixed Bug #5531: Array type input fields in the Asset Builder custom layout form can throw warnings when creating asset.
  • Fixed Bug #5539: Fatal error: .. 'Unable to insert new remap.
  • Fixed Bug #5549: Run test option glitch on HTTP Request attribute used on oauth token assets, rest resource asset etc.
  • Fixed Bug #5569: Remove deprecated function warning from system_apply_permissions.php script.
  • Fixed Bug #5573: matrixsqlclient fails on php 5.4.
  • Fixed Bug #5577: Styling on metadata checkboxes needs fixing.
  • Fixed Bug #5579: Larger top margin on text, clipping bottom of text, Firefox Windows only.
  • Fixed Bug #5580: Section note not displayed on asset edit interface on PHP 5.4.
  • Fixed Bug #5591: Mutliple user group's snippet content type preferences settings conflict.
  • Fixed Bug #5592: RDP files served as text.
  • Fixed Bug #5594: Dejavu Management script and multiple arguments.
  • Fixed Bug #5598: Exporting 102+ terms with job_export_thesaurus_xml in freestyle mode skips some.
  • Fixed Bug #5609: Workflow Bundle error: JS error statusChange not defined and PHP error bundle status edit hipo job assetid not defined.
  • Fixed Bug #5619: Metadata select field should not allow the reserved delimiter string "; " in its key values .

Bug Fixes

  • Fixed bug #2163: Error checking when using metadata keywords as metadata field default values.
  • Fixed Bug #5317: PRE tags have their newlines stripped out in HTMLArea editor.
  • Fixed Bug #5314: Remap Manager's Not Found Page doesn't obey the caching rules.
  • Fixed bug #5327: Matrix LDAP Group membership shown in Asset Map does not respect base/root dn.
  • Fixed bug #5332: TRIM Connector improved error message when connection fails.
  • Fixed bug #5335: Matrix Insert Link popup not auto filling the link ID.
  • Fixed bug #5336: Dependant child asset not inheriting the asset status of the parent with workflow applied.
  • Fixed bug #5339: Sharepoint Cron Job: Fatal error stops cron.
  • Fixed bug #5347: Issue with Metadata Text field in the Asset Builder form when there are multiple create types.
  • Fixed bug #5349: Cannot insert link using IE10 in WYSIWYG on 4.18.6.
  • Fixed bug #5353: Calendar Events Search Page should allow more than 4 TYPE_2 linked folders as children.
  • Fixed bug #5355: Use Me mode on Asset Map doesn't exclude right-clicking on assets that shouldn't be selectable.
  • Fixed bug #5359: REST Resource Page corrupting the remote content data.
  • Fixed bug #5378: Nested User Group issue with workflow when working with roles.
  • Fixed bug #5382: Double clicking on a Simple Asset Map doesn't work to expand the tree.
  • Fixed Bug #5386: Content not properly wrapped inside the WYSIWYG Div in IE9.
  • Fixed Bug #5393: Asset Map: Binoculars tool doesn't always jump to the correct page of assets.
  • Fixed Bug #5397: SOAP API SetMultipleMetadataFields fails when setting a single field.
  • Fixed Bug #5413: Metadata screen broken (due to #5347 changes).
  • Fixed Bug #5418: Site Network JavaScript warning.
  • Fixed Bug #5420: SAML Account Manager redirect issue when used under Site Network.
  • Fixed Bug #5423: Urban Airship Trigger displays wrong fields for custom parameters when locks are not acquired.
  • Feature #6892: Accessible Custom Form: New Question Contents Keyword Replacement.

Minor Enhancement and Bug Fixes 

  • Minor Enhancement #6935: Custom Form Bodycopy Content Now Indexable.

Bug Fixes

  • Fixed Bug #5266: ./?a=link interpretation error.
  • Fixed Bug #5270: sq_vw_ast_roles query bug.
  • Fixed Bug #5279: Adding a link to an image doesn't work well in IE9 and IE10.
  • Fixed Bug #5282: Issue Counter Value trigger action throwing fatal error.
  • Fixed Bug #5285: Authenticating LDAP user throwing undefined index 'uid' error.
  • Fixed Bug #5286: Hiding Keyword Selector in metadata DateTime field breaks Edit+.
  • Fixed Bug #5291: Design Area Bodycopy prints extra space before php tag.
  • Fixed Bug #5293: Page infinate redirect when sites are linked by Site Network.
  • Fixed Bug #5294: Permissions not working for LDAP Group linked to a regular User Group.
  • Fixed Bug #6862: Quick search no longer fills insert image/link dialogue.
  • Fixed Bug #6873: Sort order is sometimes incorrect when moving an asset under the same parent.
  • Fixed Bug #6890: Custom Form TextArea should allow multiple line default value.
  • Fixed Bug #6894: Unhelpful error message when no selection on required multi-select metadata field.
  • Fixed Bug #6900: DateTime questions don't show as required in Accessible Form even when they are.
  • Fixed Bug #6922: SOAP Data Source asset not parsing some SOAP response.
  • Fixed Bug #6923: Cannot export submission logs without acquiring locks.
  • Fixed Bug #6926: WYSIWYG Replace Text tool doesn't replace properly for style attribute on IE9.
  • Fixed Bug #6927: Order attributes not accessible after asset created.
  • Fixed Bug #6928: JS API updateLink, updateMultiple link incorrect default values.
  • Fixed Bug #6929: Web paths do not automatically update after Create Link trigger action is run.
  • Fixed Bug #6930: Forcibly acquiring lock system trigger sends to non-live accounts too.
  • Fixed Bug #6932: Remote Content page will disable the keyword replacement at the global level.
  • Fixed Bug #6934: ptdtohtml tool causing Matrix to hang.
  • Fixed Bug #6937: Some conflicting user preferences throwing error.
  • Fixed Bug #6939: Insert Image WYSIWYG plugin doesn't work on IE11.
  • Fixed Bug #6942: Removing a metadata schema off an asset doesn't clear out the values on frontend.
  • Fixed Bug #6943: Comparing a global string with an asset id using ^replace_keywords: doesn't work.
  • Fixed Bug #6944: Trigger action Join User Group only joins the target user group.
  • Fixed Bug #6945: When Proxy SSL Accelerator enabled, the HTTPS protocol is not passed to external service.

This feature adds new global keywords to provide access to a SAML user's attributes after being authenticated via the SAML Account Manager.

The new keywords available are:

  • %globals_session_saml_attributes% : prints a JSON string representation of all attributes of the logged-in SAML user.
  • %globals_session_saml_attributes_XX_0% : prints a specified attribute (XX). The index can be set to specify the values to print in an array. In this example, only the first value in the array will be displayed.

Please note that a SAML user's attributes are only stored temporarily for a session. As such, these keywords are only available for the session. Permanent storage can be made available using triggers to access attributes and store them in metadata.

SAML Account Manager: New Option to Randomise User Password (#6908)

A new option has been added to the SAML Account Manager to randomise the password of a SAML user. This means that when this option is enabled, a SAML user will no longer be able to log into the system using their standard Matrix username and password. The user will need to use their SAML details to access the system.

By default, this option is disabled.

Morph Asset Type Trigger Action (#6910)

A new trigger action has been added to allow an asset to morph to a new asset type. Currently, this action only supports User and File type assets.

Only  Under Construction assets can be morphed.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6855: %page_list_X% Keyword Added to Search Page Keyword Drop-Down.
  • Minor Enhancement #6878: Account Manager: New Keyword to Show Form Processing Errors.
  • Minor Enhancement #6911: Asset Map: Safely Release Session Write Lock for Read Requests.

Core

  • Fixed Bug #6859: Redirection for the defined protocols do not work as expected.
  • Fixed Bug #6863: cosmetic warning in system config Undefined index: SQ_CONF_VISITED_PAGES_MAX_ENTRIES.
  • Fixed Bug #6868: globals_context keyword pops current context from stack.
  • Fixed Bug #6870: Embed YouTube video plugin inserting extra tags when committing in "view source" mode.
  • Fixed Bug #6871: Don't log LDAP Bridge passwords.
  • Fixed Bug #6877: Generate Report Cron Job not setting the job's "running" attribute due to permission issues.
  • Fixed Bug #6884: Frequency Conditional keyword throws PHP errors. 
  • Fixed Bug #6886: WARNING: Array to string conversion.
  • Fixed Bug #6898: /?a=XX links not evaluated correctly in design file.
  • Fixed Bug #6902: htmlentities() call in text_area() function returns blank.
  • Fixed Bug #6904: Xpath cannot use |, preg_replace() error return.
  • Fixed Bug #6905: EES does not checks the parent asset's "allowed links" rule when creating new asset.
  • Fixed Bug #6907: Small bug in display of site map items.
  • Fixed Bug #6909: Accessing _edit mode throwing fatal error if asset does not has schema applied.
  • Fixed Bug #6914: Undefined locale string "visited_pages_config_max_entries".
  • Fixed Bug #6915: Space char getting replaced by &nbsp; in Matrix combo box.
  • Fixed Bug #6918: Fix date_format keyword modifier to handle --:--:--.

CMS

  • Fixed Bug #6885: Backend user can't edit the job create by them for 'Send Submissions To Email'.

LDAP

  • Fixed Bug #6874: Don't log LDAP Bridge passwords.
  • Fixed Bug #6917: Send Email Trigger Action not sending to LDAP email attribute.

Bulkmail

  • Fixed Bug #6861: Schedule Bulkmail Job trigger action's subscription filter does not works with Metadata Select Field.
  • Fixed Bug #6899: Adding the bulkmail job using Schedule Bulkmail Job trigger action in EES mode not working.

Modern Asset Map

  • Fixed bug #6675: cmd + click doesn't open right click menu.
  • Fixed bug #6819: Inconsistent Node Collapse.
  • Fixed bug #6837: js_asset_map.css has error.
  • Fixed bug #6842: When in Asset Picker Mode you can right click off an asset and it will try to create.
  • Fixed bug #6658: Trash dialogue doesn't have a default to hit enter.
  • Fixed bug #6860: Asset map keeps throwing error, doesn't break anything though.
  • Fixed bug #6875: Right click context menu misaligned.
  • Fixed bug #6876: Cannot create asset on top level of asset map.
  • Fixed bug #6879: When in editing mode you can't expand a node by clicking the expand indicator.
  • Fixed bug #6883: Restore to root folder when inserting link/image is inactive.
  • Fixed bug #6687: Single clicking triggers the move / new-link selector.

This feature introduces the brand new Regular Expression asset to Squiz Matrix. The Regular Expression asset can be used to define a regular expression and replacement string pair, and can be used in conjunction with new regex keyword modifiers.

The Details screen of the Regular Expression asset allows you to set the regular expression. If you want to create a replacement, this screen allow allows you to set a replacement string pair and a replacement limit.

The Regular Expression asset can be used in conjunction with the following new keyword modifiers:

  • preg_replace: replaces the regular expression value with the replacement set on the Regular Expression asset. This is the same functionality as the preg_replace() PHP function.

    %asset_contents^preg_replace:[REGEX_ASSETID]%
  • preg_match: returns a success/failure value if the regular expression matches the returned keyword value. This is the same functionality as the preg_match_all() PHP function.

    %asset_contents^preg_match:[REGEX_ASSETID]%
    In the above example, this keyword will return 0 if no match is found in the contents of the asset. If a match is found, this keyword will return the number of matches, e.g. 2 for two matches.

    %asset_contents^preg_match:[REGEX_ASSETID]:Yes:No%
    In this example, the keyword will return No if no match is found, and Yes if any number of matches are found.
  • preg_match_result: returns regular expression matches on the returned keyword value as an array. This is the same functionality as the preg_match_all() PHP function, and should be used in conjunction with the array keyword modifiers.

    %asset_contents^preg_match_result:[REGEX_ASSETID]^as_json%
    The above example will return the matches array in the json format.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6796: JS File Folder and CSS File Folder Enhancements.
  • Minor Enhancement #6800: New sort_options Parameter for Select Drop-Down Lists in Admin Interface.
  • Minor Enhancement #6802: TRIM Saved Search: New Update on Empty Response Field.
  • Minor Enhancement #6816: E-Commerce Order XML: Gateway and Merchant Reference Strings.
  • Minor Enhancement #6823: JS API: editMetadataSchema() and getMetadataSchema() Enhancements.
  • Minor Enhancement #6845: New Login Form Keywords on the Asset Builder and Account Manager Assets.
  • Minor Enhancement #6846: New Input Field ID Keywords on the Simple Edit Layout.
  • Minor Enhancement #6857: Performance Enhancement to the Custom Form Page Asset.

Core

  • Fixed Bug #6781: Some conflicting preferences revert to default.
  • Fixed Bug #6788: Simple edit can't open the modern asset map.
  • Fixed Bug #6801: %asset_thumbnail% breaking events search page.
  • Fixed Bug #6803: Search in search button keyword javascript output error.
  • Fixed Bug #6807: Cannot modify header information - headers already sent by.
  • Fixed Bug #6822: Accessing metadata schema screen in the rollback mode throws fatal db error.
  • Fixed Bug #6824: Image variety keyword replacement does not escape double-quotes in alt or title text.
  • Fixed Bug #6826: Paint Layout: Condition Logical always evaluates to true.
  • Fixed Bug #6832: Wyswiyg plugins Format Heading and Apply Styles not working in IE11.
  • Fixed Bug #6833: Tickbox Table form question outputs invalid HTML.
  • Fixed Bug #6834: add_remove_url.php script doesn't copy user defined layout.
  • Fixed Bug #6836: Safe edit interface generating some invalid HTML markups.
  • Fixed Bug #6839: Simple Edit User doesnt get workflow approved emails.
  • Fixed Bug #6843: Show diff feature for preview can miss the changes made.
  • Fixed Bug #6850: Trigger action Set Future Status does not takes metadata date field's offset into account.
  • Fixed Bug #6852: Asset_Manager::assetExists() throws fatal db error in Oracle if supplied assetids are more than 1000.

Web Services

  • Fixed Bug #6848: JS API batchRequest cleans params of the createAsset function which breaks creating with attributes.

Modern Asset Map

  • Fixed Bug #6754: IE8 not responding to double-clicks in JS Asset Map.
  • Fixed Bug #6760: Insert image popup doesn't retain asset map location.
  • Fixed Bug #6761: 'Binoculars' doesn't break out of teleported root.
  • Fixed Bug #6780: Collapse all button applies to both asset trees.
  • Fixed Bug #6785: Tree Two does not allow drag to select assets.

A new Global Keyword Replacement has been added to handle array data, i.e. the replacement containing the array data (e.g. _GET, _POST, Matrix sandbox session var) can be accessed using the global keywords with keyword modifiers. Two new keywords globals_get and globals_post are added to return _GET and _POST array data respectively.

In addition, four new keyword modifiers have been added to handle array data: as_xml, as_csv, as_url_string and as_json. If no keyword modifiers are used on returning array data, Matrix will apply the as_json modifier, by default; the resulting keyword replacement value is always text.

Please note that these array specific keyword modifiers will not work on string data replacements. However, as the result of the array data replacement is a string value, regular string keyword modifiers can be applied to the resulting keyword replacement.

%globals_get^as_xml^escapehtml%
%globals_get^as_xml^xpathe:count(/name)%
%globals_get^as_csv^uppercase%
%globals_session_asset_assets^as_json%

New Keyword Condition Rule for Checking Visited Pages (#6692) 

The content creation tools within Squiz Matrix allow you to configure condition-based rules, defined by keyword replacements, to specify the sections of content to display. These rules can range from an asset's status being a particular status type, to whether a user is logged-in or not.

This feature adds a new condition type, allowing the system to check against the previously visited pages of a user, in order to determined whether or not the condition is met. The Visited Pages Condition can be set on the Conditional Keywords screen of a Paint Layout's Type Formats Bodycopy. 

The Visited Pages Condition can be check against whether the previously visited URL(s) either match or do not match a set of specified patterns or asset IDs. Regular expressions can be used when configuring the URLs in these fields.

Along with this new condition type, this feature also includes two new global keyword replacements:
%globals_visited_assets% and %global_visited_urls%. These global keywords will return an array of either the user's previously visited assets or URLs. Keyword modifiers can be used to parse this array.

New Input Type Field for Text Type Form Questions (#6799) 

The Custom Form's Text question type allows users to enter a text response to the question via an input field. This field can be configured as a single line field, or a multiple line box.

Previously, the Text question type would print an input type of "text" within the source of a form.

This feature introduces a new option for Text question types, allowing you to apply HTML5 input elements within your forms.

The Input Type field can be configured in the Question Options section on the Details screen of a Text question type. 

Users can select an input type in this field, to use on the form question. The options available include:

  • Color
  • Date
  • Datetime
  • Datetime-local
  • Email
  • Hidden
  • Month
  • Number
  • Range
  • Search
  • Text
  • Tel
  • Time
  • Url
  • Week

By default, the Text input type will be used for Text questions. Selecting an alternative input type in this field will print this within the source of the page.

<input-type="email">

This feature also extends to Text questions on other form types within Squiz Matrix, such as the E-Commerce Form Page and Default Delivery Method assets. 

View the Squizmap idea for this feature at https://squizmap.squiz.net/matrix/2545.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6677: New Keyword Condition Rule for Checking Page Referrer.
  • Minor Enhancement #6691: New Keyword Condition Rule for Checking Users Entry Page. 
  • Minor Enhancement #6749: Additional asset_id Attribute for Form Submissions. 
  • Minor Enhancement #6773: New Keyword Condition Rule for Checking Site Referrer. 
  • Minor Enhancement #6774: More Detailed Lock Information on HIPO Herder Screen. 
  • Minor Enhancement #6779: Enhancements to the Recreate Link Tree System Script. 
  • Minor Enhancement #6791: Designs: Notification If Parse File Does Not Contain Design Area Tags. 
  • Minor Enhancement #6796: JS File Folder Enhancements. 
  • Minor Enhancement #6802: Refresh Local TRIM Records Cache. 

Core

  • Fixed Bug #6477: Spaces between MySource areas stripped.
  • Fixed Bug #6736: ^replace_keywords does not replace with eq operator. 
  • Fixed Bug #6742: Accessing metadata screen in the rollback mode throws fatal db error. 
  • Fixed Bug #6743: Asset Map fails in 4.18.2 on Oracle. 
  • Fixed Bug #6744: Regen Metadata scripts  are not context aware. 
  • Fixed Bug #6745: Linking screen in EES/Edit+ on 4.18.2. 
  • Fixed Bug #6752: Can't reorder context IE8. 
  • Fixed Bug #6757: Paint layout's conditional keywords not getting evaluated correctly. 
  • Fixed Bug #6762: Cannot set image variety to Safe Edit status in Oracle system. 
  • Fixed Bug #6763: Referrer condition if true not working. 
  • Fixed Bug #6764: PHP 5.4 "failed to load external entity" error. 
  • Fixed Bug #6769: Java asset map insert link / binocular not working for java 1.7.0-51 update. 
  • Fixed Bug #6776: Backtrace file path - Undefined index: general.inc line 74 line 75. 
  • Fixed Bug #6778: Global date keywords do not work in type format of shadow assets. 
  • Fixed Bug #6782: %asset_lineage_linked% doesn't play nice with modifiers. 
  • Fixed Bug #6792: Twitter API now requires HTTPS. 
  • Fixed Bug #6798: REST asset not encoding "Append query string" value. 

CMS

  • Fixed Bug #6740: Form feed char "\f" (#xC) not filtered by "Save as XML" form action.
  • Fixed Bug #6797: Unable to create User Group Manager Page asset with metadata schema applied with default metadata field value (keywords) referencing the asset. 

Search

  • Fixed Bug #6732: Search Page searching email attribute of Simple Edit user.

Import Tools

  • Fixed Bug #6700: Asset builder doesn't export create form customisations.

Squid

  • Fixed Bug #6775: Upgrading causes errors when existing Squid purge trigger action runs.

Web Services

  • Fixed Bug #6688: JS api breaks when it parses the result json.
  • Fixed Bug #6747: JS Rest resource asset error "Invalid argument supplied for foreach()". 
  • Fixed Bug #6750: JS API getParents doesn't return the 1st parent, throws Unexpected end of input  error.

A new global keyword has been added that will display the protocol of the current URL, either http or https.

%globals_protocol%

This global keyword has been added in conjunction with a bug fix, where the WYSIWYG editor's Embed YouTube Video plugin was unable to output the video URL using the https protocol. This resulted in HTTPS sites not displaying this content. This has now been fixed along with the inclusion of this global keyword to display the correct protocol based on the current URL.

New Trigger Action to Issue Preset Counter Numbers (#6698)

A new Issue Counter Values trigger action has been added that will issue unique counter integers to a session variable name, when a trigger is fired. This session variable value can then be used in conjunction with a new Counter Number Issued trigger event to apply the issued integer within Squiz Matrix, for example, as a metadata field or asset attribute value.

The integers issued by this new trigger action can be configured to either increase or decrease by a value of 1, each time the action is fired.

The implementation possibilities for this new trigger action/event combo are varied. One such usage could be assigning member IDs to newly created user accounts via the Issue Counter Values trigger action; Once the counter value is issued, a second trigger (fired by the Counter Number Issued event) could apply the issued integer as a metadata value on the new user account asset.

Cache Manager: New Accelerator Cache Expiry Options (#6710)

Squiz Matrix's Cache Manager allows you to configure the caching settings within your system.

These caching settings include the Browser Cache Expiry field, which defines the length of time (in seconds) that a requested page will be cached within a browser. Once this time has lapsed, the page will expire.

Previously, this cache expiry setting was honoured by both browsers and accelerators (such as Squid). This meant, however, that if the Browser Cache Expiry field was set to, for example, 24 hours, both the browser and Squiz would cache the page for 24 hours each. This meant that a user could potentially see 48 hour old content.

This feature introduces a new Accelerator Cache Expiry field to set the individual expiry time for content in accelerator proxies.

The Accelerator Cache Expiry field can be found on the Details screen of the Cache Manager.

The value entered into this field will define the length of time that content is cached within a proxy accelerator. If this field is left empty, the s-maxage cache header attribute will not be sent and the accelerator's default expiry settings will be used.

New Trigger Action to Remove a User From a User Group for Current Session (#6722)

A new trigger action has been added to allow a user to be temporarily removed from a specified user group for the current login session. The Leave User Group for Session action allows you to select one or more user groups to temporarily remove the current user from, when the trigger is fired and its conditions are met.

This new action works in the opposite manner to the existing Join User Group for Session trigger action, which will dynamically link the current user to a User Group for the remainder of the login session. A new 'Remove user from previously joined session groups' field has also been added to this action to remove a user from any previously joined session groups, before joining new groups through this trigger action.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6524: Enhancements to the system_integrity_orphaned_assets.php Script.
  • Minor Enhancement #6581: Use curl_multi in HTTP Requests.
  • Minor Enhancement #6585: Rollback Management Script: Recommend Fix Duplicate Rollback Entries if an Error Occurs.
  • Minor Enhancement #6636: Performance Enhancement: LDAP User Log In.
  • Minor Enhancement #6639: Improved Execution Time of the Update Lookups HIPO Job.
  • Minor Enhancement #6640: Allow Keyword Value Trigger Condition to be Used Multiple Times.
  • Minor Enhancement #6660: Leaving Rollback Will Now Return Users Back to the Asset Where Rollback was Initiated.
  • Minor Enhancement #6665: LDAP Bridge: Option to Recursively Return all Parent Groups of an LDAP User or not.
  • Minor Enhancement #6708: asset_summary Keywords in Export to XML.
  • Minor Enhancement #6714: SOAP Data Source: Automatic Handling of the XML SOAP Response.
  • Minor Enhancement #6728: Asset Manager: Event Broadcast When Sort Order Changed.
  • Minor Enhancement #6734: Select Drop-Down Field Options Listed Alphabetically.

Core

  • Fixed Bug #6662: system_integrity_fix_char_encoding.php doesn't fix design parse file.
  • Fixed Bug #6683: mysource_files links don't work when @ is in the path.
  • Fixed Bug #6715: Embed Movie plugin returns JavaScript error when clicking OK.
  • Fixed Bug #6716: Remove unread messages popup in backend to improve performance.
  • Fixed Bug #6717: Empty line(s) in beginning the design file in the output.
  • Fixed Bug #6719: Naming bodycopy div to "I" will break the asset's interface in the backend in IE.
  • Fixed Bug #6724: Image variety URL breaks when in safe edit.
  • Fixed Bug #6725: SEI save metadata bug.
  • Fixed Bug #6727: Indent plugin for WYSYWIG doesn't work for IE.
  • Fixed Bug #6731: Reverting asset from Safe Edit status to Live causes HTML special chars in all asset's attributes to be escaped unexpectedly.
  • Fixed Bug #6737: Binoculars in user linking screen.

CMS

  • Fixed Bug #6701: listing page sort by metadata, group by metadata selection field using key or value of selection.
  • Fixed Bug #6702: Site Map show Icons prints unneeded JavaScript for each icon.
  • Fixed Bug #6706: search page when results is grouped, and group name matching search query is forced.

LDAP

  • Fixed Bug #6695: User Common Name attribute can hide groups.

Calendar

  • Fixed Bug #6699: Calendar Search Page not loading This Month's events for Dec.
  • Fixed Bug #6704: Upcoming calendar event doesn't pick up events for "today".

Import Tools

  • Fixed Bug #6703: JS REST asset doesn't import from XML correctly.

E-Commerce

  • Fixed Bug #6957: Checkout Page will not submit delivery method, without delivery keyword selector.

Data

  • Fixed Bug #6694: Record Filter does not filter the value if the field of Record Set is Empty.

SAML

  • Fixed Bug #6733: SAML account manager db error with replication servers.

Modern Asset Map

  • Fixed Bug #6644: Modern asset map displaying unnecessary viewing X of XX asset.
  • Fixed Bug #6657: Asset tree steals focus on mouse over.
  • Fixed Bug #6676: If the asset map scrolls during a rectangular selection, assets at the other end of the selection get de-selected.
  • Fixed Bug #6696: Modern Asset Map intercepts keystrokes on WYSIWYG popups.
  • Fixed Bug #6697: JS Asset map right click list.
  • Fixed Bug #6709: Modern asset map not loading in IE8-10 due to Quirks mode.
  • Fixed Bug #6711: Modern Asset Map not loading for Simple Edit user in EES.

SOAP assets within Squiz Matrix allow you to connect to a remote SOAP server via a variety of authentication methods, including basic HTTP authentication, WS-security username tokens and JSESSIONID cookies.

This feature introduces a new authentication type on SOAP assets in order to integrate with your Marketo service, allowing for the creation, retrieval and removal of entities and data stored within their system.

The Marketo Signature authentication option can be configured in the Authentication Type field of your SOAP Connection Details section. This authentication type is available on the SOAP Data Source asset, as well as the Make SOAP Call form submission action, form step action and trigger action.

Selecting the Marketo Signature authentication option will display the Authentication Details fields allowing you to supply the access and secret keys for your Marketo connection.

This feature has been added to support Marketo integration within Squiz Matrix, providing all existing functionality and features. 

New JS and CSS File Folder Assets (#6668) 

This feature introduces two new assets to provide a platform for serving multiple JS and CSS files as a single, packaged file.

The JS File Folder and CSS File Folder assets allow you to create a single folder, specifying the individual file assets to attach beneath it. These linked files are then merged based the settings of the asset.

Files can be linked to both the JS and CSS File Folder assets on their Details screen. Files selected in this section will be NOTICE linked to the asset.

The Minification settings of the File Folder assets allow you to select how the linked files will be merged and whether the code will be minified. Both assets provide Squiz Matrix's Basic Minification method, as well as an option to Merge Without Minification.

In addition to these settings, the JS File Folder can utilise the Closure Compiler tool to merge and minify linked files, and create an associated JavaScript Source Map file (Source Map files can be viewed on the asset's Source Map Files screen).

A Regenerate File field allows you to regenerate the merged file, for example, if the content of a linked file has been modified.

The JS File Folder and CSS File Folder assets have been created to developed to provide best practice performance solutions for your systems, serving minified and well-optimised code.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6647: Asset Manager: Performance Enhancement on generateGetParentsQuery().
  • Minor Enhancement #6648: Apply Style Plugin CSS File Classes on Non-Bodycopy WYSIWYG Editors. 
  • Minor Enhancement #6674: Additional Workflow Keyword Replacements. 
  • Minor Enhancement #6680: PayPal Payflow Pro Gateway: New Option to Send Custom Merchant Reference.  
  • Minor Enhancement #6690: Enhancements to the system_move_update.php Script.   

Core

  • Fixed Bug #6497: Webpaths behave strangely when mixing extensions.
  • Fixed Bug #6504: Signature of JS_Api::createLink() is not compatible with Asset::createLink.
  • Fixed Bug #6606: Global keywords in _edit mode. 
  • Fixed Bug #6609: what's new page sorting. 
  • Fixed Bug #6618: Redis Cache handler bug. 
  • Fixed Bug #6621: hide_frames=1 no longer respected. 
  • Fixed Bug #6627: Multiple set metadata value trigger actions with same field ID cannot set different values. 
  • Fixed Bug #6633: Image Variety Trigger missing square option. 
  • Fixed Bug #6638: Form Section does not allow a question to be created. 
  • Fixed Bug #6642: getKeyFromValue of metadata Field select does not return the correct value. 
  • Fixed Bug #6649: Matrix insert link plugin adding the current url to the link in compatible mode on IE. 
  • Fixed Bug #6655: Use Default checkbox for Metadata Multiple Text fields errors if apostrophe in default value. 
  • Fixed Bug #6673: Permission issues when removing cron job since bug #6533 changes. 
  • Fixed Bug #6678: preview screen some JS errors. 
  • Fixed Bug #6689: keyword used in login design woudl cause fatal error. 

CMS

  • Fixed Bug #6626: Locking issues on forms with workflows applied.
  • Fixed Bug #6650: Previous button HTML is malformed on multi-page form. 

Calendar

  • Fixed Bug #6568: Rolling calendar doesnt handle February at the end of longer months.
  • Fixed Bug #6632: Upcoming Events not rendering the %event_list% keyword if there are no events. 
  • Fixed Bug #6686: Events ordering not consistant across diffenent days in the Calendar Page. 

Squid

  • Fixed Bug #6623: Upgrading to 4.16.3 or beyond causes errors when existing Squid purge trigger action runs.

TRIM

  • Fixed Bug #6685: trim error could cause previously downloaded file to be deleted.

SAML

  • Fixed Bug #6693: SAML Account Manager Parse Metadata XML produces broken PHP

Modern Asset Map

  • Fixed Bug #6631: Scroll at edge of map.
  • Fixed Bug #6634: After dragging/moving an asset, clicking on another asset doesn't clear the popup menu. 
  • Fixed Bug #6644: Modern asset map displaying unecessary viewing X of XX asset. 
  • Fixed Bug #6656: locateAsset calls to Modern Asset Map are broken for shadow assets. 
  • Fixed Bug #6661: Restore Root in Modern Asset Map doesn't allow return to Root (#1) Folder when a custom root is set. 
  • Fixed Bug #6666: On Windows machines, scrollbar control can be interfered by the rectangular selection. 
  • Fixed Bug #6671: Asset link icon updated to the incorrect type in the JS asset map.

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 />

<MySource_THEN>
HAS CHILDREN
</MySource_THEN>
<MySource_ELSE>
NO CHILDREN
</MySource_ELSE>
</MySource_AREA> 

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.

Core

  • 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.

CMS

  • 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.  

Calendar

  • 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.

Data

  • 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. 

Squiz Matrix 4.18.0 is the first production release to offer the Modern Asset Map as an alternative to the classic Java version. (See the 4.18.0 RC1 release notes for further details.)

If you are upgrading to this version of Squiz Matrix, it's recommended that you clear your browser's cache before you use the Modern Asset Map for the first time. This ensures the localisable strings used in the Asset Map - which are now stored in the JavaScript portion of the compiled locale files, rather than just the Java portion - will be properly loaded.

After upgrading and enabling the Modern Asset Map, if you see "String code <xxxx> not found" messages, please clear your browser cache and reload the Administration interface. If you also have a Squid cache (or similar) caching the entire __data directory, please clear the cache on the __data/system directory to ensure Squid has the latest translation file cached.

Featured Changes

A new script has been added to Squiz Matrix to report and fix any overlapping (and thus duplicate) entries in the rollback table, determined by an entry's eff_to date value.

The system_integrity_fix_duplicate_rollback_entries.php script is found in the system's Scripts directory and takes the following parameters:

  • -s <system_root> : the root directory of your Squiz Matrix system.
  • --show-records : specifies to show any overlapping rollback table entries found.
  • --fix-table=<table_name> : fixes the overlapping rollback entries in the specified table ('all' to fix overlapping entries in all tables).
Usage of this script is as follows:

$ php scripts/system_integrity_fix_duplicate_rollback_entries.php -s <SYSTEM_ROOT> --show-records --fix-table=all

IMPORTANT: You have selected the option to fix the duplicate rollback entries from the Rollback table "sq_rb_ast_attr_val"
This will remove all duplicate entries in the table(s) except the one with oldest "eff_from" date in the duplicate entries set.
Backing up db is recommended before running this script.
Are you sure you want to proceed (Y/n)?

Checking table sq_rb_ast ... [ OK ]
Checking table sq_rb_ast_lnk ... [OK]
Checking table sq_rb_shdw_ast_lnk ... [ OK ]
Checking table sq_rb_ast_lnk_tree ... [ OK ]
Checking table sq_rb_ast_attr_val ... 2 set(s) of overlapping entries found.
------------------------------------
0 => array (
    "assetid" => "260",
    "attrid" => "3081",
    "contextid" => "0",
    "sq_eff_to" => "2013-06-18 10:26:28",
    "occ" => "2"
),
1 => array (
    "assetid" => "260",
    "attrid" => "3081",
    "contextid" => "1",
    "sq_eff_to" => "2013-06-18 10:26:28",
    "occ" => "2"
)

------------------------------------
[ NOT OK ]
Fixing the rollback table sq_rb_ast_attr_val [ FIXED ]
 
Checking table sq_rb_ast_attr_uniq_val ... [ OK ]
Checking table sq_rb_ast_url ... [ OK ]
Checking table sq_rb_ast_path ... [ OK ]
Checking table sq_rb_ast_lookup ... [ OK ]
Checking table sq_rb_ast_lookup_value ... [ OK ]
Checking table sq_rb_ast_lookup_remap ... [ OK ]
Checking table sq_rb_ast_perm ... [ OK ]
Checking table sq_rb_ast_edit_access ... [ OK ]
Checking table sq_rb_ast_mdata ... [ OK ]
Checking table sq_rb_ast_mdata_val ... [ OK ]
Checking table sq_rb_ast_mdata_dflt_val ... [ OK ]
Checking table sq_rb_ast_wflow ... [ OK ]
Checking table sq_rb_trig ... [ OK ]
Checking table sq_rb_ast_role ... [ OK ]
Checking table sq_rb_ctx_def ... [ OK ]
Checking table sq_rb_saml_lnk ... [ OK ]
Checking table sq_rb_cal_date_val ... [ OK ]

Customise Attribute Identifiers on Metadata Fields (#6607)

When setting metadata within Squiz Matrix, frontend metadata of an asset will name and content attribute identifiers, to print the name of a metadata field, and its value on the asset.

<!-- Metadata Schema //-->
 
<!-- User Defined //-->
<meta name="Description" content="Squiz Matrix new features" />
<meta name="Subject" content="Blog" />
<meta name="Date" content="01/01/2013 10:39:20" />

With the recent advent of RDFa 1.1 and hybrid DTDs (eg. "HTML 4.01 Strict + RDFa 1.1"), and "HTML microdata" as proposed by the WHATWG version of HTML, it is now possible for META tags to have names identified by attributes other than name.

This feature introduces new fields on the Details screen of Metadata Field assets, allowing you to customise these attributes, as per these new developments.

The attribute values entered into these fields will determine the frontend metadata of your assets, as shown below:

<meta itemprop="type" content="voice" />

By default, these attribute identifiers will be set to name and content.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6616: Limit Session Expiry Rules to Specified User Types
  • Minor Enhancement #6576: Enable Compression Support in http_request.
  • Minor Enhancement #6571: Show REST Assets in Performance Mode.
  • Minor Enhancement #6533: Non-System Cron Jobs Purged From the System.

Core

  • Fixed Bug #6468: Image attribute descriptions unhelpful when used in drop-down selectors.
  • Fixed Bug #6528: Eluding dollar sign $ after image variety link can break other links.
  • Fixed Bug #6566: HTTP Request attribute, Forward user information and LDAP Users.
  • Fixed Bug #6573: Matrix Search frontend PHP warning messages.
  • Fixed Bug #6578: Cloning asset from the frontend might unexpectedly "filter" the asset attribute.
  • Fixed Bug #6582: Arithmetic keyword modifier doesn't work correctly on text with comma.
  • Fixed Bug #6587: Performance mode used by more than one person.
  • Fixed Bug #6591: Event broadcasted by non-existent asset will throw fatal error.
  • Fixed Bug #6593: Attempting to put images into safe edit causes fatal error.
  • Fixed Bug #6598: Metadata date fields not selectable in asset map when adding to triggers.
  • Fixed Bug #6599: system_move_update.php generally runs out of memory.
  • Fixed Bug #6601: File asset keyword not included in "-- Insert Keyword --" drop-down.
  • Fixed Bug #6603: JS API response includes User's password in plain text.
  • Fixed Bug #6605: Trigger fails to delete a "Deny" permission.
  • Fixed Bug #6613: Clone HIPO job not showing the clone confirmation window.
  •  

CMS

  • Fixed Bug #6521: Email validation does not work with account manager additional create location.

Search

  • Fixed Bug #6586: Search not returning results for search terms with 'silent chars' in Oracle.

Calendar

  • Fixed Bug #6592: Various URL keywords not working on Calendar Search Page.

Google Maps

  • Fixed Bug #6612: Google Maps not using structured root node selectors.

TRIM

  • Fixed Bug #6590: TRIM: do not try to automatically sync records when no record is stored.

Web Services

  • Fixed Bug #6594: REST oauth 1.0 session asset couldn't get access token from Twitter.
  • Fixed Bug #6615: Inconsistency between direct acquireLock call and the one made on batchRequest. 

Bug Fixes

  • Fixed Bug #6859: Redirection for the defined protocols do not work as expected.
  • Fixed Bug #6868: globals_context keyword pops current context from stack.
  • Fixed Bug #6870: Embed YouTube video plugin inserting extra tags when committing in "view source" mode.
  • Fixed Bug #6871: Don't log LDAP Bridge passwords.
  • Fixed Bug #6877: Generate Report Cron Job not setting the job's "running" attribute due to permission issues.
  • Fixed Bug #6884: Frequency Conditional keyword throws PHP errors.
  • Fixed Bug #6898: /?a=XX links not evaluated correctly in design file.
  • Fixed Bug #6904: Xpath cannot use |, preg_replace() error return.
  • Fixed Bug #6905: EES does not checks the parent asset's "allowed links" rule when creating new asset.
  • Fixed Bug #6907: Small bug in display of site map items.
  • Fixed Bug #6915: Space char getting replaced by &nbsp; in Matrix combo box.
  • Fixed Bug #6918: Fix date_format keyword modifier to handle --:--:--.

CMS

  • Fixed Bug #6885: Backend user can't edit the job create by them for 'Send Submissions To Email'.

LDAP

  • Fixed Bug #6874: Don't log LDAP Bridge passwords.
  • Fixed Bug #6917: Send Email Trigger Action not sending to LDAP email attribute.

Bulkmail

  • Fixed Bug #6861: Schedule Bulkmail Job trigger action's subscription filter does not works with Metadata Select Field.
  • Fixed Bug #6899: Adding the bulkmail job using Schedule Bulkmail Job trigger action in EES mode not working.

Bug Fixes

  • Fixed Bug #6781: Some conflicting preferences revert to default.
  • Fixed Bug #6801: %asset_thumbnail% breaking events search page.
  • Fixed Bug #6803: Search in search button keyword javascript output error.
  • Fixed Bug #6822: Accessing metadata schema screen in the rollback mode throws fatal db error.
  • Fixed Bug #6824: Image variety keyword replacement does not escape double-quotes in alt or title text.
  • Fixed Bug #6826: Paint Layout: Condition Logical always evaluates to true.
  • Fixed Bug #6832: Wyswiyg plugins Format Heading and Apply Styles not working in IE11.
  • Fixed Bug #6833: Tickbox Table form question outputs invalid HTML.
  • Fixed Bug #6834: add_remove_url.php script doesn't copy user defined layout.
  • Fixed Bug #6836: Safe edit interface generating some invalid HTML markups.
  • Fixed Bug #6839: Simple Edit User doesnt get workflow approved emails.
  • Fixed Bug #6843: Show diff feature for preview can miss the changes made.
  • Fixed Bug #6850: Trigger action Set Future Status does not takes metadata date field's offset into account.
  • Fixed Bug #6852: Asset_Manager::assetExists() throws fatal db error in Oracle if supplied assetids are more than 1000.

Web Services

  • Fixed Bug #6848: JS API batchRequest cleans params of the createAsset function which breaks creating with attributes.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6749: Additional asset_id Attribute for Form Submissions.

Core

  • Fixed Bug #6477: Spaces between MySource areas stripped.
  • Fixed Bug #6736: ^replace_keywords does not replace with eq operator. 
  • Fixed Bug #6742: Accessing metadata screen in the rollback mode throws fatal db error. 
  • Fixed Bug #6744: Regen Metadata scripts are not context aware. 
  • Fixed Bug #6752: Can't reorder context IE8. 
  • Fixed Bug #6757: Paint layout's conditional keywords not getting evaluated correctly. 
  • Fixed Bug #6762: Cannot set image variety to Safe Edit status in Oracle system. 
  • Fixed Bug #6764: PHP 5.4 "failed to load external entity" error. 
  • Fixed Bug #6769: Java asset map insert link / binocular not working for java 1.7.0-51 update. 
  • Fixed Bug #6778: Global date keywords do not work in type format of shadow assets. 
  • Fixed Bug #6782: %asset_lineage_linked% doesn't play nice with modifiers. 
  • Fixed Bug #6792: Twitter API now requires HTTPS. 
  • Fixed Bug #6798: REST asset not encoding "Append query string" value. 

CMS

  • Fixed Bug #6740: Form feed char "\f" (#xC) not filtered by "Save as XML" form action.
  • Fixed Bug #6797: Unable to create User Group Manager Page asset with metadata schema applied with default metadata field value (keywords) referencing the asset. 

Search

  • Fixed Bug #6732: Search Page searching email attribute of Simple Edit user.

Import Tools

  • Fixed Bug #6700: Asset builder doesn't export create form customisations.

Squid

  • Fixed Bug #6775: Upgrading causes errors when existing Squid purge trigger action runs.

Web Services

  • Fixed Bug #6688: JS api breaks when it parses the result json.
  • Fixed Bug #6750: JS API getParents doesn't return the 1st parent, throws Unexpected end of input error.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6734: Select Drop-Down Field Options Listed Alphabetically.

Core

  • Fixed Bug #6662: system_integrity_fix_char_encoding.php doesn't fix design parse file.
  • Fixed Bug #6683: mysource_files links don't work when @ is in the path.
  • Fixed Bug #6715: Embed Movie plugin returns JavaScript error when clicking OK.
  • Fixed Bug #6717: Empty line(s) in beginning the design file in the output.
  • Fixed Bug #6719: Naming bodycopy div to "I" will break the asset's interface in the backend in IE.
  • Fixed Bug #6724: Image variety URL breaks when in safe edit.
  • Fixed Bug #6725: SEI save metadata bug.
  • Fixed Bug #6727: Indent plugin for WYSYWIG doesn't work for IE.
  • Fixed Bug #6731: Reverting asset from Safe Edit status to Live causes HTML special chars in all asset's attributes to be escaped unexpectedly.

CMS

  • Fixed Bug #6701: listing page sort by metadata, group by metadata selection field using key or value of selection.
  • Fixed Bug #6702: Site Map show Icons prints unneeded JavaScript for each icon.

LDAP

  • Fixed Bug #6695: User Common Name attribute can hide groups.

Calendar

  • Fixed Bug #6699: Calendar Search Page not loading This Month's events for Dec.
  • Fixed Bug #6704: Upcoming calendar event doesn't pick up events for "today".

Import Tools

  • Fixed Bug #6703: JS REST asset doesn't import from XML correctly.

E-Commerce

  • Fixed Bug #6957: Checkout Page will not submit delivery method, without delivery keyword selector.

Data

  • Fixed Bug #6694: Record Filter does not filter the value if the field of Record Set is Empty.

SAML

  • Fixed Bug #6733: SAML account manager db error with replication servers.

Bug Fixes

  • Fixed Bug #6497: Web paths behave strangely when mixing extensions.
  • Fixed Bug #6504: Signature of JS_Api::createLink() is not compatible with Asset::createLink.
  • Fixed Bug #6606: Global keywords in _edit mode. 
  • Fixed Bug #6609: what's new page sorting. 
  • Fixed Bug #6618: Redis Cache handler bug. 
  • Fixed Bug #6627: Multiple set metadata value trigger actions with same field ID cannot set different values. 
  • Fixed Bug #6633: Image Variety Trigger missing square option. 
  • Fixed Bug #6642: getKeyFromValue of metadata Field select does not return the correct value. 
  • Fixed Bug #6649: Matrix insert link plugin adding the current url to the link in compatible mode on IE. 
  • Fixed Bug #6655: Use Default checkbox for Metadata Multiple Text fields errors if apostrophe in default value. 
  • Fixed Bug #6678: preview screen some JS errors. 
  • Fixed Bug #6689: keyword used in login design would cause fatal error. 

CMS

  • Fixed Bug #6626: Locking issues on forms with workflows applied.
  • Fixed Bug #6650: Previous button HTML is malformed on multi-page form. 

Calendar

  • Fixed Bug #6568: Rolling calendar doesn't handle February at the end of longer months.
  • Fixed Bug #6632: Upcoming Events not rendering the %event_list% keyword if there are no events. 
  • Fixed Bug #6686: Events ordering not consistent across different days in the Calendar Page. 

Squid

  • Fixed Bug #6623: Upgrading to 4.16.3 or beyond causes errors when existing Squid purge trigger action runs.

TRIM

  • Fixed Bug #6685: trim error could cause previously downloaded file to be deleted.  

SAML

  • Fixed Bug #6693: SAML Account Manager Parse Metadata XML produces broken PHP

Minor Enhancements and Bug Fixes

  • Fixed Bug #6468: Image attribute descriptions unhelpful when used in drop-down selectors.
  • Fixed Bug #6528: Eluding dollar sign $ after image variety link can break other links.
  • Fixed Bug #6566: HTTP Request attribute, Forward user information and LDAP Users.
  • Fixed Bug #6573: Matrix Search frontend PHP warning messages.
  • Fixed Bug #6578: Cloning asset from the frontend might unexpectedly "filter" the asset attribute.
  • Fixed Bug #6582: Arithmetic keyword modifier doesn't work correctly on text with comma.
  • Fixed Bug #6587: Performance mode used by more than one person.
  • Fixed Bug #6591: Event broadcasted by non-existent asset will throw fatal error.
  • Fixed Bug #6593: Attempting to put images into safe edit causes fatal error.
  • Fixed Bug #6598: Metadata date fields not selectable in asset map when adding to triggers.
  • Fixed Bug #6599: system_move_update.php generally runs out of memory.
  • Fixed Bug #6601: File asset keyword not included in "-- Insert Keyword --" drop-down.
  • Fixed Bug #6603: JS API response includes User's password in plain text.
  • Fixed Bug #6604: remap_manager.inc needs to handle empty HTTP_HOST.
  • Fixed Bug #6605: Trigger fails to delete a "Deny" permission.
  • Fixed Bug #6613: Clone HIPO job not showing the clone confirmation window.

CMS

  • Fixed Bug #6521: Email validation does not work with account manager additional create location.

Search

  • Fixed Bug #6586: Search not returning results for search terms with 'silent chars' in Oracle.

Calendar

  • Fixed Bug #6592: Various URL keywords not working on Calendar Search Page.

Google Maps

  • Fixed Bug #6612: Google Maps not using structured root node selectors.

TRIM

  • Fixed Bug #6590: TRIM: do not try to automatically sync records when no record is stored.

Web Services

  • Fixed Bug #6594: REST oauth 1.0 session asset couldn't get access token from Twitter.
  • Fixed Bug #6615: Inconsistency between direct acquireLock call and the one made on batchRequest.

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

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 %globals_user_metadata_address% 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 #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.

Core 

  • 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: %preview_url% 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. 

CMS

  • 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.

Calendar

  • 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.

Data

  • 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.

The E-Commerce package's Checkout asset allows you to configure a tax rate to apply to taxable purchases on the e-commerce order of a user.

Previously, this configured tax did not apply to the delivery fee calculated on an order. This feature introduces new options, allowing you to calculate tax on any order delivery fees.

The Calculate Tax on Delivery and Delivery Fee Includes Tax? settings can be configured on the Region Specific Options screen of the Checkout page asset.

The Calculate Tax on Delivery setting allows you to specify whether or not tax should be calculated against the delivery fee of the e-commerce order, in addition to any taxable items. Enabling this setting will mean that the configured tax rate will be calculated against any delivery fees and added to the order.

Alternatively, you can enable the Delivery Fee Includes Tax? setting to indicate that the delivery fee is already inclusive of tax. If this is the case, the tax will be calculated, based on the total of the delivery fee, and displayed on the order. For example, if the delivery fee is $11.00 and the tax rate is 10%, the delivery fee will be displayed as $10.00 + $1.00 tax.

By default, both these settings are disabled.

This option has been added to allow you to further customise your e-commerce setup and the taxes applied.

Custom Form: Word Count Comparison Validation Rule (#6236)

Complex validation rules on Custom Form Page questions allow you to add specific rules to determine the validity of a user's response. For example, if you had a question where the user can upload a file, complex validation rules can be created to specify that only PDF documents can be uploaded.

This feature adds a new complex validation rule on both the Text and Email Address question types on the Custom Form Page, to check the word count of a user's response. 

The Word Count Comparison validation rule allows you to specify that the answer to a question should be a certain number of words, for example, twenty-five words or less.

This validation rule can be created with the following operators:

  • Must be this many words in length.
  • Must not be this many words in length.
  • Length must be greater than this many words.
  • Length must be less than this many words.
  • Length must be at least this many words.
  • Length must be no more than this many words.

As with the other complex validation rules, custom error text and conditions can be configured on the Word Count Comparison rule.

This feature has been added to provide Squiz Matrix user's with further tools to customise their created forms and the responses.

JavaScript API: New Function to Set a Metadata Schema (#6374) 

A new function has been added to the Javascript API to set or unset a metadata schema on an asset.

The editMetadataSchema function is enabled through a new field on the Details screen of the Javascript API. 

This function takes six parameters:

  • assetid: the asset to set or unset the metadata schema on.
  • schemaid: the metadata schema to set or unset on the asset.
  • set: whether the metadata schema is being set (1) or unset (0).
  • granted: whether the metadata schema is being applied (TRUE) or denied (FALSE).
  • cascades: whether or not the schema should be cascaded to newly created assets.
  • dataCallback: the custom callback function (optional).

The format of the editMetadataSchema function is shown below:

editMetadataSchema (assetID, schemaid, set, granted, cascade, dataCallback)

In the example below, we are applying metadata schema #405 on asset #612. We do not want this schema cascaded to newly created assets.

editMetadataSchema (612, 405, 1, 1, 0, function(e){console.log(e);})

When using the Enhanced JS API, the above example would be as follows:

js_api.editMetadataSchema({
assetid: 612,
schemaid: 405,
set: 1,
granted:0,
cascades:0,
dataCallback: function(e){console.log(e);
}}) 

Custom Form: Mandatory Select Response With Initial Empty Value (#6436) 

The Custom Form Page's Select question type allows a user to make a selection from a drop-down list of values.

While, previously, this question type allowed you to specify that a response was mandatory, this was not able to be configured whilst also providing users with an initial empty value - a default value had to be designated.

This was an issue when wanting to create a mandatory Select question, but not wanting to have an option already selected as the default.

The feature combats this issue by adding new options on the Details screen of the Select question type, allowing you to specify whether an empty value option can be selected by the user (i.e. whether the question requires a response or not).  

The Allow Empty Option To Be Selected? setting allows you to specify whether the empty value option on the question can be submitted on the form. If this setting is disabled and the user attempts to submit a form using the empty selection, an error will be displayed, as specified in the Empty Option Selection Error field.

Along with these new settings, the Select question type also sees the introduction of a number of validation rules, including: Value Comparison, Numeric Value, Text Found InText ContainsLength ComparisonValid EmailValue Begins With and Value Ends With.

These new validation rules will check against the answer keys of the Select question type.

Image Variety: New Centred Square Constrain Type (#6448) 

Image varieties allow you to create alternate versions of Image assets within Squiz Matrix, of varying sizes.

When configuring an image variety, the system will allow you to modify the size of the original image by a variety of different options, including:

  • Constrained by a specified height, maintaining the original aspect ratio.
  • Constrained by a specified width, maintaining the original aspect ratio.
  • Constrained by a maximum dimension (applied to both the height and width) and maintaining the original aspect ratio.
  • Resized to a specified height and width.

This feature introduces a new option in the Constrained By field, allowing you to create a square-shaped image variety. 

When selected, the Square (Centre Weighted) option will display a Dimension field, allowing you to specify the size of the square image variety. The image will be cropped (centre weighted) and resized as specified in these settings.

Currently Listed Asset Keywords in Nested Content Listings (#6449)

This new feature extends the use of the %list_current_*% keyword replacement (e.g. ) to refer to the current asset being listed by a listing or search page in the Additional GET Variables settings of nested content.

This feature has been added to allow more flexibility in the keyword replacements that can be passed through as variables in nested content areas.

Password Reset Page: New Check Browser Session Option (#6456) 

Squiz Matrix's Password Reset Page asset allows you to create a page that lets your users reset their passwords, for example, if they have forgotten it.

This page works by emailing the user a URL link where they can reset their password and log-in to the system. As a result, the Password Reset Page was previously unable to properly handle the resetting of passwords for users in the system with the same email addresses.

This feature adds a new option to the Password Reset Page to force users to open the reset link sent to their email address in the same browser session in which the password reset was requested.

When the Check Browser Session setting is enabled on the Details screen of the Password Reset Page, users will only be able to complete the password reset in the one browser session.

This feature has been put in place to ensure that no users on the same emailed address can complete a password reset request on another user's account 

Disable the Root User Account (#6466)

Squiz Matrix's root user account has the highest level of access within the system, with the ability to view and modify all fields and screens. System administrator users have a similar level of permission, although they do not have access to all options available within the system configuration and system management settings.

This feature introduces a new option on the system's main.inc file, allowing you to disable the root user account and give root access to system administrators.

SQ_CONF_ROOT_USER_DISABLED 

By default, this new option is set to 0. When this value is set to 1, the root user account on the system will be disabled. This means that, while the actual root user asset will remain in the system, the account will lose its functionality and will not be able to be logged into.

All root privileges, including access to the system configuration and system management settings, will be given to system administrator users.

Once disabled, the root user account can be easily reinstated by changing this new main.inc setting back to 0.

This feature has been added in order to allow system administrators full access to their Squiz Matrix installation.  

New Spam Prevention Options on the Custom Form and Asset Builder (#6481) 

Also this week, we have three new spam prevention options available on the Custom Form and Asset Builder assets.

  • Google reCAPTCHA: allows you to implement Google's free reCAPTCHA anti-bot service, which also servers to digitize books, newspapers and old time radio shows.
  • Honeypot Question: enables the creation of a honeypot or dummy question. This is used to identify spam bots who fill in the field, that would otherwise be left blank by regular users.
  • Submission Time Threshold: uses the time taken between the form load and form submission to help identify possible spam bots, based on a set minimum time.

Each of these new spam prevention options are available for configuration on either the Form Contents screen of Custom Form assets, or the Details screen of Asset Builder assets.

These new options have been added to compliment the existing spam prevention options available for forms on Squiz Matrix, by providing more accessible anti-spam alternatives.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6133: New SOAP API Function to Return Paint Layout From URL.
  • Minor Enhancement #6294: Improved Error Handling on the Import Assets From XML Tool.
  • Minor Enhancement #6303: Clear Squid Cache Trigger Action Enhancements.
  • Minor Enhancement #6452: Asset Listing: Keyword Support for Link Value Filtering.
  • Minor Enhancement #6455: Data Source Graph: New Alt Field on Global Settings Screen.
  • Minor Enhancement #6459: Option to Remove the 'Running Squiz Matrix' Attribution From the Design Source.
  • Minor Enhancement #6471: CSV Data Source Error Enhancement.
  • Minor Enhancement #6473: Performance Enhancement: Acquiring and Updating Locks.
  • Minor Enhancement #6474: Performance Enhancement: Improved Handling When 'All' Locks Acquired.
  • Minor Enhancement #6475: Asset Builder Page: CAPTCHA Enhancement.

Core

  • Fixed Bug #6313: Design Customisation no longer has independent status.
  • Fixed Bug #6396: Links Reports say HTTS URLs cannot be tested.
  • Fixed Bug #6440: HIPO Job getJob concurrency with load balanced read databases.
  • Fixed Bug #6445: Modifiers not run on metadata keywords in an Asset Listing.
  • Fixed Bug #6454: Check index script doesn't check rollback tables correctly.
  • Fixed Bug #6457: Cannot set the user's password on the Funnelback manager.
  • Fixed Bug #6460: Content-Disposition header of Matrix files has unquoted file name.
  • Fixed Bug #6461: Deja Vu issues and enhancements.
  • Fixed Bug #6462: Error checking for the as_asset keyword modifier can bombard error.log with warnings.
  • Fixed Bug #6463: Performance improvement to remove_form_submission.php script.
  • Fixed Bug #6464: Asset Builder not creating News Item assets.
  • Fixed Bug #6465: Remote Content asset displays arbitrary URLs when no protocol set.
  • Fixed Bug #6467: The Clear Matrix Cache and Clear Squid Cache tools' Clear Now option doesn't work as expected.
  • Fixed Bug #6469: Zero(s) issue when exporting/importing assets.
  • Fixed Bug #6476: Replace keyword modifier strips regex characters.
  • Fixed Bug #6482: Text field for "Link" on the insert link plugin shows wrong target link.
  • Fixed Bug #6484: Creating new Context and Metadata value.
  • Fixed Bug #6486: Uploading a pdf file with pdftohtml enabled shouldn't block content indexing if there is a minor error.

CMS

  • Fixed Bug #6443: After cloning a form sections need to be committed before displaying.
  • Fixed Bug #6493: Links Report incorrectly identifying working links as broken.

Data

  • Fixed Bug #6492: Data source JSON bypasses any proxy settings. 

Search

  • Fixed Bug #6964: Search and Replace tool can throw db error if replacing many assets.

Calendar

  • Fixed Bug #6451: Problem with cancelling a Recurring Calendar Event that occurs in the afternoon.
  • Fixed Bug #6488: Listing Calendar Events with the Event Search Page getting undefined object/function error.

Sharepoint

  • Fixed Bug #6491: Sharepoint CMIS issue when using a stored WSDL file.

Funnelback

  • Fixed Bug #6261: Funnelback REST Search Page passing parameters dot converted to underscore.

The Custom Form Page's Save as XML submission action is used to export form submissions as an XML structure.

This functionality has been extended to the E-Commerce package's Checkout Page asset via a new Save XML completion action that will export the details of an e-commerce order to an XML file after the checkout process has successfully been completed.

The Save as XML action can be configured on the Checkout Completion Actions screen of a Checkout Page asset.

Like the form submission action, the Save as XML action allows you to configure the location to save the resulting XML files to. You are also able to specify whether to include the transaction and merchant reference numbers on the XML file.

Search/Listing Assets: Use Individual Entries of Multi-Option Metadata as Group Sources (#6426)

This feature introduces a new Group by Individual Entry option to the Grouping Screen of search and listing assets, allowing individual entries of multi-option metadata fields to be used as grouping sources.

This new field supports Multi Text, Selection, Thesaurus and Hierarchy metadata fields.

OAuth 2.0 Integration Within Squiz Matrix (#6430)

This feature introduces the new OAuth2 package for Squiz Matrix, providing third-party integration with OAuth 2.0 providers, such as Facebook, Google and LinkedIn.

The package includes two new assets, the OAuth Account Manager and the OAuth2 Token that can be used together, as well as in conjunction with other assets for a variety of authentication option.

The OAuth2 Token asset allows you to configure authentication with an OAuth 2.0 provider. Once authenticated, the token has a variety of storage and refresh options. This asset can be used with the REST Resource assets (including the REST Resource form and trigger actions) to make OAuth protected REST API calls.

Additionally, the OAuth2 Token asset can be used together with the new OAuth Account Manager asset to support single sign-on and identity verification with an OAuth 2.0 account, for example, your Facebook account.

When configured with an OAuth2 Token, the Account Manager asset will allow you to link authenticated third-party accounts with existing Squiz Matrix accounts. If no associated user account is found, the OAuth Account Manager will automatically create a new account within Matrix to link with.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6074: New User Defined Option on Remove/Apply Paint Layout SOAP Functions.
  • Minor Enhancement #6114: New GetMetadataFieldsDetailOfSchema SOAP API Function.
  • Minor Enhancement #6285: Bulk Import Tool: Alphabetical Server File Import List.
  • Minor Enhancement #6298: GET and POST Global Keyword Replacements Will Transmit UTF8 Characters.
  • Minor Enhancement #6302: New Root Nodes Keyword Replacement for Calendar Assets.
  • Minor Enhancement #6389: New Error Codes Added for File Upload.
  • Minor Enhancement #6397: Inconsistent Workflow Script Usage Extended to Safe Edit Approved to Go Live Assets.
  • Minor Enhancement #6398: E-Commerce: Donation Support Cart and Checkout Assets.
  • Minor Enhancement #6402: CSV Data Source Enhancements.
  • Minor Enhancement #6407: Global Keyword Replacement Support on the replace_keywords modifier.
  • Minor Enhancement #6408: New Keyword Modifiers for Date Comparison.
  • Minor Enhancement #6409: New Relative Date Global Keyword Replacement.
  • Minor Enhancement #6412: TRIM Saved Search: New Socket Connection Limit Settings.
  • Minor Enhancement #6425: New Keyword Modifiers: Raw URL Encode and Raw URL Decode.
  • Minor Enhancement #6429: Group Assets Using Multiple Metadata Fields on Listing Assets.
  • Minor Enhancement #6431: New Grouping Options on Search and Listing Assets.
  • Minor Enhancement #6433: Brackets for Attribute Keywords on Under Construction Assets Within Menu.
  • Minor Enhancement #6434: Absolute URL for href Actions on Form Assets.
  • Minor Enhancement #6439: Metadata Schema: Section Restrictions to Display Inherit Status.
  • Minor Enhancement #6442: Calendar Search Page: New Hide Unlinked Navigational Text Option. 

Core

  • Fixed Bug #6186: Corrupted href attribute in WYSIWYG.
  • Fixed Bug #6344: WYSIWYG background colour selector not working in IE.
  • Fixed Bug #6388: Image variety public url not picking up the correct base url.
  • Fixed Bug #6390: System config should check for the duplicate entries for "System Root URLs".
  • Fixed Bug #6391: Script "set_files_unrestricted.php" does not works in system with Deja Vu enabled.
  • Fixed Bug #6393: Issue with roles and workflow with LDAP group.
  • Fixed Bug #6395: confirm_field error on Funnelback Manager.
  • Fixed Bug #6401: Script system_integrity_inconsistent_workflow_status.php not working in Oracle systems.
  • Fixed Bug #6405: Ecom Delivery Method not picking up the correct Checkout.
  • Fixed Bug #6415: Memcache locking not setting expiry properly.
  • Fixed Bug #6416: Deja_Vu causing intermittent failures with JS API when missconfigured.
  • Fixed Bug #6418: Single Calendar Event Create Form Layout does not work with %globals_get_var^as_asset:xxxx%.
  • Fixed Bug #6420: Context Configuration - Missing some Accept-Language request header for the Chrome.
  • Fixed Bug #6421: Public User Only for Root URLs to Send Cacheable Headers ignored.
  • Fixed Bug #6424: Custom Form "Send Submissions To Email" sending empty CSV.
  • Fixed Bug #6428: WYSIWYG insert table doesn't work as expected.
  • Fixed Bug #6432: Condtion "Server variable" throws error if string to match contains regex delimiter.
  • Fixed Bug #6435: Asset Listing Pages and NOTICE links.
  • Fixed Bug #6446: Asset map warning/error for JS to Applet calls affecting Use Me and Binocular function.

CMS

  • Fixed Bug #6392: Remote Content page, extra trailing & in url.
  • Fixed Bug #6417: Having a file upload field on the target content of Remote Content page can break.

Calendar

  • Fixed Bug #6399: Calendar Page %up_link% keyword gets printed as keyword format where it should just print nothing.
  • Fixed Bug #6406: Calendar Page "Description Popups" setting prints descriptions on load.
  • Fixed Bug #6410: Issues when using modifiers on the asset_metadata keyword on Upcoming Events List page.

E-Commerce

  • Fixed Bug #6038: 'Calculate Tax During Checkout' setting controls delivery fees calculation as well.

Data

  • Fixed Bug #6422: Large CSV Data Sources displayed with an asset listing fail when _nocache or _recache is used.

Web Services

  • Fixed Bug #6403: Incorrect links in the workflow email when using EES.
  • Fixed Bug #6414: REST Resource OAuth Session doesn't seem to return any errors.

A new script has been added to Squiz Matrix to morph an asset from from one asset type to another. This is useful when dealing with file and user asset types, for example, morphing a User asset into a Backend User asset.

The morph_assets.php script is found in the system's Scripts directory and takes the following parameters:

  • the root directory of your Squiz Matrix system.
  • the root ID to morph the child assets of.
  • the asset type code that you want to morph assets from.
  • the asset type code that you want to morph assets to.
  • --simulate: runs the script in simulation mode.

Usage of this script is as follows:

$ php scripts/morph_assets.php <SYSTEM_ROOT> 100 user backend_user --simulate 
Simulate Morphing assets...
Simulate Morph Asset #202
Finished simulating morphing assets. 1 of 1 user assets can be morphed to backend_user assets.
$ php scripts/morph_assets.php <SYSTEM_ROOT> 100 user backend_user

There are 1 user assets to morph, are you sure you want to continue? Type 'yes' to continue: yes
Morphing assets...
Morph Asset #202
Finished morphing assets. 1 of 1 user assets were morphed to backend_user assets.

This feature was kindly contributed by Nic Hubbard (http://www.zedsaid.com).

Custom Form: Allow Public Users to Save Form Submissions (#6306)

Squiz Matrix's Custom Form allows logged-in users to Save and Exit their form submission, retaining the content of their incomplete submission, which they can return to finish at a later time.

Previously, however, this functionality was not available for public users. This feature extends the Save and Exit function to also include public users, allowing them to save the content of a form submission to complete later.

When a public user saves their submission and exits the form, they will be sent an email, containing a link to return to the form and a password, allowing them to access and complete their submission.

This feature can be enabled and configured via the new Public User Incomplete Submission section on the Form Contents screen of the Custom Form's Form Contents asset.

The settings available allow you to configure the format of the Submission Retrieval Email for a public user, as well as the Submission Retrieval Message (displayed when the user Saves their form content) and Password Verification Form (when returning to a previously saved form).

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6187: New Option for the Backup Script to Exclude the Database.
  • Minor Enhancement #6197: Performance Improvement to system_integrity_invalid_links.php.
  • Minor Enhancement #6310: Comma-Separated List of Addresses on Email Forms Within Matrix.
  • Minor Enhancement #6323: Save As XML Submission Form Action: Sort Submission Answers Option.

Core

  • Fixed Bug #6299: Using a metadata field on the Set Future Status trigger action gives misleading results.
  • Fixed Bug #6300: Metadata relative date not saved.
  • Fixed Bug #6301: Redis cache can trigger a fatal error in transaction mode.
  • Fixed Bug #6308: YouTube videos embedded within Matrix assets will always auto-play.
  • Fixed Bug #6309: Purging trash with a requested purge root should fail if the root is not found.
  • Fixed Bug #6312: Circa option in the Date Form Question field is not working.
  • Fixed Bug #6314: The Test field's Max Char client-side validator not validating fully.
  • Fixed Bug #6315: Incorrect content type header breaking the front end page with WYSIWYG.
  • Fixed Bug #6317: Asset_Manager::getParents() throwing fatal db exception for a special scenario.
  • Fixed Bug #6325: Assets that use a Password field for sign-up throw undefined index: confirm_field error.
  • Fixed Bug #6332: Broken Links email are not getting sent.
  • Fixed Bug #6333: WYSIWYG editor doesn't work fully with IE10.
  • Fixed Bug #6336: Asset Map breaks when HTTP Only cookie option set.
  • Fixed Bug #6337: Script import_asset_csv_to_matrix.php sends regular output to STDERR.

CMS

  • Fixed Bug #6318: Custom Form non-Accessible still shows required asterisk.

Calendar

  • Fixed Bug #6327: Event assets don't print metadata in Upcoming Events page until any date value is printed.

Import Tools

  • Fixed Bug #6328: Import Bulk File tool ignores some supported file extensions.

Web Services

  • Fixed Bug #6307: SetRole does not work with Group ID.
  • Fixed Bug #6289: JS API: Batching using the setMetadataAllFields function doesn't work. 

A new trigger condition has been added to Squiz Matrix to evaluate whether the user who fired the trigger is an LDAP user or not.

When this condition is added, you can specify whether the condition is met if the user IS or IS NOT an LDAP user. This condition will match against any LDAP user types, including Simple Edit LDAP users, Backend LDAP users and regular LDAP users.

NOTICE Links for News Item Summary and Body (#6235)

NOTICE links within Squiz Matrix are created to indicate that something will be affected if the linked asset is deleted, for example, if an asset is the Index or Home Page of your site, or if an asset has been linked within the bodycopy content of another asset.

Previously, however, NOTICE links were not supported for linked assets within the Summary and Body content fields of News Item assets. This could cause potential issues with Safe Trash, which would look for any NOTICE links before deleting trashed items; no warning would be given.

This feature extends the usage of NOTICE links to also include links within News Items Summary and Body.

Multiple Payment Gateways on E-Commerce Checkout and Form Page Set Ups (#6375) 

When creating a new e-commerce system, payment gateways are specified to provide users with a secure system to pay for their items.

Previously, e-commerce systems within Squiz Matrix were restricted to a single payment gateway. This meant that users were not provided with the option to choose the payment method used to complete the payment process.

This feature introduces the ability of specifying multiple payment gateways on e-commerce systems configured within Squiz Matrix. 

As was previously, payment gateways are specified on either the Default Delivery Method or Ecommerce Form Page assets, depending on the e-commerce system that has been created. When specifying the payment methods available on these assets, a More... button will now be available, allowing you to create additional fields to specify multiple payment gateways. 

This feature has been introduced alongside the new PayPal Express Checkout payment option, in order to provide users with both PayPal and regular methods of payment.

New PayPal Express Checkout Payment Gateway (#6376) 

PayPal's Express Checkout payment method enables customers to complete transactions within PayPal, using their own shipping and billing information stored in their account.

This feature introduces the new PayPal Express Checkout Payment Gateway, allowing you to implement PayPal's express payment option within your own e-commerce systems within Squiz Matrix. 

The PayPal Express Checkout Payment Gateway allows you to enter the credentials of the API configured within your PayPal account and set the currency type and button image.

When a customer selects the items they want to purchase and enters the checkout process, they will be redirected to PayPal where they can log in and confirm their payment details; they will then be returned to Matrix where they can confirm this payment, to complete their e-commerce order. 

New SecurePay Direct Post Payment Gateway (#6385) 

Squiz Matrix's existing SecurePay eSec Payment Gateway asset allows users to create a payment solution in conjunction with SecurePay's now defunct eSec payment gateway.

This feature adds a new payment gateway for SecurePay's newer Direct Post payment solution.

The SecurePay Direct Post Payment Gateway allows you to connect with your SecurePay merchant account, configuring the settings of the payment gateway and defining its layout.

This new payment gateway is available to users within Australia and will accept American Express, Diners Club, JCB, MasterCard and VISA cards.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5966: Calendar Page: Support for the List Current Asset ID Session Variable.
  • Minor Enhancement #6183: SQ_PA_PASSWORD No Longer Emailed on Password Change.
  • Minor Enhancement #6233: Pre-Uploaded Files Listed in Alphabetical Order.
  • Minor Enhancement #6334: Modifier Support on Password Reset Page Error Keyword Replacement.
  • Minor Enhancement #6339: Broken Link Report to Follow External Redirect Links.
  • Minor Enhancement #6350: Keyword Modifier Support on nested_get Keywords.
  • Minor Enhancement #6353: New MIME Type Added for Scalable Vector Graphics (SVG).
  • Minor Enhancement #6358: Comma Support in GET, POST and Cookie Value Global Keywords.
  • Minor Enhancement #6364: Dynamic URL for Downloaded TRIM Records.
  • Minor Enhancement #6368: WYSIWYG Size Global Preference for Asset Attributes.
  • Minor Enhancement #6373: Global Keyword Replacements on a Squiz Matrix Login Design.
  • Minor Enhancement #6380: SOAP: WS-Security Password Digest Authentication.
  • Minor Enhancement #6384: Automatically Strip HTTP Protocol When Adding URL on a Site Asset.
  • Minor Enhancement #6387: Enhancements for Squiz Matrix on PHP 5.4.

Core

  • Fixed Bug #6178: Special characters and registry-R.
  • Fixed Bug #6297: Special UTF-8 characters.
  • Fixed Bug #6311: No Write access on Details screen of Metadata Selection Field; CSV Upload option remain selectable.
  • Fixed Bug #6326: Remote content URL tunneling; PHP notices.
  • Fixed Bug #6338: Asset Builder Page: Wrong image error.
  • Fixed Bug #6340: Set Index Page trigger does not allow all asset types like a Site's Details screen does.
  • Fixed Bug #6351: Embedded YouTube videos are not adhering to their settings.
  • Fixed Bug #6352: sq_wysiwyg_* tags are making it to the front-end since fix for Bug #6256.
  • Fixed Bug #6360: Globals keyword stripping encoded URL parameter.
  • Fixed Bug #6361: Editing a Send Submission Log Cron Job; Time of Next Run selection forgotten.
  • Fixed Bug #6363: Icon in the top right for Matrix Admin interface doesn't appear on IE10.
  • Fixed Bug #6366: Visual aid plugin for WYSIWYG Editor not working on IE10.
  • Fixed Bug #6367: remove_form_submission.php fails if submission folder has notice links.
  • Fixed Bug #6369: Online Quiz: Question types Datetime and Password break User Details form.
  • Fixed Bug #6372: Parameter 1 to Condition_Edit_Fns::paintEditInterface() expected to be a reference; Value given.
  • Fixed Bug #6378: REST Resource Trigger Action throws errors if triggered by running system script.
  • Fixed Bug #6383: Password Confirm field not respected when setting password.

CMS

  • Fixed Bug #6345: Account Manager Page's cron job to remove the pending accounts can deadlock the cron manager.
  • Fixed Bug #6556: Keywords "maxwords" and "wordcount" consider number words like "52" differently.
  • Fixed Bug #6357: Unable to save Answer Destination for Decision Tree Select Question's answers.
  • Fixed Bug #6365: Nested content div with arbitrary paint layout throws warning.

Calendar

  • Fixed Bug #6305: Text coding problem on Prev and Next links.

Data

  • Fixed Bug #6349: Using MYSQL database on the 'Execute DB query' Trigger action may break after upgrade to 4.14.0.

TRIM

  • Fixed Bug #6342: Required TRIM function parameter "Reserved" not sent by Matrix TRIM package.
  • Fixed Bug #6346: TRIM Saved Search does not refresh the "trim records" if no records are found in the TRIM.
  • Fixed Bug #6348: TRIM Saved Search throws error if search keyword contains "&" character.
  • Fixed Bug #6355: Record number in URL of TRIM downloaded file revert to URI.

Web Services

  • Fixed Bug #6362: SOAP Data Source is not working if the response using soap; as envelope.

Bug Fixes

  • 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 #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 #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 #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 #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.

CMS

  • 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.

Calendar

  • 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.

Data

  • 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.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6452: Asset Listing: Keyword Support for Link Value Filtering.
  • Minor Enhancement #6471: CSV Data Source Error Enhancement.
  • Minor Enhancement #6475: Asset Builder Page: CAPTCHA Enhancement.

Core

  • Fixed Bug #6313: Design Customisation no longer has independent status.
  • Fixed Bug #6396: Links Reports say HTTS URLs cannot be tested.
  • Fixed Bug #6440: HIPO Job getJob concurrency with load balanced read databases.
  • Fixed Bug #6445: Modifiers not run on metadata keywords in an Asset Listing.
  • Fixed Bug #6454: Check index script doesn't check rollback tables correctly.
  • Fixed Bug #6457: Cannot set the user's password on the Funnelback manager.
  • Fixed Bug #6460: Content-Disposition header of Matrix files has unquoted file name.
  • Fixed Bug #6461: Deja Vu issues and enhancements.
  • Fixed Bug #6462: Error checking for the as_asset keyword modifier can bombard error.log with warnings.
  • Fixed Bug #6463: Performance improvement to remove_form_submission.php script.
  • Fixed Bug #6465: Remote Content asset displays arbitrary URLs when no protocol set.
  • Fixed Bug #6467: The Clear Matrix Cache and Clear Squid Cache tools' Clear Now option doesn't work as expected.
  • Fixed Bug #6469: Zero(s) issue when exporting/importing assets.
  • Fixed Bug #6476: Replace keyword modifier strips regex characters.
  • Fixed Bug #6486: Uploading a pdf file with pdftohtml enabled shouldn't block content indexing if there is a minor error.

CMS

  • Fixed Bug #6443: After cloning a form sections need to be committed before displaying.

Data

  • Fixed Bug #6492: Data source JSON bypasses any proxy settings.   

Search

  • Fixed Bug #6964: Search and Replace tool can throw db error if replacing many assets.

Calendar

  • Fixed Bug #6451: Problem with cancelling a Recurring Calendar Event that occurs in the afternoon.
  • Fixed Bug #6488: Listing Calendar Events with the Event Search Page getting undefined object/function error.

Sharepoint

  • Fixed Bug #6491: Sharepoint CMIS issue when using a stored WSDL file.

Funnelback

  • Fixed Bug #6261: Funnelback REST Search Page passing parameters dot converted to underscore.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6285: Bulk Import Tool: Alphabetical Server File Import List.
  • Minor Enhancement #6302: New Root Nodes Keyword Replacement for Calendar Assets.
  • Minor Enhancement #6389: New Error Codes Added for File Upload.
  • Minor Enhancement #6397: Inconsistent Workflow Script Usage Extended to Safe Edit Approved to Go Live Assets.
  • Minor Enhancement #6434: Absolute URL for href Actions on Form Assets.
  • Minor Enhancement #6442: Calendar Search Page: New Hide Unlinked Navigational Text Option.

Core

  • Fixed Bug #6344: WYSIWYG background colour selector not working in IE.
  • Fixed Bug #6388: Image variety public url not picking up the correct base url.
  • Fixed Bug #6390: System config should check for the duplicate entries for "System Root URLs".
  • Fixed Bug #6391: Script "set_files_unrestricted.php" does not works in system with Deja Vu enabled.
  • Fixed Bug #6393: Issue with roles and workflow with LDAP group.
  • Fixed Bug #6395: confirm_field error on Funnelback Manager.
  • Fixed Bug #6401: Script system_integrity_inconsistent_workflow_status.php not working in Oracle systems.
  • Fixed Bug #6405: Ecom Delivery Method not picking up the correct Checkout.
  • Fixed Bug #6416: Deja_Vu causing intermittent failures with JS API when missconfigured.
  • Fixed Bug #6418: Single Calendar Event Create Form Layout does not work with %globals_get_var^as_asset:xxxx%.
  • Fixed Bug #6420: Context Configuration - Missing some Accept-Language request header for the Chrome.
  • Fixed Bug #6421: Public User Only for Root URLs to Send Cacheable Headers ignored.
  • Fixed Bug #6424: Custom Form "Send Submissions To Email" sending empty CSV.
  • Fixed Bug #6428: WYSIWYG insert table doesn't work as expected.
  • Fixed Bug #6432: Condtion "Server variable" throws error if string to match contains regex delimiter.
  • Fixed Bug #6435: Asset Listing Pages and NOTICE links.
  • Fixed Bug #6446: Asset map warning/error for JS to Applet calls affecting Use Me and Binocular function. 

CMS

  • Fixed Bug #6392: Remote Content page, extra trailing & in url.
  • Fixed Bug #6417: Having a file upload field on the target content of Remote Content page can break.

Calendar

  • Fixed Bug #6399: Calendar Page %up_link% keyword gets printed as keyword format where it should just print nothing.
  • Fixed Bug #6406: Calendar Page "Description Popups" setting prints descriptions on load.
  • Fixed Bug #6410: Issues when using modifiers on the asset_metadata keyword on Upcoming Events List page.

E-Commerce

  • Fixed Bug #6038: 'Calculate Tax During Checkout' setting controls delivery fees calculation as well.

Data

  • Fixed Bug #6422: Large CSV Data Sources displayed with an asset listing fail when _nocache or _recache is used.

Web Services

  • Fixed Bug #6403: Incorrect links in the workflow email when using EES.
  • Fixed Bug #6414: REST Resource OAuth Session doesn't seem to return any errors.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6183: SQ_PA_PASSWORD No Longer Emailed on Password Change.
  • Minor Enhancement #6233: Pre-Uploaded Files Listed in Alphabetical Order.
  • Minor Enhancement #6334: Modifier Support on Password Reset Page Error Keyword Replacement.
  • Minor Enhancement #6364: Dynamic URL for Downloaded TRIM Records.
  • Minor Enhancement #6373: Global Keyword Replacements on a Squiz Matrix Login Design.
  • Minor Enhancement #6387: Enhancements for Squiz Matrix on PHP 5.4.

Core

  • Fixed Bug #6178: Special characters and registry-R.
  • Fixed Bug #6297: Special UTF-8 characters.
  • Fixed Bug #6311: No Write access on Details screen of Metadata Selection Field; CSV Upload option remain selectable.
  • Fixed Bug #6326: Remote content URL tunneling; PHP notices.
  • Fixed Bug #6338: Asset Builder Page: Wrong image error.
  • Fixed Bug #6340: Set Index Page trigger does not allow all asset types like a Site's Details screen does.
  • Fixed Bug #6351: Embedded YouTube videos are not adhering to their settings.
  • Fixed Bug #6352: sq_wysiwyg_* tags are making it to the front-end since fix for Bug #6256.
  • Fixed Bug #6360: Globals keyword stripping encoded URL parameter.
  • Fixed Bug #6361: Editing a Send Submission Log Cron Job; Time of Next Run selection forgotten.
  • Fixed Bug #6363: Icon in the top right for Matrix Admin interface doesn't appear on IE10.
  • Fixed Bug #6366: Visual aid plugin for WYSIWYG Editor not working on IE10.
  • Fixed Bug #6367: remove_form_submission.php fails if submission folder has notice links.
  • Fixed Bug #6369: Online Quiz: Question types Datetime and Password break User Details form.
  • Fixed Bug #6372: Parameter 1 to Condition_Edit_Fns::paintEditInterface() expected to be a reference; Value given.
  • Fixed Bug #6378: REST Resource Trigger Action throws errors if triggered by running system script.
  • Fixed Bug #6383: Password Confirm field not respected when setting password.

CMS

  • Fixed Bug #6345: Account Manager Page's cron job to remove the pending accounts can deadlock the cron manager.
  • Fixed Bug #6556: Keywords "maxwords" and "wordcount" consider number words like "52" differently.
  • Fixed Bug #6357: Unable to save Answer Destination for Decision Tree Select Question's answers.
  • Fixed Bug #6365: Nested content div with arbitrary paint layout throws warning.

Calendar

  • Fixed Bug #6305: Text coding problem on Prev and Next links.

Data

  • Fixed Bug #6349: Using MYSQL database on the 'Execute DB query' Trigger action may break after upgrade to 4.14.0.

TRIM

  • Fixed Bug #6342: Required TRIM function parameter "Reserved" not sent by Matrix TRIM package.
  • Fixed Bug #6346: TRIM Saved Search does not refresh the "trim records" if no records are found in the TRIM.
  • Fixed Bug #6348: TRIM Saved Search throws error if search keyword contains "&" character.
  • Fixed Bug #6355: Record number in URL of TRIM downloaded file revert to URI.

Web Services

  • Fixed Bug #6362: SOAP Data Source is not working if the response using soap; as envelope.

Squiz Matrix's Custom Form allows logged-in users to Save and Exit their form submission, retaining the content of their incomplete submission, which they can return to finish at a later time.

Previously, however, this functionality was not available for public users. This feature extends the Save and Exit function to also include public users, allowing them to save the content of a form submission to complete later.

When a public user saves their submission and exits the form, they will be sent an email, containing a link to return to the form and a password, allowing them to access and complete their submission.

This feature can be enabled and configured via the new Public User Incomplete Submission section on the Form Contents screen of the Custom Form's Form Contents asset.

The settings available allow you to configure the format of the Submission Retrieval Email for a public user, as well as the Submission Retrieval Message (displayed when the user Saves their form content) and Password Verification Form (when returning to a previously saved form).

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6197: Performance Improvement to system_integrity_invalid_links.php.
  • Minor Enhancement #6310: Comma-Separated List of Addresses on Email Forms Within Matrix.
  • Minor Enhancement #6323: Save As XML Submission Form Action: Sort Submission Answers Option.

Core

  • Fixed Bug #6299: Using a metadata field on the Set Future Status trigger action gives misleading results.
  • Fixed Bug #6300: Metadata relative date not saved.
  • Fixed Bug #6301: Redis cache can trigger a fatal error in transaction mode.
  • Fixed Bug #6308: YouTube videos embedded within Matrix assets will always auto-play.
  • Fixed Bug #6309: Purging trash with a requested purge root should fail if the root is not found.
  • Fixed Bug #6312: Circa option in the Date Form Question field is not working.
  • Fixed Bug #6314: The Test field's Max Char client-side validator not validating fully.
  • Fixed Bug #6315: Incorrect content type header breaking the front end page with WYSIWYG.
  • Fixed Bug #6317: Asset_Manager::getParents() throwing fatal db exception for a special scenario.
  • Fixed Bug #6325: Assets that use a Password field for sign-up throw undefined index: confirm_field error.
  • Fixed Bug #6332: Broken Links email are not getting sent.
  • Fixed Bug #6333: WYSIWYG editor doesn't work fully with IE10.
  • Fixed Bug #6336: Asset Map breaks when HTTP Only cookie option set.
  • Fixed Bug #6337: Script import_asset_csv_to_matrix.php sends regular output to STDERR.

CMS

  • Fixed Bug #6318: Custom Form non-Accessible still shows required asterisk.

Calendar

  • Fixed Bug #6327: Event assets don't print metadata in Upcoming Events page until any date value is printed.

Import Tools

  • Fixed Bug #6328: Import Bulk File tool ignores some supported file extensions.

Web Services

  • Fixed Bug #6307: SetRole does not work with Group ID.
  • Fixed Bug #6289: JS API: Batching using the setMetadataAllFields function doesn't work. 

A new data source asset has been added to Squiz Matrix to make a SOAP call to a remote SOAP service and generate the data record sets based on the returned SOAP response. You can use either HTTP Basic or WS Username Token Header authentication types to access the SOAP service.

Like other data source assets, the SOAP Data Source will include standard features such as record filtering, data source keywords and dynamic inputs.

REST Resource: HTTP Request Digest Auth Authentication Type (#6136)

This feature introduces a new Digest Auth authentication type on the HTTP Request of Squiz Matrix's REST Resource assets.

Selecting this Authentication Type option will display new fields, allowing you to input the username and password for authentication.

E-Commerce: PayPal Payflo Pro Payment Gateway (#6208) 

Squiz Matrix's E-Commerce package contains a number of payment gateway options for your e-commerce setup, including the SecurePay eSec, Datacash, SagePay, DPS and uTransact payment gateways.

This feature introduces a new payment gateway for PayPal's Payflo Pro payment solution.

The Payflo Pro payment gateway differs from Matrix's existing PayPal payment gateway as, while the existing payment options redirect you to PayPal during the payment process, Payflow Pro is fully integrated into your site. This gives you complete control over the  look, feel and functionality of the payment process.

Currently, the PayPal Payflo Pro payment gateway will support credit and debit card payment processing only. The settings of the payment gateway allow you to configure the accepted card types, as well as the currency to use for the transfer.

Accessible Custom Form (#6228) 

Squiz Matrix's Custom Form asset allows you to create and manage a form to collect data and other information from your users, for example, a Contact Us form or a custom survey.

Previously, this asset used table tags to structure the questions and answers of the form. This, however, could potentially cause accessibility issues on the form.

This feature addresses these issues by introducing a new option on the Custom Form asset to output form content as WCAG 2.0 accessible HTML content rather than the standard tabular format. 

The new Accessible Format option can be configured on the Form Contents screen of the Custom Form's Form Contents asset. By default, this option will be enabled on all newly created Custom Form assets. Any existing forms on a system will retain their original format, with this option  disabled. 

This new option will present accessible HTML for the form and its questions in a semantic format, as well as the following additional accessibility features:

  • Improved default and Mollom CAPTCHA formats to meet accessibility standards.
  • Required questions are now marked in the label tag of the question.
  • Form question and CAPTCHA errors will now be displayed next to the corresponding fields. General form errors will continue to be displayed, by default, at the bottom of the form.
  • Tickbox Question: table format improved.
  • Date/Time Question: option to turn off JavaScript input assistance.
  • Password Question: configurable  titles for Password and Confirm Password fields.
  • Semantic summary used for the default Thank You page rather than tabular summary.

These accessibility features have also been extended to the eCommerce Form Page asset. 

REST Resource: Specify SSL Certificate and Key File Paths (#6238)

This feature introduces a number of new fields on the HTTP request of Squiz Matrix's REST Resource assets, allowing you to specify SSL certificate and Key file paths to be used on the request. This allows the REST assets to connect to web services that require 2WAY or Mutual SSL authentication.

This feature also includes a new check-box to force requests to made using HTTP/1.0 rather than 1.1. This is useful in some advanced configurations with older proxy servers that do not fully support HTTP/1.1.

New Remove Permissions Script (#6239)

Squiz Matrix's system_apply_permissions.php script is commonly used to apply permissions to a set of specified assets and their children, for example, granting Admin permissions. Previously, however, there was no script available to  remove permissions in the same efficient manner.

This feature introduces the new remove_permissions.php script, allowing you to remove the permissions of assets under a specified root node. This script takes the following parameters:

  • --system=<SYSTEM_ROOT>: the root directory of your Squiz Matrix system.
  • --rootnode=<ROOTNODES> : the asset IDs of the root nodes to be processed.
  • --includeuser=<INCLUDE_USERIDS> : an optional parameter allowing you to only remove permissions for a set of specified users.
  • --excludeuser=<EXCLUDE_USERIDS> : an optional parameter allowing you to specify a set of users to not remove  permissions for.
  • --type=<PERMISSION_TYPE> an optional parameter allowing you to specify the permission types to remove (1 for Read, 2 for Write, 3 for Admin).

An example usage of this script is outlined below. This example will remove any Write permissions on assets #100, #130, #205 and all their children; permissions will not be removed for user #65.

$ php remove_permissions.php --system=. --rootnode=100,130,205 --excludeuser=65 --type=2  

New Trigger Action: Urban Airship Push Notification (#6245) 

Urban Airship is a push messing and marketing solution providing management of push notifications to both IOS and Android mobile devices.

This feature introduces a new trigger action, allowing Squiz Matrix to integrate with Urban Airship, sending a push notification to a mobile device application.  

The Urban Airship Push Notification trigger action allows you to input the details of your Urban Airship API, as well as the push notification, itself. This includes Badge number, notification Sound and Alert message options, all of which support Squiz Matrix keyword replacements.

When a trigger is fired, this action will send the configured push notification to a mobile application, as specified within the settings of your Urban Airship configuration. 

This new trigger action can be set up in conjunction with any trigger event. As a result, push notifications can be utilised to be sent for a variety of purposes, for example, when an asset is updated, when workflow approval is required on an asset or when the status of an asset is changed.

As mentioned earlier, this feature was kindly contributed by Nic Hubbard (http://www.zedsaid.com).   

New Trigger Event: Tagging Update (#6253) 

Trigger events within Squiz Matrix define the actions that a trigger is listening for before it is fired. So, for example, you can configure your triggers to fire when an asset is created in the system or when the status of an asset is changed. Once an event fires a trigger, the configured conditions  are checked and, if approved, the specified actions on the trigger will be performed. 

This feature introduces a new trigger event that will fire a trigger when a tagging change is made to an asset, for example, when a tag is added, deleted or updated. The Asset Cloned trigger event can be selected when configuring the Details screen of a trigger.

Call REST Resource Submission Action: Response Validation Rule (#6264)

This feature adds a new Validation Rule section to the Call REST Resource form submission action. These settings allow you to enable validation on the REST call response, checking the HTTP response code or body against set validation rules.

If a response fails the validation process, the submission of the form will be stopped and a custom error message will be displayed to the user (also logged within Matrix).

Custom Form: Validation Rule Conditions (#6275)

For each question on a Custom Form page, validation rules can be configured to outline the requirements of a question. These can be Simple validation rules, such as, if an answer to the question is required, or Complex rules, such as, file type restrictions on a File Upload question.

This feature allows you to add Conditions to the validation rules you have configured on your form questions. These conditions give you the ability of only enabling a validation rule if a certain condition is met. 

For example, a restaurant booking form requires patrons to select a banquet option from the Set Menu question if a booking is made for groups of 8 or more people (specified in the No. of Guests question). This can be done using this new condition feature by configuring a validation rule on the Set Menu question to require a response if the response of the No. of Guests question is greater than seven (8 or more).

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6210: NOTICE Links for  Asset Attribute Link and Redirect URL Global Keywords.
  • Minor Enhancement #6217: New Script to Rename a Thesaurus Term. 
  • Minor Enhancement #6246: TRIM Saved Search: Access a File Using its Record Number. 
  • Minor Enhancement #6268: purge_trash.php Silent When Running From Cron. 
  • Minor Enhancement #6274: Matrix Export Assets to XML Tool: Root Asset ID Included in Export File Name. 
  • Minor Enhancement #6277: Improvements to the current_url() Function. 
  • Minor Enhancement #6280: Enhancement to Matrix Log File Rotation Process. 
  • Minor Enhancement #6290: Custom Form: Accessible CAPTCHA.

Core

  • Fixed Bug #6179: Ignore incompatible statuses on cascade status change.
  • Fixed Bug #6219: Instructions to change import directory are wrong.
  • Fixed Bug #6229: TRIM Saved Search downloading the record's file even if record has not been updated.
  • Fixed Bug #6248: Form submissions from public users not being properly logged when confirmation page used.
  • Fixed Bug #6249: Height's unit set for WYSIWYG in global preference not respected by WYSIWYG attribute.
  • Fixed Bug #6251: add_remove_url.php script can cause duplicate urls.
  • Fixed Bug #6252: replace_url.php script can add some unnecessary entries in the asset lookup table.
  • Fixed Bug #6256: Large pages with an embedded YouTube or movie may break Matrix stripping of sq_wysiwyg_* tags.
  • Fixed Bug #6258: Performance Manager HTML Invalid.
  • Fixed Bug #6259: Insert Link WYSIWYG plugin shows empty interface when logged in as LDAP Simple Edit User.
  • Fixed Bug #6260: Trigger Conditions and Actions lists should be in ABC order.
  • Fixed Bug #6266: Performance Mode glitch query time.
  • Fixed Bug #6267: System Tools should be in ABC order.
  • Fixed Bug #6269: Keyword modifiers do not work on %globals_X% keywords in email submission action.
  • Fixed Bug #6278: Problem with Keyword Modifiers ^json_encode.
  • Fixed Bug #6281: Possibility of asset getting into invalid workflow status.
  • Fixed Bug #6282: PDF put into Apply for Approval status shows warning.
  • Fixed Bug #6291: Unable to remove memcache cache if assetid/url indexes are corrupted.
  • Fixed Bug #6292: test_message can cause deadlocks.
  • Fixed Bug #6293: system_integrity_fix_char_encoding.php false warning on already encoded character.  

CMS

  • Fixed Bug #6242: Bug fix #5993 breaks upgraded form_email assets.

LDAP

  • Fixed Bug #6257: LDAP Attribute Setup should be performing case-insensitive matches for attribute names.

Import Tools

  • Fixed Bug #6250: Import script broken; connection cannot be closed.

Data

  • Fixed Bug #6244: Using MYSQL database on the DB Data Source Asset may break after upgrade to 4.14.0.

TRIM

  • Fixed Bug #6231: TRIM Saved Search not serving the latest file attached to the given record.

Web Services

  • Fixed Bug #6240: Make SOAP Call trigger action doesn't show ticked image when trigger locked.
  • Fixed Bug #6254: Undefined index error on the http_request attribute.
  • Fixed Bug #6271: Call REST Resource trigger action does not replace global keywords correctly.
  • Fixed Bug #6289: JS API: Batching using the setMetadataAllFields function doesn't work.

Squiz Matrix's Paint Layout asset allows you to configure conditional keywords, to display a variety of content based on a number of configurable conditions (e.g. asset status or user type). 

The SOAP API's getAssetAvailableKeywords() function (which is used to return the keywords available for use on a specified asset or asset type), however, was not able to return these conditional keywords that had been configured on an Paint Layout asset.

This feature introduces a new function on the Squiz Matrix SOAP API's Asset Service, to retrieve the keywords of a Paint Layout asset, including any configured conditional keywords.

The getPaintLayoutAvailableKeywords() function takes the following parameters:

  • AssetID: the asset ID of the Paint Layout to return available keywords of.
  • TypeCode: an optional parameter to specify a customised asset type format to return the available keywords for.

The format of the getPaintLayoutAvailableKeywords() function is as follows

<ns1:GetPaintLayoutAvailableKeywords>
<AssetID>123</AssetID>
<TypeCode>page_standard</TypeCode>
</ns1:GetPaintLayoutAvailableKeywords>

An example response is outlined below. Note that this function also returns the conditional keywords configured on the Paint Layout.

<ns1:GetPaintLayoutAvailableKeywordsResponse>
<GetPaintLayoutAvailableKeywordsResult>asset_assetid</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>asset_contents</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>asset_created</GetPaintLayoutAvailableKeywordsResult>
...
<GetPaintLayoutAvailableKeywordsResult>begin_condition_1</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>begin_condition_1%&lt;br /&gt;%else_condition_1%&lt;br /&gt;%end_condition_1</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>condition_1</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>else_condition_1</GetPaintLayoutAvailableKeywordsResult>
<GetPaintLayoutAvailableKeywordsResult>end_condition_1</GetPaintLayoutAvailableKeywordsResult>
</ns1:GetPaintLayoutAvailableKeywordsResponse> 

Bulkmail Subscribe Page: Custom Verification Email Subject Header (#6180) 

Squiz Matrix's Bulkmail Subscribe Page asset allows your users to subscribe and unsubscribe to bulkmail emails.

As part of this subscription process, an optional verification email can be configured, requiring users to confirm when subscribing or unsubscribing from bulkmail. Previously, however, the subject header for this verification email was unable to be manually configured; by default, the subject of the email was: Please confirm your subscription / unsubscription request.

This feature adds a new Verify Email Subject to the Details screen of the Bulkmail Subscribe Page, allowing you to configure a custom subject line for verification emails. 

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6175: Enhancement to User Subscriptions for Bulkmail Users.
  • Minor Enhancement #6181: Link Asset: Relation Attribute is Indexed and Searchable.
  • Minor Enhancement #6193: Asset Listing: Enhancement to the Exclude Asset/Root Node Settings. 
  • Minor Enhancement #6194: Redis Cache Storage: Improved Error Handling and Persistent Connection.
  • Minor Enhancement #6196: Calendar Package: Improved Performance for Base Query Generation.
  • Minor Enhancement #6205: Workflow Approval on the Editing of Metadata.
  • Minor Enhancement #6206: Sort Metadata Schemas Alphabetically on Metadata Screen. 
  • Minor Enhancement #6207: Show in Asset Map Icon to Highlight Current Asset Only. 

Core

  • Fixed Bug #6164: pdftohtml integration can cause Matrix to hang.
  • Fixed Bug #6176: Image variety URL charcount is always detected as > 0 if image has at least 1 image variety. 
  • Fixed Bug #6177: rollback_management script throwing PHP errors when deleting file versioning entries.
  • Fixed Bug #6182: Design customisation isn't found when created outside of Designs Folder.
  • Fixed Bug #6189: Access History design area throws PHP/Matrix warnings.
  • Fixed Bug #6192: Old up for review workflows cause fatal error.
  • Fixed Bug #6211: Accessing  "./?a" URL with an non-existent lineage can cause fatal error.
  • Fixed Bug #6215: Matrix permits site URLs with trailing spaces under certain conditions.
  • Fixed Bug #6220: Deleting a File asset in Safe Edit will display HIPO errors.

LDAP

  • Fixed Bug #6184: Ldap_Bridge->getChildren() does not returns members defined by the group.

Import Tools

  • Fixed Bug #6218: Downloading export.tgz twice should be possible.

TRIM

  • Fixed Bug #6185: Invalid XML returned by TRIM service can cause Matrix fatal error.
  • Fixed Bug #6188: Issues when accessing TRIM service over https using Matrix TRIM saved search.
  • Fixed Bug #6226: "Container Title" for a record empty in Trim Saved Search using Trim 7.3. 

Web Services

  • Fixed Bug #6216: EAccelerator breaks API Documentation.

The User IP Condition restriction can be used to specify an IP range rule on a user account to determine its user groups. Previously, this condition only supported Internet Protocol Version 4 (IPv6) IP addresses.

This feature adds support for IPv6 IP addresses when setting the User IP Condition on a user account.

New Script to Regenerate the Asset File Contents (#5939)

A new script has been added to Squiz Matrix to regenerate the asset file contents within the system. This includes metadata files, design files and bodycopy content files.

The regenerate_file_systems.php script is found in the system's Scripts directory and takes the following parameters:

  • --system=<SYSTEM_ROOT> : the root directory of your Squiz Matrix system.
  • --rootnode=<ROOT_NODE> : the root node you wish to regenerate the file contents from.
  • --designs : specifies to only regenerate design files.
  • --metadata : specifies to only regenerate metadata files.
  • --bodycopies : specifies to only regenerate bodycopy content files.
  • --all : specifies to regenerate all file content (metadata, design and bodycopy content files).

Usage of this script is as follows:

$ php scripts/regenerate_file_system.php --system=<SYSTEM_ROOT> --rootnode=100 --all
 
Retrieving Asset Data                   [DONE]
Processing Designs                      [DONE]
Processing Metadata                     [DONE]
Processing Bodycopies                   [DONE]  

New Trigger Action: Clear Session Var (#6082)   

Trigger actions allow you to specify tasks that will be performed when a fired trigger meets a specified set of conditions. Squiz Matrix boasts an extensive array of trigger actions that are available, from creating new assets to updating your twitter status.

This feature introduces a brand new trigger action to clear Squiz Matrix sandbox session variables. 

The Clear Session Vars trigger action can be configured on the Details screen of a trigger and allows you to clear sandbox session variables on the system, or to identify particular session variable(s) to clear, specified by either name or prefix.

This new trigger action compliments and can be used in conjunction with the existing Set Session Var trigger action, to store a value in a session-level array temporarily, before removing the variable. 

Additionally, this action can be used to clear session variables created by form submission actions, such as the Make SOAP Call action, addressing an issue previously reported within Matrix (#6058).  

Redis Cache Storage (#6100)  

This feature introduces new Redis cache storage for Squiz Matrix. Redis (http://redis.io/) is a  data structure store similar to memcache, but supports additional data structure types/operations and is extremely efficient.

Redis outperforms memcache cache storage when large numbers of cache objects are created for individual assets (e.g. by viewing different URLs). This is due to a limitation with existing memcache cache storage that introduces performance hits in such situations.

There is no known disadvantage of using Redis cache storage when compared with memcache.  

TRIM Saved Search: Convert Result Fields from URI to Full Title (#6107)   

The TRIM Saved Search asset allows you to configure a set of TRIM search criteria in Squiz Matrix, storing and updating the results of the search on the system.

Previously, search results returned on the TRIM Saved Search would return result fields (such as AuthorAssignee and Creator) as URIs (TRIM's internal ID). This is, however, not ideal as these URIs would not make sense when displayed on the frontend.

This feature will automatically convert result fields to to their full titles. The fields covered are as followed: recCreatorLoc, recOwnerLoc, recAuthorLoc, recClientLoc, recCurrentLoc, recHomeLoc, recOtherLoc, recPrimaryContactLoc, recRepresentLoc, recAssignee.

Additional Changes and Bug Fixes

Minor Enhancements 

  • Minor Enhancement #5922: Fix Character Encoding Script Enhancements.
  • Minor Enhancement #6073: Import From XML Script: New Param to Force the Creation of Dependant Assets.
  • Minor Enhancement #6078: New Option to Disable the Password Confirmation Field for Password Asset Attributes.
  • Minor Enhancement #6097: Remove Internal Message Script: New Param to Remove by Asset ID.
  • Minor Enhancement #6102: Multi-Page Custom Form Performance Enhancement.
  • Minor Enhancement #6103: WYSIWYG Insert Link Plug-in: Populate Global Keywords When Linking Searched Asset.
  • Minor Enhancement #6111: Option to Set Empty Filter Value to Return all Records on a Data Source Asset. 

Core

  • Fixed Bug #6054: Cannot attach thumbnail to Data Record asset.
  • Fixed Bug #6069: Safe edit file assets are generating invalid /__data URLs on live pages. 
  • Fixed Bug #6070: Custom Form XML Export does not work with nested sections.
  • Fixed Bug #6076: Could not locate asset (#123).
  • Fixed Bug #6093: Calendar Event Search Page returns no results when a date field is not present on front-end.
  • Fixed Bug #6094: Script system_integrity_fix_char_encoding.php not handling the serialised data correctly.
  • Fixed Bug #6095: Cache CSS File option not working correctly for CSS File Customisation.
  • Fixed Bug #6099: Non-existent linkid scheduled to deleted by Future Lineage cron job will deadlock the Cron Manager.
  • Fixed Bug #6104: Asset manager getChildren() function not returning the correct children for Root Folder asset.
  • Fixed Bug #6105: Asset Counter report asset does works with shadow asset type code if no root node is specified.
  • Fixed Bug #6110: File in safe edit failed to display local Matrix URL for logged in user in some case.
  • Fixed Bug #6112: IE8 WYSIWYG select list item and insert link could cause popup warning.
  • Fixed Bug #6113: Set Metadata Value trigger action fails when setting default value.
  • Fixed Bug #6116: Create Image functionality of the WYSIWYG fails in IE. 
  • Fixed Bug #6117: system_integrity_orphaned_assets.php script will now run system wide.
  • Fixed Bug #6119: maxwords keyword modifier removes commas.

CMS

  • Fixed Bug #6090: Can't download/export Custom Form submission over HTTPS using IE7 and IE8.

LDAP

  • Fixed Bug #6089: Error when running ldap_change_dn.php script in the Oracle db.

Import Tools

  • Fixed Bug #6043: CDATA not escaped in hipo_job_export_assets_to_xml.
  • Fixed Bug #6048: hipo_job_export_assets_to_xml code path should export design parse files.
  • Fixed Bug #6056: hipo_job_export_assets_to_xml shouldn't export shadow links.
  • Fixed Bug #6057: hipo_job_export_assets_to_xml breaks on non utf-8 characters.
  • Fixed Bug #6075: Import from XML Tool reports erroneous XML if the XML content doesn't have proper line breaks.

Data

  • Fixed Bug #6068: Using DSN string in Form Action Run DB Query doesn't work for Oracle.
  • Fixed Bug #6081: Updating the Data Source asset's result set dynamically can output incorrect data Recordset items.

TRIM

  • Fixed Bug #6108: TRIM / Sharepoint Saved Search asset syncronise button issue.
  • Fixed Bug #6109: TRIM Saved Search search term grouping logic issue.

Web Services

  • Fixed Bug #6115: REST Response trigger condition does not include the required file defining the base class.

This feature introduces a new css_safe keyword modifier to return a keyword string that is suitable for use as an HTML class or ID. This in turn can then be used as a CSS selector.

Example usage of this new keyword modifier is as follows:

EXAMPLE : %asset_name^css_safe%
EFFECT : 'Welcome to Squiz Matrix!' > 'Welcome_to_Squiz_Matrix' 

New SOAP API System Service to Display the  Matrix Version Number (#6055) 

A new SOAP API System Service has been added to manage  the system functions of  Squiz Matrix's SOAP Server. This asset can be accessed via the Web Services menu within the asset creation menu and is enabled on the Details screen of the SOAP Server, in the same manner as the existing SOAP API services.

The SOAP API System Service currently manages the new getMatrixVersion() function, that will return the Squiz Matrix version number of the current system.

This function takes no parameters; it's usage is as follows:

<SOAP-ENV:Body>
<ns1:GetMatrixVersion />
</SOAP-ENV:Body>

When run, this function will display the version number of your system within the SOAP response, like so:

<ns1:GetMatrixVersionResponse>
<MatrixVersion>4.14.1</MatrixVersion>
</ns1:GetMatrixVersionResponse>

SOAP API: New Function to Retrieve the Thesaurus Tags of an Asset (#6072)

Assets within Squiz Matrix can be tagged with user-created thesaurus  terms to classify content within common categories. These tags can then be used in conjunction with other assets within the system, for example, on a Related Asset Listing Page to display assets associated with one another.

This feature introduces a new function on the Squiz Matrix SOAP API Asset Service, to retrieve the thesaurus terms that have been tagged on an asset.

The getTags() function takes the following parameters:

  • AssetID: the ID of the asset to retrieve the tagged terms of.
  • ThesaurusIDs: this optional parameter allows you to filter the returned tagged terms to a specific Thesaurus asset(s) (defined by asset ID).

The format of the getTags() function is as follows:

<ns1:GetTags>
    <AssetID>86</AssetID>
    <ThesaurusID>132</ThesaurusID>
</ns1:GetTags>

A example response for this function is outlined below. The tags returned will display their tag ID, name, weight and link ID, as well as the ID of the Thesaurus the tagged term is under.

<ns1:GetTagsResponse>
  <GetTagsResult>
    <TagID>132:4</TagID>
    <TagName>News</TagName>
    <ThesaurusID>132</ThesaurusID>
    <Weight>1</Weight>
    <LinkID>290</LinkID>
  </GetTagsResult>
  <GetTagsResult>
    <TagID>132:9</TagID>
    <TagName>Australia</TagName>
    <ThesaurusID>132</ThesaurusID>
    <Weight>1</Weight>
    <LinkID>312</LinkID>
  </GetTagsResult>
</ns1:GetTagsResponse>

Calendar Event Search Page: New Upcoming Events Fuzzy Option (#6127)

The Events Date Filter Configuration settings on a Calendar Event Search Page allow you to set the date query fields for filtering event search results.

Whilst configuring these settings, you can choose to include a drop-down or checkbox field of pre-defined date values for users to input the date filter (Fuzzy Dropdown and Fuzzy Checkbox). Values available using these options include Today, Next WeekPrevious Month and This Year etc.

This minor enhancements adds a new fuzzy option available in these fields: Upcoming Events. This option allows you to define an Event Horizon that users can select to filter the event search results (by default, 180 days).  

This enhancement has been added to allow you to configure a Calendar Event Search Page that will allow users to conveniently search for any upcoming events.

REST Resource JavaScript: Pre-Process Global Keywords (#6157) 

The REST Resource JavaScript asset is used by Squiz Matrix to communicate with web services exposing themselves using Representational State Transfer (REST) methods, using JavaScript processing of the REST response.

This feature introduces a new Pre-Process Matrix Global Keywords option on the JavaScript Processing settings of the REST Resource JavaScript asset, allowing global keyword (%globals_XXX%) to be evaluated prior to running JavaScript. By default, this option is disabled.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5950: Current Instance Keywords Listed on Recurring Event Format.
  • Minor Enhancement #6001: JavaScript API: %results_id_*% Keyword Replaced on All Arguments.
  • Minor Enhancement #6012: Performance Enhancement to url_manager.inc. 
  • Minor Enhancement #6041: LDAP Connection Timeout Enhancement.
  • Minor Enhancement #6083: Workflow System  Notifies Users Involved in Current Stream. 
  • Minor Enhancement #6121: TRIM Saved Search: Additional Support for TRIM 7.3. 
  • Minor Enhancement #6129: Matrix Asset ID URL Translation at the Global Level. 
  • Minor Enhancement #6138: Sanitise Global GET/POST Variable Keywords when Using Modifiers. 
  • Minor Enhancement #6139: TRIM Saved Search: Additional Support for TRIM 7.3. 
  • Minor Enhancement #6147: JavaScript API batchRequest Function: Result Keywords Not Replaced on Page Load. 
  • Minor Enhancement #6152: PostgreSQL Standard Observed for PDO::quote() Function. 
  • Minor Enhancement #6155: New Script to Detect Assets with an Inconsistent Workflow Status. 
  • Minor Enhancement #6168: Listing Assets: Modifier Support on all Keyword Replacements.  
  • Minor Enhancement #6170: Enhancements to the export_to_xml.php Script. 

Core

  • Fixed Bug #6012: Performance Enhancement to the url_manager Script. 
  • Fixed Bug #6120: Wrong keywords matching.
  • Fixed Bug #6122: Broken HTML in http_request.inc.
  • Fixed Bug #6128: Select fields in custom forms don't show the "selected" attribute for the default option value.
  • Fixed Bug #6131: Purging an incorrecrly configured datasoruce asset can throw warnings.
  • Fixed Bug #6135: Files get served under the incorrect/random URL for logged in user
  • Fixed Bug #6141: Incorrect user identified in emails and logs when locks forcibly aquired.  
  • Fixed Bug #6150: EES creates asset with blank web path.
  • Fixed Bug #6156: %context_switcher% keyword not working in SEI.
  • Fixed Bug #6160: webPathsInUse() $return_alternatives, doesn't.
  • Fixed Bug #6162: test_message.php fails pg_stat_activity query in Postgres 9.2.
  • Fixed Bug #6163: Script remove_internal_message.php and rollback_management.php can throwing php warnings.
  • Fixed Bug #6166: Changing a content type in bodycopy div can create invalid rollback table entries. 

CMS

  • Fixed Bug #6154: Cannot remove layout defined for 'arbitrary Paint Layout' on Nest Content Content Type.
  • Fixed Bug #6159: Form contents outputted more than once does not prints the form questions.

Search

  • Fixed Bug #6132: Unable to create Search Page asset with default metadata field value (keywords) referencing the asset.
  • Fixed Bug #6148: Matrix doesn't follow the minimum word length rule for WYSIWYG metadata fields.
  • Fixed Bug #6151: Matrix Search will delete indexed data for Online Quiz Submission asset when re-indexing.

Calendar

  • Fixed Bug #6153: Calendar JS date chooser popup window position problem in IE.

Import Tools

  • Fixed Bug #6144: Import from XML HIPO should be able to import assets with parse files.
  • Fixed Bug #6145: Importing design assets with nest content customisations produces DB error.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6197: Performance Improvement to system_integrity_invalid_links.php.

Core

  • Fixed Bug #6299: Using a metadata field on the Set Future Status trigger action gives misleading results.
  • Fixed Bug #6300: Metadata relative date not saved.
  • Fixed Bug #6308: YouTube videos embedded within Matrix assets will always auto-play.
  • Fixed Bug #6309: Purging trash with a requested purge root should fail if the root is not found.
  • Fixed Bug #6312: Circa option in the Date Form Question field is not working.
  • Fixed Bug #6314: The Test field's Max Char client-side validator not validating fully.
  • Fixed Bug #6315: Incorrect content type header breaking the front end page with WYSIWYG.
  • Fixed Bug #6317: Asset_Manager::getParents() throwing fatal db exception for a special scenario.
  • Fixed Bug #6325: Assets that use a Password field for sign-up throw undefined index: confirm_field error.
  • Fixed Bug #6332: Broken Links email are not getting sent.
  • Fixed Bug #6333: WYSIWYG editor doesn't work fully with IE10.
  • Fixed Bug #6336: Asset Map breaks when HTTP Only cookie option set. 
  • Fixed Bug #6337: Script import_asset_csv_to_matrix.php sends regular output to STDERR.

Calendar

  • Fixed Bug #6327: Event assets don't print metadata in Upcoming Events page until any date value is printed.

Import Tools

  • Fixed Bug #6328: Import Bulk File tool ignores some supported file extensions.

Web Services

  • Fixed Bug #6307: SetRole does not work with Group ID.
  • Fixed Bug #6289: JS API: Batching using the setMetadataAllFields function doesn't work.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6210: NOTICE Links for Asset Attribute Link and Redirect URL Global Keywords.
  • Minor Enhancement #6217: New Script to Rename a Thesaurus Term.

Core

  • Fixed Bug #6179: Ignore incompatible statuses on cascade status change.
  • Fixed Bug #6219: Instructions to change import directory are wrong.
  • Fixed Bug #6229: TRIM Saved Search downloading the record's file even if record has not been updated.
  • Fixed Bug #6248: Form submissions from public users not being properly logged when confirmation page used.
  • Fixed Bug #6249: Height's unit set for WYSIWYG in global preference not respected by WYSIWYG attribute.
  • Fixed Bug #6252: replace_url.php script can add some unnecessary entries in the asset lookup table.
  • Fixed Bug #6256: Large pages with an embedded YouTube or movie may break Matrix stripping of sq_wysiwyg_* tags.
  • Fixed Bug #6258: Performance Manager HTML Invalid.
  • Fixed Bug #6259: Insert Link WYSIWYG plugin shows empty interface when logged in as LDAP Simple Edit User.
  • Fixed Bug #6260: Trigger Conditions and Actions lists should be in ABC order.
  • Fixed Bug #6266: Performance Mode glitch query time.
  • Fixed Bug #6267: System Tools should be in ABC order.
  • Fixed Bug #6269: Keyword modifiers do not work on keywords in email submission action.
  • Fixed Bug #6278: Problem with Keyword Modifiers ^json_encode.
  • Fixed Bug #6281: Possibility of asset getting into invalid workflow status.
  • Fixed Bug #6282: PDF put into Apply for Approval status shows warning.
  • Fixed Bug #6291: Unable to remove memcache cache if assetid/url indexes are corrupted.
  • Fixed Bug #6292: test_message can cause deadlocks.
  • Fixed Bug #6293: system_integrity_fix_char_encoding.php false warning on already encoded character.  

CMS

  • Fixed Bug #6242: Bug fix #5993 breaks upgraded form_email assets.

LDAP

  • Fixed Bug #6257: LDAP Attribute Setup should be performing case-insensitive matches for attribute names.

Import Tools

  • Fixed Bug #6250: Import script broken; connection cannot be closed.

TRIM

  • Fixed Bug #6231: TRIM Saved Search not serving the latest file attached to the given record.

Web Services

  • Fixed Bug #6240: Make SOAP Call trigger action doesn't show ticked image when trigger locked.
  • Fixed Bug #6254: Undefined index error on the http_request attribute.
  • Fixed Bug #6271: Call REST Resource trigger action does not replace global keywords correctly.
  • Fixed Bug #6289: JS API: Batching using the setMetadataAllFields function doesn't work.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6175: Enhancement to User Subscriptions for Bulkmail Users.
  • Minor Enhancement #6193: Asset Listing: Enhancement to the Exclude Asset/Root Node Settings. 
  • Minor Enhancement #6196: Calendar Package: Improved Performance for Base Query Generation.

Core

  • Fixed Bug #6164: pdftohtml integration can cause Matrix to hang.
  • Fixed Bug #6176: Image variety URL charcount is always detected as > 0 if image has at least 1 image variety. 
  • Fixed Bug #6177: rollback_management script throwing PHP errors when deleting file versioning entries.
  • Fixed Bug #6182: Design customisation isn't found when created outside of Designs Folder.
  • Fixed Bug #6189: Access History design area throws PHP/Matrix warnings.
  • Fixed Bug #6192: Old up for review workflows cause fatal error.
  • Fixed Bug #6211: Accessing "./?a" URL with an non-existent lineage can cause fatal error.
  • Fixed Bug #6215: Matrix permits site URLs with trailing spaces under certain conditions.
  • Fixed Bug #6220: Deleting a File asset in Safe Edit will display HIPO errors.

LDAP

  • Fixed Bug #6184: Ldap_Bridge->getChildren() does not returns members defined by the group.

Import Tools

  • Fixed Bug #6218: Downloading export.tgz twice should be possible.

TRIM

  • Fixed Bug #6185: Invalid XML returned by TRIM service can cause Matrix fatal error.
  • Fixed Bug #6188: Issues when accessing TRIM service over https using Matrix TRIM saved search.
  • Fixed Bug #6226: "Container Title" for a record empty in Trim Saved Search using Trim 7.3. 

Web Services

  • Fixed Bug #6216: EAccelerator breaks API Documentation.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6001: JavaScript API: %results_id_*% Keyword Replaced on All Arguments.
  • Minor Enhancement #6041: LDAP Connection Timeout Enhancement.
  • Minor Enhancement #6121: TRIM Saved Search: Additional Support for TRIM 7.3.
  • Minor Enhancement #6138: Sanitise Global GET/POST Variable Keywords when Using Modifiers.
  • Minor Enhancement #6139: TRIM Saved Search: Additional Support for TRIM 7.3.

Core

  • Fixed Bug #6120: Wrong keywords matching.
  • Fixed Bug #6122: Broken HTML in http_request.inc.
  • Fixed Bug #6128: Select fields in custom forms don't show the "selected" attribute for the default option value.
  • Fixed Bug #6131: Purging an incorrectly configured datasource asset can throw warnings.
  • Fixed Bug #6135: Files get served under the incorrect/random URL for logged in user
  • Fixed Bug #6141: Incorrect user identified in emails and logs when locks forcibly acquired.  
  • Fixed Bug #6150: EES creates asset with blank web path.
  • Fixed Bug #6156: %context_switcher% keyword not working in SEI.
  • Fixed Bug #6160: webPathsInUse() $return_alternatives, doesn't.
  • Fixed Bug #6162: test_message.php fails pg_stat_activity query in Postgres 9.2.
  • Fixed Bug #6163: Script remove_internal_message.php and rollback_management.php can throwing php warnings.
  • Fixed Bug #6166: Changing a content type in bodycopy div can create invalid rollback table entries. 

CMS

  • Fixed Bug #6154: Cannot remove layout defined for 'arbitrary Paint Layout' on Nest Content Content Type.
  • Fixed Bug #6159: Form contents outputted more than once does not prints the form questions.

Search

  • Fixed Bug #6132: Unable to create Search Page asset with default metadata field value (keywords) referencing the asset.
  • Fixed Bug #6148: Matrix doesn't follow the minimum word length rule for WYSIWYG metadata fields.
  • Fixed Bug #6151: Matrix Search will delete indexed data for Online Quiz Submission asset when re-indexing.

Calendar

  • Fixed Bug #6153: Calendar JS date chooser popup window position problem in IE.

Import Tools

  • Fixed Bug #6144: Import from XML HIPO should be able to import assets with parse files.
  • Fixed Bug #6145: Importing design assets with nest content customisations produces DB error.

Trigger actions allow you to specify tasks that will be performed when a fired trigger meets a specified set of conditions. Squiz Matrix boasts an extensive array of trigger actions that are available, from creating new assets to updating your twitter status.

This feature introduces a brand new trigger action to clear Squiz Matrix sandbox session variables. 

The Clear Session Vars trigger action can be configured on the Details screen of a trigger and allows you to clear sandbox session variables on the system, or to identify particular session variable(s) to clear, specified by either name or prefix.

This new trigger action compliments and can be used in conjunction with the existing Set Session Var trigger action, to store a value in a session-level array temporarily, before removing the variable. 

Additionally, this action can be used to clear session variables created by form submission actions, such as the Make SOAP Call action, addressing an issue previously reported within Matrix (#6058).   

TRIM Saved Search: Convert Result Fields from URI to Full Title (#6107)   

The TRIM Saved Search asset allows you to configure a set of TRIM search criteria in Squiz Matrix, storing and updating the results of the search on the system.

Previously, search results returned on the TRIM Saved Search would return result fields (such as AuthorAssignee and Creator) as URIs (TRIM's internal ID). This is, however, not ideal as these URIs would not make sense when displayed on the frontend.

This feature will automatically convert result fields to to their full titles. The fields covered are as followed: recCreatorLoc, recOwnerLoc, recAuthorLoc, recClientLoc, recCurrentLoc, recHomeLoc, recOtherLoc, recPrimaryContactLoc, recRepresentLoc, recAssignee.

Additional Changes and Bug Fixes

Minor Enhancements 

  • Minor Enhancement #6073: Import From XML Script: New Param to Force the Creation of Dependant Assets.
  • Minor Enhancement #6078: New Option to Disable the Password Confirmation Field for Password Asset Attributes.
  • Minor Enhancement #6102: Multi-Page Custom Form Performance Enhancement.
  • Minor Enhancement #6103: WYSIWYG Insert Link Plug-in: Populate Global Keywords When Linking Searched Asset.
  • Minor Enhancement #6111: Option to Set Empty Filter Value to Return all Records on a Data Source Asset.  

Core 

  • Fixed Bug #6054: Cannot attach thumbnail to Data Record asset.
  • Fixed Bug #6069: Safe edit file assets are generating invalid /__data URLs on live pages.
  • Fixed Bug #6070: Custom Form XML Export does not work with nested sections.
  • Fixed Bug #6076: Could not locate asset (#123).
  • Fixed Bug #6093: Calendar Event Search Page returns no results when a date field is not present on front-end.
  • Fixed Bug #6094: Script system_integrity_fix_char_encoding.php not handling the serialised data correctly.
  • Fixed Bug #6095: Cache CSS File option not working correctly for CSS File Customisation.
  • Fixed Bug #6099: Non-existent linkid scheduled to deleted by Future Lineage cron job will deadlock the Cron Manager.
  • Fixed Bug #6104: Asset manager getChildren() function not returning the correct children for Root Folder asset.
  • Fixed Bug #6105: Asset Counter report asset does works with shadow asset type code if no root node is specified.
  • Fixed Bug #6110: File in safe edit failed to display local Matrix URL for logged in user in some case.
  • Fixed Bug #6112: IE8 WYSIWYG select list item and insert link could cause popup warning.
  • Fixed Bug #6113: Set Metadata Value trigger action fails when setting default value.
  • Fixed Bug #6116: Create Image functionality of the WYSIWYG fails in IE.
  • Fixed Bug #6117: system_integrity_orphaned_assets.php script will now run system wide.
  • Fixed Bug #6119: maxwords keyword modifier removes commas. 

CMS

  • Fixed Bug #6090: Can't download/export Custom Form submission over HTTPS using IE7 and IE8.

LDAP

  • Fixed Bug #6089: Error when running ldap_change_dn.php script in the Oracle db.

Import Tools

  • Fixed Bug #6043: CDATA not escaped in hipo_job_export_assets_to_xml.
  • Fixed Bug #6048: hipo_job_export_assets_to_xml code path should export design parse files.
  • Fixed Bug #6056: hipo_job_export_assets_to_xml shouldn't export shadow links.
  • Fixed Bug #6057: hipo_job_export_assets_to_xml breaks on non utf-8 characters.
  • Fixed Bug #6075: Import from XML Tool reports erroneous XML if the XML content doesn't have proper line breaks.

Data

  • Fixed Bug #6068: Using DSN string in Form Action Run DB Query doesn't work for Oracle.
  • Fixed Bug #6081: Updating the Data Source asset's result set dynamically can output incorrect data Recordset items.

TRIM

  • Fixed Bug #6108: TRIM / Sharepoint Saved Search asset syncronise button issue.
  • Fixed Bug #6109: TRIM Saved Search search term grouping logic issue.

Web Services

  • Fixed Bug #6115: REST Response trigger condition does not include the required file defining the base class.

The Squiz Matrix Import From XML system script, is used to perform actions passed to it in the form of an import file (this can include the creation of assets, setting metadata, or any other actions that are available when creating a trigger).

This feature addresses the following two issues or limitations with the import_from_xml.php script, providing improvements to its performance:

  • Previously, when using this script, invalid links could be left when the import process was aborted. This was due to the entire script being run as a single transaction. This would require Matrix's linking system to abort the entire transaction, leaving any links in the database that it had previously inserted as reserves.

    This feature modifies this script to use single transactions for individual actions, rather than for the entire script. This will eradicate the risk of invalid links when the import process is aborted, especially when dealing with larger imports.

    Additionally, this  change means that, as assets are now created while the script is running, failure at any point will not negate its previous actions. So, for example, if your script has been running for a significant period of time and fails towards the end of its run, all previous work by this script will be preserved. Users will only need to rerun the script for the actions that failed to initially complete.
  • Previously, this script would create all assets within a single process. As a result, the script  could potentially consume extensive memory on the database, leading to memory failure.

    This feature modifies the way this script creates assets so that each import action is processed in a single thread, closed when the action is completed. This will ensure that memory used by each action is freed once it is finished.

    Please note, however, that this adjustment may result in the script running slower than previously. This is due to the overhead of forking actions to each new thread. Despite this, we believe this fix was necessary and improves the processing of this script, which will now be able to handle larger import jobs that it previously couldn't. 

SOAP API: New Function to Set the Web Path of an Asset (#6044)  

Squiz Matrix's SOAP API Asset Service manages the asset functions of the SOAP Server including the creation and editing of assets, statuses and tags.

This feature introduces the new setAssetWebPaths() function to this asset service, to set the web path(s) of an asset. This function takes the following parameters:

  • AssetID: the ID of the asset to set the web path(s) of.
  • Path: the web path to set on the asset.
  • AddRemaps: whether or not to automatically add remaps for web paths that are changed. 

An example usage of this script is as follows:

<SetAssetWebPaths xmlns="~/_web_services/soap">
<AssetID xsi:type="xsd:string">1598</AssetID>
<Path xsi:type="xsd:string">home</Path>
<AddRemaps xsi:type="xsd:boolean">false</AddRemaps>
</SetAssetWebPaths>  

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #6013: Improved Error Handling When Uploading an Empty Design Parse File.
  • Minor Enhancement #6017: Asset Counter Report Now Supports Shadow Asset Counts.
  • Minor Enhancement #6036: JS API Enhancement to the getRoles() Operation.

Core

  • Fixed Bug #5997: Mollom sometimes fails and only renders half of a page
  • Fixed Bug #6015: Rollback Management Tool interface has a useless Effective Date selector.
  • Fixed Bug #6020: Matrix will throw warnings if assets selected as excluded root nodes are deleted.
  • Fixed Bug #6021: Update Twitter Status trigger action cannot authenticate.
  • Fixed Bug #6026: Remote Content Page shares same cookies for different users, regression bug.
  • Fixed Bug #6028: Minor error handling fix, undefined effective_designid error when logging.
  • Fixed Bug #6029: WYSIWYG's Table Editor plugin adds border colour "#99CCFF" style to the table cells.
  • Fixed Bug #6032: Importing files using File Bridge import tool in the backend throws warnings. 
  • Fixed Bug #6033: Bug when purging a workflow schema that is still applied to assets and running.
  • Fixed Bug #6034: A pagination issue in the Role Assignment screen for User/User Group. 
  • Fixed Bug #6037: Design Customisation should be exclusively linked to design. 
  • Fixed Bug #6040: Show Diff preview issue if diff markup tags wrap unclosed tags. 
  • Fixed Bug #6042: Error in Update Twitter Status trigger action. 
  • Fixed Bug #6052: Changing  web path can create an infinite remap loop. 

LDAP

  • Fixed Bug #6031: LDAP Data Source doesn't handle attributes that exist in one object but not another.

Data

  • Fixed Bug #6016: Trigger - Execute DB Query wraps keywords with too many single quotes.

Web Services

  • Fixed Bug #6046: SOAP deleteAssetLink() does not remove web path if deleting last asset link.

The Filter Frontend User Input global preference allows you to filter front end user inputs in forms such as Asset Builders and Custom Forms. This filtering will strip script tags and keyword replacements, and escape html from user inputs.

This option improves the security of your system by eradicating the risk of such inputs that, in rare cases, can affect the backend operations of Squiz Matrix, causing unexpected and potentially adverse behaviour.

This feature extends this functionality to also include both Text (both single and multiple) and WYSIWYG metadata field types when filtering user inputs. When this option is enabled, any user inputs of these types will be filtered to protect your system.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5927: Improved Performance on LDAP Bridge's getParents() Function.
  • Minor Enhancement #5952: New SSL Verification Option on the Remote Content Asset.
  • Minor Enhancement #5956: Custom Form Sections Now Respect Parent Form's Asset Status.
  • Minor Enhancement #5968: Multiple NOTICE Linked Child Images Now Permitted on Assets.
  • Minor Enhancement #5969: Global Keyword Replacement Support on Custom Form Default Values.
  • Minor Enhancement #5972: Enhancements to the WYSIWYG Editor's Handling of Quote Characters.
  • Minor Enhancement #5973: Disabling Squiz Matrix's Proxy Settings  Sets the libcurl Proxy Parameter to Null.
  • Minor Enhancement #5978: Improved Handling of WYSIWYG Formatting on Multiple Block Elements.
  • Minor Enhancement #5984: Enhancements to the Interface Mode Trigger Condition.
  • Minor Enhancement #5985: Autocomplete Attribute on E-Commerce Payment Gateway Fields. 
  • Minor Enhancement #5986: Problematic Char Report on system_integrity_fix_char_encoding.php Script.
  • Minor Enhancement #5987: Cron Manager: Set Max Future Year.
  • Minor Enhancement #5988: Force Secure Option Maintained on Cloned Assets.
  • Minor Enhancement #5994: Improved Error Handling on the as_asset Keyword Modifier. 
  • Minor Enhancement #5998: Security Enhancement: APIs Blocked from Returning Passwords.
  • Minor Enhancement #6005: SOAP API: GetAssetAvailableKeywords for Asset Type Code. 

Core

  • Fixed Bug #5908: Cache Manager root node specific issues when clicking the 'Customize' label.
  • Fixed Bug #5932: Minor issues with Show Diff option on the Preview screen.
  • Fixed Bug #5951: Test Run on a SOAP submission action throws errors.
  • Fixed Bug #5958: Saving table properties with empty values creates invalid code.
  • Fixed Bug #5962: Hit Count Asset Listing Page - more than one root node.
  • Fixed Bug #5967: Single quote/apostrophe in the alt attribute of an image breaks the Insert Image plugin. 
  • Fixed Bug #5975: Deleting a listing page's Group Format folder breaks the page. 
  • Fixed Bug #5976: replace_url.php throws uncaught exception on some sites. 
  • Fixed Bug #5977: WYSIWYG Insert Link plugin not uploading link's value when asset type is changed. 
  • Fixed Bug #5979: Unable to create Custom Form with a default metadata value referencing the asset. 
  • Fixed Bug #5981: Lookup updates result in missing URLs in Rollback mode. 
  • Fixed Bug #5990: Filter Frontend User Input throws errors in Asset Builders when entering matrix keywords.
  • Fixed Bug #5992: Style attribute unnecessarily added when editing table properties in the WYSIWYG editor. 
  • Fixed Bug #5995: Typo in the System Configuration - Global Preferences screen for Comment Preferences. 
  • Fixed Bug #5996: Clear Squid Caching tool should always clear a top level URL with a trailing slash.
  • Fixed Bug #6002: Request concurrency issue with PHP can cause failure to login.   

CMS

  • Fixed Bug #5993: Keywords not working in Custom Form's email option "Reply-To" field.

Search

  • Fixed Bug #5991: Empty stored search issues.

Calendar

  • Fixed Bug #5980: Rolling Calendar Page has 'Array' written at the top.

E-Commerce

  • Fixed Bug #5964: Keyword replacements in the E-Commmerce REST Resource action always includes a tax value. 

Data

  • Fixed Bug #5970: The RSS Data Source asset unexpectedly removes white spaces. 

Web Services

  • Fixed Bug #5945: Inconsistency with the parameters that are passed to JS API functions (advanced mode).
  • Fixed Bug #6000: getKeywordsReplacements() used within a batchRequest() won't take array of keywords.
As of this release, a token parameter is now present in every HTTP POST request to Simple Edit URLs for validation purposes. While this won't affect most users, it could potentially impact custom Simple Edit implementations that involve directly sending POST requests to Simple Edit URLs instead of submitting the Simple Edit form.

The token must be added to all POST requests as a POST parameter. The token can be found in the Simple Edit form element as a hidden input and is valid per session.

If you are using EES/Edit+ please upgrade to build 1858. Prior versions of EES/Edit+ will not save content or be able to upload files as Squiz Matrix now expects this token parameter to exist in HTTP POST requests to Simple Edit URLs. Please review the compatibility guide for more information.

Featured Changes

When a user account is placed up for review within Squiz Matrix, users will be prompted to change their current Squiz Matrix password on a Change Password screen.

Previously, the design of this screen was not configurable. This feature adds new functionality, allowing you to set a custom Change Password design.

The System Defined Password Change Design options can be found on the Settings screen of an asset. These tools work in a similar manner to the System Defined Login Design, enabling you to override the default design of the Change Password screen for the asset, automatically cascaded to any children. 

When users log on to the system and require a password change, the Change Password screen will use the custom design, specified in the System Defined Password Change Design settings.

This feature has been added to complement the other custom log-in designs within Squiz Matrix.  

New Trigger Action to Schedule a Bulkmail Job

A new trigger action has been added to Squiz Matrix to schedule a Job to be run when a trigger is fired.

The Schedule Bulkmail Job trigger action can be configured to override the default settings of a selected Bulkmail Job, allowing you to instead send the asset that fired the trigger (or an asset of your selection), as well as selecting the recipients of the job.  

You are also able to enable the Subscription Filter on the selected Bulkmail Job, specifying whether to use the Bulkmail Job's set subscription filters or to override these filters. This is a new feature to the Bulkmail Package which is outlined in more detail below.

This feature has been added to provide users with additional implementation options for their Bulkmail set ups. 

Bulkmail Job: New Scheduling Settings Screen

Squiz Matrix's Bulkmail Job asset defines the content and recipients of a bulkmail configuration. Previously, for a Bulkmail Job to be run, users would have to manually change the asset's status or use the schedule_bulkmail_job.php script.

This feature adds new settings to the Bulkmail Job asset, allowing you to enable and configure automatic scheduling of your jobs.

The Bulkmail Job Scheduling screen allows you to enable scheduling for the job and provide a start date. You can then specify the frequency of how often the job should be run (either hourly, daily, weekly, monthly, yearly or not at all).  

Once enabled, the Bulkmail Job will be queued to run at the specified start date and time, and then continue to run subsequently at the specified frequency.

This feature has been added to provide users with effortless scheduling of the jobs within their bulkmail configurations.

Bulkmail Job: New User Subscription Screen

We have one more new screen that has now been added to the Bulkmail Job asset, this time allowing you to configure user subscriptions for the jobs within your bulkmail configuration.

The new User Subscriptions screen allows you to enable user subscriptions for your Bulkmail Job. When subscriptions are enabled, categories can be created, comprised of Asset Metadata Field rules to match a user asset's metadata against a specified value. 

User Subscriptions utilise the use of a Search Page asset to query a selection of assets using the matched subscription metadata value. Assets returned on these searches will then be sent (individually) to the users within the corresponding subscription category.

For example, you could create a location subscription category, matching metadata values such as Sydney and Melbourne. The Search Page would search these queries, and return a selection of articles for these users, sending them content appropriate to their location.

Call REST Resource Completion Action on E-Commerce Checkout Page

The Custom Form Page's Call REST Resource submission action is used to communicate with a web service exposing itself using Representational State Transfer (REST) methods, upon submission of a form.

This functionality has been extended to the E-Commerce package's Checkout Page asset via a new Call REST Resource completion action that will call a REST resource server after the checkout process has successfully been completed on an e-commerce order.  

The Call REST Resource action can be configured on a new Checkout Completion Actions screen of a Checkout Page asset. This screen is similar to the Submission Actions screen of a Custom Form.

Like the form submission action, the Call REST Resource allows you to configure the HTTP request to the REST web server, passing details of the e-commerce order within the request body content (incl. the order summary, the delivery form responses and the individual item details).

The completion action also allows you to set custom parameters for Product asset types on a new Order Array keyword, as well as configure the Error Response Notification Email for non-2xx responses from the REST server.

REST Resource JavaScript - V8 JS Engine

Current the REST Resource JavaScript asset only allows you to use the SpiderMonkey JS engine to execute JS commands. This feature introduces the option of using the V8 engine, if the PECL V8js extension installed.

Additional SAML Options for User Linking and Creation

In this month's releases of Matrix, we unveiled federated access management single sign-on and identity verification through our new SAML Account Manager asset. This feature adds further options to this asset, allowing you to set the linking settings for users (automated in current release), as well as allow Matrix to automatically create linked local users during the authentication process.

The Allow Linking to Existing Users and Automatic Creation options are available on the Details screen of the SAML Account Manager. 

By default, linking to existing users is enabled. This means that is a user is logged in to Squiz Matrix and their account is SAML authenticated, the SAML Account Manager will prompt the user to link their accounts, if they have not yet been. This linking allows for federated access to the system, automatically signing the user into their account as part of the SAML authentication process.

The Automatic Creation option handles the creation of linked local users when a user is not logged into Matrix. By default, this is a manual process, with users being allowed to create a new user account during SAML authentication. Enabling this option will automate this creation, skipping this manual process.

This feature has been added to provide users with more options for configuring SAML federated access management on their systems.

OAuth Session: Redirect to Authorise, Store Access Token

Squiz Matrix's REST Resource OAuth assets allow you to define the parameters for OAuth authentication when communicating with an OAuth secure REST web service. This feature introduces additional parameters, allowing you to redirect users to an external authorisation page and providing the option of permanently store the access token.

The Redirect to Authorise and Store Access Token options are available on the Details screen of REST Resource OAuth assets. 

By default, neither of these options will be enabled.

Enabling the Redirect to Authorise option will redirect a user to the service provider's authorisation page to authorise the request token instead of simply nesting the authorisation form within Squiz Matrix.

The Store Access Token option allows you to permanently store the access token. By default, this token is stored in the session, meaning that when a user logs out, the token will be lost. Permanently storing this token will prevent users from having to reauthorise in each user session. Disabling this option will remove any permanently stored tokens.

These features have been added to bring Squiz Matrix OAuth more in line with established authentication standards.

New Keyword to Print the ID of a Paint Layout on an Asset

A new keyword replacement has been added to Squiz Matrix to print the asset ID of the paint layout on an asset.

%asset_paint_layout_id% 

This keyword will print the asset ID of the Paint layout applicable for the asset on the current URL, whether asset-based, URL-based or user-defined.

This keyword can be used in conjunction with the as_asset keyword modifier which dynamically supplies an asset ID (in this case, of a Paint Layout) on a set asset_keyword. This will allow users to expose the properties and attributes of a Paint Layout within an asset's content.

%asset_paint_layout_id^as_asset:asset_name% 

The above keyword format, for example, would print the name of the asset's Paint Layout.

New Context  Functionality on JavaScript API

Five new operations have been added to provide new Context functionality on the JavaScript API. These functions can get enabled via the new Get Contexts and Set Context options on the Details screen of the JS API. 

The getAlternateContext() operation will retrieve the appropriate alternate context on the system, applicable to the current situation (e.g. site URL) based on an evaluation of a context's conditions.

The getCurrentContext() operation will retrieve the current context active on the system.

The getAllContexts() operation will retrieve all contexts that have been defined on the system.

These three operations each take the following parameters:  

  • all_info: a boolean determining whether to return all information for returned contexts. By default, these operations will return just the name and ID of contexts.
  • dataCallback: the custom callback function.

The setContext() operation sets the system to a supplied context. This operation takes the following parameters:

  • context_id: the ID of the context you want to activate on the system.
  • dataCallback: the custom callback function.

Lastly, the restoreContext() operation restores the system to the previously set context. This can be used, for example, in conjunction with the setContext() operation.

These new operations have been added to enhance the usage of the JavaScript API, providing new functionality for contexts within Squiz Matrix.

Performance Mode Enhancements

The following enhancements have been made to Squiz Matrix's Performance Mode:

  • Performance mode will now display the time spent on queries, together with the number of queries.
  • Fixed issue where some queries (those called with getXX() style functions) were being repeatedly counted. 

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5728: Improved Error Handling for Invalid Paths on Installation Step Scripts.
  • Minor Enhancement #5730: Rollback Truncation on Automatic System Upgrade.
  • Minor Enhancement #5845: Asset Builder Selectable Create Location Enhancements.
  • Minor Enhancement #5852: Memcache Session Handler Support on Site Network Assets.
  • Minor Enhancement #5861: Improved Error Handling for Malformed PDF Uploads.
  • Minor Enhancement #5875: Update Twitter Status Action Upgraded to Support Twitter API 1.1.
  • Minor Enhancement #5881: Enhancements to the system_integrity_fix_char_encoding.php Script. 
  • Minor Enhancement #5888: Remote Content Asset URL Tunnelling Option Warning.
  • Minor Enhancement #5889: New JS API Function to Return Metadata Schema Info. 
  • Minor Enhancement #5907: Enhancements to the system_integrity_fix_char_encoding.php Script.
  • Minor Enhancement #5913: Contextable Related Asset Metadata Fields.

Core

  • Fixed Bug #5828: The reindexSearchIndex.php script consumes too much memory. 
  • Fixed Bug #5833: Can't download File Assets over HTTPS using IE7 and IE8.
  • Fixed Bug #5844: matrixsqlclient breaks terminal. 
  • Fixed Bug #5871: Matrix emailing the workflow initiator from previous workflow process when asset pushed to Live.
  • Fixed Bug #5876: Issue with Metadata values when Deja Vu enabled. 
  • Fixed Bug #5887: %globals_asset_contents:XXXX% produces different result between protocols.
  • Fixed Bug #5894: import_file.php script errors.
  • Fixed Bug #5895: Cancel Safe Edit status / clone asset via JS API with filter frontend user option turned on does unnecessarily escape HTML to entities.  
  • Fixed Bug #5896: SQ_CONF_REDIRECT_URL_WITH_TRAILING_SLASH redirects infinitely for a ROOT URL which is not listed main.inc.
  • Fixed Bug #5897: Getting count of internal messages does an unnecessary join.
  • Fixed Bug #5898: Viewing an inbox - improvements.
  • Fixed Bug #5900: %created_assetid% is not working with keyword modifier.
  • Fixed Bug #5904: Custom Form current_page_content keyword doesn't do JS frontend validation.
  • Fixed Bug #5906: Matrix ./?a=xxx url does not work when used inside the keywords. 
  • Fixed Bug #5911: Typos in source comments.

CMS

  • Fixed Bug #5901: Setting Form Submission asset LIVE can result in loss of all the answers.

Search

  • Fixed Bug #5864: Using special characters in Oracle Search generates unescaped characters in file names.

LDAP

  • Fixed Bug #5882: Unable to acquire locks on 'Inbox' of LDAP user with \, in CN.

Calendar

  • Fixed Bug #5866: Events search not sorting when sorting by the asset attribute value.
  • Fixed Bug #5893: Run Level not restored failing to save the attributes of calendar event modification.

Data

  • Fixed Bug #5902: RSS Data Source timeout error for some feeds.

Web Services

  • Fixed Bug #5877: SOAP Server asset sends proper HTTP authentication header.
  • Fixed Bug #5883: Oath and POST REST call problem.
  • Fixed Bug #5884: JS API calls to getAttributes on div content assets that contain keywords get evaluated. 
  • Fixed Bug #5890: JS API throws "Unable to get value of the property '0': object is null or undefined".

Squiz Matrix's Google Maps package allows you to embed Google Maps within your site that your users can view and navigate with. These maps can contain a variety of map type options, plotted locations and other functionality. 

Google is currently in the process of depreciating version 2 of its Google Maps JavaScript API after the new release of version 3 of the API. As a result, the Google Maps package within Matrix has been upgraded to this release.

Changes resulting from this upgrade include:

  • A number of configuration options on the Details screen of the Google Map asset are now automated by Google Maps and are no longer available.
  • The Street View overlay functionality (including the related keyword replacements) are no longer available. The Google Maps API now uses the familiar peg man feature to initiate Street View.
  • Google Earth is no longer supported. This includes the Moon Elevation, Moon Visible, Mars Infrared and Sky Visible map types. These options will no longer be available for selection.
  • Mouse zoom scrolling is no longer customisable, it is enabled by default.
  • The map initialisation code has been modified.

The resulting functionality is a more accessible and intuitive mapping experience.

Most users should be able to continue using their existing implementations without complication. Users using functionality that has been removed, however, should review their implementations and make any necessary modifications before upgrading your system.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #4989: Enhancements to Metadata WYSIWYG Field Type.
  • Minor Enhancement #5234: Folder Linking Under Data Record Assets.
  • Minor Enhancement #5769: Image Asset __data and local URL enhancements.
  • Minor Enhancement #5917: Context Synchronisation on the JavaScript API.
  • Minor Enhancement #5923: Script Password Check Enhancements.
  • Minor Enhancement #5935: New Keyword on the E-Commerce 'Call REST Resource' Completion Action.
  • Minor Enhancement #5963: New Ignore Editable Attribute Parameter on the setMetadata() Function.

Core

  • Fixed Bug #5827: Can't use WYSIWYG metadata when there are multiple type code choices on Asset Builder.
  • Fixed Bug #5899: Lookup Settings screen assetid unchecked.
  • Fixed Bug #5903: Set Session Var Trigger Action , current asset ID error.
  • Fixed Bug #5916: Thesaurus Term linking issues.
  • Fixed Bug #5920: Import from XML tool breaks on CR.
  • Fixed Bug #5931: Cache folder hashing method breaks with a low num_cache_dirs setting.
  • Fixed Bug #5934: File.inc does not doublequote content-disposition filename header. 
  • Fixed Bug #5938: Deleting just one of the many Thesarus Term links removes the asset tagging.
  • Fixed Bug #5940: Cloning multiple assets sorts them backwards under parent.
  • Fixed Bug #5942: Issue using an 'asset_lineage' design area along with login page.
  • Fixed Bug #5943: If the cron job is scheduled to run immediately, it will never be picked up under certain scenarios.
  • Fixed Bug #5947: XML Data source dynamic inputs re-encodes, re-emerging bug.
  • Fixed Bug #5949: Paint Layout ID keyword does not reset global SQ_PAINT_LAYOUT_ID after printing.
  • Fixed Bug #5953: Workflow approval invitation not sent if approver's requests workflow.
  • Fixed Bug #5957: The system_update_lookups.php script is lengthy when preparing the assetid list to update lookups.
  • Fixed Bug #5960: Remote content page got errors on POST/GET variables from array style input. 

Search

  • Fixed Bug #5930: Search List throws fatal error when using a non-admin user. 

LDAP

  • Fixed Bug #5919: getParents() infinite recursion when cycles in LDAP structure.
  • Fixed Bug #5928: LDAP Bridge Auth Filter fails when the filter string has valid surrounding parentheses. 

Bulkmail

  • Fixed Bug #5847: Bulkmail job does not correctly check for duplicate mails in its queue.
  • Fixed Bug #5936: The 'Schedule Bulkmail Job' trigger action doesn't queue up the job as expected.
  • Fixed Bug #5954: Using a Select Metadata field for Bulkmail Subscription doesn't match a user's subscriptions. 

E-Commerce

  • Fixed Bug #5921: The total_tax keyword on the E-Commerce Checkout Page receipt shouldn't show negative integers for excluded countries.

Web Services

  • Fixed Bug #5918: SOAP API services have strange column name in Interface Settings.
  • Fixed Bug #5924: Make SOAP Call Action fails to show all the response keywords.
  • Fixed Bug #5948: Difference of behaviour between actual execution and Run Test for Make Soap Call Actions.

SAML

  • Fixed Bug #5946: SAML Account Manager return location, redirect order glitch.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6103: WYSIWYG Insert Link Plug-in: Populate Global Keywords When Linking Searched Asset.

Core

  • Fixed Bug #6054: Cannot attach thumbnail to Data Record asset.
  • Fixed Bug #6069: Safe edit file assets are generating invalid /__data URLs on live pages.
  • Fixed Bug #6070: Custom Form XML Export does not work with nested sections.
  • Fixed Bug #6076: Could not locate asset (#123).
  • Fixed Bug #6093: Calendar Event Search Page returns no results when a date field is not present on front-end.
  • Fixed Bug #6094: Script system_integrity_fix_char_encoding.php not handling the serialised data correctly.
  • Fixed Bug #6095: Cache CSS File option not working correctly for CSS File Customisation.
  • Fixed Bug #6099: Non-existent linkid scheduled to deleted by Future Lineage cron job will deadlock the Cron Manager.
  • Fixed Bug #6104: Asset manager getChildren() function not returning the correct children for Root Folder asset.
  • Fixed Bug #6105: Asset Counter report asset does works with shadow asset type code if no root node is specified.
  • Fixed Bug #6110: File in safe edit failed to display local Matrix URL for logged in user in some case.
  • Fixed Bug #6112: IE8 WYSIWYG select list item and insert link could cause popup warning.
  • Fixed Bug #6113: Set Metadata Value trigger action fails when setting default value.
  • Fixed Bug #6116: Create Image functionality of the WYSIWYG fails in IE.
  • Fixed Bug #6117: system_integrity_orphaned_assets.php script will now run system wide.
  • Fixed Bug #6119: maxwords keyword modifier removes commas. 

CMS

  • Fixed Bug #6090: Can't download/export Custom Form submission over HTTPS using IE7 and IE8.

LDAP

  • Fixed Bug #6089: Error when running ldap_change_dn.php script in the Oracle db.

Import Tools

  • Fixed Bug #6043: CDATA not escaped in hipo_job_export_assets_to_xml.
  • Fixed Bug #6048: hipo_job_export_assets_to_xml code path should export design parse files.
  • Fixed Bug #6056: hipo_job_export_assets_to_xml shouldn't export shadow links.
  • Fixed Bug #6057: hipo_job_export_assets_to_xml breaks on non utf-8 characters.
  • Fixed Bug #6075: Import from XML Tool reports erroneous XML if the XML content doesn't have proper line breaks.

Data

  • Fixed Bug #6068: Using DSN string in Form Action Run DB Query doesn't work for Oracle.
  • Fixed Bug #6081: Updating the Data Source asset's result set dynamically can output incorrect data Recordset items.

TRIM

  • Fixed Bug #6108: TRIM / Sharepoint Saved Search asset syncronise button issue.
  • Fixed Bug #6109: TRIM Saved Search search term grouping logic issue.

Web Services

  • Fixed Bug #6115: REST Response trigger condition does not include the required file defining the base class.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #6017: Asset Counter Report Now Supports Shadow Asset Counts.
  • Minor Enhancement #6036: JS API Enhancement to the getRoles() Operation.

Core

  • Fixed Bug #5997: Mollom sometimes fails and only renders half of a page
  • Fixed Bug #6015: Rollback Management Tool interface has a useless Effective Date selector.
  • Fixed Bug #6020: Matrix will throw warnings if assets selected as excluded root nodes are deleted.
  • Fixed Bug #6021: Update Twitter Status trigger action cannot authenticate.
  • Fixed Bug #6026: Remote Content Page shares same cookies for different users, regression bug.
  • Fixed Bug #6028: Minor error handling fix, undefined effective_designid error when logging.
  • Fixed Bug #6029: WYSIWYG's Table Editor plugin adds border colour "#99CCFF" style to the table cells.
  • Fixed Bug #6032: Importing files using File Bridge import tool in the backend throws warnings. 
  • Fixed Bug #6033: Bug when purging a workflow schema that is still applied to assets and running.
  • Fixed Bug #6034: A pagination issue in the Role Assignment screen for User/User Group. 
  • Fixed Bug #6037: Design Customisation should be exclusively linked to design. 
  • Fixed Bug #6040: Show Diff preview issue if diff markup tags wrap unclosed tags. 
  • Fixed Bug #6042: Error in Update Twitter Status trigger action. 
  • Fixed Bug #6052: Changing web path can create an infinite remap loop. 

LDAP

  • Fixed Bug #6031: LDAP Data Source doesn't handle attributes that exist in one object but not another.

Data

  • Fixed Bug #6016: Trigger - Execute DB Query wraps keywords with too many single quotes.

Web Services

  • Fixed Bug #6046: SOAP deleteAssetLink() does not remove web path if deleting last asset link.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5956: Custom Form Sections Now Respect Parent Form's Asset Status.
  • Minor Enhancement #5984: Enhancements to the Interface Mode Trigger Condition.
  • Minor Enhancement #5986: Problematic Char Report on system_integrity_fix_char_encoding.php Script.
  • Minor Enhancement #5988: Force Secure Option Maintained on Cloned Assets.
  • Minor Enhancement #5998: Security Enhancement: APIs Blocked from Returning Passwords.

Core

  • Fixed Bug #5908: Cache Manager root node specific issues when clicking the 'Customize' label.
  • Fixed Bug #5932: Minor issues with Show Diff option on the Preview screen.
  • Fixed Bug #5951: Test Run on a SOAP submission action throws errors.
  • Fixed Bug #5958: Saving table properties with empty values creates invalid code.
  • Fixed Bug #5962: Hit Count Asset Listing Page - more than one root node.
  • Fixed Bug #5967: Single quote/apostrophe in the alt attribute of an image breaks the Insert Image plugin. 
  • Fixed Bug #5975: Deleting a listing page's Group Format folder breaks the page. 
  • Fixed Bug #5976: replace_url.php throws uncaught exception on some sites. 
  • Fixed Bug #5977: WYSIWYG Insert Link plugin not uploading link's value when asset type is changed. 
  • Fixed Bug #5979: Unable to create Custom Form with a default metadata value referencing the asset. 
  • Fixed Bug #5981: Lookup updates result in missing URLs in Rollback mode. 
  • Fixed Bug #5990: Filter Frontend User Input throws errors in Asset Builders when entering matrix keywords.
  • Fixed Bug #5992: Style attribute unnecessarily added when editing table properties in the WYSIWYG editor. 
  • Fixed Bug #5995: Typo in the System Configuration - Global Preferences screen for Comment Preferences. 
  • Fixed Bug #5996: Clear Squid Caching tool should always clear a top level URL with a trailing slash. 
  • Fixed Bug #6002: Request concurrency issue with PHP can cause failure to login.  

CMS

  • Fixed Bug #5993: Keywords not working in Custom Form's email option "Reply-To" field.   

Search

  • Fixed Bug #5991: Empty stored search issues.

Calendar

  • Fixed Bug #5980: Rolling Calendar Page has 'Array' written at the top.

E-Commerce

  • Fixed Bug #5964: Keyword replacements in the E-Commmerce REST Resource action always includes a tax value. 

Data

  • Fixed Bug #5970: The RSS Data Source asset unexpectedly removes white spaces. 

Web Services

  • Fixed Bug #5945: Inconsistency with the parameters that are passed to JS API functions (advanced mode).
  • Fixed Bug #6000: getKeywordsReplacements() used within a batchRequest() won't take array of keywords.

Squiz Matrix's Google Maps package allows you to embed Google Maps within your site that your users can view and navigate with. These maps can contain a variety of map type options, plotted locations and other functionality. 

Google is currently in the process of depreciating version 2 of its Google Maps JavaScript API after the new release of version 3 of the API. As a result, the Google Maps package within Matrix has been upgraded to this release.

Changes resulting from this upgrade include:

  • A number of configuration options on the Details screen of the Google Map asset are now automated by Google Maps and are no longer available.
  • The Street View overlay functionality (including the related keyword replacements) are no longer available. The Google Maps API now uses the familiar peg man feature to initiate Street View.
  • Google Earth is no longer supported. This includes the Moon Elevation, Moon Visible, Mars Infrared and Sky Visible map types. These options will no longer be available for selection.
  • Mouse zoom scrolling is no longer customisable, it is enabled by default.
  • The map initialisation code has been modified.

The resulting functionality is a more accessible and intuitive mapping experience.

Most users should be able to continue using their existing implementations without complication. Users using functionality that has been removed, however, should review their implementations and make any necessary modifications before upgrading your system.

Additional Changes and Bug Fixes

Minor Enhancements  

  • Minor Enhancement #5234: Folder Linking Under Data Record Assets.
  • Minor Enhancement #5769: Image Asset __data and local URL enhancements.
  • Minor Enhancement #5917: Context Synchronisation on the JavaScript API.

Core

  • Fixed Bug #5827: Can't use WYSIWYG metadata when there are multiple type code choices on Asset Builder.
  • Fixed Bug #5899: Lookup Settings screen assetid unchecked.
  • Fixed Bug #5903: Set Session Var Trigger Action , current asset ID error. 
  • Fixed Bug #5916: Thesaurus Term linking issues.
  • Fixed Bug #5920: Import from XML tool breaks on CR.
  • Fixed Bug #5931: Cache folder hashing method breaks with a low num_cache_dirs setting.
  • Fixed Bug #5934: File.inc does not doublequote content-disposition filename header.
  • Fixed Bug #5938: Deleting just one of the many Thesarus Term links removes the asset tagging.
  • Fixed Bug #5940: Cloning multiple assets sorts them backwards under parent.
  • Fixed Bug #5942: Issue using an 'asset_lineage' design area along with login page.
  • Fixed Bug #5943: If the cron job is scheduled to run immediately, it will never be picked up under certain scenarios.
  • Fixed Bug #5947: XML Data source dynamic inputs re-encodes, re-emerging bug.
  • Fixed Bug #5949: Paint Layout ID keyword does not reset global SQ_PAINT_LAYOUT_ID after printing.
  • Fixed Bug #5953: Workflow approval invitation not sent if approver's requests workflow.
  • Fixed Bug #5957: The system_update_lookups.php script is lengthy when preparing the assetid list to update lookups.
  • Fixed Bug #5960: Remote content page got errors on POST/GET variables from array style input. 

Search

  • Fixed Bug #5930: Search List throws fatal error when using a non-admin user. 

LDAP

  • Fixed Bug #5919: getParents() infinite recursion when cycles in LDAP structure.
  • Fixed Bug #5928: LDAP Bridge Auth Filter fails when the filter string has valid surrounding parentheses. 

Bulkmail

  • Fixed Bug #5847: Bulkmail job does not correctly check for duplicate mails in its queue.

E-Commerce

  • Fixed Bug #5921: The total_tax keyword on the E-Commerce Checkout Page receipt shouldn't show negative integers for excluded countries.  

Web Services

  • Fixed Bug #5918: SOAP API services have strange column name in Interface Settings.
  • Fixed Bug #5924: Make SOAP Call Action fails to show all the response keywords.
  • Fixed Bug #5948: Difference of behaviour between actual execution and Run Test for Make Soap Call Actions. 

SAML

  • Fixed Bug #5946: SAML Account Manager return location, redirect order glitch.

When a user account is placed up for review within Squiz Matrix, users will be prompted to change their current Squiz Matrix password on a Change Password screen.

Previously, the design of this screen was not configurable. This feature adds new functionality, allowing you to set a custom Change Password design.

The System Defined Password Change Design options can be found on the Settings screen of an asset. These tools work in a similar manner to the System Defined Login Design, enabling you to override the default design of the Change Password screen for the asset, automatically  cascaded to any children.

When users log on to the system and require a password change, the Change Password screen will use the custom design, specified in the System Defined Password Change Design settings.

This feature has been added to complement the other custom log-in designs within Squiz Matrix.

OAuth Session: Redirect to Authorise, Store Access Token (#5874)

Squiz Matrix's REST Resource OAuth assets allow you to define the parameters for OAuth authentication when communicating with an OAuth secure REST web service. This feature introduces additional parameters, allowing you to redirect users to an external authorisation page and providing the option of  permanently store the access token.

The Redirect to Authorise and Store Access Token options are available on the Details screen of REST Resource OAuth assets.

By default, neither of these options will be enabled.

Enabling the Redirect to Authorise option will redirect a user to the service provider's authorisation page to authorise the request token instead of simply nesting the authorisation form within Squiz Matrix.

The Store Access Token option allows you to permanently store the access token. By default, this token is stored in the session, meaning that when a user logs out, the token will be lost. Permanently storing this token will prevent users from having to reauthorise in each user session. Disabling  this option will remove any permanently stored tokens.

These features have been added to bring Squiz Matrix OAuth more in line with established authentication standards.

New Keyword to Print the ID of a Paint Layout on an Asset  (#5878)

A new keyword replacement has been added to Squiz Matrix to print the asset ID of the paint layout on an asset.

%asset_paint_layout_id% 

This keyword will print the asset ID of the Paint layout applicable for the asset on the current URL, whether asset-based, URL-based or user-defined.

This keyword can be used in conjunction with the as_asset keyword modifier which dynamically supplies an asset ID (in this case, of a Paint Layout) on a set asset_keyword. This will allow users to expose the properties and attributes of a Paint Layout within an asset's content.

%asset_paint_layout_id^as_asset:asset_name% 

The above keyword format, for example, would print the name of the asset's Paint Layout.

New Context  Functionality on JavaScript API

Five new operations have been added to provide new  Context functionality on the JavaScript API. These functions can get enabled via the new Get Contexts and Set Context options on the Details screen of the JS API.

The getAlternateContext() operation will retrieve the appropriate alternate context on the system, applicable to the current situation (e.g. site URL) based on an evaluation of a context's conditions.

The getCurrentContext() operation will retrieve the current context active on the system.

The getAllContexts() operation will retrieve all contexts that have been defined on the system.

These three operations each take the following parameters:

  • all_info: a boolean determining whether to return all information for returned contexts. By default, these operations will return just the name and ID of contexts.
  • dataCallback: the custom callback function.

The setContext() operation sets the system to a supplied context. This operation takes the following parameters:

  • context_id: the ID of the context you want to activate on the system.
  • dataCallback: the custom callback function.

Lastly, the restoreContext() operation restores the system to the previously set context. This can be used, for example, in conjunction with the setContext() operation.

These new operations have been added to enhance the usage of the JavaScript API, providing new functionality for contexts within Squiz Matrix.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5845: Asset Builder Selectable Create Location Enhancements.
  • Minor Enhancement #5852: Memcache Session Handler Support on Site Network Assets.
  • Minor Enhancement #5861: Improved Error Handling for Malformed PDF Uploads.
  • Minor Enhancement #5875: Update Twitter Status Action Upgraded to Support Twitter API 1.1.
  • Minor Enhancement #5888: Remote Content Asset URL Tunnelling Option Warning.
  • Minor Enhancement #5889: New JS API Function to Return Metadata Schema Info.
  • Minor Enhancement #5907: Enhancements to the system_integrity_fix_char_encoding.php Script.
  • Minor Enhancement #5913: Contextable Related Asset Metadata Fields.

Core

  • Fixed Bug #5828: The reindexSearchIndex.php script consumes too much memory.
  • Fixed Bug #5833: Can't download File Assets over HTTPS using IE7 and IE8.
  • Fixed Bug #5844: matrixsqlclient breaks terminal.
  • Fixed Bug #5871: Matrix emailing the workflow initiator from previous workflow process when asset pushed to Live.
  • Fixed Bug #5876: Issue with Metadata values when Deja Vu enabled.
  • Fixed Bug #5887: %globals_asset_contents:XXXX% produces different result between protocols.
  • Fixed Bug #5894: import_file.php script errors.
  • Fixed Bug #5895: Cancel Safe Edit status / clone asset via JS API with filter frontend user option turned on does unnecessarily escape HTML to entities.
  • Fixed Bug #5896: SQ_CONF_REDIRECT_URL_WITH_TRAILING_SLASH redirects infinitely for a ROOT URL which is not listed main.inc.
  • Fixed Bug #5897: Getting count of internal messages does an unnecessary join.
  • Fixed Bug #5900: %created_assetid% is not working with keyword modifier.
  • Fixed Bug #5904: Custom Form current_page_content keyword doesn't do JS frontend validation.
  • Fixed Bug #5906: Matrix ./?a=xxx url does not work when used inside the keywords.

CMS

  • Fixed Bug #5901: Setting Form Submission asset LIVE can result in loss of all the answers.

Search

  • Fixed Bug #5864: Using special characters in Oracle Search generates unescaped characters in file names.

LDAP

  • Fixed Bug #5882: Unable to acquire locks on 'Inbox' of LDAP user with \, in CN.

Calendar

  • Fixed Bug #5866: Events search not sorting when sorting by the asset attribute value.
  • Fixed Bug #5893: Run Level not restored failing to save the attributes of calendar event modification.

Data

  • Fixed Bug #5902: RSS Data Source timeout error for some feeds.

Web Services

  • Fixed Bug #5877: SOAP Server asset sends proper HTTP authentication header.
  • Fixed Bug #5883: Oath and POST REST call problem.
  • Fixed Bug #5884: JS API calls to getAttributes on div content assets that contain keywords get evaluated.
  • Fixed Bug #5890: JS API throws "Unable to get value of the property '0': object is null or undefined".

Squiz Matrix's Rolling Calendar Page asset allows you to show a list of events for a set period, dynamically progressing over time - for example, displaying events occurring within the next seven days.

While this asset has options to display options to configure the layout of the results of the search, no bodycopy was previously available to set the layout when no results were found. This feature adds a new No Result Bodycopy, allowing users to configure the layout of the Rolling Calendar Page when no results are returned.

The No Results Bodycopy is enabled via a new Customise No Results Bodycopy? field on the Details screen of the Rolling Calendar Page. When this option is enabled, a new Page Contents (No Results) Bodycopy asset will be displayed in the asset map.

The Page Contents (No Results) Bodycopy works in a similar manner to the No Results Bodycopy on a Search Page asset.

This feature has been added to provide users with greater control over the layout of Rolling Calendar Page assets.

Workflow Bundles: Improved Error Handling for Required Metadata

When editing multiple assets within Squiz Matrix that have Workflow applied, users can utilise Workflow Bundle assets to create bundles of linked assets that can be taken into workflow and approved in batches.

Previously, if a bundled asset was missing required metadata, the Workflow Bundle would still attempt to change its status to Pending Approval when a user prompted this status change. This would then result in a failed HIPO job, due to this missing metadata, potentially leading to inconsistent asset  statuses for the assets under the Workflow Bundle.

This feature introduces improved error handling in these situations, providing users with an error message and a link to the Metadata screen of the offending asset.

This functionality has also been extended to the Workflow screen of Workflow Bundle assets, if a user tries to approve changes to the bundled assets and one or more of these assets are missing required metadata.

This feature has been introduced to prevent the asset status issues associated with a failed HIPO job, as well as to equip users with more accurate information of these particular issues so that they can swiftly be resolved.

New Keyword Modifier to Evaluate XPath Expressions

Squiz Matrix's XPath keyword modifier runs a set xpath argument query on a returned value and inserts a set delimiter argument between each returned element. This modifier, however, does not evaluate XPath expressions. A new keyword modifier has been added to evaluate passed XPath expressions.

xpathe:<expression>

The xpathe keyword modifier evaluates a set XPath expressionon the returned keyword value.

Example usage of this modifier is as follows:

%asset_contents~xpathe:sum(//item/value)% : The path takes the mathematical sum() of item/value tags in the XML.
%asset_contents^xpathe:count(//h1)% : Counts the number of heading ones in the supplied markup.  

New Keyword Modifier to Return a JSON Encoded String

Keyword modifiers within Squiz Matrix allow you to modify the returned values of keyword replacements. This feature introduces a new keyword modifier to provide a JavaScript Object Notation (JSON) representation of a returned value.

The json_encode keyword modifier will take the returned value of the keyword replacement, encoding it into a JSON string (or register a log error if the encode fails). In the example below, the json_encode modifier has been used to provide a JSON encoded string of the value returned on the asset_metadata_text_field keyword.

%asset_metadata_text_field^json_encode%

This modifier is useful when you require content to be formatted in JSON, for example, when transmitting data to a web application.

SAML Federated Access Management

Security Assertion Markup Language 2.0 (SAML 2.0) is an XML-based standard for authenticating and authorising access to secure domains, that is, between an identity provider and a service provider. SAML 2.0 enables web-based authentication, providing federated access management through single sign-on and identity verification.

Squiz Matrix will employ this federated access management model to provide authentication via SAML 2.0 identity providers.

Integration with the SAML 2.0 protocol will be enabled through a new SAML Account Manager asset within the Squiz Matrix system. This asset will allow Matrix to serve as a service provider, delegating user authentication to SAML 2.0 identity providers to achieve federated access. 

When a user first accesses the Matrix database via the SAML Account Manager asset, they will be redirected to the SAML 2.0 identity provider for authentication. Once a user's identification has been validated by the identity provider, they will be redirected back to Squiz Matrix.

A user's account within Matrix will  be associated with the SAML identity, enabling federated access to Matrix, automatically signing the user into their Matrix account as part of the SAML authentication process. If no associated user account is found, the user will be able to either create  a new account within Matrix to use for federated access or sign-in to an existing Matrix account to link to the authenticated identity. 

When a user (using an SAML-linked user account) ends their session within Squiz Matrix, the SAML Account Manager asset will notify the SAML 2.0 identity provider to sign out completely.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5767: Improved Hippo Error Handling.
  • Minor Enhancement #5825: New Search Box Design Area Title/Label Attributes.
  • Minor Enhancement #5837: Spanish Characters Remapped in Web Paths.
  • Minor Enhancement #5863: Improved Error Handling for Nonexistent Assets in system_update_lookup.php Script.

Core

  • Fixed Bug #5802: \n in replace keyword turns blank.
  • Fixed Bug #5817: Notice Links when Paint Layout is applied to Single Calendar Events.
  • Fixed Bug #5819: Matrix should not assume report XML files are valid.
  • Fixed Bug #5823: Asset thumbnail printing wrong ALT and TITLE values.
  • Fixed Bug #5826: paint_layout_bodycopy update does not account for _asset_metadata_X conditional keywords.
  • Fixed Bug #5831: Inconsistent contents when using Deja Vu and Rollback.
  • Fixed Bug #5838: When aborting a HIPO job having dependant job, leaves the dependant job orphaned.
  • Fixed Bug #5841: Improved error handling on Cron Job Manager for incomplete submissions when replacing keywords.
  • Fixed Bug #5843: Further fixes to Deja Vu and Safe Edit.
  • Fixed Bug #5849: Issue with Workflow Bundles whilst using Squiz Server.
  • Fixed Bug #5850: Matrix sets session cookie expiry time differently than mentioned.
  • Fixed Bug #5860: Cosmetic: Icons overlapping on WYSIWYG field.

Search

  • Fixed Bug #5832: Cancelling Safe Edit throws error on system having more than two contexts.

Web Services

  • Fixed Bug #5820: Links in Workflow Emails generated via EES are wrong.
  • Fixed Bug #5848: The JS API's importAssetsFromXML function has an errant call to escape() on the path.
  • Fixed Bug #5851: The JS API's getURLFromLineage function in the standard API mode returns a JS error.
  • Fixed Bug #5858: Issue with the REST Resource (HTTP Request attribute) cache expiry.

The Asset Listing Page asset's Link Value Filtering options allow you to filter listed assets by a configured link value. This value, configured on the Linking Screen of an asset, can be checked against a set Link Value on the listing's settings (either matching or not matching) to determine whether an asset should be listed.

For example, image assets within your site can be configured with link values such as landscape or portrait. The Link Value Filtering options allow you to create an asset listing that will only display landscape images by setting the Link Value Filtering Logic to match the landscape link value. Previously, this functionality was restricted to the Asset Listing Page asset only. This feature extends this functionality for use on a What's New Page asset , providing you more configuration options for your What's New listing.

Bulk File Import Tool: Alphanumeric Sorting

The Bulk File Import Tool allows you to upload multiple files through the browser into a specified location. This can be achieved by specifying a file import directory on your server to import the files of. When importing files in this manner, the Bulk File Import Tool would previously import files into Matrix in random order. This feature introduces a new option to the Bulk File Import Tool to sort the files imported from a Server File Import.

The Sort the files alphanumerically on import? option is enabled on the Details screen of the Bulk File Import Tool in the Server File Import settings.

Enabling this option will sort imported files in alphanumeric order (i.e. numerals -> capital letters -> lower case letters).

For example, consider the following list of files to be imported:

1.txt
apple.txt
31apples.txt
Test_1.docx
001.pdf
30apples.doc

Selecting the Sort the files alphanumerically on import? option would sort this list of files in the following order:

001.pdf
1.txt
30apples.doc
31apples.txt
Test_1.docx
apple.txt

This addition has also been carried over to the import_files.php script which is used to import files from a server. This option is specified when running this script through a new --sort argument.

For example:

$ php import_files.php [system_root] folders_to_import 66 1 --sort

This feature has been added to provide greater control to users when importing files into Squiz Matrix.

Set From and Reply-To Email Addresses on Workflow Notifications

When workflow is running on an asset, Squiz Matrix will send a number of notification emails to users to update them on the status of the approval process. These emails will notify users on a variety of different occasions, for example, if their approval is required on an asset or when a workflow step is approved or rejected.

Previously, while the content of these emails were configurable (via the Custom Messages screen), the From and Reply-To email addresses on these notifications were not. This feature introduces the ability to set the From and Reply-To values for workflow emails.

The Email to be Sent From and Email to Reply-To fields can be configured on the Details screen of a Workflow Schema. The values entered into these fields will override the default values used by Squiz Matrix, i.e. the email address of the user who triggered the workflow changes.

This feature provides greater configuration for workflow emails within Squiz Matrix, providing accurate address information to your receiving users.

New Keyword Format to Print GET Variables of Nested Content

Squiz Matrix's Nest Content content type allows you to take the content of an asset in the system and display it inside the content of another. Whilst you are configuring this content type, you are able to pass additional GET variables to the asset being nested. Previously, however, values passed to the nested asset could not be exposed using Matrix's global keywords (e.g. %globals_get_VARIABLE_NAME%).

This feature adds a new keyword format to expose the GET variable information on nested assets:

%nested_get_VARIABLE_NAME%

This new keyword will print the value of the GET variable specified.

New SOAP Function to Configure Multiple Metadata Fields on an Asset

Squiz Matrix's SOAP API Metadata Service asset manages the metadata functions of the system's SOAP Server, including setting and regenerating metadata.

The SOAP API Metadata Service includes the SetAssetMetadata function that sets the value of a metadata field for a specified asset. This function, however, was limited to setting only single metadata fields; the function would need to be run multiple times to set the value of many different metadata fields.

This feature introduces a new function on the SOAP API Metadata Service to set the value of multiple metadata fields in a single function call.

The SetMultipleMetadataFields function allows you to configure the values of any number of metadata fields and is enabled on the Details screen SOAP API Metadata Service.

This function takes the following parameters:

  • AssetID: the ID of the asset to set metadata on.
  • MetadataInfo: the metadata FieldID and FieldValue values to set.

The format of the setMultipleMetadataFields function is as follows: 

<ns1:SetMultipleMetadataFields>
    <AssetID>70</AssetID>
    <MetadataInfo>
        <FieldID>407</FieldID>
        <FieldValue>First field value</FieldValue>
    </MetadataInfo>
    <MetadataInfo>
        <FieldID>618</FieldID>
        <FieldValue>Second field value</FieldValue>
    </MetadataInfo>
</ns1:SetMultipleMetadataFields>

Filter Record Sets on Data Source Assets

Squiz Matrix's Data Source assets, such as the DB Data Source, allow you to query external resources (e.g. a database or LDAP directory), returning records as shadow assets within the system. These records can then be used within your site, for example, to expose record information on an asset listing.

This feature introduces a brand new Record Filter screen, providing a variety of new options to refine the results of your data query and the shadow assets created within Squiz Matrix.

The Record Filter screen allows you to configure a series of conditions that can then be matched against the returned records of the data source. You can then choose to either filter out the records matching the configured conditions or to return the matched records.

Conditions are configured by matching a set value against a field on record set assets. Match type selections are available (string value, exact and contains; or regex), as well as case matching. You can also use dynamical variables (added on the Dynamic Inputs screen) as the value to match records against.

This feature has been added to provide users with greater control over the records returned on data source assets within Squiz Matrix.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5734: HTML Tidy Plugin: Select HTML Standard to Evaluate Against.
  • Minor Enhancement #5741: Session Expiry Times Capped to Valid Values with Memcache.
  • Minor Enhancement #5766: Asset Map: Improved End of File Error Reporting.
  • Minor Enhancement #5775: check_requirements.php to Check Database Libraries.
  • Minor Enhancement #5777: New Option to Set Never Delete Settings When Creating Remaps.
  • Minor Enhancement #5794: HTML Tidy Indicators on WYSIWYG Metadata Field and Attribute Types.
  • Minor Enhancement #5803: Structure File Import Tool: Silent bcmod() Dependency Removed.
  • Minor Enhancement #5809: Whitespace Stripped in Warranty Key Entry Form. 

Core

  • Fixed Bug #5704: Replace Text tool removing href when Select All button is used prior. 
  • Fixed Bug #5768: Typo in help text.
  • Fixed Bug #5770: Object of class Calendar_Event_Multi_Date could not be converted to string.
  • Fixed Bug #5773: Not able to create an asset with name having special chars.
  • Fixed Bug #5776: HIPO job unnecessarily trying to check the job's status at the Squiz Server.
  • Fixed Bug #5778: Editing table cell properties in IE can cause invalid markup in WYSYWIG.
  • Fixed Bug #5779: Insert Anchor WYSYWIG plugin creates invalid markup in IE.
  • Fixed Bug #5780: Trigger context menu and group preferences showing source string not found.
  • Fixed Bug #5781: br tags are not self closing in IE.
  • Fixed Bug #5782: IE turns all the HTML markup to uppercase.
  • Fixed Bug #5784: remove_asset_type and remove_assets_of_type broken in newer postgreSQL versions.
  • Fixed Bug #5786: Details screen values are committed when cancelling Safe Edit.
  • Fixed Bug #5789: Answering Select type form question which allows multiple selection can throw errors.
  • Fixed Bug #5790: Trigger action Update Twitter Status can not update status with space and any special characters.
  • Fixed Bug #5791: Trying to expand XML User Bridge in Asset Map returns error.
  • Fixed Bug #5792: System updatelookups script does not run over the whole system if rootnode is not supplied.
  • Fixed Bug #5793: Show If design area always prints a blank line before the content.
  • Fixed Bug #5796: %asset_metadata_field_value% fails to find default value when other assets have explicit values set.
  • Fixed Bug #5797: Data Record asset name does not change context.
  • Fixed Bug #5807: Update Matrix license comment in the design.
  • Fixed Bug #5808: %globals_X% keywords do not work in group format bodycopies. 
  • Fixed Bug #5810: Unnecessary closing HTML tags before displaying error message.
  • Fixed Bug #5814: step_03.php fails if an attribute has been moved from the child types to the parent.
  • Fixed Bug #5815: Maxwords keyword issue when dealing with foreign characters. 
  • Fixed Bug #5816: Wrong metadata fetched for assets in Safe Editing when using Deja Vu.
  • Fixed Bug #5822: system_move_update.php script fails on MP3 file.  

Bulkmail

  • Fixed Bug #5804: Default and tech emails break install.

Import Tools

  • Fixed Bug #5760: scripts/import/create_pages.php script does not properly parse escaped quotes.

TRIM

  • Fixed Bug #5799: File attachments can not be downloaded and show as Plain Text 0B size. 

Web Services

  • Fixed Bug #5698: JSAPI's getKeywordsReplacements function parses some keyword modifier content incorrectly.
Please note that due to a change in the way Squiz Matrix handles POST requests, existing custom code and/or external programs posting requests to the Squiz Matrix administration interface will no longer work. Users should instead seek alternative request methods, such as the JavaScript or SOAP APIs.

Featured Changes

Squiz Matrix's LDAP Bridge asset allows you to connect to an external LDAP directory, exposing any LDAP users within the system. These users can then be utilised within Matrix, with the ability to log in and view/edit content.

Previously, the LDAP Bridge provided the option of assigning LDAP users with either a Backend User or regular User status, employing these users with the designated user authority.

This feature introduces the option of stipulating that LDAP users be appointed as Simple Edit User types when exposed within Matrix. These users are restricted to editing content within the Simple Edit interface of a site.

This setting is configured in the User Type field on the Details screen of an LDAP Bridge asset.

This feature has been added to provide greater control over LDAP users within Squiz Matrix.

Send Submission Log to Email Cron Job

A new setting has been added to Squiz Matrix's Custom Form asset, allowing you to create a new cron job that will automatically send form submission logs via email.

This setting is configured under a new Send Submissions To Email section on the Submission Logs screen of a Custom Form.

You can configure the frequency of when the Send Submission Log job is run, as well as specifying the format of the submission logs (CSV or XML) and from which date to send the logs of.

The recipients and format of the Send Submission Log email is managed on the Details screen of the cron job. The keyword replacements available on a Custom Form can be used to define the layout of the email.

Configured Send Submission Log jobs will be listed on the Details screen of the Cron Manager as Repeating cron jobs. You can add multiple Send Submission Log cron jobs to send various different logs.

Nest Keyword Replacements Within Modifiers

Keyword modifiers within Squiz Matrix allow you to modify the returned values of keyword replacements. These modifiers take argument values that allow you to customise this process.

Previously, keyword modifiers did not support the use of keyword replacements as arguments. This feature resolves this issue by providing support for nested keywords within the arguments of a modifier.

This is achieved through a new replace_keywords modifier. This modifier is used before a regular modifier to indicate that any keywords used within the specified arguments should be replaced with the appropriate keyword value.

Keywords nested within a modifier are enclosed in braces (curly brackets) rather than percent signs.

In the example below, the replace_keywords modifier has been used to replace the asset_metadata_price keyword argument within the eq modifier.

  %asset_metadata_show_price^replace_keywords:eq:1:{asset_metadata_price}% 

If the asset_metadata_show_price value is equal to 1, it will be replaced with the returned value of the asset_metadata_price keyword. If the replace_keywords modifier is not used, the value would simply use the text "asset_metadata_price"; the keyword would not be replaced.

The replace_keywords modifier will replace all standard and metadata keyword replacements as well as a limited amount of special asset-specific keywords. Global keyword replacements are not supported by this modifier.

This feature has been added to provide further implementation solutions and to prevent complex workarounds that were previously being used.

Specify Binary Attributes on LDAP Data Source

Squiz Matrix's LDAP Data Source asset allows you to query external LDAP directories, returning LDAP users as shadow assets within your system.

The LDAP Data Source's Search Filter allows you to specify the user attributes to extract from the LDAP directory, such as names, descriptions etc. Previously, however, attributes containing binary data would not be recognised as such by Squiz Matrix and would return a corrupt value on the LDAP Data Source.

This feature adds a new option to the Search Filter on the LDAP Data Source, allowing you to specify the binary attributes to extract. Attributes specified in the Binary Attributes to Extract field will be returned correctly as binary data and can be used within the system through the use of keyword replacements.

Preserve Query String in Remaps

A new global preference has been added to Squiz Matrix's Remap Manager, allowing you to preserver query strings in remapped URLs. Currently, query strings are disregarded during a remap - this new functionality allows you to preserve any appended query strings, as well as define when query string should not be preserved.

The Preserve query string in remaps? option is enabled by default on new installations. This means that query strings will be preserved for each remap, except where a trailing ? is appended to the end of the target URL.

Examples of this functionality are outlined below:

Remap: /foo -> /bar
Matches: /foo
Redirect: /bar 
Remap: /foo -> /bar
Matches: /foo?SQ_DESIGN_NAME=bar
Redirect: /bar?SQ_DESIGN_NAME=bar
Remap: /foo? -> /bar
Matches: /foo?SQ_DESIGN_NAME=bar
Redirect: /bar

New Trigger Event and Condition to Check REST Response

A new trigger event has been added to Squiz Matrix, firing a trigger after receiving a response from a REST Resource (i.e. a REST Resource asset or Call REST Resource trigger action etc.).

The REST Response Received trigger event can be used in conjunction with the new REST Response trigger condition. This condition evaluates the response of a REST Resource within Squiz Matrix, matching against either request URLs, http codes or the body of the REST response.

Like the Join User Group For Session trigger action, the REST Response Received event and REST Response condition have been added to strengthen the functionality of the Squiz Matrix trigger system and expand on the trigger set-ups available to users.

New Trigger Action to Dynamically Link User to a User Group

Trigger actions allow you to specify tasks that will be performed when a fired trigger meets a specified set of conditions. Squiz Matrix boasts an extensive array of trigger actions that are available, from creating new assets to updating your status on twitter.

This feature introduces a brand new trigger action to allow the current user to be dynamically linked to a user group throughout the remainder of the login session.

The Join User Group For Session trigger action can be configured on the Details screen of a trigger and allows you to specify a user group by asset ID (either selected from the Asset Map or retrieved via a keyword replacement).

When the trigger is fired, the currently logged-in user will be dynamically linked to the selected user group for the remainder of the session, until it expires or the user logs out. This allows you to associate a user with a user group without physically linking that user.

The Join User Group For Session trigger action has been added to strengthen the functionality of the Squiz Matrix trigger system and expand on the trigger set-ups available to users.

New Script to Import Quiz Questions From an XML File

This feature introduces the new import_quiz_from_xml.php script to the Matrix database, allowing you to import Online Quiz questions and groups from an XML File.

The XML file containing the Online Quiz questions is presented in the following format:

<exportquestions>
<pool Name="Question Group Name">
<question>
<QuestionText>Question Text</QuestionText>
<Option_A points="0">
<Option_Text>Yes</Option_Text>
<Response_Supplement />
</Option_A>
<Option_B points="0">
<Option_Text>No</Option_Text>
<Response_Supplement />
</Option_B>
<Option_C points="1">
<Option_Text>Correct Option</Option_Text>
<Response_Supplement>Sample Response Text</Response_Supplement>
</Option_C>
</question>
</pool>
</exportquestions>

An example usage of this script is shown below.

$ php scripts/import/import_quiz_from_xml.php $PWD 123 quiz.xml

*** Import Complete *** 
Questions Created : 20
Groups Created : 3
*** Import Complete ***

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5576: Maximum File Size Accurately Calculated for System File Size Limit.
  • Minor Enhancement #5649: Asset Manager's generateGetParentsQuery Function Enhancement.
  • Minor Enhancement #5662: Improved Error Handling on Squiz Matrix Quick Search.
  • Minor Enhancement #5678: Improved Error Handling for Non-Existent Workflow Schemas.
  • Minor Enhancement #5692: Asset Content Keywords on as_asset Modifier.
  • Minor Enhancement #5639: Improved Error Handling for Unauthorised Dynamic Root Nodes.
  • Minor Enhancement #5694: Improved System Management Preventing Recalculation of Data.
  • Minor Enhancement #5695: Asset Map Support for Shadow Simple Edit Users.
  • Minor Enhancement #5701: REST Resource: Control the Replacing of Keywords in Response.
  • Minor Enhancement #5711: Improved Error Handling on the JavaScript API.
  • Minor Enhancement #5715: SOAP Submission Action: Mute Exceptions on Test Run.
  • Minor Enhancement #5717: Active Directory LDAP User Permissions Enhancement.

Core

  • Fixed Bug #5657: Matrix doesn't fail over to alternate memcached servers for cache, locking or deja vu.
  • Fixed Bug #5674: Snippet folder and Oracle limit (error ORA-01795).
  • Fixed Bug #5675: Invalid HTML on asset builder if select metadata field has spaces in key.
  • Fixed Bug #5677: Select options position toggles fail after deleting options from list.
  • Fixed Bug #5683: step_02 should not error first time around on Oracle.
  • Fixed Bug #5687: Admin Quick Search doesn't seem to find https URLs that have force secure.
  • Fixed Bug #5696: Errors when the Allowed File Extensions to Upload settings have been customised. 
  • Fixed Bug #5699: Quick Search on Insert link plugin for WYSIWYG different to Quick Search in Admin interface.
  • Fixed Bug #5702: system_parse_designs.php and system_parse_design.php failed to include files.
  • Fixed Bug #5703: Create Link Trigger adds a remap.
  • Fixed Bug #5714: Set Future Lineage cron job creating an extra asset link to the Trash.
  • Fixed Bug #5719: Edit screen not acquiring locks over https.
  • Fixed Bug #5723: Checkout.sh can't handle full paths for its checkout target.
  • Fixed Bug #5726: test_form_integrity system test script undefined variable $this.
  • Fixed Bug #5727: Invalid Warranty Key screen errors. 

CMS

  • Fixed Bug #5604: Asset Builder Created Bodycopy prints form tags.
  • Fixed Bug #5700: Generating "broken links" link report asset can throw fatal error.
  • Fixed Bug #5716: "Include file attachments" setting in the Custom Form's Email Option not working.

LDAP

  • Fixed Bug #5686: Asset Builder Created Bodycopy prints form tags.

Bulkmail

  • Fixed Bug #5705: Problem with "all" on Bulkmail subscribe page.

Calendar

  • Fixed Bug #5691: Event search result returning recurring event instances beyond event's stop date.

Data

  • Fixed Bug #5709: iCal Data Source not unfolding content.

Squid

  • Fixed Bug #5706: Clear Squid Cache returns binary data to the browser window.

SharePoint

  • Fixed Bug #5697: SharePoint form action to create list not valid for entered connection details.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5730: New Automatic Upgrade Script Parameter to Truncate Rollback Data.
  • Minor Enhancement #5733: Improved Error Handling for Select Question Type.
  • Minor Enhancement #5737: GET Variable Values Supported on Nested Search Pages.
  • Minor Enhancement #5757: Sign Java Files with New Certificate.
  • Minor Enhancement #5761: New asset_frontend_metadata Keyword. 

Core

  • Fixed Bug #5708: Impossible to remove links to shadow assets when Safe Trash is enabled.
  • Fixed Bug #5731: Login as and stalled Hipo.
  • Fixed Bug #5735: Running Rollback Management script more than once causes duplicate entries.
  • Fixed Bug #5736: Search table missing some metadata components when cascading multiple metadata schemas to the new asset.
  • Fixed Bug #5738: Image variety width and height break - safe edit, position format.
  • Fixed Bug #5740: RSS asset - channel pubDate and lastBuildDate transform format.
  • Fixed Bug #5744: "Remove CSS style" option in "Apply CSS style" plugin not removing the style class in IE. 
  • Fixed Bug #5745: Status CSS Cache file's lookups are not updated.
  • Fixed Bug #5746: Web paths with $ character not replaced correctly in certain circumstances.
  • Fixed Bug #5747: The %user_name% keyword is not working correctly in workflow custom messages. 
  • Fixed Bug #5755: WYSIWYG metadata field default value cannot commit blank content.

CMS

  • Fixed Bug #5748: Remote Content Page requests target URL twice.
  • Fixed Bug #5751: Remote Content Page's tag replacement not working correctly. 

Calendar

  • Fixed Bug #5742: Upcoming Calendar Events Page not showing events in expected order.

Web Services

  • Fixed Bug #5749: JS API createFileAsset function warns of file extension on generic file asset.
  • Fixed Bug #5752: JS API will garble already UTF-8 encoded foreign language text.
  • Fixed Bug #5753: Make SOAP Call form and form section actions ignoring CDATA content in SOAP request.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5845: Asset Builder Selectable Create Location Enhancements.
  • Minor Enhancement #5861: Improved Error Handling for Malformed PDF Uploads.
  • Minor Enhancement #5888: Remote Content Asset URL Tunnelling Option Warning.

Core

  • Fixed Bug #5828: The reindexSearchIndex.php script consumes too much memory. 
  • Fixed Bug #5833: Can't download File Assets over HTTPS using IE7 and IE8.
  • Fixed Bug #5844: matrixsqlclient breaks terminal. 
  • Fixed Bug #5871: Matrix emailing the workflow initiator from previous workflow process when asset pushed to Live.
  • Fixed Bug #5876: Issue with Metadata values when Deja Vu enabled. 
  • Fixed Bug #5887: %globals_asset_contents:XXXX% produces different result between protocols. 
  • Fixed Bug #5894: import_file.php script errors.
  • Fixed Bug #5895: Cancel Safe Edit status / clone asset via JS API with filter frontend user option turned on does unnecessarily escape HTML to entities.  
  • Fixed Bug #5896: SQ_CONF_REDIRECT_URL_WITH_TRAILING_SLASH redirects infinitely for a ROOT URL which is not listed main.inc.
  • Fixed Bug #5900: %created_assetid% is not working with keyword modifier. 
  • Fixed Bug #5904: Custom Form current_page_content keyword doesn't do JS frontend validation.
  • Fixed Bug #5906: Matrix ./?a=xxx url does not work when used inside the keywords. 

CMS

  • Fixed Bug #5901: Setting Form Submission asset LIVE can result in loss of all the answers.

Search

  • Fixed Bug #5864: Using special characters in Oracle Search generates unescaped characters in file names.

LDAP

  • Fixed Bug #5882: Unable to acquire locks on 'Inbox' of LDAP user with \, in CN.

Calendar

  • Fixed Bug #5866: Events search not sorting when sorting by the asset attribute value.
  • Fixed Bug #5893: Run Level not restored failing to save the attributes of calendar event modification.

Data

  • Fixed Bug #5902: RSS Data Source timeout error for some feeds.

Web Services

  • Fixed Bug #5877: SOAP Server asset sends proper HTTP authentication header.
  • Fixed Bug #5884: JS API calls to getAttributes on div content assets that contain keywords get evaluated. 
  • Fixed Bug #5890: JS API throws "Unable to get value of the property '0': object is null or undefined".

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5767: Improved Hippo Error Handling.
  • Minor Enhancement #5863: Improved Error Handling for Nonexistent Assets in system_update_lookup.php Script.

Core

  • Fixed Bug #5802: \n in replace keyword turns blank.
  • Fixed Bug #5817: Notice Links when Paint Layout is applied to Single Calendar Events.
  • Fixed Bug #5819: Matrix should not assume report XML files are valid.
  • Fixed Bug #5823: Asset thumbnail printing wrong ALT and TITLE values.
  • Fixed Bug #5826: paint_layout_bodycopy update does not account for _asset_metadata_X conditional keywords.
  • Fixed Bug #5831: Inconsistent contents when using Deja Vu and Rollback.
  • Fixed Bug #5838: When aborting a HIPO job having dependant job, leaves the dependant job orphaned.
  • Fixed Bug #5841: Improved error handling on Cron Job Manager for incomplete submissions when replacing keywords.
  • Fixed Bug #5843: Further fixes to Deja Vu and Safe Edit.
  • Fixed Bug #5849: Issue with Workflow Bundles whilst using Squiz Server.
  • Fixed Bug #5850: Matrix sets session cookie expiry time differently than mentioned.

Search

  • Fixed Bug #5832: Cancelling Safe Edit throws error on system having more than two contexts.

Web Services

  • Fixed Bug #5820: Links in Workflow Emails generated via EES are wrong.
  • Fixed Bug #5848: The JS API's importAssetsFromXML function has an errant call to escape() on the path.
  • Fixed Bug #5851: The JS API's getURLFromLineage function in the standard API mode returns a JS error.
  • Fixed Bug #5858: Issue with the REST Resource (HTTP Request attribute) cache expiry.

The Bulk File Import Tool allows you to upload multiple files through the browser into a specified location. This can be achieved by specifying a file import directory on your server to import the files of. When importing files in this manner, the Bulk File Import Tool would previously import files into Matrix in random order. This feature introduces a new option to the Bulk File Import Tool to sort the files imported from a Server File Import.

The Sort the files alphanumerically on import? option is enabled on the Details screen of the Bulk File Import Tool in the Server File Import settings.

Enabling this option will sort imported files in alphanumeric order (i.e. numerals -> capital letters -> lower case letters).

For example, consider the following list of files to be imported:

1.txtapple.txt31apples.txtTest_1.docx001.pdf30apples.doc

Selecting the Sort the files alphanumerically on import? option would sort this list of files in the following order:

001.pdf
1.txt
30apples.doc
31apples.txt
Test_1.docx
apple.txt

This addition has also been carried over to the import_files.php script which is used to import files from a server. This option is specified when running this script through a new --sort argument.

For example:

$ php import_files.php [system_root] folders_to_import 66 1 --sort

This feature has been added to provide greater control to users when importing files into Squiz Matrix.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5766: Asset Map: Improved End of File Error Reporting.
  • Minor Enhancement #5777: New Option to Set Never Delete Settings When Creating Remaps.
  • Minor Enhancement #5803: Structure File Import Tool: Silent bcmod() Dependency Removed.
  • Minor Enhancement #5809: Whitespace Stripped in Warranty Key Entry Form.

Core

  • Fixed Bug #5704: Replace Text tool removing href when Select All button is used prior.  
  • Fixed Bug #5768: Typo in help text.
  • Fixed Bug #5770: Object of class Calendar_Event_Multi_Date could not be converted to string.
  • Fixed Bug #5773: Not able to create an asset with name having special chars.
  • Fixed Bug #5776: HIPO job unnecessarily trying to check the job's status at the Squiz Server.
  • Fixed Bug #5778: Editing table cell properties in IE can cause invalid markup in WYSYWIG.
  • Fixed Bug #5779: Insert Anchor WYSYWIG plugin creates invalid markup in IE.
  • Fixed Bug #5780: Trigger context menu and group preferences showing source string not found.
  • Fixed Bug #5781: br tags are not self closing in IE.
  • Fixed Bug #5782: IE turns all the HTML markup to uppercase.
  • Fixed Bug #5784: remove_asset_type and remove_assets_of_type broken in newer postgreSQL versions.
  • Fixed Bug #5786: Details screen values are committed when cancelling Safe Edit.
  • Fixed Bug #5789: Answering Select type form question which allows multiple selection can throw errors.
  • Fixed Bug #5790: Trigger action Update Twitter Status can not update status with space and any special characters.
  • Fixed Bug #5791: Trying to expand XML User Bridge in Asset Map returns error.
  • Fixed Bug #5792: System updatelookups script does not run over the whole system if rootnode is not supplied.
  • Fixed Bug #5793: Show If design area always prints a blank line before the content.
  • Fixed Bug #5796: %asset_metadata_field_value% fails to find default value when other assets have explicit values set.
  • Fixed Bug #5797: Data Record asset name does not change context.
  • Fixed Bug #5807: Update Matrix license comment in the design.
  • Fixed Bug #5808: %globals_X% keywords do not work in group format bodycopies. 
  • Fixed Bug #5810: Unnecessary closing HTML tags before displaying error message.
  • Fixed Bug #5815: Maxwords keyword issue when dealing with foreign characters.
  • Fixed Bug #5814: step_03.php fails if an attribute has been moved from the child types to the parent.
  • Fixed Bug #5816: Wrong metadata fetched for assets in Safe Editing when using Deja Vu.
  • Fixed Bug #5822: system_move_update.php script fails on MP3 file.   

Bulkmail

  • Fixed Bug #5804: Default and tech emails break install.

Import Tools

  • Fixed Bug #5760: scripts/import/create_pages.php script does not properly parse escaped quotes.

TRIM

  • Fixed Bug #5799: File attachments can not be downloaded and show as Plain Text 0B size.

Web Services

  • Fixed Bug #5698: JSAPI's getKeywordsReplacements function parses some keyword modifier content incorrectly.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5730: New Automatic Upgrade Script Parameter to Truncate Rollback Data.
  • Minor Enhancement #5733: Improved Error Handling for Select Question Type.

Core

  • Fixed Bug #5708: Impossible to remove links to shadow assets when Safe Trash is enabled.
  • Fixed Bug #5731: Login as and stalled Hipo.
  • Fixed Bug #5735: Running Rollback Management script more than once causes duplicate entries.
  • Fixed Bug #5736: Search table missing some metadata components when cascading multiple metadata schemas to the new asset.
  • Fixed Bug #5738: Image variety width and height break - safe edit, position format.
  • Fixed Bug #5740: RSS asset - channel pubDate and lastBuildDate transform format.
  • Fixed Bug #5744: "Remove CSS style" option in "Apply CSS style" plugin not removing the style class in IE. 
  • Fixed Bug #5746: Web paths with $ character not replaced correctly in certain circumstances.
  • Fixed Bug #5747: The %user_name% keyword is not working correctly in workflow custom messages.  
  • Fixed Bug #5755: WYSIWYG metadata field default value cannot commit blank content.

CMS

  • Fixed Bug #5748: Remote Content Page requests target URL twice.
  • Fixed Bug #5751: Remote Content Page's tag replacement not working correctly. 

Calendar

  • Fixed Bug #5742: Upcoming Calendar Events Page not showing events in expected order.

Web Services

  • Fixed Bug #5749: JS API createFileAsset function warns of file extension on generic file asset.
  • Fixed Bug #5752: JS API will garble already UTF-8 encoded foreign language text.
  • Fixed Bug #5753: Make SOAP Call form and form section actions ignoring CDATA content in SOAP request.

Specify Binary Attributes on LDAP Data Source

Squiz Matrix's LDAP Data Source asset allows you to query external LDAP directories, returning LDAP users as shadow assets within your system.

The LDAP Data Source's Search Filter allows you to specify the user attributes to extract from the LDAP directory, such as names, descriptions etc. Previously, however, attributes containing binary data would not be recognised as such by Squiz Matrix and would return a corrupt value on the LDAP Data Source.

This feature adds a new option to the Search Filter on the LDAP Data Source, allowing you to specify the binary attributes to extract. Attributes specified in the Binary Attributes to Extract field will be returned correctly as binary data and can be used within the system through the use of keyword replacements.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5662: Improved Error Handling on Squiz Matrix Quick Search.
  • Minor Enhancement #5678: Improved Error Handling for Non-Existent Workflow Schemas.
  • Minor Enhancement #5692: Asset Content Keywords on as_asset Modifier.
  • Minor Enhancement #5639: Improved Error Handling for Unauthorised Dynamic Root Nodes.
  • Minor Enhancement #5695: Asset Map Support for Shadow Simple Edit Users.
  • Minor Enhancement #5701: REST Resource: Control the Replacing of Keywords in Response.
  • Minor Enhancement #5711: Improved Error Handling on the JavaScript API.
  • Minor Enhancement #5715: SOAP Submission Action: Mute Exceptions on Test Run.
  • Minor Enhancement #5717: Active Directory LDAP User Permissions Enhancement.

Core

  • Fixed Bug #5657: Matrix doesn't fail over to alternate memcached servers for cache, locking or deja vu.
  • Fixed Bug #5674: Snippet folder and Oracle limit (error ORA-01795).
  • Fixed Bug #5675: Invalid HTML on asset builder if select metadata field has spaces in key.
  • Fixed Bug #5677: Select options position toggles fail after deleting options from list.
  • Fixed Bug #5683: step_02 should not error first time around on Oracle.
  • Fixed Bug #5687: Admin Quick Search doesn't seem to find https URLs that have force secure.
  • Fixed Bug #5696: Errors when the Allowed File Extensions to Upload settings have been customised. 
  • Fixed Bug #5699: Quick Search on Insert link plugin for WYSIWYG different to Quick Search in Admin interface.
  • Fixed Bug #5702: system_parse_designs.php and system_parse_design.php failed to include files.
  • Fixed Bug #5703: Create Link Trigger adds a remap.
  • Fixed Bug #5714: Set Future Lineage cron job creating an extra asset link to the Trash.
  • Fixed Bug #5719: Edit screen not acquiring locks over https.
  • Fixed Bug #5726: test_form_integrity system test script undefined variable $this.
  • Fixed Bug #5727: Invalid Warranty Key screen errors 

CMS

  • Fixed Bug #5700: Generating "broken links" link report asset can throw fatal error.
  • Fixed Bug #5716: "Include file attachments" setting in the Custom Form's Email Option not working.

LDAP

  • Fixed Bug #5686: Asset Builder Created Bodycopy prints form tags.

Bulkmail

  • Fixed Bug #5705: Problem with "all" on Bulkmail subscribe page.

Calendar

  • Fixed Bug #5691: Event search result returning recurring event instances beyond event's stop date.

Data

  • Fixed Bug #5709: iCal Data Source not unfolding content.

Squid

  • Fixed Bug #5706: Clear Squid Cache returns binary data to the browser window.

SharePoint

  • Fixed Bug #5697: SharePoint form action to create list not valid for entered connection details.

Trigger events within Squiz Matrix define the actions that a trigger is listening for before it is fired. So, for example, you can configure your triggers to fire when an asset is created in the system or when the status of an asset is changed. Once an event fires a trigger, the configured conditions are checked and, if approved, the specified actions on the trigger will be performed. 

While Matrix already contains a large number of trigger events, the act of cloning an asset within the asset map was not previously broadcast as an event and could not fire a trigger.

This feature introduces a new trigger event that will fire a trigger when an asset is cloned. The Asset Cloned trigger event can be selected when configuring the Details screen of a trigger.

Asset Listing / Search Page: Option to Hide Unlinked Navigation Text

Squiz Matrix's Asset Listing and Search Page assets allow you to display the list of results as multiple pages of assets. When a listing or search page is configured in this manner, Next Page and Previous Page links are displayed to allow users to navigate through the returned results.

Previously, both these navigation links would be displayed regardless of what page of results a user was viewing. As such, the Previous Page button would be displayed on the first page of the results as unlinked text, as would the Next Page button on the last page of results.

This feature introduces a new option to hide unlinked navigation text to prevent this from occurring. This is configured via a new setting on the Details screen of the Asset Listing and Search Page assets.

When this option is enabled, the Previous Page link will not appear on the first page of the results and the Next Page link will not appear on the last page of the results.

By default, this field will be disabled, ensuring that existing implementations using these nest/previous links remain functional.

E-Commerce Checkout Without Payment Gateway

Squiz Matrix's E-Commerce package allows for a variety of different implementations when creating an online e-commerce store. When using the Checkout Page asset, users configure a Default Delivery Method, which is linked to a payment gateway. This allows customers to select a delivery method and provide their address and payment details.

Previously, this e-commerce setup would not function without the use of a working payment gateway. This meant that customers would be required to complete the payment process to submit an order.

This feature introduces the new option of allowing users to submit orders without going through the payment process. This option is set via a new field on the Details screen of the Default Delivery Method asset.

The Gateway Required? field allows you to specify whether or not a payment gateway asset is required for use on the Checkout Page.

When this setting is enabled (as it is by default), a payment gateway must be configured or else the customer will be presented with an error and the order will not be submitted.

Disabling this setting means that customers will bypass the payment process completely and the order will be submitted directly after completing the delivery details form.

This feature has been added to provide additional implementation possibilities and give users more control over their e-commerce setups.

New JavaScript API Functions: getLineageFromUrl, getUrlFromLineage

Two new operations have been added to the JavaScript API's Traversing functionality.

The getLineageFromUrl() operation returns the asset lineage of a specified URL. This function differs from the existing getLineage() operation by returning the specific asset lineage of a URL rather than returning all lineages of the asset.

This operation take the following parameters.

  • asset_url: the URL of the asset to get the lineage of.
  • dataCallback: the custom callback function.

An example usage of this operation is as follows:

Standard Mode:

getLineageFromUrl("http://www.example.com/site",  customDataCallbackFunc); 
Enhanced Mode:
js_api.getLineageFromUrl({
"asset_url":"http://www.example.com/site",
"dataCallback":customDataCallbackFunc
}) 

The getUrlFromLineage() operation returns the URL of a specified asset lineage.

This operation takes the following parameters:

  • lineage: an array of asset IDs in lineage order, e.g. ["80", "85", "200"] or [{"assetid":"80"}, {"assetid":"85"}, {"assetid":"200"}].
  • root_url: a root URL to filter the results against multiple roots (optional).
  • protocol: a protocol to filter the results, e.g. http, https (optional).
  • dataCallback: the custom callback function.

An example usage of this operation is as follows:

Standard Mode:

getUrlFromLineage(["4206", "4437"], "", "https", customDataCallbackFunc);
Enhanced Mode:

js_api.getUrlFromLineage({
   "lineage":["4206", "4437"],
   "protocol":"https",
   "dataCallback":customDataCallbackFunc
})

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5642: Logs Screen - Filter by Date Range.
  • Minor Enhancement #5666: Create Asset Link Function Performance Enhancement.
  • Minor Enhancement #5670: system_integrity_invalid_links.php Script Now Evaluates Notice Links.
  • Minor Enhancement #5672: Forcibly Remove HIPO Jobs With the HIPO Management Script.

Core

  • Fixed Bug #5651: regen_metadata_schemas.php Trigger Error error.
  • Fixed Bug #5652: Script to add url with add_remove_url.php incorrectly reports new URL exists.
  • Fixed Bug #5659: Asset Not Found issue for preview with difference of system version and edited version.
  • Fixed Bug #5660: Metadata WYSIWYG fields cannot be blanked out.
  • Fixed Bug #5668: Workflow table last_started_by field too short for LDAP users.
  • Fixed Bug #5680: Automatic upgrade misses rollback change.
  • Fixed Bug #5681: Paint layouts break when using a video asset's alt asset keywords.

CMS

  • Fixed Bug #5656: Redirect Page timeout causes infinite loop.
  • Fixed Bug #5690: Form Submission error when the Custom Form has no questions.

Search

  • Fixed Bug #5648: Couple of issues with Search Page with Structured Drop Down and Stored Search.

Calendar

  • Fixed Bug #5650: Upcoming Event List has blank instance keyword replacements for recurring events. 

E-Commerce

  • Fixed Bug #5671: Cannot change the value for Disable Keyword Replacements option on simple form. 

Data

  • Fixed Bug #5669: XML Data Source breaks Attribute Without Value.
  • Fixed Bug #5689: JSON Data Source not able to select REST Resource JS as its source.

Web Services

  • Fixed Bug #5658: JS API releaseLocks fails when asset is Pending Approval and the user has Write Access.

The Safe Edit status for assets allows you to make changes to an asset that is live without those changes being seen on a site until they have been approved. Once the safe edit version of an asset has been approved, it replaces the previous live version on the site. If these changes are rejected, the content of the asset will revert back to its original content.

Previously, however, the thumbnail setting of an asset could not be safely edited; any changes to the thumbnail of an asset in Safe Edit mode would also affect the live version of the asset. As such, if safe edit changes were rejected, a thumbnail would not be able to revert back to its previous version.

This feature adds support for asset thumbnails when an asset is in Safe Edit mode, allowing you to safely edit and configure the thumbnail of an asset without affecting the live version of a site.

Asset Live Notification for Workflow Initiator 

The Notify on Live custom message on a Workflow Schema notifies users that an asset in workflow has been approved and made live. Previously, this message could be configured to be sent to approving users on workflow conditions.

This feature introduces a new option on the Workflow Schema to also send this message to the user who initiated the workflow process, informing this user that the asset completed workflow and has been made live.

This option is set via a new Notify Starter When Live? field on the Details screen of a Workflow Schema. 

When this option is enabled, the user who started the workflow process on an asset (apply for approval) will receive the notification email if/when this asset is approved and made live.

Export Online Quiz to XML Tool

This feature introduces a new system tool to export an Online Quiz (including any question groups and multi-choice questions) to an XML file.

The Export Online Quiz to XML tool is accessed on the System Tools screen. The tool allows you to select a root node to export the Online Quiz asset(s) and specify whether to also export Standard Page assets as part of the resulting XML file.

If you are also exporting Standard Page assets, additional options are available, allowing you to select a Paint Method (raw or paint layout) and to specify the start and end tags to extract content from.

When you have configured the settings for the Export Online Quiz to XML tool and click Commit, a download link will be made available for the resulting XML file.

This tool has been added for compliance in Sharable Content Object Reference Model (SCORM) development (a set of technical standards for e-based learning).

Custom Form Submission Limit 

This feature introduces a new setting on Squiz Matrix's Custom Form asset, allowing you to set a submission limit, essentially a maximum number of form submissions that can be stored on the Custom Form.

This setting is configured via a new Submission Limit section of the Details screen of the Custom Form's Form Contents asset. 

In this section, you can specify the number of submissions that should be allowed on the Custom Form. So, for example, if you set this limit to 5, once five submissions have been logged, no more submissions will be able to made on the form.

If the set limit is exhausted, an error message will be displayed informing users that no more submissions can be made. The format of this message is configured on a new Submission Limit Reached Bodycopy.

An error message can also be configured that will be displayed to users if the submission limit is exhausted while they are in the process of completing the form.

By default, the submission limit setting on a Custom Form is set to 0, disabling this option.

This feature has been added to provide more control over the submissions of Custom Form assets, especially in such cases where only a certain number of submissions should be made, for example, providing seating at an event.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5601: Improved Future Asset Status Cron Job Error Reporting.
  • Minor Enhancement #5605: Cascade Option on Clear Squid Cache Trigger Action.
  • Minor Enhancement #5607: Include All for SOAP Advanced Search.
  • Minor Enhancement #5613: Tree Location Trigger Condition: Select Multiple Locations.
  • Minor Enhancement #5614: Keyword Modifiers on Redirect Page.
  • Minor Enhancement #5617: Decision Tree: First Question Selection Enhancement.
  • Minor Enhancement #5619: getValueFromURL Performance Enhancement.
  • Minor Enhancement #5625: Internal Messages Warning Message.
  • Minor Enhancement #5630: Cease Connection Attempts to Archived LDAP Bridge.
  • Minor Enhancement #5633: Search Page: Keyword Modifiers in Next/Previous Links.
  • Minor Enhancement #5635: Last Run Option on Metadata Triggers Cron Job.
  • Minor Enhancement #5638: Links Report Display Options Now Affect Downloadable CSV Reports. 

Core

  • Fixed Bug #5527: Space in ALT text adds image filename to ALT attribute.
  • Fixed Bug #5589: Simple Edit incorrectly inheriting CSS body styles.
  • Fixed Bug #5596: system_parse_designs.php does not parse recursive design customisations.
  • Fixed Bug #5598: Matrix import script can throw error if the asset its importing has deny permission.
  • Fixed Bug #5612: Multiple Tree Location Trigger Conditions generates invalid hash table entries.
  • Fixed Bug #5615: PHP Warning when creating the first remap.
  • Fixed Bug #5616: Trigger Condition Link Exists not storing parent type or id in hash.
  • Fixed Bug #5621: User Restrictions Asset/User Type Condition setup throws errors.
  • Fixed Bug #5626: Ogg video metadata extraction.
  • Fixed Bug #5628: Cosmetic Issue : Checkbox on Trigger Action Set Status enabled even without Acquiring locks.
  • Fixed Bug #5629: system_check.php script reports duplicate entries.
  • Fixed Bug #5632: csv_to_xml_actions.php throws errors.
  • Fixed Bug #5634: Matrix logs php notice every time a login page is rendered.
  • Fixed Bug #5636: Specifying a style for a table border creates messy code.
  • Fixed Bug #5637: Asset builder removing full stop from WYSIWYG hyperlinks with anchor names. 

CMS

  • Fixed Bug #5618: Keyword modifier doesn't work on all keywords for the Form Submission asset.

LDAP

  • Fixed Bug #5608: ldap_change_dn.php does not update running_as attribute for cron jobs.

Calendar

  • Fixed Bug #5606: Upcoming events listing doesn't list recurring events if the first date is in the past. 

Data

  • Fixed Bug #5640: RSS Data Source intermittently loses results. 

Web Services

  • Fixed Bug #5593: JS API trashAsset function not deleting asset links.
  • Fixed Bug #5609: JS_API::getRoles doesn't return correct message when no roles found.
  • Fixed Bug #5610: SOAP GetLinkByAsset() not passing correct default value to Asset_Manager::getLinkByAsset().

Previously, Squiz Matrix did not send cacheable headers for SSL encrypted requests.

This feature addresses this issue by adding new settings to the Cache Manager's Send Cacheable Header screen, allowing you to specify the protocol when cacheable headers will be sent (HTTP, HTTPS or both). Additional options allow you to configure the cache-control level for both HTTP and HTTPS protocols.

Asset Logs Screen: Internal Messages Performance Enhancement

Previously, loading on the Asset Logs screen could potentially be slow on systems containing large numbers of internal messages. This feature refines the process of retrieving the list of valid asset types and the saving of internal messages to improve the performance of the Asset Logs screen.

Online Quiz Interactive Mode

A new Interactive Mode has been added to the Online Quiz asset. This mode transforms the regular listed quiz format into a one question per page format, with the option of allowing users to retry incorrectly answered questions.

Interactive Mode is enabled via a new field on the Details screen of the Online Quiz asset.

Enabling Interactive Mode will display the Question Pooling settings. These settings allow you to select the root node(s) to extract the multiple-choice questions from, as well as set the number of retries available to users for each question.

Interactive Mode utilises a new feedback page on completion of each question. Response feedback can be specified for each response on the Details screen of an Online Quiz Multiple-Choice Question.

When a user answers a question on the form, the Online Quiz will display whether or not the user selected the correct answer and present any feedback that has been configured. If the user has given an incorrect answer, they will able to retry the question, with another selected from the question pool and presented to them.

Listing item classes are allocated for each option on the feedback form, as well as span tags for the response feedback. These can be used to stylise (CSS etc.) the feedback information and listed options, for example, a tick or cross for the option the user has selected.

New keyword replacements have been added to format the layout of the Online Quiz in Interactive Mode:

  • %interactive_question_number%
  • %interactive_question_note%
  • %interactive_question_text%
  • %interactive_question_response_form%
  • %interactive_button%

In addition to these changes, a new scoring system has been implemented for the Online Quiz. Scores will now be stored in the submission assets of the Online Quiz.

You are also able to specify the format of the %quiz_score% keyword replacement, used in the submission logs, and the Thank You and Page Contents bodycopies. This format is configured on a new Score Format field on the Details screen of the Online Quiz asset.

User IP Forwarding on http_request Attributes

This feature introduces the additional option of User IP forwarding on the HTTP request of REST Resource assets (incl. the Call REST Resource Trigger and Form Submission actions).

An additional "Append Query String to the Request URL" option is also available, allowing you to append the query variables passed to the Squiz Matrix URL on the HTTP request.

Brand New: Decision Tree Asset

A new Decision Tree asset has been developed for Squiz Matrix, leading users through a dynamic series of questions and displaying a final result based on the responses given. By engaging your users through an interactive decision process, the Decision Tree asset allows you to provide information and content that caters specifically on an individual user basis.

The Decision Tree asset is essentially comprised of:

  • Questions: the questions your users will answer on the decision tree. Questions can be formatted as either select or numeric question types and are similar in configuration to existing questions in form assets.
  • Results: result bodycopies are created to display to users based on their answers.
  • Answer Destinations: response-based destinations for questions on your Decision Tree. An answer destination can be either another question or a result bodycopy. This allows you to cater the questions and results displayed specifically based on the responses your users give.

Decision Tree assets can also implement a points-based system where point values are accumulated based on the responses given. Response bodycopies can then be allocated a points range and are dynamically displayed based on the accumulation of points once users reach a question that does not have an allocated answer destination (i.e. the end of the Decision Tree).

A number of new keyword replacements are available when formatting the content of the Decision Tree asset. These include:

Page Contents Bodycopy:

  • %decision_tree_contents%
  • %reset_button%

Decision Tree Question Bodycopy:

  • %question_title%
  • %question_field%
  • %question_note%
  • %accumulated_points%
  • %question_button% (numeric only)

Result Bodycopy:

  • %accumulated_points%

Additionally, question and result bodycopies on the Decision Tree are wrapped with division tags and classes for easy design implementation and CSS styling.

The introduction of this new Decision Tree asset aims to provide Matrix users with an alternative to complex graphs and diagrams which can be confusing to site users. The interactive decision process allows you to present information tailored specific to users in a simple and accessible manner.

2-Legged OAuth Authentication Available on REST Resource Assets

This feature introduces 2-legged OAuth authentication on the REST Resource assets, in addition to the existing 3-legged OAuth.

2-legged OAuth, allows users to simplify the authentication procedure by eliminating the user authorisation process of 3-legged OAuth, establishing a direct client-server scenario.

This new authentication method is available through a new "REST Resource OAuth 2 Legged" asset. The OAuth parameters available on this asset include the Consumer Key, Secret and Signature Method (HMAC-SHA1 or PLAINTEXT).

Update Link Trigger Action

Trigger actions allow you to specify tasks that will be performed when a fired trigger meets a specified set of conditions. Squiz Matrix boasts an extensive array of trigger actions that are available, from creating new assets to updating your status on twitter.

This feature introduces a brand new trigger action to update the type and value of a specified link.

The Update Link trigger action allows you to update a single link. This link can be specified by link ID or, alternatively, you can identify attributes to match a link on the firing asset, including the link type and value, the side of the link to look on (parent or child) and the asset type of the linked asset.

This trigger action has been added to strengthen the functionality of the Squiz Matrix trigger system and expand on the trigger set-ups available to users.

Recurring Calendar Event Frequency Threshold Global Preference

A new Global Preference has been added to limit the frequency that Recurring Calendar Events appear on Upcoming Events List and Event Search Page assets.

This is configured by an Event Frequency Threshold option, that allows you to set a minimum threshold (in days) for Recurring Calendar Events. If the frequency of the Calendar Event falls within this threshold, the event will only appear once on the listing.

WYSIWYG Insert Link Tool: Direct Links to Asset External Target URLs

The WYSIWYG's Insert Link tool allows you to insert a hyperlink to an external site or an internal asset. Previously, however, this tool, when creating links to Link and Redirect Page assets, would create a link directly to that asset (e.g. "./?a=123").

This features introduces new functionality that allows you to link directly to the target URLs of Link and Redirect Page assets.

A new Asset Type field has been added to the Insert Link tool. This field allows you to specify whether the link is to a Link or Redirect Page asset or, if not, any other asset.

When a user selects ether the Link Asset or Redirect Page Asset options, only assets of those types will be able to be selected in the Select Asset field. Once an asset is selected, and a global keyword replacement will be automatically printed in the Link field, linking directly to the target URL of the asset, as follows:

  • %globals_asset_attribute_link_url:123%
  • %globals_asset_attribute_redirect_url:123%  

This feature has been added to aid editors and simply the process of linking to external urls on Matrix assets.

Load Balancing "Read" Database Connection Support

This feature introduces load balancing when distributing connections to multiple database servers, enabling support of multiple 'read' databases.

Databases are configured in the system's db.inc file and can be specified weight and timeout values to designate when/how the system will make a connection to these servers. The use of multiple 'read' databases is expected to significantly improve performance on complex systems that experience issues with a single connection db setup.

Please note that modification of the db.inc file should only be performed by a system administrator. 

New Asset: Calendar Events Search Page

Due for release in version 4.8.0 (March 5th 2012)

Squiz Matrix's Calendar package sees the introduction of the brand new asset that allows users to search for the calendar events occurring on a specific date/range.

The Calendar Events Search Page works in a similar manner to Squiz Matrix's existing Search Page asset and retains most functionality, including search field filtering (i.e. metadata, asset name etc.).

Additions to this new asset include additional search field event filters. These are as follows:

  • Single Date
  • Date Range
  • Fuzzy Date (Dropdown selection)*
  • Fuzzy Date (Checkbox selection)*

* Fuzzy date pre-defined values include options such as Today, Tomorrow, Yesterday, This weekNext month etc. 

A new %event_filter_<filter_name>% keyword replacement is also available on the Calendar Events Search Page to print out the event filter fields configured on the Search Fields screen.

The Calendar Events Search Page asset has been added to compliment Squiz Matrix's Calendar package, providing additional search functionality for the events in your system. 

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5401: 12 Hour Time Option on Custom Form's Date/Time Question Type.
  • Minor Enhancement #5408: Asset Content Keywords on Listed Bodycopy DIVs.
  • Minor Enhancement #5419: Clear Squid Cache Tool Won't Run When Not Correctly Configured.
  • Minor Enhancement #5434: Connection Status and Error Information on a DB Data Source.
  • Minor Enhancement #5483: Logs Screen: Select Multiple Log Types to View.
  • Minor Enhancement #5488: Specify Triggers to Execute on the Trigger Manager's Batching Screen.
  • Minor Enhancement #5498: Remap Manager: Option to Ignore Headers in Imported CSV Files.
  • Minor Enhancement #5503: Metadata Select Field: Option to Ignore Headers in Imported CSV Files.
  • Minor Enhancement #5504: Bulkmail Import User Tool: Option to Ignore Headers in Imported CSV.
  • Minor Enhancement #5514: Purge Trash Performance Enhancement.

Core

  • Fixed Bug #5051: WYSIWYG converts HTML/XML entities into characters.
  • Fixed Bug #5418: Combine curl/http_client requests into one library/function.
  • Fixed Bug #5461: Re-import content from data/files improvements.
  • Fixed Bug #5485: IE8 WYSIWYG quotation marks missing from attributes.
  • Fixed Bug #5486: Trigger Condition to check asset treeID fails with fatal error.
  • Fixed Bug #5499: Links Report CSV Export File Broken.
  • Fixed Bug #5501: Cannot save selected asset in Asset Finder in File Upload question; Link Manager.
  • Fixed Bug #5505: Resize of Image Insert window prompts asset tree pane resize to full window width.
  • Fixed Bug #5507: CSS Design File asset ignores permission.
  • Fixed Bug #5508: System design assets don't regenerate Design files.
  • Fixed Bug #5513: Javascript date picker in JS_Calendar class not working in Firefox.
  • Fixed Bug #5520: Paint Layout conditional keywords don't work as expected with Condition Keyword Regexp.
  • Fixed Bug #5530: Undefined index on Workflow screen.
  • Fixed Bug #5553: Custom form file upload, renaming rule doesn't rename it properly.

CMS

  • Fixed Bug #5509: Account Manager User asset web path conflict.
  • Fixed Bug #5518: CAPTCHA settings conflict.

Calendar

  • Fixed Bug #5459: Upcoming Events list displays multiple results for Single Calendar Events that run for more than one day.

Web Services

  • Fixed Bug #5522: GetAsset method doesn't return valid XML on all Assets.
  • Fixed Bug #5536: SOAP API's GetMetadataFieldValues Function, if empty field names are passed, doesn't return all values.

LDAP

  • Fixed Bug #5519: LDAP User sorting under LDAP Groups not working.
  • Fixed Bug #5524: LDAP attributes missing on User Details screen.

Enhancements have been made to Squiz Matrix's Automatic Upgrade Script to allow users to view the upgrade steps of specific versions of Matrix without requiring that particular instance.

Previously, users could use the --verbose parameter on the script to display a full list of upgrade steps from their current version to the version of Matrix indicated.

This enhancement introduces a new --show_steps parameter, which allows users to specify two versions of Matrix to view a full list of upgrade steps between them.

Usage of this script parameter is shown below. Please note that the database type (psql or oci) must be specified when using this parameter.

php matrix_upgrade.php --show_steps mysource_4-2-2 mysource_4-8-0 psql

php matrix_upgrade.php --show_steps mysource_4-2-2 mysource_4-8-0 oci

New Asset Workflow Keyword Replacements 

Additional asset workflow keyword replacements have been made available for use within Squiz Matrix. These are as follows:

  • %asset_workflow_applied_schemas%: the workflow schemas currently applied to the asset.
  • %asset_workflow_current_start_time:X%: the time the entire workflow process began, where X is the id of the workflow schema.
  • %asset_workflow_current_stream_name:X%: the name of the workflow stream currently running, where X is the id of the workflow schema.
  • %asset_workflow_current_step_condition_ids:X%: a comma-separated list of asset IDs of user/user group and/or role conditions on the current workflow step, where X is the id of the workflow schema.

Please note that the specification of the workflow schema ID in the above keywords is optional. If no schema id is set, the keyword will return the values of all schemas running on the asset.

These keyword replacements have been added to allow users to extract additional workflow information for their assets.  

Cache Globally: 404 Not Found Page of a Site 

A new setting has been added to the Details screen of Site assets to globally cache the 404 Not Found Page of the Site.

When this field is enabled, the Not Found Page specified on the Details screen will share a common cache entry everywhere it is used, irrespective of the URL.

Caching in these circumstances begins right before painting the page, meaning that all nested content and design areas will be included in the cache.

This option should be used on Sites where the configured Not Found Page is constant and not dynamically generated (URL-based). 

Cacheable Headers for Logged-In Users 

Previously, Squiz Matrix's Cache Manager allowed you to send cacheable headers for all public pages served to users who were not logged-in (public users), allowing the web browser to cache pages for faster browsing.

This feature introduces a new option on the Cache Manager to send cacheable headers for all users, regardless of whether they are public or not.

This option is accessed via new Public User Only options for Root URLs on the Cacheable Headers screen of the Cache Manager.

By default, this option is selected for all Root URLs. If this options is disabled, Squiz Matrix will send cacheable headers for pages served to logged-in users, as well as public users, on that URL.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5510: Performance Enhancement: getAllChildLinks().
  • Minor Enhancement #5539: Suggested Tags Now In Alphabetical Order.
  • Minor Enhancement #5554: Default Maori Characters Remapping for WebPath.
  • Minor Enhancement #5557: Restricted File URL Memory.
  • Minor Enhancement #5577: Online Quiz: Server Side Validation.
  • Minor Enhancement #5584: Matrix to Not Poll LDAP During Root User Authentication.
  • Minor Enhancement #5585: Automatic Upgrade Script: Allow PHP Options.
  • Minor Enhancement #5594:Performance Enhancement - getLineageFromURL. 

Core

  • Fixed Bug #5533: Asset Builder asset's Dynamic Create Locations ignore LDAP user group membership.
  • Fixed Bug #5534: Incorrect LEFT JOIN causes performance issue in asset_manager's getAllChildLinks.
  • Fixed Bug #5545: Using ctrl-z while viewing html source in WYSIWYG removes all tags in IE.
  • Fixed Bug #5546: Inaccurate label on the insert image popup of the WYSIWYG.
  • Fixed Bug #5555: Embed YouTube Video by URL improvement.
  • Fixed Bug #5558: Import assets from XML errors when setting permission for online quiz asset.
  • Fixed Bug #5560: Warranty key expiry screen shows up in SOAP API call.
  • Fixed Bug #5562: Asset Map supported java versions.
  • Fixed Bug #5563: root_nodes keyword does not work with modifiers unless used without them first.
  • Fixed Bug #5564: Issue with viewing workflow logs.
  • Fixed Bug #5567: WYSIWYG select text colour on multiple table cells removes cell tag.
  • Fixed Bug #5569: System alternative proxy setting wiped when running installation step 3.
  • Fixed Bug #5572: Conditional Keyword for Paint Layout doesn't let you configure the question id in keywords like 'question_answer_X_qY'.
  • Fixed Bug #5574: Form file upload problem with IOS device.
  • Fixed Bug #5576: Edit permission HIPO goes over 100%.
  • Fixed Bug #5581: tags converted to character references when inside a span when lang attribute removed.
  • Fixed Bug #5583: Revert safe edit assets status with notice links fatal errors when multiple context is defined.
  • Fixed Bug #5587: WYSIWYG Insert link for redirect page or link asset doesn't work with manual entering of the asset ID.
  • Fixed Bug #5588: Thesaurus metadata field keywords not replaced by JS API getKeywordReplacements.

CMS

  • Fixed Bug #5566: Remote content page display error message not working.
  • Fixed Bug #5579: Asset builder asset created bodycopy, can not use nesting asset's keywords in Additional Get Vars of Nest Content Type. 

Search

  • Fixed Bug #5535: Inconsistent indexing when non-alphanumeric characters in a string.

LDAP

  • Fixed Bug #5542: %globals_user_attribute_*% keywords not working for LDAP user.

Web Services

  • Fixed Bug #5532: JS API getLineage function return incorrect data for asset parents that have been linked in multiple places.
  • Fixed Bug #5537: Javascript API createAsset function doesn't work in IE.
  • Fixed Bug #5538: maximum_perm_on_asset returning incorrect permission level.
  • Fixed Bug #5559: JS_API::removeMultipleLinks() throws JSON.parse error on failure.
  • Fixed Bug #5568: SOAP Web Service GetDesignFromURL() returns no results for certain scenarios.
  • Fixed Bug #5570: REST Resource Pages fails to get requested content when only 'Forward user information' is selected.

Minor Enhancements and Bug Fixes

  • Minor Enhancement #5662: Improved Error Handling on Squiz Matrix Quick Search.
  • Minor Enhancement #5678: Improved Error Handling for Non-Existent Workflow Schemas.
  • Minor Enhancement #5639: Improved Error Handling for Unauthorised Dynamic Root Nodes.
  • Minor Enhancement #5695: Asset Map Support for Shadow Simple Edit Users.
  • Minor Enhancement #5711: Improved Error Handling on the JavaScript API.
  • Minor Enhancement #5715: SOAP Submission Action: Mute Exceptions on Test Run.
  • Minor Enhancement #5717: Active Directory LDAP User Permissions Enhancement.

Core

  • Fixed Bug #5657: Matrix doesn't fail over to alternate memcached servers for cache, locking or deja vu.
  • Fixed Bug #5674: Snippet folder and Oracle limit (error ORA-01795).
  • Fixed Bug #5675: Invalid HTML on asset builder if select metadata field has spaces in key.
  • Fixed Bug #5677: Select options position toggles fail after deleting options from list.
  • Fixed Bug #5683: step_02 should not error first time around on Oracle.
  • Fixed Bug #5687: Admin Quick Search doesn't seem to find https URLs that have force secure.
  • Fixed Bug #5696: Errors when the Allowed File Extensions to Upload settings have been customised. 
  • Fixed Bug #5699: Quick Search on Insert link plugin for WYSIWYG different to Quick Search in Admin interface.
  • Fixed Bug #5702: system_parse_designs.php and system_parse_design.php failed to include files.
  • Fixed Bug #5703: Create Link Trigger adds a remap.
  • Fixed Bug #5714: Set Future Lineage cron job creating an extra asset link to the Trash.
  • Fixed Bug #5719: Edit screen not acquiring locks over https.
  • Fixed Bug #5726: test_form_integrity system test script undefined variable $this.
  • Fixed Bug #5727: Invalid Warranty Key screen errors. 

CMS

  • Fixed Bug #5700: Generating "broken links" link report asset can throw fatal error.
  • Fixed Bug #5716: "Include file attachments" setting in the Custom Form's Email Option not working.

LDAP

  • Fixed Bug #5686: Asset Builder Created Bodycopy prints form tags.

Bulkmail

  • Fixed Bug #5705: Problem with "all" on Bulkmail subscribe page.

Data

  • Fixed Bug #5709: iCal Data Source not unfolding content.

SharePoint

  • Fixed Bug #5697: SharePoint form action to create list not valid for entered connection details.

Two new operations have been added to the JavaScript API's Traversing functionality.

The getLineageFromUrl() operation returns the asset lineage of a specified URL. This function differs from the existing getLineage() operation by returning the specific asset lineage of a URL rather than returning all lineages of the asset.

This operation take the following parameters.

  • asset_url: the URL of the asset to get the lineage of.
  • dataCallback: the custom callback function.

An example usage of this operation is as follows:

Standard Mode:

getLineageFromUrl("http://www.example.com/site",  customDataCallbackFunc); 
Enhanced Mode:
js_api.getLineageFromUrl({
"asset_url":"http://www.example.com/site",
"dataCallback":customDataCallbackFunc
}) 

The getUrlFromLineage() operation returns the URL of a specified asset lineage.

This operation takes the following parameters:

  • lineage: an array of asset IDs in lineage order, e.g. ["80", "85", "200"] or [{"assetid":"80"}, {"assetid":"85"}, {"assetid":"200"}].
  • root_url: a root URL to filter the results against multiple roots (optional).
  • protocol: a protocol to filter the results, e.g. http, https (optional).
  • dataCallback: the custom callback function.

An example usage of this operation is as follows:

Standard Mode:

getUrlFromLineage(["4206", "4437"], "", "https", customDataCallbackFunc);
Enhanced Mode:

js_api.getUrlFromLineage({
   "lineage":["4206", "4437"],
   "protocol":"https",
   "dataCallback":customDataCallbackFunc
})

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5666: Create Asset Link Function Performance Enhancement.
  • Minor Enhancement #5670: system_integrity_invalid_links.php Script Now Evaluates Notice Links.
  • Minor Enhancement #5672: Forcibly Remove HIPO Jobs With the HIPO Management Script.

Core

  • Fixed Bug #5651: regen_metadata_schemas.php Trigger Error error.
  • Fixed Bug #5659: Asset Not Found issue for preview with difference of system version and edited version.
  • Fixed Bug #5660: Metadata WYSIWYG fields cannot be blanked out.
  • Fixed Bug #5681: Paint layouts break when using a video asset's alt asset keywords. 

CMS

  • Fixed Bug #5656: Redirect Page timeout causes infinite loop.
  • Fixed Bug #5690: Form Submission error when the Custom Form has no questions. 

Search

  • Fixed Bug #5648: Couple of issues with Search Page with Structured Drop Down and Stored Search.

Calendar

  • Fixed Bug #5650: Upcoming Event List has blank instance keyword replacements for recurring events. 

E-Commerce

  • Fixed Bug #5671: Cannot change the value for Disable Keyword Replacements option on simple form. 

Data

  • Fixed Bug #5669: XML Data Source breaks Attribute Without Value. 
  • Fixed Bug #5689: JSON Data Source not able to select REST Resource JS as its source. 

Web Services

  • Fixed Bug #5658: JS API releaseLocks fails when asset is Pending Approval and the user has Write Access.
  • Minor Enhancement #5601: Improved Future Asset Status Cron Job Error Reporting.
  • Minor Enhancement #5605: Cascade Option on Clear Squid Cache Trigger Action.
  • Minor Enhancement #5607: Include All for SOAP Advanced Search.
  • Minor Enhancement #5613: Tree Location Trigger Condition: Select Multiple Locations.
  • Minor Enhancement #5614: Keyword Modifiers on Redirect Page.
  • Minor Enhancement #5617: Decision Tree: First Question Selection Enhancement.
  • Minor Enhancement #5619: getValueFromURL Performance Enhancement.
  • Minor Enhancement #5625: Internal Messages Warning Message.
  • Minor Enhancement #5630: Cease Connection Attempts to Archived LDAP Bridge.
  • Minor Enhancement #5633: Search Page: Keyword Modifiers in Next/Previous Links.
  • Minor Enhancement #5635: Last Run Option on Metadata Triggers Cron Job.
  • Minor Enhancement #5638: Links Report Display Options Now Affect Downloadable CSV Reports. 

Core

  • Fixed Bug #5527: Space in ALT text adds image filename to ALT attribute.
  • Fixed Bug #5589: Simple Edit incorrectly inheriting CSS body styles.
  • Fixed Bug #5596: system_parse_designs.php does not parse recursive design customisations.
  • Fixed Bug #5598: Matrix import script can throw error if the asset its importing has deny permission.
  • Fixed Bug #5612: Multiple Tree Location Trigger Conditions generates invalid hash table entries.
  • Fixed Bug #5615: PHP Warning when creating the first remap.
  • Fixed Bug #5616: Trigger Condition Link Exists not storing parent type or id in hash.
  • Fixed Bug #5621: User Restrictions Asset/User Type Condition setup throws errors.
  • Fixed Bug #5626: Ogg video metadata extraction.
  • Fixed Bug #5628: Cosmetic Issue : Checkbox on Trigger Action Set Status enabled even without Acquiring locks.
  • Fixed Bug #5629: system_check.php script reports duplicate entries.
  • Fixed Bug #5632: csv_to_xml_actions.php throws errors.
  • Fixed Bug #5634: Matrix logs php notice every time a login page is rendered.
  • Fixed Bug #5636: Specifying a style for a table border creates messy code.
  • Fixed Bug #5637: Asset builder removing full stop from WYSIWYG hyperlinks with anchor names. 

CMS

  • Fixed Bug #5618: Keyword modifier doesn't work on all keywords for the Form Submission asset.

LDAP

  • Fixed Bug #5608: ldap_change_dn.php does not update running_as attribute for cron jobs.

Calendar

  • Fixed Bug #5606: Upcoming events listing doesn't list recurring events if the first date is in the past. 

Data

  • Fixed Bug #5640: RSS Data Source intermittently loses results. 

Web Services

  • Fixed Bug #5593: JS API trashAsset function not deleting asset links.
  • Fixed Bug #5609: JS_API::getRoles doesn't return correct message when no roles found.
  • Fixed Bug #5610: SOAP GetLinkByAsset() not passing correct default value to Asset_Manager::getLinkByAsset().

Enhancements have been made to Squiz Matrix's Automatic Upgrade Script to allow users to view the upgrade steps of specific versions of Matrix without requiring that particular instance.

Previously, users could use the --verbose parameter on the script to display a full list of upgrade steps from their current version to the version of Matrix indicated.

This enhancement introduces a new --show_steps parameter, which allows users to specify two versions of Matrix to view a full list of upgrade steps between them.

Usage of this script parameter is shown below. Please note that the database type (psql or oci) must be specified when using this parameter.

php matrix_upgrade.php --show_steps mysource_4-2-2 mysource_4-8-0 psql

php matrix_upgrade.php --show_steps mysource_4-2-2 mysource_4-8-0 oci

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5510: Performance Enhancement: getAllChildLinks().
  • Minor Enhancement #5539: Suggested Tags Now In Alphabetical Order.
  • Minor Enhancement #5557: Restricted File URL Memory.
  • Minor Enhancement #5584: Matrix to Not Poll LDAP During Root User Authentication.
  • Minor Enhancement #5585: Automatic Upgrade Script: Allow PHP Options.

Core

  • Fixed Bug #5533: Asset Builder asset's Dynamic Create Locations ignore LDAP user group membership.
  • Fixed Bug #5545: Using ctrl-z while viewing html source in WYSIWYG removes all tags in IE.
  • Fixed Bug #5546: Inaccurate label on the insert image popup of the WYSIWYG.
  • Fixed Bug #5555: Embed YouTube Video by URL improvement.
  • Fixed Bug #5558: Import assets from XML errors when setting permission for online quiz asset.
  • Fixed Bug #5560: Warranty key expiry screen shows up in SOAP API call.
  • Fixed Bug #5562: Asset Map supported java versions.
  • Fixed Bug #5563: root_nodes keyword does not work with modifiers unless used without them first.
  • Fixed Bug #5567: WYSIWYG select text colour on multiple table cells removes cell tag.
  • Fixed Bug #5569: System alternative proxy setting wiped when running installation step 3.
  • Fixed Bug #5572: Conditional Keyword for Paint Layout doesn't let you configure the question id in keywords like 'question_answer_X_qY'.
  • Fixed Bug #5574: Form file upload problem with IOS device.
  • Fixed Bug #5576: Edit permission HIPO goes over 100%.
  • Fixed Bug #5581: tags converted to character references when inside a span when lang attribute removed.
  • Fixed Bug #5583: Revert safe edit assets status with notice links fatal errors when multiple context is defined.
  • Fixed Bug #5587: WYSIWYG Insert link for redirect page or link asset doesn't work with manual entering of the asset ID.
  • Fixed Bug #5588: Thesaurus metadata field keywords not replaced by JS API getKeywordReplacements.

CMS

  • Fixed Bug #5566: Remote content page display error message not working.
  • Fixed Bug #5579: Asset builder asset created bodycopy, can not use nesting asset's keywords in Additional Get Vars of Nest Content Type. 

Search

  • Fixed Bug #5535: Inconsistent indexing when non-alphanumeric characters in a string.

LDAP

  • Fixed Bug #5542: %globals_user_attribute_*% keywords not working for LDAP user.

Web Services

  • Fixed Bug #5532: JS API getLineage function return incorrect data for asset parents that have been linked in multiple places.
  • Fixed Bug #5537: Javascript API createAsset function doesn't work in IE.
  • Fixed Bug #5538: maximum_perm_on_asset returning incorrect permission level.
  • Fixed Bug #5559: JS_API::removeMultipleLinks() throws JSON.parse error on failure.
  • Fixed Bug #5568: SOAP Web Service GetDesignFromURL() returns no results for certain scenarios.

Previously, Squiz Matrix did not send cacheable headers for SSL encrypted requests.

This feature addresses this issue by adding new settings to the Cache Manager's Send Cacheable Header screen, allowing you to specify the protocol when cacheable headers will be sent (HTTP, HTTPS or both). Additional options allow you to configure the cache-control level for both HTTP and HTTPS protocols.

WYSIWYG Insert Link Tool: Direct Links to Asset External Target URLs

The WYSIWYG's Insert Link tool allows you to insert a hyperlink to an external site or an internal asset. Previously, however, this tool, when creating links to Link and Redirect Page assets, would create a link directly to that asset (e.g. "./?a=123").

This features introduces new functionality that allows you to link directly to the target URLs of Link and Redirect Page assets.

A new Asset Type field has been added to the Insert Link tool. This field allows you to specify whether the link is to a Link or Redirect Page asset or, if not, any other asset.

When a user selects ether the Link Asset or Redirect Page Asset options, only assets of those types will be able to be selected in the Select Asset field. Once an asset is selected, and a global keyword replacement will be automatically printed in the Link field, linking directly to the target URL of the asset, as follows:

  • %globals_asset_attribute_link_url:123%
  • %globals_asset_attribute_redirect_url:123%  

This feature has been added to aid editors and simply the process of linking to external urls on Matrix assets.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5498: Remap Manager: Option to Ignore Headers in Imported CSV Files.
  • Minor Enhancement #5503: Metadata Select Field: Option to Ignore Headers in Imported CSV Files.
  • Minor Enhancement #5504: Bulkmail Import User Tool: Option to Ignore Headers in Imported CSV.

Core

  • Fixed Bug #5051: WYSIWYG converts HTML/XML entities into characters.
  • Fixed Bug #5485: IE8 WYSIWYG quotation marks missing from attributes.
  • Fixed Bug #5486: Trigger Condition to check asset treeID fails with fatal error.
  • Fixed Bug #5499: Links Report CSV Export File Broken.
  • Fixed Bug #5501: Cannot save selected asset in Asset Finder in File Upload question; Link Manager.
  • Fixed Bug #5505: Resize of Image Insert window prompts asset tree pane resize to full window width.
  • Fixed Bug #5507: CSS Design File asset ignores permission.
  • Fixed Bug #5508: System design assets don't regenerate Design files.
  • Fixed Bug #5513: Javascript date picker in JS_Calendar class not working in Firefox.
  • Fixed Bug #5520: Paint Layout conditional keywords don't work as expected with Condition Keyword Regexp.
  • Fixed Bug #5553: Custom form file upload, renaming rule doesn't rename it properly.

CMS

  • Fixed Bug #5509: Account Manager User asset web path conflict.
  • Fixed Bug #5518: CAPTCHA settings conflict.

Calendar

  • Fixed Bug #5459: Upcoming Events list displays multiple results for Single Calendar Events that run for more than one day.

Web Services

  • Fixed Bug #5522: GetAsset method doesn't return valid XML on all Assets. 
  • Fixed Bug #5536: SOAP API's GetMetadataFieldValues Function, if empty field names are passed, doesn't return all values.

The Select question type, used on a Custom Form, allows you to specify a CSV file from your computer to automatically input the options for the Select question. This is useful for batch uploading a number of options or if you are importing an existing question's options.

Previously, this functionality was not available on the Metadata Select Field. This feature introduces this addition, allowing you to specify a CSV file when configuring the Metadata Select Field's options. 

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5462: Paint Layout: Conditional Keywords Performance Enhancement.
  • Minor Enhancement #5473: Email Form Reply-To Address.
  • Minor Enhancement #5477: E-Com Default Delivery Method: New Keyword to Print Transaction Ref ID.
  • Minor Enhancement #5487: Cron Manager: Improved Handling for Fatal Error/Memory Limit Caused by Deadlock.
  • Minor Enhancement #5493: JS API's cloneAsset Function Returns Cloned Asset IDs in Response.

Core

  • Fixed Bug #5460: New DIVs created in Safe Edit showing on front end before going Live.
  • Fixed Bug #5468: remove_form_submission.php corrupts sq_ast_lnk_tree.
  • Fixed Bug #5469: remove_form_submission.php doesn't clean up metadata on file system.
  • Fixed Bug #5470: Rollback view throw errors if the rollback date is older than the user currently logged.
  • Fixed Bug #5471: Mollom CAPTCHA throws fatal error when checking metadata fields value in Asset Builder.
  • Fixed Bug #5476: Missing file causes empty array to be returned from getExistingFile.
  • Fixed Bug #5478: Inserting Youtube in WYSIWYG with "Embed Youtube video" plugin doesn't resize properly in IE7/8.
  • Fixed Bug #5480: AssetID attribute doesn't work with multiple type codes.
  • Fixed Bug #5492: Form Select Question option list can not be reordered. 

E-Commerce

  • Fixed Bug #5474: E-commerce form input names keywords.

Data

  • Fixed Bug #5465: Execute DB Query Form Submission Action creating too many bind vars. 

Web Services

  • Fixed Bug #5472: Non-UTF8 characters in response from JS API can break the output.

Keyword replacements within Squiz Matrix can be modified using a variety of keyword modifiers to further configure the returned values. For example, the keyword %asset_contents^maxwords:10% uses the maxwords modifier to display the first ten words of the body of the asset.

Previously, keyword modifiers were not available for use on the Page Contents and Page Contents (No Results) bodycopies of Asset Listing and Search Page assets.

This feature allows keyword modifiers to be used on these bodycopies, enabling the further configuration of your Asset Listings and Search pages.

Minor Enhancements

  • Minor Enhancement #5415: Non-Existent Username Error Message Option on Password Reset Page.
  • Minor Enhancement #5423: Calendar Page Performance Enhancement Printing JavaScript.
  • Minor Enhancement #5432: Import Assets From XML Ignores Non-Existent Asset IDs.
  • Minor Enhancement #5433: Related Asset Metadata Performance Enhancement.
  • Minor Enhancement #5446: New Asset Type Icon URL Keyword Replacement.
  • Minor Enhancement #5448: New Online Poll Option ID Keyword Replacement. 
  • Minor Enhancement #5453: Export Assets to XML Tool Error Handling Enhancements. 

Core

  • Fixed Bug #5366: Error handler does not correctly filter out Locale Manager.
  • Fixed Bug #5412: Replace modifier changes scope on %asset_name% in Asset Listing Type Format Bodycopy.
  • Fixed Bug #5421: Using Design asset's Styles option can break the HTML validation in the frontend.
  • Fixed Bug #5424: Admin Interface Quick Search button image broken.
  • Fixed Bug #5426: Performance issue for 4.6.0 release downloaded between 7-10th Oct.
  • Fixed Bug #5430: export_to_xml.php complains about assetid passed not being valid.
  • Fixed Bug #5437: Email trigger action on workflow events.
  • Fixed Bug #5449: Custom form - "Provide Accessible CAPTCHA" is not accessible under WCAG.
  • Fixed Bug #5451: pg_dump doesn't support the -i parameter any more.
  • Fixed Bug #5454: Issues with import/export scripts when dealing with file assets with same filename.
  • Fixed Bug #5457: Current asset parameters failing on set metadata value trigger action.

CMS

  • Fixed Bug #5431: Redirect page and safe editing issue.

Search

  • Fixed Bug #5445: Global Search and Replace Tool returns errors.

LDAP

  • Fixed Bug #5439: Send email trigger not sending to recipients in LDAP group.
  • Fixed Bug #5455: Escaped LDAP DNs break top-bar in Admin interface.

Import Tools

  • Fixed Bug #5410: Import Assets from XML Tool running out of memory.

E-Commerce

  • Fixed Bug #5394: UTransact payment gateway invalid expiry date.

Web Services

  • Fixed Bug #5444: SOAP Server design bug.

Funnelback Search

  • Fixed Bug #5411: check_requirements should describe xsl/xml better.
  • Fixed Bug #5413: funnelback_reindex.php breaking backward compatibility.

Within Matrix, a URL with or without a trailing slash will render the same content. As the Cache Manager treats every URL uniquely, however, Matrix would previously end up caching both of these URLs, resulting in two separate cache entries for the same content.

This feature strips the trailing slash off such front-end requested URLs and redirect them, resulting in just one cache entry for the URL content.

Please note that this feature does not apply to root URLs due to the possibility of apache being configured to append the trailing slash.

Global Preference to Restrict Assets Created Under Specified Sites as Type 2 Linked

The new Child Creation Type 2 Link Restriction global preference allows users to specify site assets to restrict newly created children to TYPE 2 links only. This means that any newly created assets under these sites (at any depth) will only be able to be created as TYPE 2 linked assets.

The link type of these assets can still be changed after asset creation via the asset's Linking screen.

New Script to Evaluate and Fix Files in the Public Data Directory

Matrix's public data directory houses File assets on the Matrix system that are publicly accessible (live with public read access). However, in some cases this directory may be missing files or contain old or private files due to file system permission problems and other issues.

This feature introduces the system_integrity_fix_public_files.php script. When run, this script will update any out-of-date files on the public data directory, create any files that are missing from the directory and remove any files that are private and should not be in the directory.

Usage of this script is as follows:

$ php system_integrity_fix_public_files.php SYSTEM_ROOT ROOT_ID 

System Integrity Clean Invalid Links Script

Squiz Matrix's system_integrity_orphaned_assets.php script finds and links orphaned assets underneath a specified asset ID. It also takes care of invalid links, where the major ID in a link is a missing asset; it does not, however, cater for when the child minor ID is missing while the major ID still exists.

This feature introduces the system_integrity_invalid_links.php script. This script will remove significant links where one or both sides of a link does not exist. This script will also report on the number of orphaned assets in the system and may recommend running the system_integrity_orphaned_assets.php script, upon its completion.

New Keyword Modifier to Apply XSLT to XML Content

Keyword modifiers allow you to modify keyword replacements to further configure their returned values. This feature adds a new keyword modifier to apply XSLT (Extensible Stylesheet Language Transformations) to XML content returned on the keyword.

The format for this keyword modifier is as follows:

%keyword^xslt:<assetid>%

%asset_contents_raw^xslt:343% 

This modifier will take the XSLT of a File asset (specified by asset ID), apply it to XML returned on the asset and output the result.

This feature has been added to allow users to transform the XML of assets, providing greater control over the content of their sites.

New System Forking Scripts

This feature adds three forking scripts, aimed to increase the performance of these scripts and prevent memory leakage, especially on larger systems where memory usage is otherwise too high and/or performance of single-threaded scripts is too slow.

The scripts added are:

  • system_apply_permissions.php: takes a permission string in a specific format that allows you to run multiple permission operations on the specified asset and their children. This script forks and runs in batches to curb memory usage and also runs multiple threads in parallel to speed up the overall operation.
  • system_apply_metadata_schema.php: applies a metadata schema to the specified assets and their children (and generates the metadata for that asset). Runs in batches and multiple threads in parallel.
  • system_update_lookups.php: updates lookups for all assets under the specified root node. Forks and runs in batches to keep memory usage down.

%asset_contents_paint_X% on Paint Layout Bodycopy

The %asset_contents_paint_X% keyword replacement is used on an Asset Listing Page to print the content of an asset with a specified Paint Layout applied. For example, the keyword %asset_contents_paint_1234% would apply the layout of asset #1234 to the asset content.

This feature enables the use of this keyword replacement for use within a Paint Layout bodycopy. This can be useful, for example, when using Conditional Keywords, to print the asset content with other Paint Layouts applied, based on the conditions specified.

This feature has been added to aid in the implementation of Paint Layouts, providing users with more flexibility and control over their content.

Additional Changes and Bug Fixes 

Minor Enhancements

  • Minor Enhancement #5197: Enhanced Performance on Asset Listing Pagination.
  • Minor Enhancement #5206: Backup Script to Move Database Dump into the data/ Directory.
  • Minor Enhancement #5207: Asset Manager: getLinkLineages Query Performance Improvements.
  • Minor Enhancement #5255: Performance Enhancement: Cascading Permissions on Permissions Screen.
  • Minor Enhancement #5270: Performance Enhancement: Global Search and Replace Reindex Altered Assets Only.
  • Minor Enhancement #5304: system_integrity_recover_file_versions.php Now Works for Image Varieties.
  • Minor Enhancement #5308: Metadata Field's Friendly Name Attribute Available as Keyword Replacement.
  • Minor Enhancement #5310: Search Button on the Quick Search Tool.
  • Minor Enhancement #5312: Custom Form: Date/Time Print Format Link Opens in New Window.
  • Minor Enhancement #5313: Performance Improvement to createAssetLink() Function.
  • Minor Enhancement #5316: Remap Manager: Never Delete Mass Select / Deselect.
  • Minor Enhancement #5321: Alternative Proxy Config Allows Matches to Exclude Going Through Proxy.
  • Minor Enhancement #5325: http_request Obeys Alternative Proxy Settings.

Core

  • Fixed Bug #5143: Committing from Archived/Approved to Go Live causes attributes to be cleared.
  • Fixed Bug #5299: Cron jobs added are of time stamp in past.
  • Fixed Bug #5300: Keyword modifiers not working properly on site map.
  • Fixed Bug #5301: Metadata date field not disabled when Use default selected.
  • Fixed Bug #5303: Trigger action set standard date, updates not search re-indexed.
  • Fixed Bug #5306: Asset map complains about the empty XML on PHP 5.3.
  • Fixed Bug #5307: Trigger condition Status changes to throws PHP notice.
  • Fixed Bug #5309: Manual asset id input processing and trimming.
  • Fixed Bug #5311: Show Diff preview incomplete highlights.
  • Fixed Bug #5314: Short form shadow asset links.
  • Fixed Bug #5315: Design CSS assets don't regenerate parse file for itself or children customisations.
  • Fixed Bug #5326: Trying to add an Alternative Proxy spits out PHP warnings.
  • Fixed Bug #5327: Linking to image varieties requires a dollar $ sign to work.
  • Fixed Bug #5334: Workflow escalation custom message are have wrong subject.
  • Fixed Bug #5341: Filter Front End User Input - set to Filter input breaking front end layout after parse file commit.
  • Fixed Bug #5342: PHP 5.3 E_DEPRECATED warning in installation scripts.

CMS

  • Fixed Bug #5148: br tag created in the WYSIWYG as soon as it's created. 

Search

  • Fixed Bug #5319: Search Manager Asset Tree and Global Weights screen error.
  • Fixed Bug #5324: Metadata Weightings in Search Manager Asset Tree Weights screen does not work.

LDAP

  • Fixed Bug #5305: LDAP authentication ignores bridge asset-map position.
  • Fixed Bug #5347: LDAP Bridge not expanding for some User/User Groups LDAP entries.

Web Services

  • Fixed Bug #5140: JS API importAssetsFromXML() only imports the first Asset.
  • Fixed Bug #5318: JS API causing syntax error if the ajax response is undefined or null.
  • Fixed Bug #5328: JS API setAttribute() will show success even on error.

A new script has been added to allow users to export form submissions to CSV. This script can be set to run automatically at regular intervals and is useful for integrating submissions into other systems.

The export_form_submission_logs.php script takes the following arguments:

  • The asset ID of the form to export the submissions of.
  • A date range of submissions to export.
  • The path of the CSV file to export submissions to.

An example of its usage is shown below:

php scripts/export_form_submission_logs.php $PWD 1234 "yesterday 00:00:00" "yesterday 23:59:59" >~/submissions-export.csv

Upload YouTube Video Custom Form Submission Action

Submission actions on a Custom Form allow you to create custom actions that will be performed whenever a submission is made. This could involve, for example, sending an email, performing a database query or making a SOAP call.

This feature introduces a new submission action to the Custom Form -- the Upload YouTube Video submission action. This submission action will take a video file on the submission and upload it to YouTube.

OAuth authentication is granted via a YouTube-linked Google Account, allowing videos in submissions to be automatically uploaded to YouTube.

You can specify the privacy setting of uploaded videos (public, private or unlisted) and provide default settings for the video, including the title, description and category. In addition to these default settings, you can specify the questions on your form to use submission responses as the details for the uploaded video. An upload file question type is specified as the source of the video to upload.

Accompanying this new submission action, a number of new keyword replacements are available for use on the Thank You bodycopy:

  • %youtube_video_id%: the ID of the uploaded video. This ID is used within the YouTube link of the uploaded file (http://www.youtube.com/watch?v=xxxx).
  • %youtube_video_published_date%: the publish date of the YouTube video (yyyy-mm-dd).
  • %youtube_video_link%: the full link of the uploaded YouTube video.

Save File Response on Make SOAP Call Form and Trigger Action

The Make SOAP Call action sends a message to a remote SOAP server on the submission of a form or when a trigger is fired.

Previously, this action was unable to save files that were returned as values on the SOAP response. This feature adds the ability to temporary download any files returned on the SOAP response.

A new Response to download as file field on the Make SOAP Call settings allows you to specify the corresponding field keyword(s) of the file(s) on the SOAP response.

When a file is returned on the SOAP response, Squiz Matrix will temporarily store this file on the server, replacing the field keyword with a relative URL to retrieve the file.

A new Remove SOAP Response Files Cron Job is included with this feature. Set to run hourly, this cron job will clear the temporary files of SOAP responses stored on the server. 

Please note that this feature applies to the Make SOAP Call trigger action, form submission action and form step action.

Permission Keyword Replacements to Print User IDs

New keyword replacements have been added to print a comma-separated list of asset IDs of users with ReadWrite and Admin permissions on an asset.

%asset_read_permission_assetid%
%asset_write_permission_assetid%
%asset_admin_permission_assetid%

This is similar to the existing permission keywords that allow you to print the full name and email of users with permissions. For more information on these keywords, refer to the Squiz Matrix User Manual Library.

Additional Changes and Bug Fixes 

Minor Enhancements

  • Minor Enhancement #5338: Remap Manager Never Delete Enhancements.
  • Minor Enhancement #5339: Remap Manager CSV Parsing for Mac.
  • Minor Enhancement #5359: Calendar Package Keyword Replacement Enhancements - iCal End Date.
  • Minor Enhancement #5361: New Simple Edit Keywords for Recurring Event Modifications.
  • Minor Enhancement #5363: Calendar Package Keyword Replacement Enhancements - iCal Format Instance Keywords.
  • Minor Enhancement #5365: Calendar Package Keyword Replacement Enhancements - Event Calendar Date Keyword.
  • Minor Enhancement #5369: Warning When Applying a Paint Layout on an Asset Without a Design.
  • Minor Enhancement #5385: Funnelback Command Error Details. 
  • Minor Enhancement #5390: Performance Enhancement: Web Path Check on Asset Creation.
  • Minor Enhancement #5398: Remote URL Keyword Replacement for Remote Content.
  • Minor Enhancement #5400: IRC Calendar MIME Type.
  • Minor Enhancement #5406: Export to XML Memory Enhancements. 

Core

  • Fixed Bug #5265: Replace text tool list inconsistencies. 
  • Fixed Bug #5345: WYSIWYG Insert Link problem.
  • Fixed Bug #5349: Deja Vu and Safe Editing. 
  • Fixed Bug #5351: Listing page with A-Z style; In single page mode, the group title of non A-Z pages printed as @.
  • Fixed Bug #5353: Special chars in assetid causing problem in Asset Map when moving the asset.
  • Fixed Bug #5358: Keyword Modifiers don't work with event keywords.
  • Fixed Bug #5372: Online Quiz question spacing changes when using HTML.
  • Fixed Bug #5373: Filter Front End User Input should disable in CLI mode.
  • Fixed Bug #5374: Matrix throws strict errors even when configured not to.
  • Fixed Bug #5378: Import asset from XML script/tool shows blank content for nested content type after import.
  • Fixed Bug #5386: JS API getKeywordsReplacements un-terminated string literal.
  • Fixed Bug #5388: Import/Export script issues with Design_Css asset.
  • Fixed Bug #5391: Print IMG tag with Design Area nest content does not escape ALT and TITLE attributes.
  • Fixed Bug #5395: Trigger Action Set Future Status complains for index not defined.
  • Fixed Bug #5396: Proxy fails when using authentication. 
  • Fixed Bug #5403: Second level Design_Customisation issue with import/export script.
  • Fixed Bug #5404: Double byte characters issue with import/export script.

CMS

  • Fixed Bug #5355: Custom Form Email - Time keyword not replaced.
  • Fixed Bug #5380: %asset_metadata_<fieldname>_value% keyword doesn't work.  

LDAP

  • Fixed Bug #5352: LDAP User Sorting under LDAP Groups not working. 

Calendar

  • Fixed Bug #5332: Recurring Calendar Events don't show if they have a child modification.
  • Fixed Bug #5360: iCal date keyword prints incorrect over a certain time period. 

Data

  • Fixed Bug #5340: Invalid XML breaks XML Data Source asset. 

Google Maps

  • Fixed Bug #5379: Google Maps doesn't respect proxies configured.
  • Fixed Bug #5051: WYSIWYG converts HTML/XML entities into characters.
  • Fixed Bug #5485: IE8 WYSIWYG quotation marks missing from attributes.
  • Fixed Bug #5486: Trigger Condition to check asset treeID fails with fatal error.
  • Fixed Bug #5499: Links Report CSV Export File Broken.
  • Fixed Bug #5501: Cannot save selected asset in Asset Finder in File Upload question; Link Manager.
  • Fixed Bug #5505: Resize of Image Insert window prompts asset tree pane resize to full window width.
  • Fixed Bug #5507: CSS Design File asset ignores permission.
  • Fixed Bug #5508: System design assets don't regenerate Design files.
  • Fixed Bug #5513: Javascript date picker in JS_Calendar class not working in Firefox.
  • Fixed Bug #5520: Paint Layout conditional keywords don't work as expected with Condition Keyword Regexp.

CMS

  • Fixed Bug #5509: Account Manager User asset web path conflict.
  • Fixed Bug #5518: CAPTCHA settings conflict.

Calendar

  • Fixed Bug #5459: Upcoming Events list displays multiple results for Single Calendar Events that run for more than one day.

Web Services

  • Fixed Bug #5522: GetAsset method doesn't return valid XML on all Assets. 
  • Fixed Bug #5536: SOAP API's GetMetadataFieldValues Function, if empty field names are passed, doesn't return all values.

The Select question type, used on a Custom Form, allows you to specify a CSV file from your computer to automatically input the options for the Select question. This is useful for batch uploading a number of options or if you are importing an existing question's options.

Previously, this functionality was not available on the Metadata Select Field. This feature introduces this addition, allowing you to specify a CSV file when configuring the Metadata Select Field's options.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5462: Paint Layout: Conditional Keywords Performance Enhancement.
  • Minor Enhancement #5477: E-Com Default Delivery Method: New Keyword to Print Transaction Ref ID.

Core

  • Fixed Bug #5460: New DIVs created in Safe Edit showing on front end before going Live.
  • Fixed Bug #5468: remove_form_submission.php corrupts sq_ast_lnk_tree.
  • Fixed Bug #5469: remove_form_submission.php doesn't clean up metadata on file system.
  • Fixed Bug #5470: Rollback view throw errors if the rollback date is older than the user currently logged.
  • Fixed Bug #5471: Mollom CAPTCHA throws fatal error when checking metadata fields value in Asset Builder.
  • Fixed Bug #5476: Missing file causes empty array to be returned from getExistingFile.
  • Fixed Bug #5478: Inserting Youtube in WYSIWYG with "Embed Youtube video" plugin doesn't resize properly in IE7/8.
  • Fixed Bug #5480: AssetID attribute doesn't work with multiple type codes.
  • Fixed Bug #5492: Form Select Question option list can not be reordered. 

E-Commerce

  • Fixed Bug #5474: E-commerce form input names keywords.

Data

  • Fixed Bug #5465: Execute DB Query Form Submission Action creating too many bind vars. 

Web Services

  • Fixed Bug #5472: Non-UTF8 characters in response from JS API can break the output.

Keyword replacements within Squiz Matrix can be modified using a variety of keyword modifiers to further configure the returned values. For example, the keyword %asset_contents^maxwords:10% uses the maxwords modifier to display the first ten words of the body of the asset.

Previously, keyword modifiers were not available for use on the Page Contents and Page Contents (No Results) bodycopies of Asset Listing and Search Page assets.

This feature allows keyword modifiers to be used on these bodycopies, enabling the further configuration of your Asset Listings and Search pages.

Minor Enhancements  

  • Minor Enhancement #5423: Calendar Page Performance Enhancement Printing JavaScript.
  • Minor Enhancement #5432: Import Assets From XML Ignores Non-Existent Asset IDs.
  • Minor Enhancement #5433: Related Asset Metadata Performance Enhancement.
  • Minor Enhancement #5446: New Asset Type Icon URL Keyword Replacement.
  • Minor Enhancement #5448: New Online Poll Option ID Keyword Replacement. 

Core

  • Fixed Bug #5366: Error handler does not correctly filter out Locale Manager.
  • Fixed Bug #5412: Replace modifier changes scope on %asset_name% in Asset Listing Type Format Bodycopy.
  • Fixed Bug #5421: Using Design asset's Styles option can break the HTML validation in the frontend.
  • Fixed Bug #5430: export_to_xml.php complains about assetid passed not being valid.
  • Fixed Bug #5437: Email trigger action on workflow events.
  • Fixed Bug #5449: Custom form - "Provide Accessible CAPTCHA" is not accessible under WCAG.
  • Fixed Bug #5457: Current asset parameters failing on set metadata value trigger action.

CMS

  • Fixed Bug #5431: Redirect page and safe editing issue. 

Search

  • Fixed Bug #5445: Global Search and Replace Tool returns errors.

LDAP

  • Fixed Bug #5439: Send email trigger not sending to recipients in LDAP group.
  • Fixed Bug #5455: Escaped LDAP DNs break top-bar in Admin interface. 

Import Tools

  • Fixed Bug #5410: Import Assets from XML Tool running out of memory.

E-Commerce

  • Fixed Bug #5394: UTransact payment gateway invalid expiry date.

Web Services

  • Fixed Bug #5444: SOAP Server design bug.  

Funnelback Search

  • Fixed Bug #5411: check_requirements should describe xsl/xml better.
  • Fixed Bug #5413: funnelback_reindex.php breaking backward compatibility.

Script to Export Form Submissions to CSV

A new script has been added to allow users to export form submissions to CSV. This script can be set to run automatically at regular intervals and is useful for integrating submissions into other systems.

The export_form_submission_logs.php script takes the following arguments:

  • The asset ID of the form to export the submissions of.
  • A date range of submissions to export.
  • The path of the CSV file to export submissions to.

An example of its usage is shown below:

php scripts/export_form_submission_logs.php $PWD 1234 "yesterday 00:00:00" "yesterday 23:59:59" >~/submissions-export.csv 

Additional Changes and Bug Fixes 

Minor Enhancements

  • Minor Enhancement #5359: Calendar Package Keyword Replacement Enhancements - iCal End Date.
  • Minor Enhancement #5361: New Simple Edit Keywords for Recurring Event Modifications.
  • Minor Enhancement #5369: Warning When Applying a Paint Layout on an Asset Without a Design.
  • Minor Enhancement #5398: Remote URL Keyword Replacement for Remote Content.
  • Minor Enhancement #5400: IRC Calendar MIME Type.

Core

  • Fixed Bug #5265: Replace text tool list inconsistencies. 
  • Fixed Bug #5345: WYSIWYG Insert Link problem.
  • Fixed Bug #5349: Deja Vu and Safe Editing. 
  • Fixed Bug #5351: Listing page with A-Z style; In single page mode, the group title of non A-Z pages printed as @.
  • Fixed Bug #5353: Special chars in assetid causing problem in Asset Map when moving the asset.
  • Fixed Bug #5358: Keyword Modifiers don't work with event keywords.
  • Fixed Bug #5372: Online Quiz question spacing changes when using HTML.
  • Fixed Bug #5373: Filter Front End User Input should disable in CLI mode.
  • Fixed Bug #5374: Matrix throws strict errors even when configured not to.
  • Fixed Bug #5378: Import asset from XML script/tool shows blank content for nested content type after import.
  • Fixed Bug #5386: JS API getKeywordsReplacements un-terminated string literal.
  • Fixed Bug #5388: Import/Export script issues with Design_Css asset.
  • Fixed Bug #5391: Print IMG tag with Design Area nest content does not escape ALT and TITLE attributes.
  • Fixed Bug #5395: Trigger Action Set Future Status complains for index not defined.
  • Fixed Bug #5396: Proxy fails when using authentication. 
  • Fixed Bug #5403: Second level Design_Customisation issue with import/export script.
  • Fixed Bug #5404: Double byte characters issue with import/export script.

CMS

  • Fixed Bug #5355: Custom Form Email - Time keyword not replaced.
  • Fixed Bug #5380: %asset_metadata_<fieldname>_value% keyword doesn't work.  

LDAP

  • Fixed Bug #5352: LDAP User Sorting under LDAP Groups not working. 

Calendar

  • Fixed Bug #5332: Recurring Calendar Events don't show if they have a child modification.
  • Fixed Bug #5360: iCal date keyword prints incorrect over a certain time period. 

Data

  • Fixed Bug #5340: Invalid XML breaks XML Data Source asset. 

Google Maps

  • Fixed Bug #5379: Google Maps doesn't respect proxies configured.
  • Minor Enhancement #5304: system_integrity_recover_file_versions.php Now Works for Image Varieties.
  • Minor Enhancement #5308: Metadata Field's Friendly Name Attribute Available as Keyword Replacement.
  • Minor Enhancement #5312: Custom Form: Date/Time Print Format Link Opens in New Window.
  • Minor Enhancement #5313: Performance Improvement to createAssetLink() Function.
  • Minor Enhancement #5316: Remap Manager: Never Delete Mass Select / Deselect.
  • Minor Enhancement #5321: Alternative Proxy Config Allows Matches to Exclude Going Through Proxy.
  • Minor Enhancement #5325: http_request Obeys Alternative Proxy Settings.

Core

  • Fixed Bug #5299: Cron jobs added are of time stamp in past.
  • Fixed Bug #5300: Keyword modifiers not working properly on site map.
  • Fixed Bug #5301: Metadata date field not disabled when Use default selected.
  • Fixed Bug #5303: Trigger action set standard date, updates not search re-indexed.
  • Fixed Bug #5306: Asset map complains about the empty XML on PHP 5.3.
  • Fixed Bug #5307: Trigger condition Status changes to throws PHP notice.
  • Fixed Bug #5309: Manual asset id input processing and trimming.
  • Fixed Bug #5311: Show Diff preview incomplete highlights.
  • Fixed Bug #5314: Short form shadow asset links.
  • Fixed Bug #5326: Trying to add an Alternative Proxy spits out PHP warnings.
  • Fixed Bug #5327: Linking to image varieties requires a dollar $ sign to work.
  • Fixed Bug #5334: Workflow escalation custom message are have wrong subject.
  • Fixed Bug #5341: Filter Front End User Input - set to Filter input breaking front end layout after parse file commit.
  • Fixed Bug #5342: PHP 5.3 E_DEPRECATED warning in installation scripts.

Search

  • Fixed Bug #5319: Search Manager Asset Tree and Global Weights screen error.
  • Fixed Bug #5324: Metadata Weightings in Search Manager Asset Tree Weights screen does not work.

LDAP

  • Fixed Bug #5305: LDAP authentication ignores bridge asset-map position.
  • Fixed Bug #5347: LDAP Bridge not expanding for some User/User Groups LDAP entries. 

Web Services 

  • Fixed Bug #5318: JS API causing syntax error if the ajax response is undefined or null.
  • Fixed Bug #5328: JS API setAttribute() will show success even on error.

New customisable messages have been added to Squiz Matrix's Workflow Schema package to allow you to configure the messages sent when an asset is Up For Review. Previously, these messages were not customisable.

The Workflow Up for Review Invitation and Workflow Up for Review Rejection messages can be configured on the Custom Messages screen of a workflow step. If these messages are not customised, a generic message will be used instead.

Also now customisable, is the system's Notify on Live message, sent to users when an asset in workflow is approved and made live.

The Notify on Live message can be configured on a new Custom Messages screen on the workflow schema asset. If this message is not customised, a generic message will be used instead.

Additionally, all available asset keywords are now available for use on workflow custom messages. This includes all attribute and metadata keywords of the asset currently in workflow.

This feature has been added to allow greater customisation of the messages sent when an asset is in workflow.

New Keyword Modifier to Apply XSLT to XML Content  

Keyword Modifiers allow you to modify keyword replacements to further configure their returned values. This feature adds a new keyword modifier to apply XSLT (Extensible Stylesheet Language Transformations) to  XML content returned on the keyword.

The format for this keyword modifier is as follows.

%keyword^xslt:<assetid>%
 
%asset_contents_raw^xslt:343%

This modifier will take the XSLT of a file asset (specified by asset ID), apply it to XML returned on the asset and output the result.

This feature has been added to allow users to transform the XML of assets, providing greater control over the content of their sites. 

Keywords Supported as Attributes Values on the Create Asset Trigger Action

The Create Asset trigger action will create a new asset on the system. When configuring this action, you can specify values to set the attribute values of the asset to be created.

Previously, this trigger action did not support the use of keyword replacements in these attribute value fields.

This feature modifies this trigger action to allow keyword replacements to be used when setting the attribute values of the asset to be created. This allows you to use the values of the firing asset as the attribute values of the created asset.

Bulkmail User Recipients on Send Email Trigger Action

The Send Email trigger action will send an email to user or group when an event occurs. Previously, however, this trigger action could only send emails to users with the ability to log in to the system, which  did not include bulkmail users.

This feature enables the use of bulkmail user accounts to be selected as recipients on the Send Email trigger action. Any bulkmail users located under a selected user group asset will also be included as a recipient on the email.

This feature has been added to allow users to create  trigger configurations where public users would only need to supply their name and email address in order to subscribe to email updates on a site.

New Trigger Condition: Keyword Value

A new trigger condition has been added that will check against a keyword value on the firing asset.

The Keyword Value condition, allows you to input a keyword and a replacement value, specifying whether this value should be an exact, partial or regular expression match of the firing asset's keyword value.

For example, if you set this condition to check the asset_name keyword as a Partial Match with the value News, the condition will be met if the asset name of the firing asset contains the value News (e.g. Latest News or Newspaper).

This trigger condition has been added to allow users to further configure their trigger configurations.

New HIPO Job to Regenerate a Design

When editing  the parse file of a design, a design will need to regenerate in order to display the changes you have made. Previously, this regeneration was handled by a single request, however, on more complex designs (e.g. multiple customisations) this could be quite a lengthy process and could potentially timeout.

This feature introduces the Regenerate Design HIPO Job to manage the regeneration process. This job will respond multiple times while regenerating the design, preventing any timeout issues that may have occurred.

This feature has been added to improve the performance of Squiz Matrix and provide a more reliability on larger, complex systems.

Custom Design and Paint Layout Options for Site's Not Found Page

When you create a Site asset in your system, you can specify a Not Found Page, an asset to be displayed when the user enters a URL that does not exist (404 page error).

By default, the design and layout of this Not Found Page is determined by the asset URL closest to the given non-existent URL.

This feature introduces additional options for the Not Found Page to specify an override design and/or paint layout to use instead of the default.

The Override Design and Override Paint Layout settings are set on a new Not Found Page Options section on the Details screen of a Site asset. If these settings are customised, the Not Found Page will use the selected design and paint layout instead of using the design of  the closest URL. 

JS API: New Function to Clone an Asset

A new cloneAsset() operation has been added to the JavaScript API to clone an asset under a specified parent, allowing you to specify the number of clones to create and their link type.

This operation is enabled on the Details screen of the JS API on a new Clone Asset field. The getLineage() operation takes the following parameters:

  • asset_id: the asset ID of the asset to clone.
  • new_parent: the asset ID of the parent to clone under.
  • clone_num: the number of clones to create under the new parent.
  • new_position: the position to place newly cloned assets under the parent.
  • link_type: the link type of the cloned asset.
  • link_value: the link value of the cloned asset.
  • dataCallback: the custom callback function.

An example usage of this operation is as follows (enhanced JS API): 

  js_api.cloneAsset({asset_id : 100, new_parent : 240, clone_num : 2, new_position : 1, link_type: 'SQ_LINK_TYPE_2', link_value : 'new value', dataCallback : customDataCallbackFunc})  

JS API: New Function to Compare the Content of Assets

A new showDifferences() operation has been added to the JavaScript API to compare the content of two different assets. This works in a similar manner to the Preview screen's Show Diff tool for Safe Edit assets and highlights the differences between two specified assets.

This operation also allows you to apply paint layouts to the content to be compare. It is enabled on the Details screen of the JS API on a new Show content difference field.

The showDifferences() operation takes the following parameters:

  • assetid_1: the asset ID of the first asset to compare.
  • assetid_2: the asset ID of the second asset to compare.
  • paint_layout_1: the asset ID of the Paint Layout to apply to asset 1.
  • paint_layout_2: the asset ID of the Paint Layout to apply to asset 2.
  • dataCallback: the custom callback function.

An example usage of this operation is as follows (enhanced JS API):   

  js_api.showDifferences({assetid_1 : 100, assetid_2 : 200, paint_layout_1 : 340, paint_layout_2 : 350, dataCallback : customDataCallbackFunc})  

Performance Mode: View as Public User

This new feature to Squiz Matrix's Performance Mode allows users to view the performance of assets as a public user. An option  is available on the Performance Mode interface to switch between viewing as both a public and logged in user.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5240: Better Handling for JSON Encoding on the Javascript API.
  • Minor Enhancement #5247: Ecommerce Form Honour with ID code now Approved.
  • Minor Enhancement #5252: Twitter Update Status Trigger Action Respects Matrix Proxy.
  • Minor Enhancement #5254: Quick Search Performance Improvement.
  • Minor Enhancement #5261: Asset ID Format Validation in Asset Builder's Create Location Field.
  • Minor Enhancement #5276: Bulk File Import Tool Description Improved.

Core

  • Fixed Bug #5184: Regenerate Metadata on schema doesn't reindex metadata fields with default metadata value.
  • Fixed Bug #5190: WYSIWYG Insert Link Title adds backslashs before apostrophes.
  • Fixed Bug #5208: Expired workflow cron job sends workflow escalation email for every dependant assets.
  • Fixed Bug #5231: Keyword modifiers don't work on custom form answers.
  • Fixed Bug #5244: Can not disable automatic remaps for File assets.
  • Fixed Bug #5245: Design Customisation Table Misaligned and Awkward.
  • Fixed Bug #5251: Layout lookup values remain for removed site URL.
  • Fixed Bug #5263: Bulkmail job setting mem_limit to unlimited triggers suhosin.
  • Fixed Bug #5269: WYSIWYG in Chrome: Heading 2 style for last paragraph will stop user from creating new paragraph.
  • Fixed Bug #5272: JS API typo Undefined variable: update_user in error log.
  • Fixed Bug #5275: Nesting more than one AL using same DB Data Source and diff dynamic vars doesn't refresh results.
  • Fixed Bug #5280: Client side form validation doesn't work with %section_contents_XXXX% keyword.
  • Fixed Bug #5282: TO_CHAR on CLOB (Oracle DB)  causing workflow escalation to fail.
  • Fixed Bug #5284: In PHP 5.3.1+, Details screen of Show If design area with User IP condition throws error.
  • Fixed Bug #5289: Matrix licence statement not printed in HTML source code if EES design is used on the design file.
  • Fixed Bug #5291: general.inc:mime_type_content() throwing undefined variable error. 
  • Fixed Bug #5293: Nested Content in Cloned Assets.

CMS

  • Fixed Bug #5281: Online Quiz select box question reported empty by client side validation. 
  • Fixed Bug #5283: Online Quiz alerts all questions unanswered when using Custom Grouping.   

Search

  • Fixed Bug #5279: Search Page form's submit onClick action not executing in Internet Explorer. 
  • Fixed Bug #5295: Deja Vu caching old metadata as Search Manager re-indexes old metadata.

LDAP

  • Fixed Bug #5248: LDAP users not being recognised as step of workflow.
  • Fixed Bug #5296: LDAP Groups not expanding in Active Directory. 

Funnelback

  • Fixed Bug #5290: Funnelback search page returning non-live asset result to non-publishing user.

Squiz Matrix's new Performance Mode analyses the load times of assets within a system and presents this information to users through an in-depth timeline chart. This allows users to monitor the performance of their assets and pinpoint problem areas that may be causing excessive loading.

Performance mode is accessed by appending _performance to the URL of an asset, like so:

http://www.example.com/site/_performance

Performance results are displayed at the bottom of the user's browser and will regenerate as a user navigates through the assets of their site.

The performance results presented to users will include the total load time of the URL and the assets that have been loaded, identifying the worst performing assets. Certain assets, such as an Asset Listing Page, also allow users to break down their load times into individual steps; this allows you to single out at which stage an asset may be underperforming. 

Asset Listing: Option to Return No Results if Dynamic Parameters Not Found

On an asset listing page, dynamic parameters are available to source alternate root nodes and asset selections for the listing.

Previously, if the dynamic parameter that was configured could not be found (ie. no root node/selection returned), the asset listing would fall back to its static root node settings - either a configured root node or the asset listing, itself. This could potentially cause  performance issues, for example, if the static root node was pointing to a top level asset with many children.

This feature adds new options, allowing you to prevent your asset listing from reverting to its default root node settings. 

The If dynamic root not found and If asset selection not specified fields allow you to specify whether to revert back to the static root node when the dynamic root/selection is not returned or to instead return an empty result on the listing.

These options have been added to give users greater control over the results of their listings.

New Trigger Action to Remove Future Lineage Cron Jobs

When you create a future linking job on the Linking screen of an asset (to either create or delete a link), Squiz Matrix will create a one off future lineage cron job to perform this task.

This feature adds a new trigger action to remove any of these future lineage cron jobs on an asset, effectively cancelling the future link.

This trigger action allows you to specify whether to remove future lineage cron jobs of type Create, Delete or both. With these options, you can select whether to remove future jobs only when a link is being either created or deleted or to remove all future link job regardless of their type.

New Javascript API Function to Return the Asset Lineage of a URL

The getLineage() operation has been added to Matrix's JS API to return the asset lineage of an asset ID or URL. The operation takes the following parameters:

  • asset_url: the URL or asset ID of the asset to get the lineage of.
  • signficant_link_only: whether or not to return significant links only (TYPE 1 and TYPE 2 links).
  • dataCallback: the custom callback function.

An example usage of this operation is as follows: 

getLineage ("http://www.example.com/site", 1, customDataCallbackFunc);  
getLineage ("100", 0, customDataCallbackFunc); 

New JavaScript API Function to Batch Requests 

The batchRequests operation allows you to group multiple functions on the JS API into a single batched request. The response of this operation will include all the data returned from each executed function. 

The output of functions on this operation can be used as the input for subsequent functions using the following keyword replacement format:

%results_0_<param>%

For example, the keyword replacement %results_0_1_name% would print the value of the name parameter returned on the second element of the first array of the  response.

A blocking parameter  is available for use on each operation to stop the execution of subsequent operations if an error is returned.

An example usage of this operation is as follows: 

batchRequest({
'0': {
function : 'getChildren',
args : {
asset_id : 100,
  levels : 1,
type_codes : 'page_standard',
get_attributes : 0
  },
   blocking : 1
},
'1':  {
  function : 'setAttribute',
args : {
id : '%results_0_0_id%',
  attr_name : 'short_name',
attr_val : 'new short name'
},
  blocking : 1,
},
},customDataCallbackFunc); 

Enhanced JavaScript for the JS API 

A new Enhanced mode has been introduced for the Javascript API. This mode introduces scope based JavaScript to the API, presenting a more systematic and object oriented approach to your JS API configuration.

This new mode is activated on the Details screen of your JS API asset. 

The list of operations available on the JS API will remain the same as in Standard mode, however, only the operations enabled will be listed in the API's JS file, which can reduce the size of this file considerably, depending on the number of operations required.

While the response format of operations will remain the same in both Standard and Enhanced mode, operation requests in Enhanced mode are called in the following format: 

js_api = new Squiz_Matrix_API({key: '123456789'});

js_api.createAsset({parent_id : 100, type_code : 'comment', asset_name : 'blog comment ', link_type : 1, link_value: 'link value', sort_order : 1, is_dependant : 0, is_exclusive : 0, extra_attributes : 1, attributes : 'comment=comment goes here', dataCallback : customDataCallbackFunc}; 

One big advantage with this new request format is that each operation takes a single json object containing the function's parameter values, defined by key. This means that these operations are far less likely to be impacted by any new developement (for example, new parameters) added to the JS API.

The Enhanced JS API also now uses a defined NameSpace, meaning that the API is far less likely to conflict with user's existing JavaScript code on their sites.

The feature has been added to improve the overall performance of the JS API in preparation for the upcoming Easy Edit Suite release.

Existing users of the JS API should be aware that their JS API configurations will remain supported through the API's Standard mode.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #4583: Menu Design Area Cacheable 
  • Minor Enhancement #5193: Changes to DPS Payment Gateway Asset.
  • Minor Enhancement #5194: Permissions Inherited on Imported File Bridge Assets.
  • Minor Enhancement #5199: Snippet Content Type Does Not Replace Keywords.
  • Minor Enhancement #5214: Performance Enhancement to the regen_metadata_schemas.php Script.
  • Minor Enhancement #5215: JS API: getChildren and getParents Functions Return Regular Index Arrays.
  • Minor Enhancement #5216: JS API: acquireLock Function Updates Locks if Already Acquired.
  • Minor Enhancement #5225: Form Error Handling For Uploaded File Asset Creation Failure.
  • Minor Enhancement #5226: DB Data Source: SQL Queries to Oracle Databases.
  • Minor Enhancement #5228: Asset ID Keyword Now Available on Rejection Workflow Message.
  • Minor Enhancement #5230: Email Format Error Handling for Invalid Asset ID.
  • Minor Enhancement #5238: Minifying Matrix JS Files.
  • Minor Enhancement #5239: Form SOAP Action Handles Functions with Simple Elements.
  • Minor Enhancement #5242: Asset XML Response to Return is_dependant Flag. 

Core

  • Fixed Bug #5185: Workflow stale messages not sending and subject can't be customised.
  • Fixed Bug #5186: Can't start an alternate workflow stream by placing Up for Review.
  • Fixed Bug #5187: TRIM Saved Search Uncaught SoapFault exceptions.
  • Fixed Bug #5195: REST resource asset authentication type Pass Matrix session through doesn't work.
  • Fixed Bug #5201: PHP Fatal error on cron_job_manage_pending_accounts.
  • Fixed Bug #5205: SEI keywords list for Multi-Date Calendar Event.
  • Fixed Bug #5208: Expired workflow cron job sends workflow escalation email for every dependant assets.
  • Fixed Bug #5223: Asset Manager Get Link Lineages skips some notice links on Oracle.
  • Fixed Bug #5220: Custom form gives errors if submission logging is set to No.
  • Fixed Bug #5229: Custom form text field with height > 1 giving JavaScript error.
  • Fixed Bug #5232: Status Changed event broadcasts too early.
  • Fixed Bug #5233: Metadata keyword in design file having global keyword value not getting replaced for Custom Form.
  • Fixed Bug #5246: Export to XML script shouldn't export shadow links.

Calendar

  • Fixed Bug #5192: Calendar event asset detail screen, Occurs on check box has minor js error.

IPB

  • Fixed Bug #5221: IPB authentication broken.

Web Services

  • Fixed Bug #5213: getPermissions() JS API function provides incomplete results.
  • Fixed Bug #5219: SOAP API metadata service GetSchemasOnAsset API throws error Object hasn't 'Granted' property.
  • Fixed Bug #5236: Squiz Suite will not register with older Suite products.
  • Fixed Bug #5237: Cannot de-register a registered system on Suite manager.

Previously, when a user was logged out of Squiz Matrix because their IP changed and SQ_CONF_ALLOW_IP_CHANGE was set to true, neither an error or a system.security.* message would be sent. This meant that the only way to figure out why users were intermittently losing their session was to have prior knowledge of this setting.

This feature had been added so that Matrix will log logouts due to IP changing in the system logs. For example:

[2011-05-23 15:11:23][12:Root User][1024:mysource notice][ ] [system.security.logout.ip_change - remote_addr:192.168.1.1;sessionid:;] (User Automatically Logged Out) - User "Root User" was logged out since their IP address changed from 192.168.2.1 to 192.168.1.1.  

Enhancements to the import_files_from_bridge.php Script

Squiz Matrix's import_files_from_bridge.php script imports  files exposed through a File Bridge asset into Matrix. Previously, this script would import these files as File type assets; however, files will now be imported as corresponding Matrix file assets, when available. For example, an image will now be imported as an Image type asset. 

This feature also introduces the option of importing folders containing an index.html file as a Standard Page asset with  the content of the index file. This option can be enabled by setting a parameter on the script.

The new usage of the import_files_from_bridge.php script is as follows:

php import_files_from_bridge.php <MATRIX_ROOT> <BRIDGE_ROOT_NODE_ASSETID> <PARENT_ASSETID> <RECURSIVE> <HANDLE_INDEX_FILE>
 
php import_files_from_bridge.php path/to/matrix 100 150 y y

Make SOAP Call Step Action For Multi-Page Forms  

Currently, Squiz Matrix's Custom Form asset allows you to make a SOAP call on submission. This new feature extends the functionality of submission actions to the individual steps (or pages) of a multi-page Custom Form, allowing your form to make a SOAP call on each page submission.

Step actions can be configured on the new Step Actions screen for form sections.

The set up of the Make SOAP Call step action is similar to the Make SOAP Call submission action, allowing you to specify the connection to the SOAP server and specify the request message.

On the front end of the form, when a user clicks the Next Page button, Squiz Matrix will make the SOAP call, as configured on the Step Actions screen for that step.

The Make SOAP Call step action also utilises the new Check Response function. This function will check specified fields on the SOAP response, printing an error message if a value is returned (non-empty). Field keywords are also available for use, allowing you to print any error messages returned on the SOAP response.

Returned errors are displayed to a user via the %form_errors% keyword replacement and the user will not progress to the next page of the form. If no errors are retrieved, the user will be able to continue their form submission. 

SharePoint CMIS Bridge 

This new feature introduces the CMIS Bridge asset, a connection bridge for retrieving files from a CMIS enabled SharePoint repository (currently supports Microsoft SharePoint 2010).

This asset retrieves SharePoint documents in a similar manner to the SharePoint Saved Search; however, files imported over the CMIS Bridge will be imported as fully functional system assets within Squiz Matrix (such as Images, Text Files etc.). These assets can be edited, linked and moved around the system just like any other asset, allowing you greater control over your SharePoint repositories within Matrix. 

Files are stored under the CMIS Bridge asset in the asset map when initially synchronised with the connected CMIS enabled SharePoint repository. Further synchronisation will update these files, trashing any old files, modifying  files that have been altered and creating new assets for new files on the repository.

Synchronisation is also controlled  via a new Sync CMIS Bridges Cron Job. This cron job is set to run daily - its run time and frequency can be configured on its Details screen.

CMIS properties (e.g. Author, Objectid, Modified, Created) can be mapped to the metadata fields of a schema applied to the CMIS Bridge. Additional custom fields created for the document library will dynamically be made available for metadata mapping.

The addition of this asset enhances the SharePoint package within Squiz  Matrix, allowing you to manage your SharePoint documents within Matrix  with more control than ever before.

Search Page: Specify Data Sources on Exclude Fields   

Previously, Matrix's Search Page only allowed you to configure data sources for search fields. The data sources allowed you to specify which fields on an asset to search. This feature extends this functionality to exclude fields, allowing you to specify which fields to exclude on.

Like a search field, exclude fields allow the following data source types:

  • Include All: searches all standard fields, attribute fields and metadata fields of assets.
  • Standard Asset Field: searches a specified standard asset field (e.g. the name of a page or its asset ID).
  • Asset Attribute: searches a specified attribute field (e.g. the title of a file of a MS Word Document asset).
  • Asset Metadata Field: searches a specified metadata field.

You can select multiple data sources to search for each exclude field that you add, specifying the word logic to use for your data sources (all words or any word).

Please note that existing exclude fields will default to the Include All data source type, returning the same results as they would previously had.

On the Search Page, the exclude field will only search the fields specified in its data sources. For example, say you configure the exclude field to search the Keywords metadata field of assets - if a user searches for the query News in the exclude field, the Search Page will exclude assets contain the query News in their Keywords metadata from the search results.

This enhancement to the Search Page's exclude fields allows you to tweak your Search Page, allowing your users to return more accurate results, specific to their searching queries.

Specifing the Cron Deadlock Email Notification Receivers  

Squiz Matrix's Cron Manager handles the cron process within a system, managing and running the cron jobs that have been scheduled. Occasionally, a cron job may stall, causing the Cron Manager to deadlock. When this occurs, Matrix will send out email notifications, informing users of these errors.

Previously, Matrix would send these deadlock email notifications to all users under the System Administrators Folder, as well as the email addresses configured in the system's main.inc file. These automated email notifications would be resent to these users each subsequent run of the Cron Manager, until the issue was resolved. This could cause  large numbers of emails sent to many users, potentially causing inconvenience and even spam filtering issues with users' mail clients.

This feature adds a new option to the Cron Manager, allowing you to specify the users that will receive cron deadlock emails. This option is configured via a new Emailing Options section on the Options screen of the Cron Manager.

The Cron Deadlock Email Receivers field allows you to select users, user groups and roles to specify which users should receive email notifications from the Cron Manager. By default, the system's Root User and the email addresses configured in the system's main.inc file will automatically also receive these emails.

By allowing you to specify the users to receive cron deadlock emails, this feature allows you to more efficiently identify and manage any potential issues with the Cron Manager in your system.

A-Z Listing: Defining the Layout of Individual Letters on the Navigation List  

On a multiple page A-Z asset listing, the  navigation character list displays links to the different alphabetised pages on the listing. This feature adds the ability to format the individual letters on this list.

This feature utilises the asset listing's existing Page Link and Current Link formats, which were not previously used on an A-Z asset listing.

On an A-Z listing, the Page Link Format will now define the layout of each individual letter on the linked character list, while the Current Page Format will define the layout of letters that contain no results.

These formats use the existing %page_link% and %page_number% keyword replacements. For example, you could format the letters on the list so that letters with results will be in bold, while letters with no results will be struck out.

The feature gives users greater control over the layout of their A-Z listings, in line with the options available on a regular asset listing.

Make SOAP Call on Submit Submission Action: Array Data in SOAP Response

Previously, the Custom Form's Make SOAP Call  form submission action  could not handle array data in the SOAP response. This feature adds  support for array data in the  response of the Make SOAP Call submission  action. 

Array data returned in the SOAP response is populated through the use of global keywords, with index numbers stipulating each unique set of array data. For example:

%globals_session_soap_accounts0account_no%
%globals_session_soap_accounts1account_no%
%globals_session_soap_accounts2account_no%

This feature also adds a Test Response option, allowing you to print out a sample SOAP request and response in the back end. This tool is useful for testing purposes when configuring your SOAP call.

The feature extends the functionality of the Make SOAP Call submission  action, allowing for more extensive configuration possibilities.

Make SOAP Call on Submit Submission Action: Check SOAP Response 

This feature introduces data validation on the SOAP response of the Make SOAP Call form submission action of a Custom Form. If incorrect data is found on a response, Matrix will indicate this to users through custom error messages.

This validation is configured through a new Check Response field on the Make SOAP Call submission action options. 

Matrix will print the error message if a value is returned (non-empty) on the specified field. Keywords are also available for use in the error message field, allowing you to print any information returned on the SOAP response.

Returned errors are displayed to a user via the %form_errors% keyword replacement and the user will not be able to submit their form. If no errors are retrieved, the form will be submitted, as normal

This process allows users to easily identify and correct any errors, ensuring that only valid form data is sent on SOAP requests when a submission is made.

JSON Data Source

This new JSON Data Source asset is an alternative to the existing XML Data Source, facilitating server-side data exchange with web applications.

Clean Old Shadow Links Script

A new script has been added to the Matrix database to clean links to shadow assets that are no longer valid. This is usually because the assets have since been removed from the data source, e.g. An LDAP backend user is linked under the System Administrators folder but is later removed from the LDAP Directory.

Additional reasons a shadow link may no longer be valid is if the connection between Matrix and the data source goes down or if the configuration of the connection bridge is altered for testing purposes. Because of these reasons, when the clean_old_shadow_links.php script is first run, it will only return a list of shadow links for review. You can then decided whether or not to delete the shadow links in the system.

An example usage of this script is shown below:

$ php scripts/clean_old_shadow_links.php -m $PWD
List of old shadow links:

 linkid | type | majorid | minorid
-------+------+---------+--------------------------------------------------------
 11583 |    1 |    6    | 7094:uid=Manager,ou=Staff,o=Squiz,c=au,dc=demo,dc=squiz,dc=net
 11599 |    1 |    3091 | 3038:3

(Number of links: 2)

You will need to run this script with -s or -p option to save the shadow links to files
and -d option to delete the shadow links stored in the output file generated by -p option.
(You have to use an SQL client like psql to execute the SQL statements generated by -s option)

---------------------------------------------------------------------------------------------------------
$ php scripts/clean_old_shadow_links.php -m $PWD -p old_links.php

List of old shadow links:

linkid | type | majorid | minorid
--------+------+---------+--------------------------------------------------------
 11583 |    1 |    6    | 7094:uid=Manager,ou=Staff,o=Squiz,c=au,dc=demo,dc=squiz,dc=net
 11599 |    1 |    3091 | 3038:3
(Number of links: 2)

The PHP array to delete the old shadow links are saved to old_links.php

---------------------------------------------------------------------------------------------------------

$ php scripts/clean_old_shadow_links.php -m $PWD -d old_links.php

2 old shadow link(s) from old_links.php were deleted successfully.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5041: Enhancement: Matrix clear expired cache query sometime is too large for oracle
  • Minor Enhancement #5044: Performance Enhancement: When Send Cacheable header, and Matrix responds  304 Not Modified, there is a useless call to printFrontEnd() 
  • Minor Enhancement #5045: Add a favicon to the Admin interface.
  • Minor Enhancement #5078: Error message on eSec Payment Gateway when Matrix is unable to connect to the service.
  • Minor Enhancement #5079: Support vertical resizing for the asset map.  
  • Minor Enhancement #5082: eSec Payment Gateway respects the proxy settings in Matrix's system configuration.
  • Minor Enhancement #5087: Add logging for pdftohtml failures.
  • Minor Enhancement #5096: Improved performance when dealing with large sq_internal_messages table.
  • Minor Enhancement #5109: Video File Asset: Add webm format.
  • Minor Enhancement #5116: Clear cache cron job enhancement (default storage).
  • Minor Enhancement #5122: Issue with PHP function mime_type_content().
  • Minor Enhancement #5123: Metadata Manager default value functions performance enhancement.

Core

  • Fixed Bug #5050: LDAP Users not getting correct permissions if the user is under a subgroup.
  • Fixed Bug #5055: Nested content DIVs don't save properly across contexts.
  • Fixed Bug #5061: Fatal error when viewing the Details screen of a form submission when a section of the form has been deleted.
  • Fixed Bug #5064: HIPO pop-up windows lose focus in Internet Explorer.
  • Fixed Bug #5069: Hierarchy metadata field default value displays incorrectly.
  • Fixed Bug #5072: Trashed file assets still accessible via public data URL.
  • Fixed Bug #5080: condition user agent can not use regular expression operator '|'.
  • Fixed Bug #5083: Metadata Fields Inaccessible.
  • Fixed Bug #5084: Changed file name in Safe Edit causes multiple issues.
  • Fixed Bug #5085: IE 8 and IE 9 wont let user commit changes on WYSIWYG screen.
  • Fixed Bug #5086: Error when editing image varieties after cancelling Safe Edit.
  • Fixed Bug #5092: Asset Builder's insert link via WYSIWYG tool removes the dot (.) before  /?a= .
  • Fixed Bug #5093: Customised classes not appearing in EES WYSIWYG.
  • Fixed Bug #5097: Shadow links (shadow assets linked under a real asset) always appear red-crossed in Asset Map for non-admin users.
  • Fixed Bug #5099: [cron_job] Metadata triggers causing Cron deadlock.
  • Fixed Bug #5104: Triggering asset intermittently getting lost when using the send email trigger action.
  • Fixed Bug #5106: Contains keyword modifier fails on string with a slash (/).
  • Fixed Bug #5108: Selectable create location link type bug with account manager page.
  • Fixed Bug #5114: PHP 5.3 remote content page complaining "Assigning the return value of new by reference is deprecated".
  • Fixed Bug #5117: Dependants only will not check in Set permission trigger action.
  • Fixed Bug #5118: Role screen doesn't not validates role and user asset IDs.
  • Fixed Bug #5119: Asset listing grouping by parent results in mysource warnings when the parent asset is a user asset.
  • Fixed Bug #5120: System config screen, Enable HTTP Authentication option has cosmetic problem when lock is acquired.

CMS

  • Fixed Bug #5098: [cron_job] manage_pending_accounts causing Cron deadlock.
  • Fixed Bug #5102: Matrix will throw warnings is the nested asset is deleted.
  • Fixed Bug #5125: Forms answers getting unnecessarily encoded in Submission Logs screen. 

Search

  • Fixed Bug #5105: PHP Notices on Search Fields screen (Undefined Asset Type).

Web Services

  • Fixed Bug #4934: Committing from "approved to go live" causes attributes on REST assets to be cleared.

A new trigger action has been added to Squiz Matrix, allowing you to make a SOAP call. The Make SOAP Call trigger action works in a similar manner to the Make SOAP Call submission action on a Custom Form or Ecommerce Form Page, allowing you to send a message to a remote SOAP server when the trigger is fired.

This trigger action retains all the features of the existing Make SOAP Call form submission action, allowing you to specify the parameters of the SOAP request message, test the content of the request, and configure data validation and error messages.

This feature has been developed to further extend support for web services within Squiz Matrix.

Asset Status Being Changed To Trigger Condition

A new trigger condition has been added to evaluates the status that an asset is being changed to. The Asset Status Being Changed To trigger condition allows you to specify one or more asset statuses (Live, Under Construction etc.) and will be matched if the firing asset's status is being changed to one of these statuses.

This condition can be used in conjunction with the Before Status Changed and Status Changed trigger events, for example, you could use this condition to prevent users from changing an asset to a particular asset status (using the Fail trigger action).

Before Status Changed Trigger Event

Currently, Squiz Matrix's trigger system includes the Status Changed trigger event, which will fire a trigger when the status of an asset has been changed. This feature introduces a new trigger event that will fire a trigger when the status of an asset is to be changed but before the status is actually altered.

Make SOAP Call Submission Action: Check Response Rules 

This month's Matrix releases introduced data validation on the SOAP response of the Custom Form's Make SOAP Call form submission action. This feature adds the ability to configure data validation rules to further customise how Matrix evaluates whether or not data returned on the SOAP response is valid

You can now select from a variety of rule types (e.g. must contain, must NOT contain etc.), stipulating a value to create a rule that must be met for a SOAP response to be valid.

For example, if you set the validation rule as Must NOT contain Fail, the response will only be deemed valid if the response does not contain the value Fail. If it does contain this value, the returned data will be evaluated as invalid and the error configured in the Error Message field will be displayed.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5130: TRIM Saved Search: Configure the Download Limit of Record Attachments.
  • Minor Enhancement #5142: Enhancements to the System Integrity Incomplete Attachments Script.
  • Minor Enhancement #5147: Support for Global Keywords in the SOAP request of the Make SOAP Call Form Submission Action. 
  • Minor Enhancement #5152: Bulkmail Subscribe Page Envelope Sender Address.
  • Minor Enhancement #5153: New Metadata Date Field Option.
  • Minor Enhancement #5154: Error Message Options on the Set Future Status Trigger Action.
  • Minor Enhancement #5160: Listing Engine Bodycopy Keywords Caching Performance Enhancement.
  • Minor Enhancement #5164: Revised Bulkmail Verification Emails.
  • Minor Enhancement #5177: Cascading Tags gets TYPE 3 linked asset and tags them.
  • Minor Enhancement #5178: getChildren() in Matrix doesn't let you filter by link_type. 
  • Minor Enhancement: Rollback Performance Enhancement.
  •  

Core

  • Fixed Bug #5121: Extras field on Details screen of a Date form field does not work.
  • Fixed Bug #5134: Unable to Accept/Reject workflow via EES from emails.
  • Fixed Bug #5144: HTTPS links in RSS feeds while viewing in HTTP.
  • Fixed Bug #5150: Cancelling Safe Edit results in errors and loss of notice links.
  • Fixed Bug #5151: Incomplete attachment submission directories left on file system.
  • Fixed Bug #5157: Cannot create image varieties with some GIF files.
  • Fixed Bug #5158: Insert Link WYSIWYG bug for shadow assets.
  • Fixed Bug #5162: Asset Builder missing Keywords for Product assets.
  • Fixed Bug #5165: Internal Message failed to send to LDAP user group.
  • Fixed Bug #5169: Typo in the permission change script.
  • Fixed Bug #5170: Changes to export script in Matrix for better structured import.
  • Fixed Bug #5172: Remap Manager's 'never delete' option doesn't respond to changes. 

CMS

  • Fixed Bug #5141: Keywords in Remote Content Layout do not work.
  • Fixed Bug #5145: Global keyword replacements with keyword modifier not working in Form.
  • Fixed Bug #5176: Form step action executes even when pressing 'previous' button in multi-page form. 

Search

  • Fixed Bug #5163: Search Log Report overwriting the existing entries in Current search report.

Google Maps

  • Fixed Bug #5081: Enabling root toggling in details screen of Google Map gives fatal error.

Web Services

  • Fixed Bug #5129: getMetadata() when no metadata schemas are applied returns nothing, causing a javascript error.
  • Fixed Bug #5159: In SOAP form/step action, value '0' in SOAP request is ignored.
  • Fixed Bug #5167: SOAP Web Service UpdateLink function's LinkID param variables not matching up.
  • Minor Enhancement #5312: Custom Form Date field link issue.
  • Minor Enhancement #5321: Alternative Proxy Config Allows Matches to Exclude Going Through Proxy.
  • Minor Enhancement #5325: http_request Obeys Alternative Proxy Settings.

Core

  • Fixed Bug #5299: Cron jobs added are of time stamp in past.
  • Fixed Bug #5300: Keyword modifiers not working properly on site map.
  • Fixed Bug #5301: Metadata date field not disabled when Use default selected.
  • Fixed Bug #5303: Trigger action set standard date, updates not search re-indexed.
  • Fixed Bug #5306: Asset map complains about the empty XML on PHP 5.3.
  • Fixed Bug #5307: Trigger condition Status changes to throws PHP notice.
  • Fixed Bug #5309: Manual asset id input processing and trimming.
  • Fixed Bug #5311: Show Diff preview incomplete highlights.
  • Fixed Bug #5314: Short form shadow asset links. 
  • Fixed Bug #5326: Trying to add an Alternative Proxy spits out PHP warnings.
  • Fixed Bug #5327: Linking to image varieties requires a dollar $ sign to work. 
  • Fixed Bug #5334: Workflow escalation custom message are have wrong subject.
  • Fixed Bug #5342: PHP 5.3 E_DEPRECATED warning in installation scripts.

Search

  • Fixed Bug #5319: Search Manager Asset Tree and Global Weights screen error.
  • Fixed Bug #5324: Metadata Weightings in Search Manager Asset Tree Weights screen does not work.

LDAP

  • Fixed Bug #5305: LDAP authentication ignores bridge asset-map position.
  • Fixed Bug #5347: LDAP Bridge not expanding for some User/User Groups LDAP entries. 

Web Services 

  • Fixed Bug #5318: JS API causing syntax error if the ajax response is undefined or null.
  • Fixed Bug #5328: JS API setAttribute() will show success even on error.
  • Minor Enhancement #5240: Better Handling for JSON Encoding on the Javascript API.
  • Minor Enhancement #5247: Ecommerce Form Honour with ID code now Approved.
  • Minor Enhancement #5254: Quick Search Performance Improvement.
  • Minor Enhancement #5261: Asset ID Format Validation in Asset Builder's Create Location Field.
  • Minor Enhancement #5276: Bulk File Import Tool Description Improved. 

Core

  • Fixed Bug #5184: Regenerate Metadata on schema doesn't reindex metadata fields with default metadata value.
  • Fixed Bug #5190: WYSIWYG Insert Link Title adds backslashs before apostrophes.
  • Fixed Bug #5208: Expired workflow cron job sends workflow escalation email for every dependant assets.
  • Fixed Bug #5231: Keyword modifiers don't work on custom form answers.
  • Fixed Bug #5244: Can not disable automatic remaps for File assets.
  • Fixed Bug #5251: Layout lookup values remain for removed site URL.
  • Fixed Bug #5263: Bulkmail job setting mem_limit to unlimited triggers suhosin.
  • Fixed Bug #5272: JS API typo Undefined variable: update_user in error log.
  • Fixed Bug #5275: Nesting more than one AL using same DB Data Source and diff dynamic vars doesn't refresh results.
  • Fixed Bug #5280: Client side form validation doesn't work with %section_contents_XXXX% keyword.
  • Fixed Bug #5282: TO_CHAR on CLOB (Oracle DB)  causing workflow escalation to fail.
  • Fixed Bug #5289: Matrix licence statement not printed in HTML source code if EES design is used on the design file.
  • Fixed Bug #5291: general.inc:mime_type_content() throwing undefined variable error.
  • Fixed Bug #5293: Nested Content in Cloned Assets. 

CMS

  • Fixed Bug #5281: Online Quiz select box question reported empty by client side validation.
  • Fixed Bug #5283: Online Quiz alerts all questions unanswered when using Custom Grouping.

Search

  • Fixed Bug #5279: Search Page form's submit onClick action not executing in Internet Explorer. 
  • Fixed Bug #5295: Deja Vu caching old metadata as Search Manager re-indexes old metadata.

LDAP

  • Fixed Bug #5296: LDAP Groups not expanding in Active Directory.

Funnelback

  • Fixed Bug #5290: Funnelback search page returning non-live asset result to non-publishing user.
  • Minor Enhancement #5193: Changes to DPS Payment Gateway Asset.
  • Minor Enhancement #5214: Performance Enhancement to the regen_metadata_schemas.php Script.
  • Minor Enhancement #5225: Form Error Handling For Uploaded File Asset Creation Failure.
  • Minor Enhancement #5226: DB Data Source: SQL Queries to Oracle Databases. 
  • Minor Enhancement #5228: Asset ID Keyword Now Available on Rejection Workflow Message.
  • Minor Enhancement #5230: Email Format Error Handling for Invalid Asset ID.
  • Minor Enhancement #5238: Minifying Matrix JS Files. 

Core

  • Fixed Bug #5185: Workflow stale messages not sending and subject can't be customised.
  • Fixed Bug #5186: Can't start an alternate workflow stream by placing Up for Review.
  • Fixed Bug #5195: REST resource asset authentication type Pass Matrix session through doesn't work.
  • Fixed Bug #5201: PHP Fatal error on cron_job_manage_pending_accounts.
  • Fixed Bug #5205: SEI keywords list for Multi-Date Calendar Event. 
  • Fixed Bug #5208: Expired workflow cron job sends workflow escalation email for every dependant assets.
  • Fixed Bug #5223: Asset Manager Get Link Lineages skips some notice links on Oracle. 
  • Fixed Bug #5220: Custom form gives errors if submission logging is set to No.
  • Fixed Bug #5229: Custom form text field with height > 1 giving JavaScript error. 
  • Fixed Bug #5232: Status Changed event broadcasts too early. 

Calendar

  • Fixed Bug #5192: Calendar event asset detail screen, Occurs on check box has minor js error. 

IPB

  • Fixed Bug #5221: IPB authentication broken. 

Web Services

  • Fixed Bug #5219: SOAP API metadata service GetSchemasOnAsset API throws error object hasn't 'Granted' property
  • Fixed Bug #5236: Squiz Suite will not register with older Suite products.
  • Fixed Bug #5237: Cannot de-register a registered system on Suite manager.t

A new trigger action has been added to Squiz Matrix, allowing you to make a SOAP call. The Make SOAP Call trigger action works in a similar manner to the Make SOAP Call submission action on a Custom Form or Ecommerce Form Page, allowing you to send a message to a remote SOAP server when the trigger is fired.

This trigger action retains all the features of the existing Make SOAP Call form submission action, allowing you to specify the parameters of the SOAP request message, test the content of the request, and configure data validation and error messages.

This feature has been developed to further extend support for web services within Squiz Matrix.

Asset Status Being Changed To Trigger Condition

A new trigger condition has been added to evaluates the status that an asset is being changed to. The Asset Status Being Changed To trigger condition allows you to specify one or more asset statuses (Live, Under Construction etc.) and will be matched if the firing asset's status is being changed to one of these statuses.

This condition can be used in conjunction with the Before Status Changed and Status Changed trigger events, for example, you could use this condition to prevent users from changing an asset to a particular asset status (using the Fail trigger action).

Before Status Changed Trigger Event

Currently, Squiz Matrix's trigger system includes the Status Changed trigger event, which will fire a trigger when the status of an asset has been changed. This feature introduces a new trigger event that will fire a trigger when the status of an asset is to be changed but before the status is actually altered.

Make SOAP Call Submission Action: Check Response Rules 

This month's Matrix releases introduced data validation on the SOAP response of the Custom Form's Make SOAP Call form submission action. This feature adds the ability to configure data validation rules to further customise how Matrix evaluates whether or not data returned on the SOAP response is valid

You can now select from a variety of rule types (e.g. must contain, must NOT contain etc.), stipulating a value to create a rule that must be met for a SOAP response to be valid.

For example, if you set the validation rule as Must NOT contain Fail, the response will only be deemed valid if the response does not contain the value Fail. If it does contain this value, the returned data will be evaluated as invalid and the error configured in the Error Message field will be displayed.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5130: TRIM Saved Search: Configure the Download Limit of Record Attachments.
  • Minor Enhancement #5142: Enhancements to the System Integrity Incomplete Attachments Script.
  • Minor Enhancement #5147: Support for Global Keywords in the SOAP request of the Make SOAP Call Form Submission Action. 
  • Minor Enhancement #5152: Bulkmail Subscribe Page Envelope Sender Address.
  • Minor Enhancement #5153: New Metadata Date Field Option.
  • Minor Enhancement #5154: Error Message Options on the Set Future Status Trigger Action.
  • Minor Enhancement #5160: Listing Engine Bodycopy Keywords Caching Performance Enhancement. 

Core

  • Fixed Bug #5121: Extras field on Details screen of a Date form field does not work.
  • Fixed Bug #5134: Unable to Accept/Reject workflow via EES from emails.
  • Fixed Bug #5144: HTTPS links in RSS feeds while viewing in HTTP.
  • Fixed Bug #5150: Cancelling Safe Edit results in errors and loss of notice links.
  • Fixed Bug #5151: Incomplete attachment submission directories left on file system.
  • Fixed Bug #5157: Cannot create image varieties with some GIF files.
  • Fixed Bug #5158: Insert Link WYSIWYG bug for shadow assets.
  • Fixed Bug #5162: Asset Builder missing Keywords for Product assets.
  • Fixed Bug #5165: Internal Message failed to send to LDAP user group.
  • Fixed Bug #5169: Typo in the permission change script.
  • Fixed Bug #5170: Changes to export script in Matrix for better structured import.
  • Fixed Bug #5172: Remap Manager's 'never delete' option doesn't respond to changes. 

CMS

  • Fixed Bug #5141: Keywords in Remote Content Layout do not work.
  • Fixed Bug #5145: Global keyword replacements with keyword modifier not working in Form.

Search

  • Fixed Bug #5163: Search Log Report overwriting the existing entries in Current search report.

Google Maps

  • Fixed Bug #5081: Enabling root toggling in details screen of Google Map gives fatal error.

Web Services

  • Fixed Bug #5129: getMetadata() when no metadata schemas are applied returns nothing, causing a javascript error.
  • Fixed Bug #5159: In SOAP form/step action, value '0' in SOAP request is ignored.
  • Fixed Bug #5167: SOAP Web Service UpdateLink function's LinkID param variables not matching up.

Previously, when a user was logged out of Squiz Matrix because their IP changed and SQ_CONF_ALLOW_IP_CHANGE was set to true, neither an error or a system.security.* message would be sent. This meant that the only way to figure out why users were intermittently losing their session was to have prior knowledge of this setting.

This feature had been added so that Matrix will log logouts due to IP changing in the system logs. For example:

[2011-05-23 15:11:23][12:Root User][1024:mysource notice][ ] [system.security.logout.ip_change - remote_addr:192.168.1.1;sessionid:;] (User Automatically Logged Out) - User "Root User" was logged out since their IP address changed from 192.168.2.1 to 192.168.1.1.  

Search Page: Specify Data Sources on Exclude Fields

Previously, Matrix's Search Page only allowed you to configure data sources for search fields. The data sources allowed you to specify which fields on an asset to search. This feature extends this functionality to exclude fields, allowing you to specify which fields to exclude on.

Like a search field, exclude fields allow the following data source types:

  • Include All: searches all standard fields, attribute fields and metadata fields of assets.
  • Standard Asset Field: searches a specified standard asset field (e.g. the name of a page or its asset ID).
  • Asset Attribute: searches a specified attribute field (e.g. the title of a file of a MS Word Document asset).
  • Asset Metadata Field: searches a specified metadata field.

You can select multiple data sources to search for each exclude field that you add, specifying the word logic to use for your data sources (all words or any word).

Please note that existing exclude fields will default to the Include All data source type, returning the same results as they would previously had.

On the Search Page, the exclude field will only search the fields specified in its data sources. For example, say you configure the exclude field to search the Keywords metadata field of assets - if a user searches for the query News in the exclude field, the Search Page will exclude assets contain the query News in their Keywords metadata from the search results.

This enhancement to the Search Page's exclude fields allows you to tweak your Search Page, allowing your users to return more accurate results, specific to their searching queries.

Specifing the Cron Deadlock Email Notification Receivers  

Squiz Matrix's Cron Manager handles the cron process within a system, managing and running the cron jobs that have been scheduled. Occasionally, a cron job may stall, causing the Cron Manager to deadlock. When this occurs, Matrix will send out email notifications, informing users of these errors.

Previously, Matrix would send these deadlock email notifications to all users under the System Administrators Folder, as well as the email addresses configured in the system's main.inc file. These automated email notifications would be resent to these users each subsequent run of the Cron Manager, until the issue was resolved. This could cause  large numbers of emails sent to many users, potentially causing inconvenience and even spam filtering issues with users' mail clients.

This feature adds a new option to the Cron Manager, allowing you to specify the users that will receive cron deadlock emails. This option is configured via a new Emailing Options section on the Options screen of the Cron Manager.

The Cron Deadlock Email Receivers field allows you to select users, user groups and roles to specify which users should receive email notifications from the Cron Manager. By default, the system's Root User and the email addresses configured in the system's main.inc file will automatically also receive these emails.

By allowing you to specify the users to receive cron deadlock emails, this feature allows you to more efficiently identify and manage any potential issues with the Cron Manager in your system.

A-Z Listing: Defining the Layout of Individual Letters on the Navigation List  

On a multiple page A-Z asset listing, the  navigation character list displays links to the different alphabetised pages on the listing. This feature adds the ability to format the individual letters on this list.

This feature utilises the asset listing's existing Page Link and Current Link formats, which were not previously used on an A-Z asset listing.

On an A-Z listing, the Page Link Format will now define the layout of each individual letter on the linked character list, while the Current Page Format will define the layout of letters that contain no results.

These formats use the existing %page_link% and %page_number% keyword replacements. For example, you could format the letters on the list so that letters with results will be in bold, while letters with no results will be struck out.

The feature gives users greater control over the layout of their A-Z listings, in line with the options available on a regular asset listing.

Make SOAP Call on Submit Submission Action: Array Data in SOAP Response

Previously, the Custom Form's Make SOAP Call  form submission action  could not handle array data in the SOAP response. This feature adds  support for array data in the  response of the Make SOAP Call submission  action. 

Array data returned in the SOAP response is populated through the use of global keywords, with index numbers stipulating each unique set of array data. For example:

%globals_session_soap_accounts0account_no%
%globals_session_soap_accounts1account_no%
%globals_session_soap_accounts2account_no%

This feature also adds a Test Response option, allowing you to print out a sample SOAP request and response in the back end. This tool is useful for testing purposes when configuring your SOAP call.

The feature extends the functionality of the Make SOAP Call submission  action, allowing for more extensive configuration possibilities.

Make SOAP Call on Submit Submission Action: Check SOAP Response 

This feature introduces data validation on the SOAP response of the Make SOAP Call form submission action of a Custom Form. If incorrect data is found on a response, Matrix will indicate this to users through custom error messages.

This validation is configured through a new Check Response field on the Make SOAP Call submission action options. 

Matrix will print the error message if a value is returned (non-empty) on the specified field. Keywords are also available for use in the error message field, allowing you to print any information returned on the SOAP response.

Returned errors are displayed to a user via the %form_errors% keyword replacement and the user will not be able to submit their form. If no errors are retrieved, the form will be submitted, as normal

This process allows users to easily identify and correct any errors, ensuring that only valid form data is sent on SOAP requests when a submission is made.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5078: Error message on eSec Payment Gateway when Matrix is unable to connect to the service.
  • Minor Enhancement #5079: Support vertical resizing for the asset map.  
  • Minor Enhancement #5082: eSec Payment Gateway respects the proxy settings in Matrix's system configuration.
  • Minor Enhancement #5087: Add logging for pdftohtml failures.
  • Minor Enhancement #5109: Video File Asset: Add webm format.
  • Minor Enhancement #5116: Clear cache cron job enhancement (default storage).
  • Minor Enhancement #5122: Issue with PHP function mime_type_content().
  • Minor Enhancement #5123: Metadata Manager default value functions performance enhancement.

Core

  • Fixed Bug #5050: LDAP Users not getting correct permissions if the user is under a subgroup.
  • Fixed Bug #5055: Nested content DIVs don't save properly across contexts.
  • Fixed Bug #5061: Fatal error when viewing the Details screen of a form submission when a section of the form has been deleted.
  • Fixed Bug #5064: HIPO pop-up windows lose focus in Internet Explorer.
  • Fixed Bug #5069: Hierarchy metadata field default value displays incorrectly.
  • Fixed Bug #5072: Trashed file assets still accessible via public data URL.
  • Fixed Bug #5080: condition user agent can not use regular expression operator '|'.
  • Fixed Bug #5083: Metadata Fields Inaccessible.
  • Fixed Bug #5084: Changed file name in Safe Edit causes multiple issues.
  • Fixed Bug #5085: IE 8 and IE 9 wont let user commit changes on WYSIWYG screen.
  • Fixed Bug #5086: Error when editing image varieties after cancelling Safe Edit.
  • Fixed Bug #5092: Asset Builder's insert link via WYSIWYG tool removes the dot (.) before  /?a= .
  • Fixed Bug #5093: Customised classes not appearing in EES WYSIWYG.
  • Fixed Bug #5097: Shadow links (shadow assets linked under a real asset) always appear red-crossed in Asset Map for non-admin users.
  • Fixed Bug #5099: [cron_job] Metadata triggers causing Cron deadlock.
  • Fixed Bug #5104: Triggering asset intermittently getting lost when using the send email trigger action.
  • Fixed Bug #5106: Contains keyword modifier fails on string with a slash (/).
  • Fixed Bug #5108: Selectable create location link type bug with account manager page.
  • Fixed Bug #5114: PHP 5.3 remote content page complaining "Assigning the return value of new by reference is deprecated".
  • Fixed Bug #5117: Dependants only will not check in Set permission trigger action.
  • Fixed Bug #5118: Role screen doesn't not validates role and user asset IDs.
  • Fixed Bug #5119: Asset listing grouping by parent results in mysource warnings when the parent asset is a user asset.
  • Fixed Bug #5120: System config screen, Enable HTTP Authentication option has cosmetic problem when lock is acquired.

CMS

  • Fixed Bug #5098: [cron_job] manage_pending_accounts causing Cron deadlock.
  • Fixed Bug #5102: Matrix will throw warnings is the nested asset is deleted.
  • Fixed Bug #5125: Forms answers getting unnecessarily encoded in Submission Logs screen. 

Search

  • Fixed Bug #5105: PHP Notices on Search Fields screen (Undefined Asset Type).

Web Services

  • Fixed Bug #4934: Committing from "approved to go live" causes attributes on REST assets to be cleared.

Previously, Squiz Matrix did not support global keywords for the content of assets. This feature introduces the %globals_asset_contents:<assetID>% global keyword, printing the contents of an asset, specified by its asset ID.

An example usage of this global keyword replacement is as follows:

%globals_asset_contents:165%

In this example, the asset contents of asset #165 (including any paint layout applied to the asset) will be printed.

Additional contents keywords can also now be used as global keywords, including:

  • %globals_asset_contents_raw:<assetID>%: the raw contents of the specified asset, without any applied layouts.
  • %globals_asset_contents_paint_layout_id_<layoutID>:<assetID>%: the contents of the specified asset, using a paint layout specified by its asset ID.
  • %globals_asset_contents_paint_layout_name_<layoutname>:<assetID>%: the contents of the specified asset, using a paint layout specified by its name.

This feature enhances the functionality of global keywords within Squiz Matrix, allowing greater control over the content of your assets.

Additional Cookie Options for HttpOnly and Secure

Previously, HttpOnly and Secure cookie types could not be defined as cookies set by Matrix. This feature adds options to the System Configuration, allowing you to enable HttpOnly and Secure cookies within Squiz Matrix.

These options are set via new fields on the System Configuration screen.

The HTTP only for cookie field allows you to set the HttpOnly option for cookies. When a cookie is HttpOnly, the web browser will not allow client side scripts (such as JavaScript) access to the cookie. This can help mitigate the effects of cross site scripting attacks.

The Enable 'Secure' Cookie option field allow you to specify whether or not cookies should be transmitted only over secure HTTPS connections. If this field is enabled, cookies will only be set if a secure connection exists.

Enhancements to the import_files_from_bridge.php Script

Squiz Matrix's import_files_from_bridge.php script imports files exposed through a File Bridge asset into Matrix. Previously, this script would import these files as File type assets; however, files will now be imported as corresponding Matrix file assets, when available. For example, an image will now be imported as an Image type asset.

This feature also introduces the option of importing folders containing an index.html file as a Standard Page asset with the content of the index file. This option can be enabled by setting a parameter on the script.

The new usage of the import_files_from_bridge.php script is as follows:

php import_files_from_bridge.php <MATRIX_ROOT> <BRIDGE_ROOT_NODE_ASSETID> <PARENT_ASSETID> <RECURSIVE> <HANDLE_INDEX_FILE> 

php import_files_from_bridge.php path/to/matrix 100 150 y y 

Safe Edit Respects Notice Link Changes on an Asset

Previously, if a page asset was in Safe Edit mode and a Nest Content Div of that page was altered to point to a different nested asset, this alteration would not be respected as a Safe Edit change. If you chose to cancel Safe Edit, this change would not be reverted back to its previous value.

This feature ensures that any such changes are respected as Safe Edit changes and will be reverted if Safe Edit is cancelled.

JS API: New Function to Execute HTML Tidy

A new function has been added to the Javascript API to execute HTML Tidy on the content of a passed string.

The executeHTMLTidy() function is enabled through a new field on the Details screen of the Javascript API.

This function takes two parameters:

  • content: the string content to be cleaned.
  • dataCallback: the custom callback function (optional).

The format of the executeHTMLTidy() function is shown below:

function executeHTMLTidy (content, dataCallback)

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5000: Performance improvement to LDAP's search() function.
  • Minor Enhancement #5012: Keyword modifiers available on Custom Form keyword replacements.
  • Minor Enhancement #5042: Minor LDAP Bridge enhancements.
  • Minor Enhancement #5046: New MIME type added for FLV file types.
  • Minor Enhancement #5047: New MIME types added for OGV, MP4 and WebM video file types.
  • Minor Enhancement #5052: Asset ID keyword now available on Invitation/Approval Workflow messages.
  • Minor Enhancement #5054: New option on the What's New Page to exclude root nodes.
  • Minor Enhancement #5065: New option on an LDAP Data Source to specify the attributes to extract.
  • Minor Enhancement #5073: Auto add remaps option respected when moving assets.
  • Minor Enhancement #5075: New MIME types added for XML, XSLT and XSL file asset types.

Core

  • Fixed Bug #5023: The Clear Matrix Cache cron job has memory leak.
  • Fixed Bug #5024: Asset Listing's mindepth/maxdepth values don't work properly with Custom Grouping.
  • Fixed Bug #5025: System check test_dead_file_revisions fails on Thumbnail varieties.
  • Fixed Bug #5034: In certain cases, workflow escalation emails should not be sent for dependant assets.
  • Fixed Bug #5036: The Asset Manager needs to include fudge/general/file_system.inc.
  • Fixed Bug #5037: In rare situations, step3 fails with error Class Asset_Edit_Fns not found in trigger_action_edit_fns.inc.
  • Fixed Bug #5038: All system login designs,  especially EES, have html comments before doctype, which could force browser to quirk mode.
  • Fixed Bug #5040: LDAP user ID breaks dynamic parameter in the listing page, when array of asset IDs is passed to paramater map.
  • Fixed Bug #5048: Matrix ./?a=ASSETID hrefs with extra query and/or fragment appended at end not getting translated.
  • Fixed Bug #5049: Import script corrupts image varieties.
  • Fixed Bug #5053: Deleting div from Paint Layout using Asset Map causes fatal error.
  • Fixed Bug #5057: asset_lineage keyword returning incorrectly when in Paint Layout applied via type format of listing assets.
  • Fixed Bug #5066: Hierarchy metadata field is missing closing </table> tag in Simple Edit Layouts.

CMS

  • Fixed Bug #5071: Password Reset Page not working properly with Listing Page in the same screen.

LDAP

  • Fixed Bug #5014: LDAP User Group SQL issues.
  • Fixed Bug #5059: LDAP Bridge needs to filter invalid entries.

Calendar

  • Fixed Bug #4389: Calendar event start_time keyword returns 12am for non-timed events.

Data

  • Fixed Bug #5058: LDAP Data Source asset not using attributes of External LDAP bridge asset set.

Google Maps

  • Fixed Bug #5039: Google Map asset adds unnecessary slashes for double quotes in the content of pop-up window div.

Web Services

  • Fixed Bug #5031: JS API getGeneral function argument for attributes doesn't return all attributes.

Funnelback Package

  • Fixed Bug #5020: funnelback_rebuild_cache.php running out of memory.

This feature introduces a new Currency Sign option for the Ecommerce Form Page, allowing you to set the currency sign used on the ecom form. This option is set via a new field on the Display Formatting screen of the asset.

Previously, to change the currency type of an Ecommerce Form (for example, from Dollars to Pounds), users would be required to modify the sign on each individual format where it was used. This feature makes changing the currency type of the ecom form much more accessible, by reducing this process to a single step.

The value entered into the Currency Sign field is referenced through a new keyword replacement, which is used on the format of keyword replacements like . This new keyword replacement is also used on the default Individual Asset Format and Item Format attributes on the Display Formatting screen. Modifying the value in the Currency Sign field will amend all instances of the currency sign on the Ecommerce Form Page.

New Trigger Action to Delete an Image Variety

A new trigger action has been added to Squiz Matrix, allowing you to delete either a single image variety or all varieties under a specified image asset. This image asset can be configured via the interface of the trigger action or specified as the asset that fired the trigger.

The Delete Image Variety trigger action allows you to enter the name of the variety to delete or select to delete all varieties. The trigger action also provides parameter configuration to dynamically source the variety to delete.

LDAP Data Source Asset

The LDAP Data Source asset allows you to query an external LDAP directory within Matrix, returning LDAP groups and users as shadow assets within your system. The LDAP information from these assets can then be accessed via keyword replacements for use on your site, for example, to list LDAP user information on an Asset Listing.

The LDAP Data Source allows you to set up a connection to an LDAP directory (similarly to an LDAP Bridge) or select an existing LDAP Bridge asset within Squiz Matrix.

Once a connection has been made to an external LDAP directory, search queries are used to filter the returned results, with both attribute and dynamic variable search filtering supported.

Similar to the existing Data Source assets, available keywords will be listed on the LDAP Data Source in order to print the information returned by the LDAP query.

This asset has been added to further extend Squiz Matrix's LDAP functionality, providing more flexibility for users to determine the LDAP information returned and how it is accessed and used within the system.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #4976: SOAP JS API's Send Function Now Supports Function Declared Variable
  • Minor Enhancement #4991: Asset ID Remaps Allows Appended Query Strings
  • Minor Enhancement #5009: New Keyword to Print the Binary Contents of a File Asset
  • Minor Enhancement #5010: Automatic Upgrade Script Enhancement: Fix Permissions Runs Just Once
  • Minor Enhancement #5017: Rest Assets: Curl Error Logging on http_request Attribute

Core

  • Fixed Bug #4972: Languages appearing twice in the Accept-Language request header condition.
  • Fixed Bug #4978: Perf: Specific cache management settings using getParents.
  • Fixed Bug #4982: Old shadow links break asset map.
  • Fixed Bug #4983: Remove Webpath trigger action failure.
  • Fixed Bug #4985: Metadata field in schema with as default value can throw PHP notices when cascaded to newly created asset.
  • Fixed Bug #4986: Simple Edit User doesn't get Workflow emails initiated via EES.
  • Fixed Bug #4987: Send Email trigger action does not preserve current asset attribute when rendering an asset to send.
  • Fixed Bug #4992: Display duplicate page contents when error occurred in SOAP Submission Action and Confirmation Page is enabled.
  • Fixed Bug #4993: JS API createFileAsset for Image file type fails due to new security patch.
  • Fixed Bug #4999: Insert DIV pop-up cosmetic problem in IE6/8.
  • Fixed Bug #5001: Asset Map binoculars seem to sometimes break with latest Java update(s).
  • Fixed Bug #5005: Parameter map value for parameter source for asset and current_user is returned by reference.
  • Fixed Bug #5007: Matrix text area css value white-space: pre-line causes issues in web kit browsers.
  • Fixed Bug #5013: Opening links from the admin area in a new tab redirects to the wrong location.
  • Fixed Bug #5015: Clear Squiz Cache trigger action should not repopulate.
  • Fixed Bug #5016: Runlevel not restored in a few places in Matrix.
  • Fixed Bug #5022: Run step3 resets the SQ_CONF_FORCE_SECURE_LOGIN_URLS to blank.
  • Fixed Bug #5027: Import/Export script breaks on non utf-8 characters.
  • Fixed Bug #5028: Stale Workflow Step emails sent to dependant assets with no workflow screen.
  • Fixed Bug #5035: Squiz Suite Manager connections failing can cause cron to deadlock.

LDAP

  • Fixed Bug #4981: Group Members setting does not work for an LDAP User with parentheses in DN.

Data

  • Fixed Bug #4984: Cannot attach a Thumbnail to a Data Source asset.
  • Fixed Bug #4995: Cannot create a Data Source Graph.

Squid

  • Fixed Bug #5004: Squid Clear Cache tool has a PHP4 reference in it.

TRIM

  • Fixed Bug #4988: TRIM Saved Search serves old versions of file attachment.

Funnelback Package

  • Fixed Bug #5019: Language string in Display Options appears blank on a Funnelback Search Page.

Previously, when a user was logged out of Squiz Matrix because their IP changed and SQ_CONF_ALLOW_IP_CHANGE was set to true, neither an error or a system.security.* message would be sent. This meant that the only way to figure out why users were intermittently losing their session was to have prior knowledge of this setting.

This feature had been added so that Matrix will log logouts due to IP changing in the system logs. For example:

[2011-05-23 15:11:23][12:Root User][1024:mysource notice][ ] [system.security.logout.ip_change - remote_addr:192.168.1.1;sessionid:;] (User Automatically Logged Out) - User "Root User" was logged out since their IP address changed from 192.168.2.1 to 192.168.1.1.   

A-Z Listing: Defining the Layout of Individual Letters on the Navigation List  

On a multiple page A-Z asset listing, the  navigation character list displays links to the different alphabetised pages on the listing. This feature adds the ability to format the individual letters on this list.

This feature utilises the asset listing's existing Page Link and Current Link formats, which were not previously used on an A-Z asset listing.

On an A-Z listing, the Page Link Format will now define the layout of each individual letter on the linked character list, while the Current Page Format will define the layout of letters that contain no results.

These formats use the existing and keyword replacements. For example, you could format the letters on the list so that letters with results will be in bold, while letters with no results will be struck out.

The feature gives users greater control over the layout of their A-Z listings, in line with the options available on a regular asset listing. 

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5078: Error message on eSec Payment Gateway when Matrix is unable to connect to the service.
  • Minor Enhancement #5079: Support vertical resizing for the asset map.  
  • Minor Enhancement #5082: eSec Payment Gateway respects the proxy settings in Matrix's system configuration.
  • Minor Enhancement #5087: Add logging for pdftohtml failures.
  • Minor Enhancement #5109: Video File Asset: Add webm format.
  • Minor Enhancement #5116: Clear cache cron job enhancement (default storage).
  • Minor Enhancement #5122: Issue with PHP function mime_type_content().
  • Minor Enhancement #5123: Metadata Manager default value functions performance enhancement.

Core

  • Fixed Bug #5050: LDAP Users not getting correct permissions if the user is under a subgroup.
  • Fixed Bug #5055: Nested content DIVs don't save properly across contexts.
  • Fixed Bug #5061: Fatal error when viewing the Details screen of a form submission when a section of the form has been deleted.
  • Fixed Bug #5064: HIPO pop-up windows lose focus in Internet Explorer.
  • Fixed Bug #5069: Hierarchy metadata field default value displays incorrectly.
  • Fixed Bug #5072: Trashed file assets still accessible via public data URL.
  • Fixed Bug #5080: condition user agent can not use regular expression operator '|'.
  • Fixed Bug #5083: Metadata Fields Inaccessible.
  • Fixed Bug #5084: Changed file name in Safe Edit causes multiple issues.
  • Fixed Bug #5085: IE 8 and IE 9 wont let user commit changes on WYSIWYG screen.
  • Fixed Bug #5086: Error when editing image varieties after cancelling Safe Edit.
  • Fixed Bug #5092: Asset Builder's insert link via WYSIWYG tool removes the dot (.) before  /?a= .
  • Fixed Bug #5093: Customised classes not appearing in EES WYSIWYG.
  • Fixed Bug #5097: Shadow links (shadow assets linked under a real asset) always appear red-crossed in Asset Map for non-admin users.
  • Fixed Bug #5099: [cron_job] Metadata triggers causing Cron deadlock.
  • Fixed Bug #5104: Triggering asset intermittently getting lost when using the send email trigger action.
  • Fixed Bug #5106: Contains keyword modifier fails on string with a slash (/).
  • Fixed Bug #5108: Selectable create location link type bug with account manager page.
  • Fixed Bug #5114: PHP 5.3 remote content page complaining "Assigning the return value of new by reference is deprecated".
  • Fixed Bug #5117: Dependants only will not check in Set permission trigger action.
  • Fixed Bug #5118: Role screen doesn't not validates role and user asset IDs.
  • Fixed Bug #5119: Asset listing grouping by parent results in mysource warnings when the parent asset is a user asset.
  • Fixed Bug #5120: System config screen, Enable HTTP Authentication option has cosmetic problem when lock is acquired.

CMS

  • Fixed Bug #5098: [cron_job] manage_pending_accounts causing Cron deadlock.
  • Fixed Bug #5102: Matrix will throw warnings is the nested asset is deleted.
  • Fixed Bug #5125: Forms answers getting unnecessarily encoded in Submission Logs screen. 

Search

  • Fixed Bug #5105: PHP Notices on Search Fields screen (Undefined Asset Type).

Web Services

  • Fixed Bug #4934: Committing from "approved to go live" causes attributes on REST assets to be cleared.

 

Previously, Squiz Matrix did not support global keywords for the content of assets. This feature introduces the %globals_asset_contents:<assetID>% global keyword, printing the contents of an asset, specified by its asset ID.

An example usage of this global keyword replacement is as follows:

%globals_asset_contents:165%

In this example, the asset contents of asset #165 (including any paint layout applied to the asset) will be printed.

Additional contents keywords can also now be used as global keywords, including:

  • %globals_asset_contents_raw:<assetID>%: the raw contents of the specified asset, without any applied layouts.
  • %globals_asset_contents_paint_layout_id_<layoutID>:<assetID>: the contents of the specified asset, using a paint layout specified by its asset ID.
  • %globals_asset_contents_paint_layout_name_<layoutname>:<assetID>: the contents of the specified asset, using a paint layout specified by its name.

This feature enhances the functionality of global keywords within Squiz Matrix, allowing greater control over the content of your assets.

Additional Cookie Options for HttpOnly and Secure

Previously, HttpOnly and Secure cookie types could not be defined as cookies set by Matrix. This feature adds options to the System Configuration, allowing you to enable HttpOnly and Secure cookies within Squiz Matrix.

These options are set via new fields on the System Configuration screen.

The HTTP only for cookie field allows you to set the HttpOnly option for cookies. When a cookie is HttpOnly, the web browser will not allow client side scripts (such as JavaScript) access to the cookie. This can help mitigate the effects of cross site scripting attacks.

The Enable 'Secure' Cookie option field allow you to specify whether or not cookies should be transmitted only over secure HTTPS connections. If this field is enabled, cookies will only be set if a secure connection exists.

Safe Edit Respects Notice Link Changes on an Asset

Previously, if a page asset was in Safe Edit mode and a Nest Content Div of that page was altered to point to a different nested asset, this alteration would not be respected as a Safe Edit change. If you chose to cancel Safe Edit, this change would not be reverted back to its previous value.

This feature ensures that any such changes are respected as Safe Edit changes and will be reverted if Safe Edit is cancelled.

JS API: New Function to Execute HTML Tidy

A new function has been added to the Javascript API to execute HTML Tidy on the content of a passed string.

The executeHTMLTidy() function is enabled through a new field on the Details screen of the Javascript API.

This function takes two parameters:

  • content: the string content to be cleaned.
  • dataCallback: the custom callback function (optional).

The format of the executeHTMLTidy() function is shown below:

function executeHTMLTidy (content, dataCallback)

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #5000: Performance improvement to LDAP's search() function.
  • Minor Enhancement #5012: Keyword modifiers available on Custom Form keyword replacements.
  • Minor Enhancement #5042: Minor LDAP Bridge enhancements.
  • Minor Enhancement #5046: New MIME type added for FLV file types.
  • Minor Enhancement #5047: New MIME types added for OGV, MP4 and WebM video file types.
  • Minor Enhancement #5052: Asset ID keyword now available on Invitation/Approval Workflow messages.
  • Minor Enhancement #5054: New option on the What's New Page to exclude root nodes.
  • Minor Enhancement #5073: Auto add remaps option respected when moving assets.
  • Minor Enhancement #5075: New MIME types added for XML, XSLT and XSL file asset types.

Core

  • Fixed Bug #5023: The Clear Matrix Cache cron job has memory leak.
  • Fixed Bug #5024: Asset Listing's mindepth/maxdepth values don't work properly with Custom Grouping.
  • Fixed Bug #5025: System check test_dead_file_revisions fails on Thumbnail varieties.
  • Fixed Bug #5034: In certain cases, workflow escalation emails should not be sent for dependant assets.
  • Fixed Bug #5036: The Asset Manager needs to include fudge/general/file_system.inc.
  • Fixed Bug #5037: In rare situations, step3 fails with error Class Asset_Edit_Fns not found in trigger_action_edit_fns.inc.
  • Fixed Bug #5038: All system login designs,  especially EES, have html comments before doctype, which could force browser to quirk mode.
  • Fixed Bug #5040: LDAP user ID breaks dynamic parameter in the listing page, when array of asset IDs is passed to paramater map.
  • Fixed Bug #5048: Matrix ./?a=ASSETID hrefs with extra query and/or fragment appended at end not getting translated.
  • Fixed Bug #5049: Import script corrupts image varieties.
  • Fixed Bug #5053: Deleting div from Paint Layout using Asset Map causes fatal error.
  • Fixed Bug #5057: asset_lineage keyword returning incorrectly when in Paint Layout applied via type format of listing assets.
  • Fixed Bug #5066: Hierarchy metadata field is missing closing </table> tag in Simple Edit Layouts.

CMS

  • Fixed Bug #5071: Password Reset Page not working properly with Listing Page in the same screen.

LDAP

  • Fixed Bug #5014: LDAP User Group SQL issues.
  • Fixed Bug #5059: LDAP Bridge needs to filter invalid entries. 

Calendar

  • Fixed Bug #4389: Calendar event start_time keyword returns 12am for non-timed events.

Google Maps

  • Fixed Bug #5039: Google Map asset adds unnecessary slashes for double quotes in the content of pop-up window div.

Web Services

  • Fixed Bug #5031: JS API getGeneral function argument for attributes doesn't return all attributes.

Funnelback Package

  • Fixed Bug #5020: funnelback_rebuild_cache.php running out of memory.

This feature introduces a new Currency Sign option for the Ecommerce Form Page, allowing you to set the currency sign used on the ecom form. This option is set via a new field on the Display Formatting screen of the asset.

Previously, to change the currency type of an Ecommerce Form (for example, from Dollars to Pounds), users would be required to modify the sign on each individual format where it was used. This feature makes changing the currency type of the ecom form much more accessible, by reducing this process to a single step.

The value entered into the Currency Sign field is referenced through a new %currency_sign% keyword replacement, which is used on the format of keyword replacements like %form_summary%. This new keyword replacement is also used on the default Individual Asset Format and Item Format attributes on the Display Formatting screen. Modifying the value in the Currency Sign field will amend all instances of the currency sign on the Ecommerce Form Page.

Additional Changes and Bug Fixes

Minor Enhancements

  • Minor Enhancement #4976: SOAP JS API's Send Function Now Supports Function Declared Variable
  • Minor Enhancement #4991: Asset ID Remaps Allows Appended Query Strings
  • Minor Enhancement #5009: New Keyword to Print the Binary Contents of a File Asset
  • Minor Enhancement #5017: Rest Assets: Curl Error Logging on http_request Attribute

Core

  • Fixed Bug #4972: Languages appearing twice in the Accept-Language request header condition.
  • Fixed Bug #4978: Perf: Specific cache management settings using getParents.
  • Fixed Bug #4982: Old shadow links break asset map.
  • Fixed Bug #4983: Remove Webpath trigger action failure.
  • Fixed Bug #4986: Simple Edit User doesn't get Workflow emails initiated via EES.
  • Fixed Bug #4987: Send Email trigger action does not preserve current asset attribute when rendering an asset to send.
  • Fixed Bug #4992: Display duplicate page contents when error occurred in SOAP Submission Action and Confirmation Page is enabled.
  • Fixed Bug #4993: JS API createFileAsset for Image file type fails due to new security patch.
  • Fixed Bug #4999: Insert DIV pop-up cosmetic problem in IE6/8.
  • Fixed Bug #5001: Asset Map binoculars seem to sometimes break with latest Java update(s).
  • Fixed Bug #5005: Parameter map value for parameter source for asset and current_user is returned by reference.
  • Fixed Bug #5007: Matrix text area css value white-space: pre-line causes issues in web kit browsers.
  • Fixed Bug #5013: Opening links from the admin area in a new tab redirects to the wrong location.
  • Fixed Bug #5015: Clear Squiz Cache trigger action should not repopulate.
  • Fixed Bug #5016: Runlevel not restored in a few places in Matrix.
  • Fixed Bug #5022: Run step3 resets the SQ_CONF_FORCE_SECURE_LOGIN_URLS to blank.
  • Fixed Bug #5027: Import/Export script breaks on non utf-8 characters.
  • Fixed Bug #5028: Stale Workflow Step emails sent to dependant assets with no workflow screen.
  • Fixed Bug #5035: Squiz Suite Manager connections failing can cause cron to deadlock.

LDAP

  • Fixed Bug #4981: Group Members setting does not work for an LDAP User with parentheses in DN.

Data

  • Fixed Bug #4984: Cannot attach a Thumbnail to a Data Source asset.
  • Fixed Bug #4995: Cannot create a Data Source Graph.

Squid

  • Fixed Bug #5004: Squid Clear Cache tool has a PHP4 reference in it.

TRIM

  • Fixed Bug #4988: TRIM Saved Search serves old versions of file attachment.

Funnelback Package

  • Fixed Bug #5019: Language string in Display Options appears blank on a Funnelback Search Page.

The Latest

Releases

Date Version
18 Jun 20185.4.6.0
01 Jun 20185.4.5.3
28 May 20185.4.5.2
03 Apr 20185.4.5.1
26 Mar 20185.4.5.0
12 Mar 20185.4.4.2
21 Feb 20185.4.4.1
29 Jan 20185.4.4.0

Let Us Know What You Think

Let us know if you spot any errors or if you have any ideas on how we can improve the Matrix Community Website.

Contact Squiz for Demo

Let us show you the true power of Squiz Matrix by giving you a personalised demonstration.