data/TWiki/TablePlugin.txt
changeset 0 414e01d06fd5
child 1 e2915a7cbdfa
equal deleted inserted replaced
-1:000000000000 0:414e01d06fd5
       
     1 %META:TOPICINFO{author="TWikiContributor" date="1191730164" format="1.0" version="26"}%
       
     2 ---+ Table Plugin
       
     3 
       
     4 Gives extra control of table display:
       
     5 	* Allows sorting
       
     6 	* Changing table properties like border width, cell spacing and cell padding
       
     7 	* Changing background color and text color for header cells
       
     8 	* Changing background color and text color for data cells - colors can _alternate_
       
     9 	* Table attributes can be set and overridden in this order:
       
    10 		* Default =TABLEATTRIBUTES= Plugin setting in this topic.
       
    11 		* A =TABLEATTRIBUTES= preferences setting on site-level (%TWIKIWEB%.TWikiPreferences) or web-level (any WebPreferences), e.g.
       
    12 			* =Set TABLEATTRIBUTES = tableborder="0" cellpadding="1" ...=
       
    13 		* Before a table using =%<nop>TABLE{...}%=
       
    14    * Row spans
       
    15 
       
    16 ---++ Sorting
       
    17 
       
    18 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:
       
    19 
       
    20 	* date if format is:
       
    21 		* dd MMM YYYY - hh:mm (MMM is Jan, Feb, etc.)
       
    22 		* dd-MMM-YY or dd-MMM-YYYY (can be / or space in place of -) (MMM is Jan, Feb, etc)
       
    23 	* number is digits, with optional decimal point
       
    24 	* otherwise treated as text
       
    25 
       
    26 ---++ Row spans
       
    27 
       
    28 Table cells with a single caret indicate follow-up rows of multi-row spans. For example,
       
    29 <table width="100%"><tr><td>
       
    30 <verbatim>
       
    31 | One One | One Two | One Three |
       
    32 | ^ | Two Two | Two Three |
       
    33 | Three One | ^ | Three Three |
       
    34 </verbatim>
       
    35 </td><td align="right">
       
    36 | One One | One Two | One Three |
       
    37 | ^ | Two Two | Two Three |
       
    38 | Three One | ^ | Three Three |
       
    39 </td></tr></table>
       
    40 
       
    41 ---++ <nop>%TOPIC% Global Settings
       
    42 
       
    43 Plugin settings are stored as preferences variables. To reference
       
    44 a plugin setting write ==%<nop>&lt;plugin&gt;_&lt;setting&gt;%==, for example, ==%<nop>INTERWIKIPLUGIN_SHORTDESCRIPTION%==
       
    45 
       
    46 	* One line description, shown in the %TWIKIWEB%.TextFormattingRules topic:
       
    47 		* Set SHORTDESCRIPTION = Control attributes of tables and sorting of table columns
       
    48 
       
    49 	* Set DEBUG to 1 to get debug messages in =data/debug.txt=.  Default: =0=
       
    50 		* Set DEBUG = 0
       
    51 
       
    52 	* 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=.
       
    53 		* #Set SORT = none
       
    54 		* Set SORT = all
       
    55 
       
    56 	* Default table attributes:
       
    57 		* Set TABLEATTRIBUTES = tableborder="1" cellpadding="0" cellspacing="0" valign="top" headercolor="#ffffff" headerbg="#687684" headerbgsorted="#334455" databg="#ffffff,#edf4f9" databgsorted="#f1f7fc,#ddebf6" tablerules="rows"
       
    58 
       
    59 ---++ Table Attributes
       
    60 
       
    61 Attributes are defined as a =TABLEATTRIBUTES= Plugin setting in this topic, a =TABLEATTRIBUTES= preferences setting, or on line before the table using =%<nop>TABLE{...}%=:
       
    62 %INCLUDE{"%TWIKIWEB%.VarTABLE" section="table_attributes"}%
       
    63 
       
    64 The =%<nop>TABLE{...}%= settings override =TABLEATTRIBUTES= preferences settings, which override the =TABLEATTRIBUTES= Plugin settings. 
       
    65 
       
    66 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.
       
    67 
       
    68 ---++ Examples
       
    69 
       
    70 ---+++ Use of %<nop>TABLE{...}%
       
    71 
       
    72 Line before table: =%<nop>TABLE{ sort="on" tableborder="0" cellpadding="4" cellspacing="3" cellborder="0" headerbg="#D5CCB1" headercolor="#666666" databg="#FAF0D4, #F3DFA8" headerrows="2" footerrows="1" }%=
       
    73 
       
    74 %TABLE{ sort="on" tableborder="0" cellpadding="4" cellspacing="3" cellborder="0" headerbg="#D5CCB1" headercolor="#666666" databg="#FAF0D4, #F3DFA8" headerrows="2" footerrows="1" }%
       
    75 | *Table with two Header Rows and Footer Row* ||||||
       
    76 | *Num* | *Status* | *Action* | *Who* | *When* | *Progress* |
       
    77 | 1 | C | Chose new colours | John | 1-Dec-02 | |
       
    78 | 2 | X | Release | John | 1-Apr-02 | |
       
    79 | 3 |	| Get feedback | Anne | 1-Feb-02 | |
       
    80 | 12 | C | Spec error handling | Jack | 1-Dec-02 | |
       
    81 | 5 |	| Abc | John | | |
       
    82 | *Num* | *Status* | *Action* | *Who* | *When* | *Progress* |
       
    83 
       
    84 ---+++ Table with 4 digit year dates and no use of %<nop>TABLE{...}%
       
    85 
       
    86 | *When* |
       
    87 | 1-Jan-2004 |
       
    88 | 1-Jan-2003 |
       
    89 | 2-Jan-2005 |
       
    90 
       
    91 
       
    92 ---++ !TablePlugin and CSS
       
    93 Information for programmers.
       
    94 
       
    95 !TablePlugin implements the following precedence:
       
    96    * the =TABLEATTRIBUTE= settings only write html styling, no CSS
       
    97    * the =TABLEATTRIBUTE= settings can be overridden by a skin's CSS
       
    98    * the =TABLE= tag attributes are converted to CSS styling, written in the head; these override any skin's CSS
       
    99     
       
   100 ---+++ CSS written by !TablePlugin
       
   101 |=.twikiTable=  |The table  |
       
   102 |=.twikiSortedCol=  |A sorted column  |
       
   103 |=.twikiSortedAscendingCol=  |Sorted column, ascending  |
       
   104 |=.twikiSortedDescendingCol=  |Sorted column, descending  |
       
   105 |=.tableSortIcon=  |The sort icon holder (span)  |
       
   106 |=.twikiFirstCol=  |The first column  |
       
   107 |=.twikiTableEven= |Even numbered rows  |
       
   108 |=.twikiTableOdd= |Odd numbered rows  |
       
   109 |=.twikiTableCol= + column number  | Unique column identifier, for instance: =twikiTableCol0= |
       
   110 |=.twikiTableRow= + type + row number | Unique row identifier, for instance: =twikiTableRowdataBg0= |
       
   111 
       
   112 
       
   113 ---++ Plugin Installation Instructions
       
   114 This plugin is pre-installed with your TWiki release. You should not have to install it other than to do an upgrade.
       
   115 
       
   116 	* Download the ZIP file from the Plugin web (see below)
       
   117 	* Unzip ==%TOPIC%.zip== in your twiki installation directory. Content:
       
   118 	  | *File:* | *Description:* |
       
   119 	  | ==data/TWiki/%TOPIC%.txt== | Plugin topic |
       
   120 	  | ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module |
       
   121 	  | ==lib/TWiki/Plugins/%TOPIC%/Core.pm== | Plugin Perl module |
       
   122 	* (Dakar) Visit =configure= in your TWiki installation, and enable the plugin in the {Plugins} section.
       
   123 	* Test if the plugin is correctly installed:
       
   124 		* Check above example if the table renders as expected
       
   125 		* Try click on heading to sort.  Other tables should also be sortable
       
   126 
       
   127 ---++ Plugin Info
       
   128 
       
   129 |  Plugin Author: | TWiki:Main/JohnTalintyre, TWiki:Main/PeterThoeny |
       
   130 |  Copyright: | &copy; 2001-2007, TWiki:Main/JohnTalintyre, Peter@Thoeny.org ([[http://www.twiki.net/][TWIKI.NET]]), TWiki Contributors |
       
   131 |  License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) |
       
   132 |  Plugin Version: | 1.032 (22 Dec 2007) |
       
   133 |  Change History: | <!-- specify latest version first -->&nbsp; |
       
   134 |  16 Dec 2007 | 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. |
       
   135 |  03 Dec 2007 | Arthur Clemens: Fixed rendering and order of html elements =thead=, =tfoot= and =tbody=; corrected =id= parameter. |
       
   136 |  24 Nov 2007 | Arthur Clemens: Fixed sorting of columns with only icons; also removed TWiki formatting before sorting. |
       
   137 |  06 Oct 2007 | 15180: PTh: Added %TWIKIWEB%.VarTABLE to have it listed in %TWIKIWEB%.TWikiVariables |
       
   138 |  27 Jun 2007 | 1.024 - 1.027 Various small bug fixes. |
       
   139 |  24 Jun 2007 | 1.023: Arthur Clemens: Inline styles are now written to the head; updated default sort icons (from %TWIKIWEB%.TWikiDocGraphics). |
       
   140 |  23 Jun 2007 | 1.022: Arthur Clemens: Fixed styling of param =tablerules= on Internet Explorer. |
       
   141 |  23 May 2007 | 1.021: Michael Daum: Fixed css attribute priority to cooperate nicely with skin themes. |
       
   142 |  27 Dec 2006 | 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. |
       
   143 |  13 Dec 2006 | 1.019: Arthur Clemens: Prevent sorting of columns that do no exist.  |
       
   144 |  02 Dec 2006 | 1.018: Arthur Clemens: Data rows now start with first =datacolor= and =databgcolor=.  |
       
   145 |  26 Nov 2006 | 1.017: Arthur Clemens: Better support for =tablerules=.  |
       
   146 |  24 Nov 2006 | 1.016: Arthur Clemens: Added new attribute =cellborder=.  |
       
   147 |  25 Oct 2006 | 1.015: Arthur Clemens: Added support for background colors of sorted column. Columns can be unsorted - sorting order is now: sort ascending, sort descending, unsort. Added attributes =headervalign= and =datavalign=. |
       
   148 |  16 Aug 2006 | Michael Daum: Added CSS support for even/odd table rows |
       
   149 |  13 Dec 2005 | Arthur Clemens: Added support for =id=, =summary= and =caption= |
       
   150 |  05 Mar 2005 | 1.014: Crawford Currie eliminated deprecated handlers for Dakar |
       
   151 |  01 Aug 2004 | Arthur Clemens: Added CSS support for first column and ascending/descending table headers |
       
   152 |  21 Mar 2004 | PTh: Internal change: Fixed reference to unofficial variable |
       
   153 |  01 Jan 2004 | PTh: Alternating data row colors restart again after each header row |
       
   154 |  01 Dec 2003 | PTh: Fixed error when footerrows was specified on an empty table, contributed by TWiki:Main/PaulineCheung |
       
   155 |  24 May 2003 | PTh: New =&#124;^&#124;= 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 |
       
   156 |  17 Dec 2002 | PTh: Removed individual table Plugin settings; added TABLEATTRIBUTES Plugins setting and TABLEATTRIBUTES preferences setting |
       
   157 |  15 Dec 2002 | PTh: Added headerrows and footerrows params (TWiki:Main/DarrylGreen, TWiki:Main/WoutMertens); added tablewidth and columnwidths params (TWiki:Main/ThorstenSommermann) |
       
   158 |  09 Dec 2002 | PTh: Added headercolor and datacolor parameters |
       
   159 |  05 Jun 2002 | PTh: Added "none" value to databg parameter (suggested by TWiki:Main/TaitCyrus); fixed sorting by stripping HTML tags, removing links and making sort ignore case (suggested by TWiki:Main/ShawnBradford) |
       
   160 |  13 Mar 2002 | PTh: Added TWiki:Main/ShawnBradford 's initsort and initdirection |
       
   161 |  12 Mar 2002 | PTh: Added valign, headeralign and dataalign; fixed bug of swapped cellpadding/cellspacing; fixed warning of uninitialized value |
       
   162 |  05 Jan 2002 | PTh: Fixed sorting bug of cells with leading white space  |
       
   163 |  06 Dec 2001 | PTh: Fixed date sorting bug <br /> 03 Dec 2001 PTh: Fixed sort="off" bug and more |
       
   164 |  29 Nov 2001 | PTh: Fixed Perl warnings |
       
   165 |  16 Nov 2001 | PTh: Added table border, cell spacing, cell padding, gif files |
       
   166 |  07 Oct 2001 | JT: Initial version |
       
   167 |  CPAN Dependencies: | none |
       
   168 |  Other Dependencies: | none |
       
   169 |  Perl Version: | 5.0 |
       
   170 |  Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% |
       
   171 |  Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev |
       
   172 |  Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal |
       
   173 
       
   174 __Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins, %TWIKIWEB%.StandardColors