Multiple designs

I've been playing around with Matrix and I've come across the situation where I want certain pages to make use of different MySource tags. For example, for the majority of pages I want them to be a single column look that uses a top level menu and a lineage. For other pages, I want then to be a two column look that in addition to the top level menu and lineage uses the left hand column for a stalks sub menu.


Both these designs are pretty much the same. They use the same css, same images. So to achieve this I've created two designs called Design1 and Design1 Stalks and created links for the first design's assets (css, etc) under the second design. Then I modified the parse file for Design1 Stalks to include the extra column and stalks menu.



Is there are better way to achieve this in Matrix? I initially tried to use design customizations but couldn't get it to do what I wanted. Is the only place MySource tags are ever parsed in the parse file? Or is there some way I can include them in pages?

What you have done sounds right to me based on what you've said you want to achieve.


For some design areas, customisations are the way to go because you use the same structure but different settings. For the menu though, the stalks menu and the normal menu are not the same design area, so you need two parse files.



If you had something like a constant button (a customisable link) you could place the constant button in your parse file and create two customisations. In one, you could link it to asset #123 and in the other you could link it to asset #234. Most design areas have a bunch of settings you can use in the same way.

It works, but I don't like having to have multiple copies of what is (mostly) the same parse file in multiple designs. It just makes maintenance slightly harder. The only differences between to two are:

  1. The extra div for the left hand column which contains the mysource tag to make the stalks menu.


  2. A different class for the main content container div to push it right.



    I guess what I want is a "substitution" design area tag. Something that I can put in the main parse file that in the normal case will output nothing. But then I can create a customization of the design where I can set the value of the substitution tag to be any arbitrary HTML and MySource tags I like.



    In my case I would also have to change the class of the container div but I can already do that with the declared vars design area.

A feature like that was planned for Matrix at the very start (and I think developed a fair bit) called specialisation of design areas. It was never fully tested and developed (Blair probably knows why - Blair?) so you cant currently do that in Matrix.