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.
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.
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
The Root Nodes assigned to an Asset Listing will be returned when the minimum and maximum depth are set to 0.
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.
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.
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.
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%
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.
This option allows the assets specified as Root Nodes be excluded from the search results in instances where they would normally be applicable.
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 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.
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.
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.