| TWiki . TWiki . TWikiTemplates | 
view.tmpl.
view.tmpl) and pass them to the base template
&TWiki::Store::readTemplate() so that the caller simply gets an expanded template file (the same as before)
%TMPL:<key>% and %TMPL:<key>{"attr"}%.
%TMPL:INCLUDE{"file"}%: Includes a template file. The usual search path is applied.
%TMPL:DEF{"var"}%: Define a variable. Text between this and the END directive is not returned, but put into a hash for later use.
%TMPL:END%: Ends variable definition.
%TMPL:P{"var"}%: Prints a previously defined variable.
oopsbase.tmpl and a example oops dialog oopstest.tmpl which is based on the base template. This is not the version that will go into the release, it is just a quick hack.
%TMPL:P{"sep"}%
Note: Added a dot to escape rendering of variables, i.e. read %.WEB% as %WEB%.
<table border="1" cellspacing="0" cellpadding="1">
<tr><td>
<verbatim>
%.TMPL:DEF{"sep"}% | %.TMPL:END%
<html>
<head>
  <title> %.WIKITOOLNAME% . %.WEB% . %.TOPIC% %.TMPL:P{"titleaction"}%</title>
  <base href="%.SCRIPTURL%/view%.SCRIPTSUFFIX%/%.WEB%/%.TOPIC%">
  <meta name="robots" content="noindex">
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0" cellpadding="3" cellspacing="0">
  <tr>
    <td bgcolor="%.WEBBGCOLOR%" rowspan="2" valign="top" width="1%">
      <a href="%.WIKIHOMEURL%">
      <img src="%.PUBURLPATH%/wikiHome.gif" border="0"></a>
    </td>
    <td>
      <b>%.WIKITOOLNAME% . %.WEB% . </b><font size="+2">
      <B>%.TOPIC%</b> %.TMPL:P{"titleaction"}%</font>
    </td>
  </tr>
  <tr bgcolor="%.WEBBGCOLOR%">
    <td colspan="2">
      %.TMPL:P{"webaction"}%
    </td>
  </tr>
</table>
--- ++ %.TMPL:P{"heading"}%
%.TMPL:P{"message"}%
<table width="100%" border="0" cellpadding="3" cellspacing="0">
  <tr bgcolor="%.WEBBGCOLOR%">
    <td valign="top">
      Topic <b>TWikiTemplates</b> . {
        %.TMPL:P{"topicaction"}%
      }
    </td>
  </tr>
</table>
</body>
</verbatim>
</td></tr>
</table >
| 
%.TMPL:DEF{"titleaction"}% (test =titleaction=) %.TMPL:END%
%.TMPL:DEF{"webaction"}% test =webaction= %.TMPL:END%
%.TMPL:DEF{"heading"}%
Test heading %.TMPL:END%
%.TMPL:DEF{"message"}%
Test =message=. Blah blah blah blah blah blah blah blah blah blah blah...
   * Some more blah blah blah blah blah blah blah blah blah blah...
   * Param1: %PARAM1%
   * Param2: %PARAM2%
   * Param3: %PARAM3%
   * Param4: %PARAM4%
%.TMPL:END%
%.TMPL:DEF{"topicaction"}%
Test =topicaction=:
[[%.WEB%.%TOPIC%][OK]] %.TMPL:P{"sep"}%
[[%.TWIKIWEB%.TWikiRegistration][Register]] %.TMPL:END%
%.TMPL:INCLUDE{"oopsbase"}%
 | 
.../bin/oops/Test/TestTopic2?template=oopstest¶m1=WebHome¶m2=WebNotify
|   | 
twiki.tmpl that all other templates include (well, will include when all done). The idea is to define all common parts of the templates in twiki.tmpl and simply use that from all other templates.
| Template variable: | Defines: | |
|---|---|---|
| %TMPL:DEF{"sep"}% | %TMPL:END% | "|" separator | 
| %TMPL:DEF{"htmldoctype"}% | Start of all HTML pages | |
| %TMPL:DEF{"standardheader"}% | Standard header (for view, rdiff, ... | |
| %TMPL:DEF{"simpleheader"}% | Simple header with reduced links (for edit, attach, oops,...) | |
| %TMPL:DEF{"standardfooter"}% | Footer, excluding revision part and copyright part | |
| %TMPL:DEF{"oops"}% | Skeleton of oops dialog | 
preview.tmpl template is now simply:
%TMPL:INCLUDE{"twiki"}%
%TMPL:DEF{"titleaction"}% (oops) %TMPL:END%
%TMPL:DEF{"webaction"}% *Attention* %TMPL:END%
%TMPL:DEF{"heading"}% Topic is not saved yet %TMPL:END%
%TMPL:DEF{"message"}%
  Please go back in your browser and save the topic. %TMPL:END%
%TMPL:DEF{"topicaction"}% %TMPL:END%
%TMPL:P{"oops"}%
With this it should be possible to create a skin that overloads just the twiki.tmpl, i.e. a twiki.print.tmpl that redefines the header and footer.
-- PeterThoeny - 23 Jul 2001 | -----Revision r1.1 - 04 Sep 2001 - 10:07 GMT - MikeMannix |