Difference: TablePlugin (r29 vs. r28)

Table Plugin

  • Allows sorting
  • Changing table properties like border width, cell spacing and cell padding
  • Changing background color and text color for header cells
  • Changing background color and text color for data cells - colors can alternate
  • Table attributes can be set and overridden in this order:
    • Default TABLEATTRIBUTES Plugin setting in this topic.
    • A TABLEATTRIBUTES preferences setting on site-level (TWikiPreferences) or web-level (any WebPreferences), e.g.
      • Set TABLEATTRIBUTES = tableborder="0" cellpadding="1" ...
    • Before a table using %TABLE{...}%
  • Row spans

Control attributes of tables and sorting of table columns

Introduction

The TablePlugin gives extra control of table display:

  • Allows sorting
  • Changing table properties like border width, cell spacing and cell padding
  • Changing background color and text color for header cells
  • Changing background color and text color for data cells - colors can alternate
  • Table attributes can be set and overridden in this order:
    • Default TABLEATTRIBUTES Plugin setting in this topic.
    • A TABLEATTRIBUTES preferences setting on site-level (TWikiPreferences) or web-level (any WebPreferences), e.g.
      • Set TABLEATTRIBUTES = tableborder="0" cellpadding="1" ...
    • Before a table using %TABLE{...}%
  • Row spans

Sorting

Click on column heading text to sort by a column. Initial column will be sorted in descending order, click again to get ascending order. The type of data in the cell is determined automatically:

  • date if format is:
    • dd MMM YYYY - hh:mm (MMM is Jan, Feb, etc.)
    • dd-MMM-YY or dd-MMM-YYYY (can be / or space in place of -) (MMM is Jan, Feb, etc)
  • number is digits, with optional decimal point
  • otherwise treated as text

Row spans

Table cells with a single caret indicate follow-up rows of multi-row spans. For example,

| One One | One Two | One Three |
| ^ | Two Two | Two Three |
| Three One | ^ | Three Three |
One One One Two One Three
Two Two Two Three
Three One Three Three
One One One Two One Three
Two Two Two Three
Three One Three Three

TablePlugin 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 = Control attributes of tables and sorting of table columns
  • Set DEBUG to 1 to get debug messages in data/debug.txt. Default: 0
    • Set DEBUG = 0
  • Make all tables in a topic sortable. If this is set to all, all tables that have a header row (including those that do not have %TABLE before them) will be made sortable. If set to none, only tables with %TABLE will be sortable. Topic rendering is faster if this is set to none.
    • #Set SORT = none
    • Set SORT = all
  • Default table attributes:
    • Set TABLEATTRIBUTES = tableborder="1" cellpadding="0" cellspacing="0" valign="top" headercolor="#ffffff" headerbg="#687684" headerbgsorted="#334455" databg="#ffffff,#edf4f9" databgsorted="#f1f7fc,#ddebf6" tablerules="rows"

Table Attributes

Attributes are defined as a TABLEATTRIBUTES Plugin setting in this topic, a TABLEATTRIBUTES preferences setting, or on line before the table using %TABLE{...}%:

  • Supported attributes:
    ArgumentCommentDefault valueExample
    sort Set table sorting by clicking headers "on" or "off". unspecifiedsort="on"
    initsort Column to sort initially ("1" to number of columns). unspecifiedinitsort="2"
    initdirection Initial sorting direction for initsort, set to "up" (descending) or "down" (ascending). unspecifiedinitdirection="up"
    disableallsort Disable all sorting, both initsort and header sort. This is mainly used by plugins such as the EditTablePlugin to disable sorting in a table while editing the table. unspecifieddisableallsort="on"
    headerbg Header cell background colour. "#6b7f93"headerbg="#999999"
    headerbgsorted Header cell background colour of a sorted column. the value of headerbgheaderbgsorted="#32596c"
    headercolor Header cell text colour. "#ffffff"headercolor="#0000cc"
    databg Data cell background colour, a comma separated list. Specify "none" for no colour, that is to use the colour/background of the page the table is on. "#edf4f9,#ffffff"databg="#f2f2f2,#ffffff"
    databgsorted Data cell background colour of a sorted column; see databg. the values of databgdatabgsorted="#d4e8e4,#e5f5ea"
    datacolor Data cell text colour, a comma separated list. unspecifieddatacolor="#0000CC, #000000"
    tableborder Table border width (pixels). "1"tableborder="2"
    tableframe Table frame, set to "void" (no sides), "above" (the top side only), "below" (the bottom side only), "hsides" (the top and bottom sides only), "lhs" (the left-hand side only), "rhs" (the right-hand side only), "vsides" (the right and left sides only), "box" (all four sides), "border" (all four sides). unspecifiedtableframe="hsides"
    tablerules Table rules, set to "none" (no rules), "groups" (rules will appear between row groups and column groups only), "rows" (rules will appear between rows only), "cols" (rules will appear between columns only), "all" (rules will appear between all rows and columns). unspecifiedtablerules="rows"
    cellpadding Cell padding (pixels). "0"cellpadding="0"
    cellspacing Cell spacing (pixels). "0"cellspacing="3"
    cellborder Cell border width (pixels). unspecifiedcellborder="0"
    valign Vertical alignment of cells and headers, set to "top", "middle", "bottom" or "baseline". unspecifiedvalign="top"
    headervalign Vertical alignment of header cells; overrides valign. unspecifiedheadervalign="top"
    datavalign Vertical alignment of data cells; overrides valign. unspecifieddatavalign="top"
    headeralign Header cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to "left", "center", "right" or "justify". Overrides individual cell settings. unspecifiedheaderalign="left,right"
    dataalign Data cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to "left", "center", "right" or "justify". Overrides individual cell settings. unspecifieddataalign="center"
    tablewidth Table width: Percentage of window width, or absolute pixel value. unspecifiedtablewidth="100%"
    columnwidths Column widths: Comma delimited list of column widths, percentage or absolute pixel value. unspecifiedcolumnwidths="80%,20%"
    headerrows Number of header rows to exclude from sort. (will be rendered in a HTML thead section) "1"headerrows="1"
    footerrows Number of footer rows to exclude from sort. (will be rendered in a HTML tfoot section) "0"footerrows="1"
    id Unique table identifier string, used for targeting a table with CSS. tableN (where N is the table order number on the page) id="userTable"
    summary Table summary used by screenreaders: A summary of what the table presents. It should provide an orientation for someone who listens to the table. unspecifiedsummary="List of subscribed users"
    caption Table caption: A title that will be displayed just above the table. unspecifiedcaption="Users"

The %TABLE{...}% settings override TABLEATTRIBUTES preferences settings, which override the TABLEATTRIBUTES Plugin settings.

The setting disableallsort is normally not used as a TABLE or TABLEATTRIBUTES setting. Plugins such as EditTablePlugin dynamically sets disableallsort to disable sorting while editing a table. For this to work it is important that EditTablePlugin runs before TablePlugin, which is the default. The setting sort can be overwritten by a URL parameter or hidden formfield of the same name. Plugins such as EditTablePlugin can use this to disable table header sorting while in edit mode.

Examples

Use of %TABLE{...}%

Line before table: %TABLE{ sort="on" tableborder="0" cellpadding="4" cellspacing="3" cellborder="0" headerbg="#D5CCB1" headercolor="#666666" databg="#FAF0D4, #F3DFA8" headerrows="2" footerrows="1" }%

Table with two Header Rows and Footer Row
NumStatusActionWhoWhenProgress
NumStatusActionWhoWhenProgress
1 C Chose new colours John 1-Dec-02  
2 X Release John 1-Apr-02  
3   Get feedback Anne 1-Feb-02  
12 C Spec error handling Jack 1-Dec-02  
5   Abc John    

Table with 4 digit year dates and no use of %TABLE{...}%

When
1-Jan-2004
1-Jan-2003
2-Jan-2005

TablePlugin and CSS

Information for programmers.

TablePlugin implements the following precedence:

  • the TABLEATTRIBUTE settings only write html styling, no CSS
  • the TABLEATTRIBUTE settings can be overridden by a skin's CSS
  • the TABLE tag attributes are converted to CSS styling, written in the head; these override any skin's CSS

CSS written by TablePlugin

.twikiTable The table
.twikiSortedCol A sorted column
.twikiSortedAscendingCol Sorted column, ascending
.twikiSortedDescendingCol Sorted column, descending
.tableSortIcon The sort icon holder (span)
.twikiFirstCol The first column
.twikiTableEven Even numbered rows
.twikiTableOdd Odd numbered rows
.twikiTableCol + column number Unique column identifier, for instance: twikiTableCol0
.twikiTableRow + type + row number Unique row identifier, for instance: twikiTableRowdataBg0

Plugin Installation Instructions

This plugin is pre-installed with your TWiki release. You should not have to install it other than to do an upgrade.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip TablePlugin.zip in your twiki installation directory. Content:
    File:Description:
    data/TWiki/TablePlugin.txt Plugin topic
    lib/TWiki/Plugins/TablePlugin.pm Plugin Perl module
    lib/TWiki/Plugins/TablePlugin/Core.pm Plugin Perl module
  • (Dakar) Visit configure in your TWiki installation, and enable the plugin in the {Plugins} section.
  • Test if the plugin is correctly installed:
    • Check above example if the table renders as expected
    • Try click on heading to sort. Other tables should also be sortable

Plugin Info

Plugin Author: TWiki:Main/JohnTalintyre, TWiki:Main/PeterThoeny
Copyright: 2001-2008, 2001-2003, TWiki:Main/JohnTalintyre, Peter@ThoenyREMOVE.org
( 2001-2010, Peter[at]Thoeny.org, TWIKI.NET Twiki, Inc. ), , TWiki Contributors
2005-2010, TWiki:TWiki/TWikiContributor
License: GPL (GNU General Public License)
Plugin Version: 1.036 (01 1.2 (2010-05-16) Oct 2008)
Change History:  
30 2010-05-16: Sep 2008 1.035 1.2 Fix sorting of attachment date column. TWikibug:Item6433 - doc improvements
03 2010-03-31: Aug 2008 1.034 1.12 TWiki 4.2.1 release version TWikibug:Item6414 - fixed incorrect sorting of ISO dates. -- Peter Thoeny
20 2010-03-21: Mar 2008 1.033 1.11 TWikibug:Item5387 TWikibug:Item6406 : allow rowspanned columns to contain HTML tags; - fixed incorrect sorting for negative numbers. -- otherwise it is impossible to add an invisible anchor to a rowspanned cell TWiki:Main/BryanKitts
16 2010-03-08: Dec 2007 1.030: 1.1 Kenneth Lavrsen: Fixed the problem of tables being sorted by by TablePlugin TWikibug:Item6405 while the table is being edited by plugins such as - fixed incorrect sorting for numbers with decimal places. -- Peter Thoeny EditTablePlugin. This required adding a new attribute disableallsort so plugins such as EditTablePlugin can temporarily disable all sorting for a table. Additionally the CGI variable (URL parameter or hidden formfield) sort can be set to "off" which disables all header sorting in the topic. This is used by plugins such as EditTablePlugin to disable the sorting by clicking header fields during editing of tables. Ref: TWikibug:Item5135 and TWikibug:Item2690.
03 Dec 2007 30 Sep 2008: Arthur Clemens: Fixed 1.035 Fix sorting rendering and order of html elements attachment date column. thead, tfoot and tbody; corrected id parameter.
24 Nov 2007 03 Aug 2008: Arthur 1.034 Clemens: Fixed sorting of columns with only icons; also removed TWiki formatting before sorting. 4.2.1 release version
06 Oct 2007 20 Mar 2008: 15180: 1.033 PTh: Added VarTABLE TWikibug:Item5387 : allow rowspanned columns to have contain HTML tags; otherwise it listed in is impossible to add an invisible anchor to a rowspanned cell TWikiVariables
27 Jun 2007 16 Dec 2007: 1.024 - 1.027 Various small bug fixes. 1.030: Kenneth Lavrsen: Fixed the problem of tables being sorted by by TablePlugin while the table is being edited by plugins such as EditTablePlugin. This required adding a new attribute disableallsort so plugins such as EditTablePlugin can temporarily disable all sorting for a table. Additionally the CGI variable (URL parameter or hidden formfield) sort can be set to "off" which disables all header sorting in the topic. This is used by plugins such as EditTablePlugin to disable the sorting by clicking header fields during editing of tables. Ref: TWikibug:Item5135 and TWikibug:Item2690.
24 Jun 2007 03 Dec 2007: 1.023: Arthur Clemens: Inline styles are now written to the Fixed rendering and order of html elements head; updated default sort icons (from TWikiDocGraphicsthead). , tfoot and tbody; corrected id parameter.
23 Jun 2007 24 Nov 2007: 1.022: Arthur Clemens: Fixed styling sorting of param columns with only icons; also removed TWiki formatting before sorting. tablerules on Internet Explorer.
23 May 2007 06 Oct 2007: 1.021: Michael Daum: 15180: PTh: Added Fixed css attribute priority to cooperate nicely with skin themes. VarTABLE to have it listed in TWikiVariables
27 Dec 2006 Jun 2007: 1.020: Kenneth Lavrsen: Fixed initsort so all 1.024 - 1.027 Various small bug fixes. tables can be initsorted and not only the first. When you sort a table by clicking on the header of a column the table gets sorted accordingly. When you click the header of another table the previously sorted table goes back being sorted as specified by initsort.
13 Dec 2006 24 Jun 2007: 1.019: 1.023: Arthur Clemens: Prevent sorting of columns that do no exist. Inline styles are now written to the head; updated default sort icons (from TWikiDocGraphics).
02 Dec 2006 23 Jun 2007: 1.018: 1.022: Arthur Clemens: Data rows now start Fixed styling of param with first datacolor tablerules and on Internet Explorer. databgcolor.
26 Nov 2006 23 May 2007: 1.017: Arthur Clemens: Better support for 1.021: Michael Daum: Fixed css attribute priority to cooperate nicely with skin themes. tablerules.
24 Nov 2006 27 Dec 2006: 1.016: Arthur Clemens: Added new attribute 1.020: Kenneth Lavrsen: Fixed initsort so all tables can be initsorted and not only the first. When you sort a table by clicking on the header of a column the table gets sorted accordingly. When you click the header of another table the previously sorted table goes back being sorted as specified by initsort. cellborder.
25 Oct 2006 13 Dec 2006: 1.015: 1.019: Arthur Clemens: Added Prevent support for background colors of sorted column. Columns can be unsorted - sorting order is now: sort ascending, sort of columns that do no exist. descending, unsort. Added attributes headervalign and datavalign.
16 Aug 2006 02 Dec 2006: Michael Daum: Added CSS 1.018: Arthur Clemens: Data support for even/odd table rows now start with first datacolor and databgcolor.
13 Dec 2005 26 Nov 2006: 1.017: Arthur Clemens: Added Better support for id tablerules , . summary and caption
05 Mar 2005 24 Nov 2006: 1.014: Crawford Currie eliminated deprecated handlers 1.016: Arthur Clemens: Added new attribute for Dakar cellborder.
01 Aug 2004 25 Oct 2006: 1.015: Arthur Clemens: Added CSS support for first column and ascending/descending table headers background colors of sorted column. Columns can be unsorted - sorting order is now: sort ascending, sort descending, unsort. Added attributes headervalign and datavalign.
21 Mar 2004 16 Aug 2006: PTh: Internal change: Fixed reference to unofficial variable Michael Daum: Added CSS support for even/odd table rows
01 Jan 2004 13 Dec 2005: PTh: Alternating data row colors Arthur Clemens: Added support for restart again after each header row id, summary and caption
01 Dec 2003 05 Mar 2005: PTh: Fixed error when footerrows was specified on 1.014: Crawford Currie eliminated deprecated handlers for Dakar an empty table, contributed by TWiki:Main/PaulineCheung
24 May 2003 01 Aug 2004: PTh: New Arthur Clemens: Added CSS support for first column and ascending/descending table headers |^| rule for multi row span (TWiki:Main/WalterMundt); added tableframe and tablerules (TWiki:Main/JohannesMartin); ignore columnwidths for multi column span; validate headerrows and footerrows (TWiki:Main/DarrylGreen); fixed link color problem and up/down icon color problem for dark header background
17 Dec 2002 21 Mar 2004: PTh: Removed individual table Plugin settings; added TABLEATTRIBUTES Internal change: Fixed reference to unofficial variable Plugins setting and TABLEATTRIBUTES preferences setting
15 Dec 2002 01 Jan 2004: PTh: Added headerrows and footerrows params ( Alternating data row colors restart again after each header row TWiki:Main/DarrylGreen, TWiki:Main/WoutMertens); added tablewidth and columnwidths params (TWiki:Main/ThorstenSommermann)
09 01 Dec 2002 2003: PTh: Added headercolor and datacolor parameters Fixed error when footerrows was specified on an empty table, contributed by TWiki:Main/PaulineCheung
05 Jun 2002 24 May 2003: PTh: Added New "none" value to databg parameter (suggested by TWiki:Main/TaitCyrus|^|); fixed sorting by stripping HTML rule for multi row span ( tags, removing links and making sort ignore case (suggested by TWiki:Main/ShawnBradford TWiki:Main/WalterMundt ) ); added tableframe and tablerules ( TWiki:Main/JohannesMartin); ignore columnwidths for multi column span; validate headerrows and footerrows (TWiki:Main/DarrylGreen); fixed link color problem and up/down icon color problem for dark header background
13 Mar 2002 17 Dec 2002: PTh: Added Removed individual table Plugin settings; added TABLEATTRIBUTES Plugins setting and TABLEATTRIBUTES preferences setting TWiki:Main/ShawnBradford 's initsort and initdirection
12 Mar 2002 15 Dec 2002: PTh: Added valign, headerrows headeralign and dataalign; fixed bug footerrows params ( of swapped cellpadding/cellspacing; fixed warning of uninitialized value TWiki:Main/DarrylGreen, TWiki:Main/WoutMertens); added tablewidth and columnwidths params (TWiki:Main/ThorstenSommermann)
05 Jan 2002 09 Dec 2002: PTh: Fixed sorting bug of cells Added headercolor and datacolor parameters with leading white space
06 Dec 2001 05 Jun 2002: PTh: Fixed date sorting bug Added "none" value to databg parameter (suggested by
TWiki:Main/TaitCyrus03 Dec 2001 PTh: Fixed sort="off" bug ); fixed sorting by stripping HTML tags, removing links and more making sort ignore case (suggested by TWiki:Main/ShawnBradford)
29 Nov 2001 13 Mar 2002: PTh: Fixed Added Perl warnings TWiki:Main/ShawnBradford 's initsort and initdirection
16 Nov 2001 12 Mar 2002: PTh: Added table border, cell spacing, cell padding, gif files valign, headeralign and dataalign; fixed bug of swapped cellpadding/cellspacing; fixed warning of uninitialized value
07 Oct 2001 05 Jan 2002: JT: Initial version PTh: Fixed sorting bug of cells with leading white space
06 Dec 2001: PTh: Fixed date sorting bug
03 Dec 2001 PTh: Fixed sort="off" bug and more
29 Nov 2001: PTh: Fixed Perl warnings
16 Nov 2001: PTh: Added table border, cell spacing, cell padding, gif files
07 Oct 2001: JT: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/TablePlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/TablePluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/TablePluginAppraisal

 
This site is powered by the TWiki collaboration platformCopyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TablePlugin.