This is a concept for a tool that allows you to compare any kind of items in Magnolia CMS: products, articles, assets etc. The concept is based on the Shop module. The shopping cart in the Shop module provides much of the required functionality out-of-the-box and requires less custom development.
What is a comparison tool?
A comparison tool allows you to select two or more items and compare their features in a table (matrix) format. Comparison is commonly used in shopping when there are similar items with subtle differences.
- Compare content management system at cmsmatrix.org
- Compare wikis at wikimatrix.org
- Compare electronics at newegg.com
Comparing items in Magnolia CMS
The items being compared in Magnolia CMS could be any content elements. They could be stored in any workspace but
data are most likely. The competing features are any metadata applied to the items.
- Items are articles in the website workspace and the features are the date, author and rating. Find the highest rated article in 2012.
- Items are documents in the DMS workspace and the features are subject, description, language, author, contributors and copyright. Find English language documents on the subject you are interested in.
- Items are images in the DMS (or resources workspace in Magnolia CMS 4.5) and the features are size, file type, dimensions etc. Find PNG images that have a Creative Commons license.
Magnolia does not provide a comparison feature out of the box. The closest equivalent is the shopping cart in the Shop module. The shopping cart is a visual table of selected items. Items are on the rows and the features are in the columns. The default features are Quantity, Unit Price and Total price because those make sense in the shop but the cart could be customized to display other metadata.
With the Shop module you get the following functionality out-of-the-box:
- Ability to select items (products) by browsing the site and putting them in the shopping cart.
- Tabular (matrix) view of the selected items. Allows for visual comparison of features.
- Creating and storing items in the data workspace. Supports organizing items into folders.
Custom functionality that needs to be developed:
- A checkbox list of all items. This is typically the starting point for selecting items. Technically it is a simple custom template: run a query for all items and build a list.
- Remove the Quantity, Unit Price and Total columns that don't make sense for and replace with custom metadata from the items.
- Flip the rows and columns around. Comparisons are usually done in the opposite way where the selected items are in the columns and the features are on the rows. This is because there are typically more features than selected items. See cmsmatrix.org.
- Depending on where the items are stored, customize the Shop to display data items, website pages or DMS assets.