The easiest way is to copy a skin, change the directory name and start making changes (be sure to edit the skin.xml file to avoid conflicts)
Required templates
Your theme must implement the following cfm templates:
- index.cfm: corresponds to the blog's main page
- post.cfm: where a single post is shown
- page.cfm: the default template for pages
- generic.cfm: a generic template that can be used to show errors and by plugins to show their information when they need a page by themselves
- archives.cfm: where the archives by date, category, and searches are shown
- author.cfm: shows author information
- error.cfm: it shows errors. It should contain minimal tags because you don't know what the error is, so it is possible that tags are failing too.
Other optional templates
- login.cfm: a custom login page
You'll need to add it as an admin custom page template:
<adminPageTemplates>
<template id="login" file="login.cfm" />
</adminPageTemplates>
Theme registration
It must also contain a json file:
- skin.json
If this file is not found, then the theme cannot be used.
Tags
Tags you can use in your template
Template events
Events a skin template should broadcast:
- beforeHtmlHeadEnd: right before closing tag
- beforeCommentFormEnd: only when there is a comment form (post.cfm, page.cfm)
- afterHtmlBodyStart
- beforeHtmlBodyEnd
- afterFooterStart
- beforeFooterEnd