Edit Table Plugin

This plugin allows you to edit TWiki tables using edit fields and drop down boxes. Tables have an [ Edit table ] button if preceeded by an %EDITTABLE{...}% variable. Each column can be a text field, a drop down box or a row number. Multiple tables per topic can be editable, but only one at a time canbe edited.

EditTablePlugin Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %INTERWIKIPLUGIN_SHORTDESCRIPTION%

  • One line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Edit TWiki tables using edit fields and drop down boxes.

  • Set DEBUG to 1 to get debug messages in data/debug.txt. Default: 0
    • Set DEBUG = 0

Per Table Settings

Add a %EDITTABLE{...}% variable just before an existing table to make it editable, or add the variable anywhere in a topic to start a new table. Parameters:

Parameter Comment Default
header Enable static header if "on", e.g. disable editing of the first row;
Else specify the header format of a new table like "|*Food*|*Drink*|".
(no header)
format The format of one row when editing the table. A cell can be a text input field, a drop down box, a fixed label, or a row number. Cell definitions:
-Text input field (1 line): | text, <size>, <initial value> |
-Textarea input field: | textarea, <rows>x<columns>, <initial value> |
- Drop down box: | select, <size>, <option 1>, <option 2>, etc |
- Fixed label: | label, 0, <label text> |
- Row number: | row, <offset> |
- Date: | date, <sizet> |
"text, 16" for all cells
changerows Rows can be added and removed if "on";
Rows can be added but not removed if "add"
include Other topic defining the EDITTABLE parameters. The first %EDITTABLE% in the topic is used. This is useful if you have many topics with the same table format and you want to update the format in one place. (none)
helptopic Topic name containing help text shown below the table when editing a table. The %STARTINCLUDE% and %STOPINCLUDE% variables can be used in the topic to specify what is shown. (no help text)

Note: By default, variables in <initial value> (of text input field) and <label text> (of fixed label) get expanded when a new row is added. This can be used for example to add a timestamp to a label. You can escape characters if you do not want that:

Text: To Escape:
$quot Double quote ("). Alternatively write \" to escape it
$percnt Percent sign (%)
$dollar Dollar sign ($)
$nop or $nop() Is a "no operation"


Line before table: %EDITTABLE{ header="|*Nr*|*Text field sandbox*|*Drop down sandbox*|*Timestamp*|" format="| row, -1 | text, 20, init | select, 1, one, two, three, four | label, 0, %SERVERTIME{"$day $mon $year $hour:$min"}% |" changerows="on" }%

Nr Text field sandbox Drop down sandbox Timestamp
1 hello table one 26 Jun 2002 12:30
2   two 27 Jun 2002 12:40

If this plugin is installed you will see an [ Edit table ] button above; when you click on it you get this form:

Nr Text field sandbox Drop down sandbox Timestamp
1 26 Jun 2002 12:30
2 27 Jun 2002 12:40
(demo only, these buttons do not work)

Limitations and Known Issues

  • This Plugin does not support TWiki table formatting like Multi-span cells (e.g. | ... ||) and cell justification (e.g. |  centered  |   right |).
  • There is a performance issue when editing a large table, say, with more then 50 rows.
  • The Plugin fails if the table is at the very end of the topic (without a new line) Always ensure there is a newline after the table
  • Variables like %ATTACHURL% get expanded unless they are in a label.
  • Warning: This plugin uses undocumented functions to read, save and lock a topic. The plugin will likely break in a future TWiki release.
  • You cannot put two %EDITTABLE% statements on the same line in the source.
  • You can include %-vars now in select values, by quoting them with <nop>, as in %<nop>X% for ALERT!, say for instance:
  • date field type for the format parameter adds a button popping a javascript calendar to choose the date on browsers supporting it. It uses the nice Mishoo DHTML calendar at http://dynarch.com/mishoo/calendar.epl, that should be included in Cairo release, or see TWiki:Codev/JavaScriptDatePickerForForm for installing it on Beijing Release

Plugin Installation Instructions

  • Download the ZIP file from the Plugin web (see below)
  • Unzip EditTablePlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/EditTablePlugin.txt Plugin topic
    data/TWiki/EditTablePlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/EditTablePlugin.pm Plugin Perl module
  • The plugin depends on the viewauth script to authenticate the user. As described in TWikiAccessControl, copy the view script to viewauth (or better, create a symbolic link) and add viewauth to the list of authenticated scripts in the .htaccess file.
  • Test if the plugin is correctly installed:
    • Check above example if there is an [ Edit table ] button below the table in above example
    • Click on [ Edit table ], make changes and save the table

Plugin Info

Plugin Author: PeterThoeny
Plugin Version: 16 Oct 2003
Change History:  
16 Oct 2003: small typo fixed (garbled if ---+ header on top)
15 Oct 2003: new date field type with javascript calendar - CN
14 Oct 2003: docfix: the documentation page was an old one - CN
13 Oct 2003: bugfix: %-vars in select were resetted to first on add/del row - CN
18 Sep 2003: incompatibility: changed default of changerows to =on=
support for %-vars, Quietsave for saving without notification, all other fixes in Dev topic integrated - CN
08 Nov 2002: Prevent variable expansion in label text; added escape characters
27 Jun 2002: New helptopic parameter
26 Jun 2002: Support for variables in included EDITTABLE parameters; fixed problem with HTML in cells
21 May 2002: Added fixed label format; new changerows="add" parameter
27 Apr 2002: Fixed bug where text after a double quote in a cell disappeared
18 Apr 2002: Fixed bug where table was breaking when pasting multiple lines into an edit field using Netscape on Unix
08 Apr 2002: Check for change permission and edit lock of topic
05 Apr 2002: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/EditTablePlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/EditTablePluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- PeterThoeny - 08 Nov 2002

Edit | Attach | Watch | Print version | History: r27 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2003-12-12 - PeterThoeny
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.EditTablePlugin.