Now it’s time to turn our attention to page types and templates. In Concrete CMS, when you add a page, you choose what type of page it is, and what page template its design is based on. Some page types could be used with multiple page templates, some may have only one option. This is all fully customizable by the site developer during this building process (and can be modified even after site launch, of course, to add new functionality to existing sites.)
Let’s figure out what page types and templates our site is going to need. To do that, let’s look at the kinds of page we’re going to build.
- Single Apartment
- Single Project
- Contact Us
Page templates are collections are areas. They are the most basic layer of a page in Concrete. They provide the layouts and logic for all of the content in pages using the same page template.
It’s pretty clear that most of these components, while they all contain different types of content, are all based on the same basic full page template. It’s just a single editable area, with different pieces of content inside it:
This content area, from its header title down to its content, is a single page template. This is becoming more and more common in web design: page templates really don’t have much logic in them. Instead, the logic is contained within stripes of content that proceed vertically down the page. With that in mind, we don’t really need more than a single page template for that. Since the area covers the entire page, we can call this template the Full page template.
Our Apartment and Project pages need something else which can't be satisified with the Full page template. These are more content-centric pages, where the template contains some additional markup:
The page template for these pages contains two areas, one for the page header and then one for the content within the page. We will call this the page template for these pages the Content page template.
Now let’s figure out what types of pages we’ll need. Many page types are going to be sharing the same page template, but that doesn’t mean they all need to be the same page type. In Concrete, page types can be acted on programmatically or filtered by different blocks. That means any kind of page that will be repeatedly created in our site (e.g. a Blog Entry, or a Project, or a Property) should be its own page type, because then it’ll be able to have its own composer interface and be listed in separate page lists.
Looking at our components, two of them jump out immediately as types of pages which will be created repeatedly:
- Single Apartment
- Single project
Let’s make these separate page types because we already know that certain sections of the site (Apartments, Projects) will need to list these types of page in some way. Furthermore, it’s pretty likely that we’ll want to train our content editors to add pages of these types easily, since it seems like these will be the types of content they’re likely to add most frequently.
Next, let’s look at the components that remain. We can remove the home page from this equation. Why? Because in Concrete, the home page is installed without a page type. Yes, you can change it to a page type using administrative tools in the Dashboard sitemap, but it’s easiest to let it remain without a page type unless you need it to have one for some reason. So that just leaves:
- Contact Us
It’s pretty clear that these are all one-off pages, meant to display in the header navigation, and they don’t need to be repeatedly entered throughout the site. This website doesn’t need multiple “Contact Us” or “Services” pages. That means it’s easiest to just create a simple content page type for these. Let’s do that and call it Page (after all, simplest is best).
So, our final list of page templates and page types is as follows
That’s it! We’ll add pages of the basic Page type for our non-repeating content pages, use no page type for the home page, and use custom Project and Apartment page types for any projects or apartments we want to list in our website. The Apartment and Project pages will share the Content page template, with the other page types using the Full width page template.