Page Templates, Page, and Content Concepts
Every Content Management System (CMS) has its own collection of objects and processes to achieve its goals. This section provides an overview of some of the most important OrchestraCMS concepts that designers and developers should be familiar with. (Since this is just an overview, some details have been simplified to represent the most common use cases.)
OrchestraCMS Page Template and Page Concepts
Each OrchestraCMS page is based on a page template that defines the page structure. Three hypothetical examples of page templates that a website might need:
- header, single column body, and footer
- header, two equal columns, and an extended footer
- simplified header, two columns at 70/30, with no footer
The content panels on a page template define where content items can be added; each content panel may also specify:
- what types of content templates it will accept
- how many content items it will accept
The overall process of page creation is outlined in these steps:
- an OrchestraCMS developer creates the page templates **One page template can be used for multiple pages
- an OrchestraCMS editor creates the pages and content items, and puts the content items on the appropriate pages
- an OrchestraCMS administrator configures the site, participates in and oversees its construction, and is responsible for its information architecture and content management processes
When editors creates a page, they add content items where the page template has positioned its content panels. The editor cannot change anything about the content panels themselves, other than what content items they hold.
Almost everything you see on a page is a content item: menus, logos, the main text, a data entry form, etc. Exceptions include page elements that are hard-coded into the page template. These cannot be changed by the editor.
Before content items have been added to the page’s content panels, the page is almost always empty; that is, there is typically nothing on the page by default other than empty HTML skeletal markup.
Since most pages on a website have identical areas like their header and footer, OrchestraCMS has a special type of page called a master page to hold the common content items. When a page is linked to a master page it has access to all the content items that are on the master page. Adding, removing, or replacing content on the master page automatically affects all pages that link to that master page. A page does not need to link to a master page; it is optional, but it’s almost always a best practice.
A page template is typically used by more than one page. The home page template is a frequent exception to this pattern: its design is often one-of-a-kind and is used by just one page in the site.
OrchestraCMS Content Concepts
Repeating an important point from above, almost everything you see on a page is a content item. Examples include:
- a menu
- an image
- copyright notice text
- a formatted “tile” that summarizes and links to an article page
Exceptions are rare, but might include page elements that are hard-wired into the page template and therefore beyond the reach of the editor.
Each piece of content may have multiple data fields associated with it. Examples of the data field with three different content items might have:
- a single snippet of HTML code that embeds a video
- an image
- headline text
- body text
- a nested list of menu items, arranged in multiple levels, with any number of items at each level, where each menu item has its title and a URL
Most frequently, content items are manually placed onto one or more pages. Some websites use content items that are not explicitly added to any page; instead, a content loader (itself just another piece of content) is responsible for finding qualifying content items and dynamically loading them onto the page.
Content can be scheduled for publishing on a date in the future. The content item will not appear on its pages until it is automatically included on its publishing date. Content can also be scheduled to expire on a given date. Expired content will not appear on a web page.
When the editor modifies and publishes a piece of content, OrchestraCMS knows what pages it appears on and automatically updates them accordingly. OrchestraCMS most frequently works with data from content managed in its own custom objects, but it can also work with information stored in Salesforce’s CRM database.
OrchestraCMS Content Template Concepts
Each piece of content has at least one content template, but may have several. Each content template defines the HTML markup that will be used to represent the content item; a different content template means different markup, maybe even for the same content item. Each content template uses only the content data fields that matter to it. Additionally, each content template may output different markup based on the values in its data fields. For example, an article content template that normally includes an image would omit it if the content author did not provide one.
Content template markup is generated by Apex classes. Apex is a Java-like programming language used by the Salesforce platform.
Whenever content is added to a page, the content author also specifies the content template that will be used to render that piece of content. When the out-of-the-box content templates are not sufficient, either in terms of their markup or the data fields they provide, solution-specific content editor templates can be created and seamlessly integrated with OrchestraCMS.
Next, we'll bring the above knowledge about page templates, pages, content, and content templates along as we look at the anatomy of a page.