MySource Matrix Developer

Main Content

MySource Matrix Developer Newsletter Issue 35
Friday 5th August 2005

covers versions 3.4.5 stable, 3.6.0 RC2, 3.7.0 development

News

3.4.5, 3.6.0 RC2 Released

New stable and release candidate versions of MySource Matrix were tagged on Monday and are available for client updates. These new versions have not been posted on the web site.

Changes To Package Manager Classes

Changes were made to MySource Matrix 3.7.0 to enable it to work with symbolically linked source code (as will be required for unit testing). This requires a change to all package_manager_*.inc files. All the generic packages have been changed and most of the Squiz Aus client packages have also been changed. Any other packages anyone has lying around (including those in the UK) will need to be changed. The change is as follows: In the constructor of the package_manager_*.inc file (located in the root dir of the package) the assignment of $this->_full_path can no longer contain dirname() calls, it must use the defined constants to set the path. For example, the Search package's packager_manager_search.inc file was changed: from: $this->_full_path = dirname(__FILE__); to: $this->_full_path = SQ_PACKAGES_PATH.'/search';

Packages that have not had this change made will continue to function but will generate errors when next running a step_03.php.

Database Foreign Keys

It was reported last week that foreign keys were to be added to the MySource Matrix database schema. This development has been postponed and may not be developed. We'll know more in a few weeks.

A Few SQL Query Tips

Here are a few tips for writing queries to help make them compatible with Oracle and make them easier to debug if required.

1. Only perform one query in a $db->query() or similar call. Performing more than one is a nightmare to debug and is likely to cause transaction issues if one of them dies.

2. Don't include semi-colons in queries. Its not necessary and it will cause Oracle to break.

3. Assign SQL statements to a variable before passing it to a $db->query() or similar call. It allows for easier debugging when needed as the developer can bam() out the $sql variable rather then copying and pasting the actual query.

4. Don't forget to db->quoteSmart() asset IDs and other strings. Oracle is very unforgiving when it comes to types. If it wants a varchar, thats was it expects. If its a shadow asset ID, the unquoted string will break both databases.

5. Don't use NATURAL JOINS. It's ambiguous as to which columns you are joining on and could lead to problems if columns get renamed/added. They also generally result in a bad query plan.

6. If you are going to insert a blank string into a column, ensure that that column allows NULL. Oracle treats blank strings and NULLs as the same. If you try to insert a blank string into a column that is NOT NULL you will get a constraint violation. The same goes if you are checking a column for a blank string. For example, the value column in sq_ast_lnk:

SELECT link from sq_ast_lnk where value = '' or value IS NULL;

New Features

Listing Engine Grouping Keywords

Added to: 3.7.0 development

When grouping assets by a common parent in listing engine based assets, keywords can now be used to display information about the common parent. All standard keywords are available and are prefixed with "parent_" instead of "asset_". For example, to print the URL of the grouping parent, use the keyword .

Frontend User Group Link Manager

Added to: 3.7.0 development

A new page asset has been built to allow users to link themselves into user groups from the frontend. An editor of the page can determine which groups the user will be allowed to link under (based on a root node), the type of links created and if multiple links are allowed. This allows user groups to be used for more general purposes within MySource Matrix systems. They can be used to allow staff members to update their position in the organisation or even for users to select which newsletter groups they want to be placed in.

Purge Old File Versions

Added to: 3.6.0 RC2, 3.7.0 development

The rollback_management.php script now accepts an extra parameter, '-f'. This parameter purges old file versioning files and history entries beyond a certain period. All current file versioning files will remain. The period is specified in the same way as for '-p'. For example:

php scripts/rollback_management.php -s . -f 2w

Will purge all old file versioning files and history entries that are more than 2 weeks old.

Planned Development

Ecommerce Checkout Form

To be added to : 3.7.0 development
Estimated start date: already in development
Estimated end date : 10th August 2005

Upgrading

3.6.0 Rc2

Run step_02.php: no
Run step_03.php: yes
Run compile_locale.php: yes

Additional queries: No additional queries are required for upgrades.

Additional comments: No additional upgrade steps are required.

3.7.0 Development

Run step_02.php: no
Run step_03.php: yes
Run compile_locale.php: yes

Additional queries: No additional queries are required for upgrades.

Additional comments: No additional upgrade steps are required.

New Bugs Added To Bug Tracker

Bug ID Stable Beta Dev Description
823 Y Y Y Remote Content does not validate the Remote URL provided in the URL
824 N Y Y Listing Engine asset groups not working when multiple Parent Asset groups used
825 N Y Y Source string for forceably_acquire_lock not found
826 N Y Y Future Status changes broken in RC2
827 Y Y Y Insert Link in WYSIWYG not supporting rtsp protocol
828 Y Y Y Image Editor changes file extension unintentionally
829 N Y Y Paint layout never uses default type format bodycopy
831 N Y Y Search folder refresh broken
832 N Y Y Running step 3 on a specific package unregisters search manager as an event listener
833 N N Y Access history design area will not print access time
Notes:

Bug #809 (Attribute Values Must Be Quoted - Will not validate) was submitted by Richard Johnson on the 23rd July but was marked as Can Not Replicate because the unquoted value could not be found anywhere within the MySource Matrix source and Richard did not clarify where the unquoted value was displayed.

New Feature Requests Added To Bug Tracker

Bug ID Description
830 Shortcut to add an asset thumbnail
834 Ability to list custom form submissions via an asset listing

Bugs Fixed In The Bug Tracker

Bug ID Stable Beta Dev Description
390 N Y Y Search page allows you to specify search fields for non searchable attributes
717 Y Y Y Using layouts to edit metadata on front end
754 N Y Y Collation order breaks when special characters are ignored in the sort order
787 Y Y Y Deleting a metadata schema doesn t remove it from assets
804 N Y Y Using asset_lineage in a search that searches Files causes Warning
811 N N Y Asset Listing A Z Listing producing error
812 N Y Y Asset Listing Grouping Field Keywords
820 Y Y Y Boundary condition errors when searching on date ranges
822 N Y Y Search page doesn t recognise a search as empty if there are date fields
824 N Y Y Listing Engine asset groups not working when multiple Parent Asset groups used
825 N Y Y Source string for forceably_acquire_lock not found
826 N Y Y Future Status changes broken in RC2
827 Y Y Y Insert Link in WYSIWYG not supporting rtsp protocol
828 Y Y Y Image Editor changes file extension unintentionally
833 N N Y Access history design area will not print access time
Add a Comment

You must click here to log in before posting comments.

View Comments

There are currently no comments for this newsletter.