Page content management system

From The Smartest Wiki
Jump to: navigation, search

Smartest's page content management system is a means by which an unskilled user can:

  • construct a web page in Smartest by making choices about which resources to use, and then
  • publish and display this web page at a chosen URL.

Smartest uses five different template elements to structure pages: Containers, Placeholders, Fields, Lists and Itemspaces to structure the content of web pages. In the Smartest page content management system there are two distinct roles:

  • The developer creates the templates, stylesheets and other technical aspects of the pages, and identifies which elements of the page need to remain in the control of the content editor, and then
  • The content editor creates, uploads, chooses content for the page, within the choices left for him or her by the developer

Basic example

Page structure.png

As stated above, the developer creates the templates and stylesheets so that the text, banner image and layout will appear correctly, including any device responsiveness, and then the content editor can simply select or upload the content as needed - data in fields, assets such as images in placeholders, and templates in containers.

In the example to the right, a simple page has been constructed using two fields, one container, and two placeholders. The content editor therefore only needs to understand what these five elements do on the page in order to create a page - in fact fact many pages - that are potentially highly sophisticated.

Page template

All the actual content of a page in Smartest is determined by what is called for by the templates. A page will only contain text, for example, if a template contains an instruction that has the effect of saying "place some text here", which in Smartest is called a placeholder. That template can then be used on as many pages as required, with a different text on each page in that same place.

The process of looking for, and then effecting these instructions starts on a page's master template, which provides the universal aspects of the page (which will be shared by all pages using that template), and specifies which other elements may be needed for the page. Each page in Smartest needs to be assigned a master template, and while all pages within a site can share a single master template (recommended), it is possible to have several such templates, meaning that pages within the same website could have a drastically different look and feel from each other.

The user chooses the page master template on the page elements tree. In this example, that page master template file is called example.tpl (template A in the graphic to the right). It contains two fields (pink in the diagram to the right) and a container (green in the diagram to the right).

Fields

One of the two fields in this example is called footer_text, and is global, meaning that its value can be determined from any page and will be the same on all pages. The other field, page_heading, is local, meaning that it is able to have a different value on every page.

For more about fields, see: Fields.

Container

The container in this example is called page_layout. It calls for a container template to be included on the page. Note that the name of both the container and the container template that fills it are entirely arbitrary - they can be anything. The template that is chosen in this case is called basic_page.tpl (template B in the diagram to the right), and contains two placeholders: banner_image and main_text. Each page could choose a different container template here.

Placeholders

Again note that the name of both the placeholders and the files used to fill them are entirely arbitrary - they can be anything. Here we have one placeholder that has been created to accept only images, which the developer has named banner_image so that its function on the page will be clear, and a placeholder that accepts only text files that will serve as the page's body text, called main_text by the developer, again to make its function clear to the content editor.