The RenderFormPlugin handles the tag %RENDERFORM{...}%. The tag will be replaced by a form that is defined and looks like DataForms. It helps you to create a new topic with DataForms or to edit or view existing topic form data. The form data can be changed without pushing the topic edit button. The tag can be used at any topic to show, edit or create DataForms data from any other topic.
Features:
mode
option): create (default), edit, view (default if a topic exists) hidden
option) order
option) rfp_
) layout
option) Example (image):
%RENDERFORM{attr1="val1" attr2="val2" ...}%
%RENDERFORM{"DataFormDefinition"}% (=%RENDERFORM{form="DataFormDefinition"}%
) %EDITTABLE{format="|text,20,|select,1,label,text,textarea,select,select+multi,checkbox,checkbox+buttons,radio,date|text,6,1|text,50|text,20|text,5,|"}% | *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* |
%RENDERFORM{"MyTestForm"}% %SEARCH{search="MyTestTopic\d+" scope="topic" type="regex"}%
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* | | Question | text | 80 | | | M | | Details | textarea | 80x10 | | please fill in some details ... | | | Answer | textarea | 80x10 | | Answer | | | State | select | 1 | open,closed | | |
%RENDERFORM{"SimpleHelpDeskForm" hidden="Answer,State" createbutton="submit" hideheader="yes" text="Back to !SimpleHelpDesk"}% | *Question* | *Date* | *State* | %SEARCH{search="SimpleHelpDesk\d+" scope="topic" type="regex" nonoise="on" format="| $formfield(Question) | $date | $formfield(State) |"}% %TOPIC%
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* | | Question | text | 80 | | | M | | Details | textarea | 80x10 | | please fill in some details ... | | | Answer | textarea | 80x10 | | Answer | | | State | select | 1 | open,closed | | |
%TOC% ---++ Question: %FORMFIELD{"Question"}% - State: %FORMFIELD{"State"}% Details:%FORMFIELD{"Details" default="no details"}%---++ Answer %FORMFIELD{"Answer" default="no answer yet"}% ---++ Comments %COMMENT{type="threadmode"}%
%RENDERFORM{"NiceHelpDeskForm" templatetopic="NiceHelpDeskTemplate" hidden="Answer,State" createbutton="submit" hideheader="yes"}% | *Question* | *Date* | *State* | *Action* | %SEARCH{search="NiceHelpDesk\d+" scope="topic" type="regex" nonoise="on" format="| [[$topic][$formfield(Question)]]| $date | $formfield(State) | [V] [E] | "}% %TOPIC%
Attribute | Description | Default / Example |
---|---|---|
dateformat | overrides the JSCALENDARDATEFORMAT preference for date fields | dateformat="%d %b %Y" |
donotnotify | disables notifications | undefined / donotnotify="on" |
form | (required attribute) a name of a topic with a DataForms definition | undefined / form="MyTestForm" |
hidden | a comma separated list of form field names to hide in all modes | undefined / hidden="Field1,Field2" |
hideheader | if set, disables the form header | hideheader="no" |
layout | a topic with a layout (see Form Layout section); syntax: layout=" | undefined / layout="TestFormLayout#test1" |
mode | render mode of the form, allowed values: create (default), edit, view (default if topic exists) | mode="create" |
onlynewtopic | disables overwrite of existing topics | onlynewtopic="on" |
onlywikiname | disallows the usage of non-WikiWords for topic names | onlywikiname="on" |
order | changes the display order of form fields; order value is a comma separated list of field names; if the order list is incomplete all missing and unhidden form fields will be added; there are special values for order: [:alpha:], [:dalpha:], [:num:] and [:dnum:], e.g. order="[:alpha:]" to sort all fields alphanumerical | undefined / order="Field1, Field2" |
script | changes the behavior of edit/create modes; allowed values: save - saves the form data; edit - edit the resulting topic | script="save" |
template | a template name for predefined attributes | undefined / template="helpdesk" |
templatetopic | a template topic; useful for the create mode | undefined / templatetopic="MyHelpDeskTopicTemplate" |
text | the topic text; text will be ignored if a templatetopic is defined | undefined / text="my small topic text" |
topic | an existing topic for edit and view mode or a topic template name for a new topic (create mode) (e.g. TestFormDataXXXXXXXXXX) | topic="%TOPIC%XXXXXXXXXX" / topic="TestFormData%SERVERTIME{$epoch}%" |
topicparent | a topic parent; useful for the create mode; if undefined the form topic will be used | topicparent="%WEB%.%TOPIC%" / topicparent="MyHelpDesk" |
Usage: %RENDERFORM{"
-or- %RENDERFORM{"
%STARTRENDERFORMLAYOUT%
and %STOPRENDERFORMLAYOUT%
, e.g: -- a default layout -- %STARTRENDERFORMLAYOUT% < your layout > %STOPRENDERFORMLAYOUT% -- OR a named layout -- %STARTRENDERFORMLAYOUT{"< layout name >"}% < your layout > %STOPRENDERFORMLAYOUT%= -- OR a named layout for view mode -- %STARTRENDERFORMLAYOUT{"< layout name >" mode="view"}% < your layout > %STOPRENDERFORMLAYOUT%=
mode
option in %STARTRENDERFORMLAYOUT%
this layout definition will be used only in the given mode (allowed modes: create,edit,view) @< form field name >@
, e.g. @Question@
Following tags are reserved and replaced by ... | |
---|---|
Tag | Replaced by |
@FORMTOPIC@ | the form topic name |
@OPTION( | the attribute value, e.g. @OPTION(mode)@ |
@SUBMIT@ | a submit button or empty string in view mode (hint: change the button text with the createbutton or editbutton attributes) |
@SWITCH@ | a link to switch between edit and view mode |
@TOPIC@ | the (target) topic name of the topic with a form |
Hints:
fieldmarker
attribute. ...
tags to make the definition visible in the topic view. Form Layout Example:
%STARTRENDERFORMLAYOUT% | *@TOPIC@@SWITCH@ / @FORM@*|| | Question%RED%*%ENDCOLOR% | @Question@ | | Details | @Details@ | | %RED%*%ENDCOLOR% indicates mandatory fields|| @SUBMIT@ %STOPRENDERFORMLAYOUT%
Name | Type | Size | Values | Tooltip message | Attributes |
---|---|---|---|---|---|
Label | label | 0 | an example | label tooltip | |
Text | text | 10 | text tooltip | M | |
Textarea | textarea | 10x2 | textarea tooltip | ||
Select | select | 1 | ,1,2 | select tooltip | |
Select+Multi | select+multi | 5 | 1,2,3,4,5 | select+multi tooltip | |
Checkbox | checkbox | 2 | 1,2,3,4,5 | checkbox tooltip | |
Checkbox+Buttons | checkbox+buttons | 3 | 1,2,3,4,5 | checkbox+buttons tooltip | |
Radio | radio | 4 | 1,2,3,4,5,6,7,8,9 | radio tooltip | |
Date | date | 20 | date tooltip |
%RENDERFORM{"System.RenderFormPluginExampleForm" topic="Sandbox.RenderFormPluginXXXXXXXXXX"}%
Topic | Date |
---|
Plugin settings are stored as preferences variables. To reference a plugin setting write %
to your SitePreferences topic, i.e. %RENDERFORM_SHORTDESCRIPTION%
You can also use template based preferences, just write RENDERFORM_TEMPLATE_
.
data/debug.txt
) Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the Foswiki server.
RenderFormPlugin.zip
in your Foswiki installation directory. Content: File: | Description: |
---|---|
data/System/RenderFormPlugin.txt data/Projekte/Projekte/System/RenderFormPlugin.txt | Plugin topic |
data/System/VarRENDERFORM.txt data/Projekte/Projekte/System/VarRENDERFORM.txt | Plugin Variables topic |
data/System/RenderFormPluginExampleForm.txt data/Projekte/Projekte/System/RenderFormPluginExampleForm.txt | Example form |
pub/System/RenderFormPlugin/example.gif pub/Projekte/Projekte/System/RenderFormPlugin/example.gif | Example image |
lib/Foswiki/Plugins/RenderFormPlugin.pm | Plugin Perl module |
lib/Foswiki/Plugins/RenderFormPlugin/Core.pm | Plugin Perl module |
Plugin Author: | Foswiki:Main.DanielRohde |
Copyright: | © 2008, Foswiki:Main.DanielRohde |
License: | GPL (GNU General Public License) |
Plugin Version: | V1.004 (31 Jan 2009) |
Change History: | |
V1.005 (13 Feb 2009): | Foswiki:Main.DanielRohde: fixed performance problems |
V1.004 (31 Jan 2009): | Foswiki:Main.KennethLavrsen: Foswikitask:Item907 Fixed a bug that causes JSCalendarContrib to stack overflow. Fix includes changing to official API way to add JSCalendar. |
V1.003 (16 Dec 2008): | Foswiki:Main.KennethLavrsen: Changed to Foswiki name space |
V1.002 (14 Oct 2008): | Foswiki:Main:DanielRohde: added layout feature; fixed date field bug; added missing docs; |
V1.001 (05 Oct 2008): | Foswiki:Main:DanielRohde: changed topicparent default; added and fixed docs; fixed date field bug; fixed non-word character in field names bug; |
V1.000 (04 Oct 2008): | Foswiki:Main:DanielRohde: Initial version |
Foswiki Dependency: | $Foswiki::Plugins::VERSION 1.1 |
CPAN Dependencies: | none |
Other Dependencies: | none |
Perl Version: | 5.008 |
Plugin Home: | http://foswiki.org/Extensions/RenderFormPlugin |
Feedback: | http://foswiki.org/Extensions/RenderFormPluginDev |
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() | example.gif | manage | 17.6 K | 06 May 2009 - 02:26 | AdminUser |