MySource Matrix Developer

Main Content

MySource Matrix Developer Newsletter Issue 36
Friday 12th August 2005

covers versions 3.4.5 stable, 3.6.0 RC2, 3.7.0 development

News

Database Queries and Transactions

Some query changes were committed this week to ensure all INSERT, UPDATE and DELETE queries are executed within transactions. This is sometimes overlooked and wasn't so much an issue with PostgreSQL as it COMMITs the transaction when the script ends regardless of if an explicit COMMIT has been executed.

Before these changes, the AUTO COMMIT option was set to "on" for Oracle, which meant that every query would automatically be committed to the database if it was successful. This is obviously a problem, especially if something goes wrong during an operation. It was found that if a link operation failed on an Oracle system, assets would be orphaned because the database changes were not rolled back even though a ROLLBACK query was executed.

The AUTO COMMIT option is now "off", which means that if you do not explicitly issue a COMMIT, the database will remain unchanged. This is now true for both for both PostgreSQL and Oracle.

To make life easier, a Snoopy test has been created that will check to make sure that all INSERT, UPDATE and DELETE queries are executed in a transaction. It's up to the function that performs the query to BEGIN and COMMIT the transaction.

New Features

Condition Server Variable

Added to: 3.6.0 RC2, 3.7.0 development

A new Show If condition has been added to compare the value of a server variable (any of the $_SERVER array values). This new condition allows the design to restrict content based on browser type (like the User Agent condition), referring URL, language, IP address, protocol etc. Users can also be conditionally placed into groups based on the value in a server variable.

The following is an example of testing for language:

<MySource_AREA id_name="LangDetector" design_area="show_if">
    <MySource_SET name="condition" value="server_variable"/>
    <MySource_SET name="condition_server_variable" value="HTTP_ACCEPT_LANGUAGE" />
    <MySource_SET name="condition_server_variable_match" value="en" />
    <MySource_THEN> English </MySource_THEN>
    <MySource_ELSE> Another language, translate </MySource_ELSE>
</MySource_AREA>

The following is an example for testing for a query string value:

<MySource_AREA id_name="QueryDetector" design_area="show_if">
    <MySource_SET name="condition" value="server_variable"/>
    <MySource_SET name="condition_server_variable" value="QUERY_STRING" />
    <MySource_SET name="condition_server_variable_match" value="location=" />
    <MySource_THEN> Location Specified, Print a different logo </MySource_THEN>
    <MySource_ELSE> No location, revert to default </MySource_ELSE>
</MySource_AREA>
Search Proxy Results

Added to: 3.7.0 development

Search Page now has the ability to define "proxy" results, where you search for one type of asset but return another. This is best described using an example.

Assume you have a series of images in an image library and they are classified using the following structure:

Images
|_ Landscapes
| |_ 123.jpg
| |_ 234.jpg
| |_ landscape_1.jpg
| |_ ferns.jpg
|_ People
  |_ greg.jpg
  |_ nathan.jpg

Traditionally, a search for "landscape" with a Search Page configured to search for images would only have returned one result (landscape_1.jpg). However, what we really want is for all images of a "landscape" to be returned. The only way this could be done is to apply a metadata schema to the images and enter the keyword "landscape" into the field.

Now you can configured the search page to search for Folder assets only. You then go to the Proxy Asset Types screen and add Folder as a new proxy. Then select Image as a child asset type to display(you could also do File and click inherit).

Now when you search, all Image assets under Folder assets that have "landscape" in their name will be returned. Note that the Folder results are substituted in place of the Folder asset, so no folders will be returned in the search results. So instead of one search result (landscape_1.jpg) you would get 4 search results (123.jpg, 234.jpg, landscape_1.jpg and ferns.jpg).

You can use the new keyword to show out how many results were returned before the children asset types were substituted in. In this case, the following message on the results screen could be used:

Your search found images in folders.

Search Multiple Data Sources At Once

Added to: 3.7.0 development

Search fields in a search page can now look at several data sources each. For instance, you can set up a field that searches in the "name" attribute of the asset AND in its "description" metadata field. Previously, you had to define two different fields and ask the user to enter terms into both. Note that any search fields that uses multiple data sources will be displayed as a text box.

New Standard Search Data Sources

Added to: 3.7.0 development

When defining search fields, you now have the option of searching a few new data source called "standard asset fields". The standards fields allow you to define searches to look at the asset's name, short name, contents and all dates (including the new last status change date).

Ecommerce Checkout Form

Added to: 3.7.0 development

The new ecommerce checkout form provides an interface where web site visitors can pay for and order the products they have added to their shopping cart. It allows for delivery and payment methods to be plugged in, allowing for non-traditional ecommerce systems to be created. Currently, no payment methods and no standard delivery methods have been created. The checkout form is currently is use for a custom ecommerce system that uses client specific delivery methods to purchase free items.

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 requir

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
835 Y Y Y Manually changed asset dates are not updated in search index table
836 Y N N Undefined variable in form_email_edit_fns on line 942
837 Y Y Y Package manager cannot detect indirectly deferred assets
838 N N Y Search and Replace tool confirmation screen shows asset content matches twice
839 N Y Y user group restrictions not working correctly
840 N N Y Listing engine assets do not use correct type format for assets of inherited types
841 N Y Y Image variety filename not updated
842 N Y Y Problem with multiple root nodes and columnisation
843 N N N Files getting multiple lookup entries not confirmed
844 Y Y Y Bodycopy Tables can t handle columns with different content types
845 N Y Y treeid children missing treeid after being moved
846 Y Y Y Client side validation printed even if question not printed
848 N N Y Image assets not replacing variety keywords
849 N Y N asset builder dynamic location not working
850 N Y Y Trigger Condition Asset is under broken if asset is moving
Notes:

Bug #847 (Client side validation trys to validate questions that dont appear on the front end) was submitted by Danny but was marked as a duplicate of bug #846.

New Feature Requests Added To Bug Tracker

No new feature requests were added the the MySource Matrix bug tracker.

Bugs Fixed In The Bug Tracker

Bug ID Stable Beta Dev Description
829 N Y Y Paint layout never uses default type format bodycopy
835 Y Y Y Manually changed asset dates are not updated in search index table
836 Y N N Undefined variable in form_email_edit_fns on line 942
837 Y Y Y Package manager cannot detect indirectly deferred assets
838 N N Y Search and Replace tool confirmation screen shows asset content matches twice
839 N Y Y user group restrictions not working correctly
840 N N Y Listing engine assets do not use correct type format for assets of inherited types
841 N Y Y Image variety filename not updated
842 N Y Y Problem with multiple root nodes and columnisation
843 N Y Y Files getting multiple lookup entries
844 N N Y Bodycopy Tables can t handle columns with different content types
846 Y Y Y Client side validation printed even if question not printed
848 N N Y Image assets not replacing variety keywords
849 N Y N asset builder dynamic location not working
Add a Comment

You must click here to log in before posting comments.

View Comments

There are currently no comments for this newsletter.