Site Map Mara Editing Advanced Step by step
print

The Theme - Step by Step

Dolly says: Go make your own. It ain't difficult! After some practice with the editor and having written-up a  few pages, you're probably thinking about making something a little more custom, that has the layout and styling you want. Layout and style are determined by Themes.

You'll notice that we don't offer endless collections of premade themes. Our theme syntax is easy enough to master that you shouldn't need to rely on copying other peoples' work. However, if you insist on the cloning approach to creating a website, then we'll redirect you here.  Bye.

Themes are always subfolders of the theme folder, in the root of your Mara site. The name of each subfolder is the name of the theme.  Good practice dictates that nothing in the theme itself should carry its own name, also nothing should contain a reference to its filesystem path. That way, themes are fully renamable.

That said, there's nothing to prevent you from starting with one of our themes. In fact, a good way to start experimenting is to make a copy of an existing theme into a differently-named folder. Then you can try any changes you like without affecting the default.

A website need only have one theme, which can apply to all pages. In many cases this will suffice.  However, if you want certain pages to have different styling or features, or if you want to give the site visitor a choice of different presentations of your content, then you may use as many themes as you like. 

Determining which theme to apply

Any given webpage can only be displayed in one theme at a time.

The default theme for the website is determined by the master config file siteini.php, in the sitecfg folder.

[site]
theme=seven

A given page may override this default by way of a meta tag in the head section, for example:

<head>
  <meta name="cms_theme" content="howto">
</head>

Parameters can be added to the page's URL which override the default:

http://mysite.com/mypage.php?pagetheme=seven

Will change the theme for just this page instance only. The next page to be loaded will revert to the currently selected theme in force.

http://mysite.com/mypage.php?theme=six

This is similar but will cause a 'sticky'  theme change, such that all linked pages will be loaded in the new theme, as long as the current browser session continues. It will not override any cms_theme meta tags in the head sections of subsequently linked pages, though.

Finally, a pullout menu in the 'widget bar' (usually at the top right of the page) allows the site visitor to select one of a number of themes.  The themes listed here are all those in the theme folder which whose names do not start with a period. It's possible you will have some special purpose themes you wouldn't want used for the main content, so to prevent this just rename them, for example from 'blog' to '.blog'   This will remove them from the pullout menu.

This list was for testing! - it's best to keep to no more than three or four selectable themes on a production site.

A theme is always referred-to by its name without the period.  Thus 'theme=blog' will load either the 'blog' or the '.blog' theme.

If this sounds little complicated, it's actually very intuitive when you see it in action.