ARCHIVED

This chapter has not been updated for the current version of Orchard, and has been ARCHIVED.

Layout templates are aspx files with includes and calls to helpers.

Template markup

Currently, we have only content zones, so a template can look like this:

<html>
  <head>
    <link rel="stylesheet" type="text/css"
          href="<%= ResolveUrl("~/Content/StyleSheet.css") %>" />
  </head>
  <body>
    <div class="header">
      <%= Html.Include("header") %>
    </div>   
    <div class="centerContentZone">
      <%= Html.IncludeZone("Content") %>
    </div>   
    <div class="rightSidebar">
      <%= Html.IncludeZone("Right sidebar") %>
    </div>
    <div class="footer">
      <%= Html.Include("footer") %>
    </div>
    <%= Html.IncludeAdmin() %>
  </body>
</html>

The helpers used above are: * Html.Include(string includeName) includes the partial view whose name is specified. * Html.IncludeZone(string zoneName) includes a named content zone. * Html.RenderAdmin() includes the admin link if the user is logged in as administrator.

Template Meta-data

Template meta-data is stored directly in the template file as server comments. They are in a simple key-value format. Keys and values are separated by a colon character:

<%@Page %>
<%--
name: Two column layout
description: This has a main content area and a sidebar on the right.
zones: Content, Right sidebar
author: Jon
--%>

The keys in the meta-data are case-insensitive.

Meta-data values can be on multiple lines.

The syntax for meta-data is YAML.

The fields that are not recognized are put in a dictionary so that they are still accessible from code.

The last piece of meta-data, which is optional, is the thumbnail representation for it that is used in the template selection screen and in the edit page screen. This is a PNG or GIF image that has the same name as the template file and that is stored in the same directory.