When most people think of a website template, they generally think of it as simply an overall look and feel of your website. It may have a predefined color scheme using CSS, a sprinkle of JavaScript here and there and some content filled in. Generally, a web developer will break down the template, utilizing the CSS and JavaScript objects inside what would now be a nearly bare shell, after removing all the pre-populated filler. If you're working with a CMS, you may have to do even more cutting up to work your new template styles into your dynamically generated content. Most pages may use the same template, others may have variations. It can become cumbersome and frustrating after a while, especially during maintenance.

TouchPointCMS hopes to alleviate this, at least to an extent. After all, if we had a perfect solution, we'd all be developers. TouchPointCMS contains template folders, inside a dedicated templates folder located at the root. Inside the templates section of the CMS, you will see the list of template folders available, along with the one that is currently active. Inside of each template folder is essentially your entire website. By this, I mean that you'll have any style or script folders, along with your content pages, such as home, interior, custom, etc (these pages must be ASP.NET pages ending in .ASPX).
The idea is that each content page will have a unique structure if needed. For example, your home page may contain a large introductory banner which will not be part of interior pages. You may have a page containing a sidebar of events or other content. Because TouchPointCMS is aimed at those who are even a little web savvy (and who isn't these days?), the idea is to use the built-in Controls and Modules inside of these templates where needed. An example of a module can be <tpc:PageContent />, which will automatically display any content for that page or any type (such as a gallery page, or a web form). You may also choose to display individual modules anywhere you like on your template, such as <tpc:Form /> to display the web form for that page. Specific controls such as RichNavigation to enable a rich drop-down navigation bar, BreadCrumbs, for showing your depth in the website, orTopic, for showing a reusable section of HTML content throughout your site.

Once your templates have these modules, they can then be assigned to pages in your site. On the templates page in the CMS, you may not only choose your overall template, but set a default template for all your pages. Individually for each page, you may assign a template (home, interior, etc) from those available when editing that page in the CMS.
There is one requirement however. All your pages must use an ASP.NET Master page. Before getting scared, this is simply a shell to be used around all your template files. For example, we can assume that all your templates will have basic HTML elements that can be used throughout, such as html andbody tags, as well as a list of included CSS and JavaScript files. Master pages are a good practice, as they enforce the re-use of content. You can have as much or as little repeated content in your Master page as you like. You may even have multiple Master pages. Also, in order to tie into the CMS, the Master page(s) must inherit from the TouchPointCMS.Core.Template class. Taking a look at one of the included modules will provide much insight to the basic structure.
From that point on, the rest is populating your site. Check back for more TouchPointCMS overviews!
Learn more about TouchPointCMS.