On this page:
TWiki TemplatesDefinition of the templates used to render all HTML pages displayed in TWikiOverviewThe new modular template system offers flexible, easy control over the layout of all TWiki pages. The master template approach groups parts that are shared by several templates - like headers and footers - in a common file. Special variables allow individual layouts to include parts from a master template - variables are mixed with regular HTML markup for template-specific content. Templates are used to define page layout, and also to supply default content for new pages.Major changes from the previous template systemWhere the old templates were each complete HTML documents, the new templates are defined using variables to include template parts from a master file. You can now change one instance of a common element to update all occurrences; previously, every affected template had to be updated. This simplifies the conversion of templates into XHTML format, and provides a more versatile solution for templates and for TWikiSkins. The new system:
How Template Variables Work
Types of TemplateThere are three types of template:
Master TemplatesCommon parts, appearing in two or more templates, can be defined in a master template and then shared by others:twiki.tmpl is the default master template.
HTML Page TemplatesTWiki uses HTML template files for all actions, like topic view, edit, and preview. This allows you to change the look and feel of all pages by editing just a few template files. Templates are in thetwiki/templates directory. As an example, twiki/templates/view.tmpl is the template file for the twiki/bin/view script. Templates can be overloaded by individual webs. The following search order applies:
view , to display meta data.
Template TopicsTemplate topics define the default text for new topics. There are three types of template topic:All template topics are located in the TWiki web. The WebTopicEditTemplate can be overloaded. When you create a new topic, TWiki locates a topic to use as a content template according to the following search order:
| |||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||
> > | Edit Template Topics and Variable ExpansionThe following variables get expanded when a user creates a new topic based on a template topic:Notes:
| ||||||||||||||||||||||||
Template Topics in ActionHere is an example for creating new topics based on a specific template topic: The above form asks for a topic name. A hidden input tag namedtemplatetopic specifies ExampleTopicTemplate as the template topic to use. Here is the HTML source of the form:
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/"> * New example topic: <input type="text" name="topic" value="ExampleTopic%SERVERTIME{$yearx$mox$day}%" size="23" /> <input type="hidden" name="templatetopic" value="ExampleTopicTemplate" /> <input type="hidden" name="onlywikiname" value="on" /> <input type="submit" value="Create" /> (date format is <nop>YYYYxMMxDD) </form>The onlywikiname parameter enforces WikiWords for topic names.
TIP: You can use the %WIKIUSERNAME% and %DATE% variables in your topic templates to include the signature of the person creating a new topic. The variables are expanded into fixed text when a new topic is created. The standard signature is: -- %WIKIUSERNAME% - %DATE%
Templates by ExampleAttached is an example of an oops based templateoopsbase.tmpl and an example oops dialog oopstest.tmpl based on the base template. %A% NOTE: This isn't the release version, just a quick, simple demo.
Base template oopsbase.tmplThe first line declares a delimiter variable called "sep", used to separate multiple link items. The variable can be called anywhere by writing%TMPL:P{"sep"}%
Test template oopstest.tmplEach oops template basically just defines some variables and includes the base template that does the layout work. | |||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||
< < | -- PeterThoeny - 23 Jul 2001 | ||||||||||||||||||||||||
> > | -- PeterThoeny - 01 Feb 2003 | ||||||||||||||||||||||||
-- MikeMannix - 14 Sep 2001 -- TWiki:Main/DavidLeBlanc - 11 Mar 2002
|