NatSkinTemplates

The template setup of the NatSkin differes completely from the standard templates that come with Foswiki folowing its own inner logic compared to the Foswiki:Extensions/PatternSkin. The NatSkinTemplates have especially been designed to simplify subskins overwriting parts of the NatSkin.

Every template belongs to a group defined by their function:

Each group consists of one or more entry templates, e.g. attach group has three entry templates: attach, attachnew and attachagain, If a template group has more than one entry template then these build upon and intercostal base template, named <name>base template (where <name is the short name for the template group). The base template might also be an entry template. The base suffix is then stripped from the template name. For example in the attach group there are two pure entry template, attachnew and attachagain, that base on the attach template which is an entry template also. Pure base templates are for example the renamebase or the oopslogonbase templates. See below for more.

The oops template group is a bit different from the others as it has subgroups of templates for authentification, notification and error messages. Some of these groups have an own base template shared among messages of the same type. All oops templates are finally using the central oops template. Ssee the INCLUDE hierary below.

Every group uses three fragment templates:

So the fragment templates for the attach group are attachbody, attachsidebar and attachtopicactions (omitting the nat.tmpl extension). These can be used by subskins to implement a different look and feel per web with a minimal amount of code duplication.

All groups finally call the page template that constructs the resulting html by inserting all TMPL macros. The page template itself only defines defaults for the standard fragments.

This is the INCLUDE hierarchy of the templates in the NatSkin. Each indentation means, that the upper template INCLUDEs the lower template(s). If a template name has already been defined, further indentations are pruned. So whenever a template INCLUDEs the page template all default fragments are left out for clarity.

  1. Skin Base templates:
    • page
      • javascript
      • defaultbody
      • defaultsidebar
      • defaulttopicactions
      • defaulttopbar
    • searchbox
  2. Attach templates:
    • attachagain, attachnew
      • attach
        • page
        • attachbody
        • attachsidebar
        • attachtopicactions
  3. Changes templates:
    • changes
      • page
      • changesbody
      • changessidebar
      • changestopicactions
  4. Change Form templates:
    • changeform
      • page
      • changeformbody
      • changeformsidebar
      • changeformtopicactions
  5. Edit templates:
    • edit
      • page
      • editsidebar
      • edittopicactions
  6. Move Attachment templates:
    • moveattachment
      • page
      • moveattachmentbody
      • moveattachmentsidebar
      • moveattachmenttopicactions
  7. Oops templates:
    • oops
      • page
      • oopsbody
      • oopssidebar
      • oopstopicactions
    1. Messages:
      • oopsbadpwformat, oopschangepasswd, oopsempty, oopslocked, oopslockedrename, oopsmanage, oopsmissing, oopsmngcreateweb, oopsmore, oopsnoformdef, oopsnowikiuser, oopsnoweb, oopspreview, oopsregemail, oopsregexist, oopsregpasswd, oopsregrequ, oopsregthanks, oopsregwiki, oopsrenamenotwikiword, oopsresetpasswd, oopsrev, oopssave, oopstopicexists, oopsupload
        • oops
    2. Authentication:
      • oopslogon, oopsaccesschange, oopsaccesscreateweb, oopsaccessgroup, oopsaccessrename, oopsaccessview, oopsaccessvote, oopsauth, oopswrongpassword
        • oopslogonbase
          • oops
    3. System Errors:
      • oopsmoveerr, oopsrenameerr, oopssaveerr, oopssendmailerr, oopssoftwareerr
        • oopserrbase
          • oops
  8. Preview templates:
    • preview
      • page
      • previewbody
      • previewsidebar
      • previewtopicactions
  9. Diff templates:
    • rdiff
      • page
      • rdiffbody
      • rdiffsidebar
      • rdifftopicactions
  10. Rename/Move templates:
    • rename, renameconfirm, renamerefs
      • renamebase
        • page
        • renamebody
        • renamesidebar
        • renametopicactions
  11. Search templates:
    • search, searchbookview, searchformat, searchrenameview
      • searchbase
        • page
        • searchbody
        • searchsidebar
        • searchtopicactions
          • searchbox
  12. View templates:
    • view
      • page
      • viewbody
      • viewsidebar
      • viewtopicactions
        • searchbox
spacer