On this page:
TWiki Template SystemDefinition of the templates used to render all HTML pages displayed in TWikiOverviewThe new modular template system is more flexible, efficient, and easily updated than the old set-up, where each template is a complete HTML file. The new master template approach places common templates parts, like headers and footers, in one shared file. This simplifies the conversion of templates into XHTML format, and provides a more versatile solution for templates and for TWikiSkins.Major changes from the previous template systemThe main difference is that templates are now defined using variables to include template parts. You change one stored instance of a common element to update all occurrences. The new system:
Functional Specifications
TWiki Master TemplateAll common parts are defined in a master template,twiki.tmpl , that all other templates use.
Types of TemplateThere are two types of templates:
HTML Page TemplatesTWiki uses HTML template files for all actions like topic view, edit, preview and so on. This allows you to change the look and feel of all pages by editing just some template files. The template files 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 per web. The following search order applies:
| |||||||||||||||||
Changed: | |||||||||||||||||
< < | Note: $webName is the name of the web ( i.e. Main ), and $scriptName is the script ( i.e. view ). | ||||||||||||||||
> > | Note: $webName is the name of the web (ex: Main ), and $scriptName is the script (ex: view ). | ||||||||||||||||
Note: TWikiSkins can be defined to overload the standard templates. | |||||||||||||||||
Changed: | |||||||||||||||||
< < | Some special variables are used in templates ( especially view ) to show meta data - see Meta Data Rendering | ||||||||||||||||
> > | Special variables are used in templates, especially in view , to display meta data. | ||||||||||||||||
Template TopicsTemplate topics define the default text for new topics. There are three types of template topics:All template topics are located in the TWiki web. The WebTopicEditTemplate can be overloaded. The following search order applies when you create a new topic:
Template Topics in ActionHere is an example for creating new topics based on a specific template topic: Above form asks for a topic name. A hidden input tag of name "templatetopic" specifies the ExampleTopicTemplate as the template topic. Here is the HTML source of the form:<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%WEB%/"> * New example topic: <input type="text" name="topic" value="ExampleTopic%SERVERTIME{$year$mo$day}%" size="22"> <input type="hidden" name="templatetopic" value="ExampleTopicTemplate"> <input type="hidden" name="onlywikiname" value="on"> <input type="submit" value="Create"> (date format is YYYYMMDD) </form>The "onlywikiname" parameter enforces WikiWords for topic names. Note: Use can use the %WIKIUSERNAME% and %DATE% variables in your topic templates as the signature; those variables are expanded when a new topic is created. The standard topic signature is: -- %WIKIUSERNAME% - %DATE%
Templates by ExampleAttached is an example of an oops base templateoopsbase.tmpl and a example oops dialog oopstest.tmpl which is based on the base template. NOTE: This isn't the release version, just a quick, simple demo.
Base template oopsbase.tmplThe first line declares the 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.
|