Themes & plugins overview

Themes and plugins are an easy way of customising your website.


Themes are simply a set of HTML templates, images, and CSS that go together to create a look and feel for a website. By creating themes in the Jojo format as described, content from the CMS will fit right into the theme.

We believe that original websites are best, and as such we place a strong emphasis on creating your own theme for each website. While you can use "off the shelf" themes, and they will work fine, we always prefer to design unique sites that have their own feel.

Creating Themes

If you have programmed in XHTML and CSS before, you will have no trouble at all creating a theme for Jojo CMS. Simply copy-paste the example theme, and modify the HTML, CSS and images to suit.

If you are used to a WYSIWYG editor for creating HTML pages, or have not used CSS before, you may be in for a bit of a shock. Everything about Jojo is geared around standards compliant DIV based layouts, with strong seperation of content and style. This style of web design, while more difficult to learn, almost always results in better websites.

Jojo does not play well with tables-based layouts, and we have no intention of supporting this in the future. If, however, you like CSS and web standards, welcome aboard.


A plugin follows a similar format to a theme, but is more about functionality than looks. Jojo ships with more than 25 plugins, and these take care of a variety of tasks. We have tried to place as much functionality as we can inside a plugin - if you don't like a certain plugin we have created, you can uninstall it and create your own replacement.

Plugins include...

  • Articles - A plugin for managing blog and article content.
  • Contact - A contact form which sends form data to an email address. Additional fields can be added easily, and all error checking is handled automatically (Javascript and serverside). A CAPTCHA is optional to prevent spam.
  • FAQ - A frequently asked questions page that is easy to edit. In-page hyperlinks are created automatically.
  • Flash slideshow - An image rotation script implemented in flash. Images fade-in / out on the homepage, and repeat indefinitely. Images are added and removed via an admin interface, and can be done without having to edit the FLA file.
  • Forums - A simple but functional forum package. These forums are well integrated into the main site design and navigation, share logins with other parts of the site, and are search engine friendly. No session IDs here buddy.
  • Gallery 1 - An AJAX based image gallery, for displaying small numbers of images. Thumbnails are created automatically.
  • Gallery 2 - An image gallery based on the Magazine Layout script, featured on A List Apart. Images are uploaded via FTP, which is very fast for large image galleries.
  • Google Verification - A straightforward way of managing those ugly but nice google webmaster tools verification files. This plugin allows you to authorise yourself with Google without having to FTP empty files onto your server.
  • Hello World - We coundn't resist.
  • Link Exchange - If you still believe these things are effective (we don't), we have a good script for managing link exchanges, that provides a quality listing for the other party.
  • Links - Not to be confused with "Link Exchange", a links page is for linking to sites you actually think are useful. These were cool in 1997, but if you must have one, this system does the job of managing links well.
  • Robots - A way of managing robots.txt files on your site. The default Jojo robots.txt should be adequate for most sites.
  • Sitemap - Creates a sitemap automatically, based on the content of the site. Sitemaps are recommended for SEO, though not critical if your navigation structure is good.
  • Search - A search facility for the site. Does not rely on any external engines such as Google.
  • SMS - Using the Clickatell SMS gateway, this plugin gives you a page for sending SMS messages to mobile phones. There is a small cost associated with this, via Clickatell.
  • Testimonial - A way of adding testimonials to a database. A testimonials page is created, and you can optionally include a snippet of code in your template to have random testimonials appear on the homepage.
  • More - many more plugins in existance, and in development.

Hopefully this provides some idea as to what plugins can do.

Creating Plugins

Our ideal target audience for Jojo is intermediate to advanced PHP developers. It's out intention to provide a reliable framework for developers to create customised websites for themselves and their clients. Of course, it can also work great out of the box if you don't need any custom features too.

Plugins are a combination of PHP code, HTML, CSS, Javascript, AJAX and database scripts. Plugins are kept in their own folder for portability, and so they are easy to work with.

Jojo plugins have a rough format that needs to be followed. Some files need specific names, and some programming tasks need to be done a certain way, as explained in the developer documentation.
We also code to the coding standards of the Horde project, to keep our code clean and tidy, and not so obvious it was written by different people.