AutoViewTemplatePlugin

Automatically sets VIEW_TEMPLATE and EDIT_TEMPLATE

Description

This plugin sets the VIEW_TEMPLATE and EDIT_TEMPLATE variables according to a corresponding form definition. So when you attach a new form to a topic, this plugin will enable the corresponding view/edit template automatically. This comes in very handy for applications where users create new topics without the help of a topic creator wizard, e.g. creating a new topic for a yet non-existing WikiWord. Together with the appropriate application settings, this plugin will then assure that the data the user enters is handled appropriately during view and edit.

Note: On Foswiki versions prior to Foswiki 2.1, Template names containing non-ASCII characters are silently ignored. This plugin will display a FLASHNOTE if the Form name results in an illegal template name.

There are two modes on how the name of the template is derived:
  1. exist (default) and
  2. section.

Mode "exist"

A topic that has a MyForm WikiForm attached to it, will be displayed using the view template MyView and editted using the MyEdit if they exist. The template name is derived by stripping off the suffix ...Form from the form name and appending ...View. The Wiki engine will then use the template name MyView to search for the correct template along the template search path, for example using a topic MyView.

Examples:

You have a form called PurchaseRequestForm. The plugin will now search for PurchaseRequestViewTemplate, and PurchaseRequestEditTemplate.

Mode "section"

A topic with a MyForm will be displayed/editted using the template name stored in the named section viewtemplate/edittemplate . For example given the MyForm form definition topic contains a section viewtemplate whose only content is MyOtherView, then this will be used to view the topic. Likewise, the content of the edittemplate section in MyForm will read to find the edit template.

By default existing values for VIEW_TEMPLATE and EDIT_TEMPLATE have priority. You can change this behaviour in configure so that the form defined templates have priority.

Examples:

We have a form called PurchaseRequestForm which contains the usual table that defined the form fields.

We want this form to define that the topics are viewed with ViewFormAtTopTemplate and edited with EditPurchaseRequestTemplate.

Below this we place the two sections that defines the templates to be used. Note that you must omit the ...Template from the template names.

%STARTSECTION{"viewtemplate"}%ViewFormAtTopTemplate%ENDSECTION{"viewtemplate"}%

%STARTSECTION{"edittemplate"}%EditPurchaseRequest%ENDSECTION{"edittemplate"}% 

Configuration Settings

The following settings can be defined in configure

Setting Description Default
{Plugins}{AutoViewTemplatePlugin}{Debug} Turn on debugging by turning this on Default: On
{Plugins}{AutoViewTemplatePlugin}{Override} Form defined templates override VIEW_TEMPLATE and EDIT_TEMPLATE settings Default: Off
{Plugins}{AutoViewTemplatePlugin}{Mode} The mode the plugin uses for defining templates.
exist for deriving the template name from the form name
section for defining the template in a section of the form definition topic
Default: exist

Plugin Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. "Extensions Operation and Maintenance" Tab -> "Install, Update or Remove extensions" Tab. Click the "Search for Extensions" button. Enter part of the extension name or description and press search. Select the desired extension(s) and click install. If an extension is already installed, it will not show up in the search results.

You can also install from the shell by running the extension installer as the web server user: (Be sure to run as the webserver user, not as root!)
cd /path/to/foswiki
perl tools/extension_installer <NameOfExtension> install

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See https://foswiki.org/Support/ManuallyInstallingExtensions for more help.

Plugin Info

Change History:  
8 Apr 2016: Released with Foswiki 2.1.1. Foswikitask:Item14014: Template files not working in hierarchical webs.
7 Dec 2015: Released with Foswiki 2.1. Foswikitask:Item13554: Enable non-ascii template names.
18 Aug 2015: Foswikitask:Item13625: AutoViewTemplatePlugin: reports Invalid template name ( Warning: Can't find named section viewtemplate in topic...) when used in "section" mode and no section exists.
24 Jul 2015: Released with Foswiki 2.0.1. Foswikitask:Item13554: Warn if invalid template name generated.
16 Dec 2012: Version released with Foswiki 1.1.7. Foswikitask:Item12297: Minor perllcritic change.
10 Apr 2011: Version released with Foswiki 1.1.3. Only a minor change related to how the plugin is being upgraded
10 Dec 2010: Foswikitask:Item10144: Fixed mistake in example in documentation
31 Jul 2010: Foswikitask:Item9415: Documentation updates
06 Oct 2009: Foswikitask:Item2213: Plugin got better documentation. No change in behaviour.
20 Aug 2009: Foswikitask:Item8248: added forward-compatibility for newer Foswikis (MD)
27 Dec 2008: Foswikitask:Item196: moved to Foswiki namespace
15 Nov 2008: Foswikitask:Item196: minor doc changes
11 Jul 2008: TWikibug:Item5770: try to derive the EDIT_TEMPLATE of a new topic using the WebTopicEditTemplate (MD)
03 Jul 2008: TWikibug:Item5747: fixed normalizing web part of form names (MD)
13 Nov 2007: added EDIT_TEMPLATE, speed improvements, docu (MD)
29 Oct 2007: TWikibug:Item4904: made specification of view template skin agnostic, fixed view templates in subwebs (MD)
04 Sep 2007: Added build script and installer, minor doc changes
05 Jun 2007: Initial version
Foswiki Dependency: $Foswiki::Plugins::VERSION 1.026
CPAN Dependencies: none
Other Dependencies: none
Topic revision: r1 - 2016-04-09, ProjectContributor
This site is powered by FoswikiCopyright © by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback