MYSOURCE MATRIX CHANGELOG VERSION 3.20.2 Featured Changes ----------------------------------- Search Query modificaition for Oracle 11G compatibility The queries issued by Search Manager when searching content has been modified to allow compatibility with Oracle 11g. Nested subqueries are now used in the query portion that checks permissions, instead of an "intersect" operation, to provide this compatibility. Asset Manager Database Query Optimisation The query to retrieve parent assets has been optimised by using a "JOIN" operation instead of a subquery. This results in a great performance increase on systems with large tree structures. New Global Keywords for current date and time A new Global Keyword is available - %globals_date% - which will return the current server date and time for use in content. When used as specified above, a readable date / time is shown (eg; 6th Feb 2009 5:00pm). This keyword can be prefixed with a PHP date() format for greater control of the date displayed. Keywords must be used in isolation if multiple date components are required. For example: %globals_date_M% %globals_date_Y% => Feb 2009 Asset Listing: Return Root Nodes Only option The Root Nodes assigned to an Asset Listing will be returned when the minimum and maximum depth are set to 0. WYSIWYG Metadata Field Type Metadata can now be specified as rich text in via a WYSIWYG Field Type, similar in function to the WYSIWYG Content Type available for Bodycopies. Regenerate Metadata by Root Nodes script A new command line script - regen_metadata_by_root_nodes.php - has been added to the "scripts" directory. This script takes the Matrix Root Directory and a comma-separated list of Root Node asset IDs. Metadata is then regenerated for each child asset under the specified Root Nodes. The script is multi-threaded and takes two further optional parameters to control the processor utilisation of the script. These parameters are the maximum thread count and a number of assets to process per batch. The default values of each are set at 3 and 50 respectively. Antivirus Tool Integration Virus scanning of File assets has been added through integration to the third-party ClamAV and F-Prot command-line tools. New File assets are scanned using the configured virus-scanning tool when specified in "External Tools Configuration". When an infected uploaded file is detected upon creating a new File asset, creation of the asset is aborted with a MySource Warning message shown to the user. New Image Keywords to display Image Variety dimensions Keywords for the pixel dimensions of Image Varieties is now exposed to Image assets. The keyword format is as follows: %image_v_VARIETY_NAME_width% %image_v_VARIETY_NAME_height% Customisation for CAPTCHA text background and border colours The background and border colours for CAPTCHA fields can be configured from Form assets. The code for this functionality has been graciously contributed to the Matrix CMS Package by Nic Hubbard. Search Page: Exclude Root Nodes option This option allows the assets specified as Root Nodes be excluded from the search results in instances where they would normally be applicable. Metadata Date Field support for Triggered Scheduling of Set Future Permission and Status Actions A Metadata Date Field configured to provide an ISO 8601 date (eg; 2009-02-20 17:00:00) can now be used as the schedule time for a future permission or status event within their respective Trigger Actions. The interface to these Trigger Actions have changed slightly to remove redundant components while maintaining functionality. An optional offset is now specified at the bottom of the trigger action instead of against each applicable item. Form Submission Action: Save as XML Form Submissions can now be exported as an XML structure by associating the "Save as XML" action from the "Submission Actions" screen from the "Form Contents" of a Custom Form. A server file path must be specified as a destination for the XML output. The output provided can be either "Simple" or "Complex" - the latter of which includes IP address and asset ID details. The values exported can also be configured here to be either the key or value component of each answer. Custom Form: Extra HTML Attributes option for Submit and Reset buttons Extra HTML attributes (eg; for custom styling, JavaScript code) can now be added to the Submit or Reset buttons in Custom Form assets. This optional HTML text can be added from the "Simple Formatting" section of the "Contents" screen. Support for Persistent Database Connections Persistent database connections may now be used for both PostGres and Oracle databases. The 'persistent' option should be added to the DSN array for connections in the db.inc configuration file to enable this functionality, as demonstrated below: 'db' => array ( 'DSN' => 'pgsql:dbname=my_db;host=my_host', 'user' => 'db_user', 'password' => '', 'type' => 'pgsql', 'persistent' => true, ), ... If this option is not specified or set to 0 or false, non-persistent connections will be used as per normal operation. Additional Changes and Bug Fixes ----------------------------------- Core * Fixed Bug #3504: Moving Custom Form Sections * Fixed Bug #3511: Trigger to release all locks on logging out * Fixed Bug #3513: Locks not being update by the Top Frame * Fixed Bug #3528: Accessing URL with apostrophe Gives DAL error without 404 page * Fixed Bug #3533: Form question type tickbox list not upgraded when there is only one option set * Fixed Bug #3535: Missing Binoculars Icon * Fixed Bug #3536: Metadata can not be edited in simple edit layout by root node CMS * Fixed Bug #3507: Custom Form - keyword for non existent question causes blank page * Fixed Bug #3537: foreach() error with custom form IPB * Fixed Bug #3491: IPB username with single quote will fail to login Search * Fixed Bug #3489: Search finding bodycopies when used with multiple root nodes * Fixed Bug #3494: Question Field option missing Web Services + SOAP Server Page: XML response upon authentication failure VERSION 3.20.1 Featured Changes ----------------------------------- SharePoint Integration Package (SSV only) A new SSV Matrix package to provide search and further integration with SharePoint has been added. A connection is established from Matrix to a SharePoint system via the SharePoint Connector asset. Convert Database Script performance improvements Queries performed by this script are now committed every 5000 records in order to avoid having large transactions. Columns which are not available in the destination schema are not transferred in order to prevent conversion failure. "Last Selected Child Type" Asset Map enhancement A new menu item has been added above "New Child" in the Context Menu of the backend Asset Map which is populated with the last selected asset type that was requested to be created. This item expedites creation of another child of the same type. This item is disabled until an asset creation request is made. It is then available as "New Child: x" (where "x" is the full asset type name - eg; Standard Page). Please note that reloading the backend or the Asset Map frame will invoke a new Asset Map instance, causing this item to revert to its default (disabled) state. MP3 File asset This asset, graciously contributed to the Matrix core by Nic Hubbard, provides metadata extraction from ID3 tags for MP3 files. Values such as "bit rate" and "sample rate" are exposed as keywords which can be used in asset listings. The MP3 File asset interfaces with a third-party package called "getID3()". The path to this utility must be configured in "External Tools Configuration" under "System Configuration" in order to provide metadata extraction functionality. This asset type is now used when importing MP3 files using the Bulk File Import tool. Execute Database Query Trigger Action A new trigger action to execute a database query has been added to the "Data" package. Keywords of the firing asset and Global Keywords can be specified within the SQL query. Similar to the Data Source DB asset, keywords should not be surrounded by quotes due to the use of bind variables. Database connection details can be provided in text or by selecting an existing DB Connector asset. Log Rotation changes The log rotation mechanism for Matrix log files has been changed so it is more standardised across platforms. The initial file (eg; "access.log") will be moved to "access.log.1" and through to the last available ID (default = 10). When rotating logs (daily by default), the file at the last position (ie; "access.log.10") will be deleted, existing log files shifted up by one position and a new "access.log" created for the current day. Multiple Session Expiry Rules Multiple Session Expiry Rules can now be set in "Global Preferences" under "System Configuration". The session length can be varied depending on IP address and/or time since last login or Matrix asset request. This option defaults to expire sessions when the user closes the browser. Search Page: Multi-Word Synonym Lookups A new option "Multi-Word Synonym Lookups" has been added to the "Details" screen of the Search Page asset. The "Auto Synonym Search" option must also be enabled with a Thesaurus and Search Field assigned in order to use this option. When enabled, this new option will look up the thesaurus for contiguous terms and append any found synonyms to the query. This is best described with an example: Thesaurus configuration - Contains terms "flautist" and "flute player" - Each term is set up as a synonym of the other Search Page configuration - "Auto Synonym Search" is configured appropriately as mentioned above Example scenario: A search for "flautist" or "flute player" will append the alternate term to the existing search query. [ie; fred AND flautist => fred AND (flute player OR flautist)] The results of this modified search are combined with those of the original unmodified search query. Notice Links between Comment and File asset types Notice Links can now be created between Comment assets and File asset types such as "Image" and "MP3 File" assets. This can be used in conjunction with an Asset Listing to list comments which are particular to these File assets. Recache option does not require Write Permission Write Permission to the targeted asset is now no longer required in order to re-cache content via the "_recache" suffix. This is to provide re-caching of content as the Public User. It is recommended to change the default "_recache" and "_nocache" suffixes in "System Configuration" if you wish to hide this functionality from public users. Roles Performance Improvements The SQL query structure for determining Role assignments has been modified for enhanced performance. This was accomplished by replacing a statement portion ("CASE ... WHEN") which was already assumed in the "WHERE" clause. Division-Based Multi-Column Asset Listing Layout An option has been added to Asset Listing and Search Page to control the display type of multi-column lists. The list can be shown in TABLE format (current default) or as DIV elements for each row. The latter option allows CSS classes to be assigned to these rows. The "Column Type" and "Row Class" are available from the "Column Layout" screen to control the layout of the list. Control of Automatic Password Completion Automatic password completion - password field contents as populated by the browser - can be switched off for Password fields from the Matrix screen XML files. In addition, automatic completion has been disabled for the password field on the "Details" screen of Remote Content assets. A new optional attribute "autocomplete" is appended to the tag to disable automatic completion. A usage example is provided below: Additional Changes and Bug Fixes ----------------------------------- Core * Fixed Bug #3455: Multiple asset finder has incorrect inline styles * Fixed Bug #3456: Captcha failed for custom form * Fixed Bug #3459: Some Data Sources don't cache correctly * Fixed Bug #3462: MP3 File - Track missing in edit_interface_screen_details.xml * Fixed Bug #3463: MP3 File - Check if id3v2 track isset * Fixed Bug #3464: Image Edit error * Fixed Bug #3465: add_remove_url.php ignores indirect descendants of file asset type * Fixed Bug #3473: Acquire locks message incorrect for System Configuration and HIPO Herder * Fixed Bug #3474: WYSIWYG elements do not expand vertically for large content in Simple Edit (IE7+ only) * Fixed Bug #3477: Default attribute value for selection type attribute on Oracle * Fixed Bug #3478: In Design Customisation, Calendar asset cannot be excluded in menu normal * Fixed Bug #3490: Removing workflow doesn't cascade to child assets + Asset and Global Keywords are now supported in Markdown Content Type cells + Insert image dialogue too small in Safari (3.20.0) CMS * Fixed Bug #3424: Asset listing causes PHP Notice when changing status * Fixed Bug #3452: Asset Statuses to List field for listing engine will lose value when changing status * Fixed Bug #3466: Asset Builder - LDAP User Metadata field errors * Fixed Bug #3472: Asset builder - Create location bug * Fixed Bug #3483: Search keyword group_total_child_asset_count always returns 0 News * Fixed Bug #3467: Comment Asset - Entered Data does not stay when errors Search * Fixed Bug #3457: Backend search fails for "keyword" search with error message VERSION 3.20.0 Featured Changes ----------------------------------- PEAR requirements for two packages changed The following minimum requirements for the following PEAR packages must be met for a successful installation: - HTTP_Client 1.1.1 (minimum), 1.2.1 (tested and recommended) - Net_URL 1.0.15 (latest version) Memcache Session Handler and path option A session handler to handle sessions within Memcache has been added. The Memcache PECL module must be installed in order to interface with a Memcache server. The connection information to the Memcache server (host or IP address) and port, must be supplied in the SQ_CONF_CUSTOM_SESSION_SAVE_PATH value in the main.inc configuration file in the format "aaa.bbb.ccc.ddd:11211" (11211 is the standard Memcache port). If the default Matrix session handler is to be used rather than Memcache, a directory can be specified as the SQ_CONF_CUSTOM_SESSION_SAVE_PATH value to determine where these session files are stored (current default is the "cache" directory). The main.inc configuration file contains a new constant "SQ_CONF_SESSION_HANDLER". This is set to "default" to use the standard Matrix Session Handler. In order to use MemCache, this line must be changed as follows: define('SQ_CONF_SESSION_HANDLER', 'memcache'); The "Use Default PHP session file save path" setting in "System Configuration" must be set to "False" if session files are to be stored in a location other than the "cache" directory of MySource Matrix. Bulkmail scripts location changed The reset_bulkmail_job.php, run.php and schedule_bulkmail_job.php scripts have been moved to a new "scripts" directory under the Bulkmail Package directory. Please note that the crontab must be changed on systems using the Bulkmail "run.php" script after upgrading, to point to the new location and ensure continued operation. E-Commerce Payment Gateway: Credit Card details removed from session Credit Card information is no longer stored in the User Session when using the Payment Gateway with ESec. Form data is now passed directly to the SecurePay gateway. A side-effect of this is that the form fields for the Payment Gateway are no longer pre-populated with the user's previous input. E-Commerce Checkout: Total Cost rounding The Ecommerce Checkout asset now rounds the total cost of the cart using a new "Float Precision" attribute. This attribute is only editable if the receipt is chosen to be customised on the "Display Formatting Options" screen. The default "Float Precision" value is 2. Starting tag for XML Data Source and Weather Company Feed assets A starting tag can now be specified in XML Data Source and Weather Company Feed assets to control the parsing of shadow assets resulting from the XML source. This is used to delineate tags with the same name appearing in multiple levels in the XML output, to ensure that the intended target is used. The starting tag is specified from the "Details" screen of both asset types. Simple Edit Layout option to control display of "Cascade Value" metadata field checkbox A switch has been added to the "Details" screen of Simple Edit Layouts to control the display of the "Cascade value" checkbox next to Metadata Fields. This option controls display when in Simple Edit or on the frontend of assets such as Account Manager and Asset Builder when a customised Layout is applied. This checkbox will always be displayed on the backend. Additional Changes and Bug Fixes ----------------------------------- Core * Fixed Bug #3393: Previewing an asset after edit gives error about URL * Fixed Bug #3394: Web connectivity causes PHP time-out when a URL is not supplied * Fixed Bug #3395: WYSIWYG: Quicklink plugin uses incorrect mailto link * Fixed Bug #3396: Default Presentation Type not working * Fixed Bug #3399: recreate_link_tree.php script fails on Oracle with 'invalid relational operator' error * Fixed Bug #3403: system_update_lookups.php script fails on an Oracle system * Fixed Bug #3405: Category field on the Trigger not working correctly * Fixed Bug #3421: JsHttpConnector.js does not work in IE6 * Fixed Bug #3427: Cron Issues: Uncaught exception * Fixed Bug #3438: Keyword condition not evaluated correctly when keyword value is 0/false * Fixed Bug #3440: Trigger to remove all metadata schemas errors * Fixed Bug #3446: Rollback mode causes Asset Map errors + Microsoft Excel and PowerPoint, RTF, Text, CSS and JavaScript file types are now created as their respective file-specific Matrix assets when imported via the "Bulk File Import" tool. Bulkmail * Fixed Bug #3358: Bulkmail - HTML/text option * Fixed Bug #3431: Bulkmail cannot send emails to XML User Bridge Users * Fixed Bug #3433: Bulkmail error log contains undefined index messages * Fixed Bug #3441: Bulkmail Job does not send email to a singly selected user + Global Keywords are now replaced in content sent from Bulkmail Job assets Calendar * Fixed Bug #3385: Cannot create more than one Multi-Date Calendar Event under a common parent * Fixed Bug #3388: PHP notice when previewing the Upcoming Events Page * Fixed Bug #3429: Single Calendar Events without time get sorted incorrectly CMS * Fixed Bug #3407: Default values for listing engine min/max depth is 0 for Oracle systems Data * Fixed Bug #3436: XML User Bridge User Group Details and Linking screens fail * Fixed Bug #3443: XML User Bridge User Groups and Users are not able to be linked * Fixed Bug #3444: getAssetInfo() for XML User Bridge is broken for User Groups Google Maps * Fixed Bug #3430: Google Map page sends MIME application/geplugin when Google Earth plugin turned off LDAP * Fixed Bug #3419: Linking a LDAP user to a User Group causes a PHP notice error Search * Fixed Bug #3386: Search page structured root node keyword throws exception if not configured VERSION 3.20.0 RC1 Featured Changes ----------------------------------- Selected Packages under GPL from 3.20.0 The Bulkmail, Calendar, E-Commerce and Search Packages are now included from 3.20.0 and distributed under the GPL. The licensing terms are available in licence.txt included in the Matrix System Root Directory or by contacting Squiz. Hipo Herder: Resume jobs in new window The HIPO Herder screen now allows users the option to resume stalled HIPO Jobs in a new window, rather than in the main window as is previously. The original option to open in the main window still remains. Filter by URL in Remap Manager This addition allows URLs on the Remap Manager's remapped URLs list to be filtered based on either their original or remapped URL (or both). Clear Matrix Cache: Multiple Root Nodes This addition allows multiple non-dependant assets to be cleared in a single run of the Clear Matrix Cache tool. Option to control remapping of Web Paths This new feature allows users to override the previous default (and un-changeable) behaviour of creating entries in the Remap Manager whenever a web path is changed for an asset. The default setting is set in the Remap Manager asset, and can be overridden on a commit-by-commit basis on the Web Paths screen of an asset. New re-cache suffix MySource Matrix currently has a "no-cache" (by default, "_nocache") suffix that can be added to an asset, to bypass the Matrix cache system and view the most recent version of an asset on the front-end. This new recache suffix (by default, "_recache") will do this, and also clear and re-populate the cache. The new suffix will only work if a user has write access to an asset. This suffix is changeable from the System Configuration screen or the main.inc configuration file. Exclude Assets from Asset Listing Page This new feature allows one or more assets to be excluded from the Asset Listing Page, preventing them from being listed even when the usual criteria would see them listed. Metadata Value Cascading This new feature allows default and/or custom values to be cascaded to child assets on a field-by-field, asset-by-asset basis. This can be set by ticking the "Cascade Value" checkbox(es) on the Metadata screen of the asset being edited. CAPTCHA Field in Asset Builder Page This new feature allows you to add a CAPTCHA test to an Asset Builder Page asset. When the "Require CAPTCHA" option is turned ON on the Details screen, a number of CAPTCHA-related keywords will be made available to the Logged In bodycopy. A few options are also provided to control the look of the CAPTCHA, such as the number of characters displayed. Image Content Type: Option to use DIVs The Image Content Type would previously wrap the image to be inserted in TABLE tags, allowing advanced features such as floating. This has now been extended to allow the image to be wrapped in DIV tags instead. New user preferences have also been added. Use HTML Tidy as accessibility checker The Tidy binary, currently used to clean up invalid HTML, is now also used to conduct WCAG accessibility checks. Failed accessibility checks are available as a new icon mouse-over, located next to the current HTML Tidy on/off indicator at the top-right of each bodycopy container. TRIM Data Source Asset (SSV only) This new data source allows you to make queries against an installation of the TRIM information management system, and return the results as Data Source Record shadow assets. Send Workflow starter rejection email This change to the Workflow system will send an email to the user that initiated a workflow process on an asset, if that process is rejected. This notifies the user that they may need to review their edits, along with any notes provided in the workflow process. This change applies to all workflows and cannot be disabled. Asset Lineage Design Area: "Start at" level A new "start_at_level" variable has now been added to the Asset Lineage Design Area asset, that starts printing from a specified level. The top of the lineage (the Site asset, if coming from a forward direction) is Level 0, and increases from there. Backend unsaved changes warning A warning message will now appear if you try to move away from a page on the Matrix backend while you are editing an asset. This allows users who try to accidentally navigate away from the backend to negate their action and not lose unsaved changes. Auto-approve multiple Workflow Steps MySource Matrix will now automatically approve as much workflow as possible when a user approves an asset's changes, spreading over multiple steps when necessary, until it finds a step that requires someone else's approval (or where that user's approval is not enough to approve that step). In the rare instance that a user is able to approve a multiple-step workflow all by him- or herself, the workflow will not be initiated and the status will jump to Approved to Go Live, which is the same setup as what happens for a single-step workflow. If a user is able to approve all remaining steps of a workflow already in progress, then all approval messages will be sent before the workflow is completed. Simple Edit Layouts applied by Root Node MySource Matrix will now allow you to set Simple Edit Layouts by root node, similar to what happens now with Designs. This can be performed via a new Layouts screen. Existing global assignments of Simple Edit Layouts will be preserved and can still be set or modified in the Layout Manager, and will still take effect if no root node-level Simple Edit Layout is found for a given asset. System Maintenance Screen This new screen, accessible from a button to the right of the HIPO Herder link, allows you to view various types of information about your system (eg; Top 20 asset types). Rollback can be managed from this screen as recommended maintenance task. "Create Link" Trigger Action: Dynamic target The Create Link trigger action now allows you to specify a dynamic target asset ID through a dynamic parameter. A fixed target must still be specified for the occasions that it is not. Metadata Field values covered under "Safe Edit" Changes to Metadata Field values can now be prepared in "Safe Edit" before setting an asset "Live". Previously such values would have immediate effect when applied to an asset. Metadata Field values are restored for remaining fields when "Safe Edit" is cancelled. Multi-Page Forms Multi-Page Forms can now be created from the "Details" screen of a Custom Form. Form Sections are used to determine pagination of questions. Form Confirmation Page A confirmation page can now be added as an additional page at the end of a Custom Form. New Cron Job: Manage Incomplete Submissions This Cron Job handles incomplete submissions from a multiple-page Custom Form, sending reminder emails to their owners and deleting them after a certain time period. An "Incomplete Submissions" screen has been added to Custom Form to configure the operation of this Cron Job. New File Upload handling in Custom Form When completing a multiple-page form, File Upload answers (ie; files) are moved to a temporary location. These files are then created as a File asset when a Create Location is specified, or managed by the Form itself if a location is not specified. Files which are saved to a permanent location are available from the "Details" screen of the Form Submission. Custom Form Page List The "Page List" is an unordered list of pages, styled with certain CSS classes depending on their location in the Custom Form. This can then be styled through a Design or Design CSS asset. The Page List is configured for display on the "Page Contents" bodycopy via the %page_list% keyword. New Overwrite Rule handling for Custom Form The file Overwrite Rule no longer applies when a Create Location is not specified. Overwrite Rule handling only overwrites File assets and checking for clashes is done by comparing web paths, not asset names. Rollback Management Tool A new web-based tool has been added to allow System Administrators to control rollback data. This tool provides the same management parameters as the existing "rollback_management.php" command-line script. Rollback data may be aligned to a particular date or purged based on age, and can be enabled or disabled within the tool. "Increment Version" Trigger Action: New failure condition This trigger will now return a failure condition if the asset version number supplied is not of the expected format. "Exclude Root Nodes" Asset Listing option It is now possible to nominate one or more root nodes to be excluded from Asset Listing pages. This option is available on the "Details" screen of these asset types. Indication that a Division is linked elsewhere A binoculars icon is shown near the top-right of each division if it is linked in multiple locations. Clicking this icon will show all lineages to which the division is linked and provide links to each of these assets. Locating Nested Assets A binoculars icon is shown below the Asset Picker in Nested Content cells which when clicked will show the lineages of all locations where the referred content is linked. YouTube WYSIWYG Plugin A new tool icon is available in the WYSIWYG editor which allows content hosted on YouTube to be easily added to bodycopies. A pop-up window is shown with content options when adding YouTube content. This tool can be enabled / disabled on a User Group basis in the same manner as other WYSIWYG tools. Quick Link WYSIWYG Plugin A "Quick Link" tool has been added to the WYSIWYG editor which will turn a URL or email address into a link. The desired content (eg; email address) is highlighted and is turned into a link (in this case a "mailto:" link) once this tool is selected. Upload a new Image within "Insert Image" WYSIWYG Tool The WYSIWYG "Insert Image" tool will now create an Image asset from a file uploaded within the pop-up window. This is accomplished by clicking the "Insert Image" button in the pop-up window then selecting the local file and a root node to be used as the destination for the Image asset. The process of uploading the image will immediately select this image for immediate insertion into the content. Simple Edit User A new user type - Simple Edit User - has been created which will provide access only to the Simple Edit interface and not the Administration (backend) interface. Log In as another user (Troubleshooting Tool) System Administrators (and the Root User) can now switch to another user account without a password for troubleshooting purposes. A key icon is shown to the left of the "Logout" icon for these users. Once clicked, a small form is shown in the header bar for entry of a username. When entered, the current user is logged out and the secondary user is logged in at the same URL. A modified "Logout" icon is shown once in the secondary account, which when clicked will log the originating user back in and restore their asset history lineage to minimise disruption. This feature cannot be used to change to the Root User, nor can System Administrators log in as other System Administrators. Use of user-switching is logged with the Messaging Service event codes given below. This is in addition to the normal login and logout messages which are still recorded when changing users. New Messaging Service event codes: - system.security.login.secondary.manual (upon successful user switching) - system.security.login.secondary.failed (upon user switching failure) - system.security.logout.secondary.manual (after logout from the secondary user) Default Presentation Type for Bodycopy Containers The Default Presentation Type for Bodycopy Containers (ie; Block-level, Inline, or Raw HTML) can now be configured from the "Global Preferences" screen of System Configuration. Total page size on asset "Preview" screen A summary of the byte size of images, CSS, Javascript and other content has been added to the "Preview" screen for assets. A "Calculate Size" button is shown next to the "Preview" button which will perform the calculations and return the summary. File Versioning System Integrity script A new script "system_integrity_recover_file_versions.php" has been added to recover incorrect file versioning entries in MySource Matrix. The script takes three arguments, the System Root directory, running mode ("test" or "recover") and a Root Node asset ID from which to perform the recovery. The "test" mode summarises any conflicts between file versions stored in the file system and the database. It is recommended that a Matrix system backup is performed before running this script. Permission restrictions for creation / deletion of Bodycopy Containers Creation and deletion of Bodycopy Containers can now be controlled at a Global or User Group level. When these restrictions are enforced, a warning message is shown above each Bodycopy Container and the green edit icon is hidden. Automatic population of "Select Form Questions" from CSV file Existing "Select Form Questions" can be populated from a CSV file uploaded on the "Details" screen of the question. If the CSV file contains one column, these entries are used as the selection values. A key can be specified alongside a value in a two-column file - with the value as the second field. A third field can be specified to determine whether the options form part of the default selection (0 = no, 1 = yes). Safari Compatibility Changes have been made to the WYSIWYG editor and the multi-text option list interfaces to provide increased compatibility with Safari. Additional Changes and Bug Fixes ----------------------------------- Core + New Global Keyword %global_post_xx% for HTTP POST variable replacements + Metadata Text fields now contain an option to constrain the number of characters that said field can contain + The name of the user that committed each asset version is now shown on the asset "History" screen + Colour-coding and line numbering on the Design "Edit Parse File" screen shen locks are released + Assets can be renamed when cloning from the Asset Map + Keywords Regular Expression Condition: Global Keywords can be used within the condition and can function within "show_if" Design Areas + The Asset Finder widget now supports the manual entering of an asset ID in the smaller box to the right of the "Id: #" label + Emails sent to users involved in the running workflow of an asset now have direct links to approve or reject the workflow + The Asset Sorting Tool can now sort by Asset Attribute as well as by standard asset fields + A new Trigger Event type "Before User Logout" has been added. This event can be used with Trigger Actions where user details are required to be preserved just before the logout process has completed (eg; for use with a "Send Email" Trigger Action to send an email to the user while they log out) CMS Custom Form changes: + Form Sections can now be nested to delineate groups of questions on Multi-Page Forms + The "Submission Logs" screen only lists completed submissions + A new keyword %form_summary_semantic% has been added to clearly show form element relationships + A key can now be stored against values in a Select Form Question. The key is stored in the form submission when that form is submitted + Where a CAPTCHA is required, it only needs to be filled in once on any page, and this status will be stored in the submission + Submissions for logged-in users are stored as Form Submission assets under the "Incomplete Submissions" folder + "Previous" and "Next" page buttons have been added to navigate "Multi-Page" forms. "Save" and "Save and Exit" buttons are also available to save progress without validating values on the page + Further information can now be stored against answers to Form Questions in an "Extra Data" field + A "download" link is shown next to the file summary for File Upload questions without a specified Create Location to enable these files to be downloaded from the backend or when in Simple Edit + Redirect Page: HTTP 301 "Moved Permanently" responses can be issued from these assets + What's New Page: A dynamic parameter can be specified to assign a Root Node for this listing from sources such as GET, POST and SESSION variables Bulkmail + Bulkmail Post Office: A "Test mode" can be enabled from the "Details" screen to verify the emails that would be sent in a live scenario Search + Global Weightings of non-instantiable system assets such as "Users Folder" can now be specified on the "Global Weights" screen of Search Manager