## <a name="Slide 1: A Taste of TWiki"></a> Slide 1: A Taste of TWiki
-<table cellspacing="10">
- <tr>
- <td><img alt="Hula girl" height="111" src="http://www.dementia.org/twiki//view/hula.gif" width="113" /></td>
- <td> The basic function of TWiki is a Wiki (if that helps!) <p> A Wiki is like a web site, except that you can edit the content in your browser </p>
- <p>
- </p>
- <ul>
- <li> "Wiki" is short for "wiki wiki", the Hawaiian for "Quick" </li>
- <li> The idea originates from <a href="http://www.hyperdictionary.com/computing/hypercard" target="_top">Macintosh Hypercard</a>, via <a href="http://www.c2.com/cgi/wiki?WardCunningham" target="_top">Ward Cunningham</a></li>
- <li> In Ward's words, Wiki is <em>"the simplest online database that could possibly work"</em></li>
- <li> A Wiki is basically a shared, online, persistent whiteboard </li>
- </ul>
- </td>
- </tr>
-</table>
+<img src="http://www.dementia.org/twiki//view/hula.gif" width="113" height="111" alt="Hula girl" /> The basic function of TWiki is a Wiki (if that helps!)
+
+A Wiki is like a web site, except that you can edit the content in your browser
+
+- "Wiki" is short for "wiki wiki", the Hawaiian for "Quick"
+- The idea originates from [Macintosh Hypercard](http://www.hyperdictionary.com/computing/hypercard), via [Ward Cunningham](http://www.c2.com/cgi/wiki?WardCunningham)
+- In Ward's words, Wiki is _"the simplest online database that could possibly work"_
+- A Wiki is basically a shared, online, persistent whiteboard
## <a name="Slide 2: TWiki Wiki"></a> Slide 2: TWiki Wiki
-<table cellspacing="10">
- <tr>
- <td><img alt="Whiteboard" height="160" src="http://www.dementia.org/twiki//view/whiteboard.gif" width="240" /></td>
- <td>TWiki implements the basic Wiki idea of a shared whiteboard <p>
- </p>
- <ul>
- <li> Anyone can add content<br />... or change what is written<br />... or change the organisation of the content </li>
- <li> Whatever what you write is<br />... nicely presented<br />... remembered... and never forgotten </li>
- </ul>
- </td>
- </tr>
-</table>
+<img src="http://www.dementia.org/twiki//view/whiteboard.gif" width="240" height="160" alt="Whiteboard" /> TWiki implements the basic Wiki idea of a shared whiteboard
+
+- Anyone can add content<br />... or change what is written<br />... or change the organisation of the content
+- Whatever what you write is<br />... nicely presented<br />... remembered... and never forgotten
TWiki also acts as an "application platform" to integrate a number of other functions.
A number of public Wiki sites also use TWiki
-- Examples: <br /><https://uimon.cern.ch/twiki/bin/view/><br /><http://csci.mrs.umn.edu/twiki/view>
+- Examples: <br /><https://twiki.cern.ch/twiki/bin/view/><br /><http://csci.mrs.umn.edu/twiki/view>
## <a name="Slide 4: TWiki Features"></a> Slide 4: TWiki Features
Here's a brief description of some of the more common plugins, together with the tags you might expect to see in topics if they are used. You can find out more by visiting the plugin pages.
-- ActionTrackerPlugin: Support **action tags** in topics, with **automatic notification** of action statii `%ACTION...`
+- ActionTrackerPlugin: Support **action tags** in topics, with **automatic notification** of action statuses `%ACTION...`
- CalendarPlugin: Show a **monthly calendar** with highlighted events `%CALENDAR...%`
- CommentPlugin: Support **rapid entry of short comments** (also known as **blogging**) `%COMMENT...`
- ChartPlugin: Create PNG or GIF **charts to visualize data in TWiki tables** `%CHART...`
# <a name="Admin tools"></a> Admin tools
-Manage whole **%WIKITOOLNAME%** site from one screen.
+Manage whole **TWiki** site from one screen.
-- **[[Users|Main/TWikiUsers]]:** [[Register|Main/TWikiRegistration]], [[NewUserTemplate]], [[UserForm]], [[ResetPassword]], [[ChangePassword]]
-- **[[Site Tools|Main/TWikiSiteTools]]:** [Configure](http://www.dementia.org/twiki/configure), [[TWikiPreferences]], [[InterWikis]], [[Variables|Main/TWikiVariables]]
-- **Managing:** [[Topics|Main/ManagingTopics]], [[Webs|Main/ManagingWebs]], [[YouAreHere]]
-- **Webs:**
-
-> <table bgcolor="#000000" border="0" cellpadding="3" cellspacing="2" width="100%">
-> <tr bgcolor="#99CCCC">
-> <th>Web</th>
-> <th>Tools</th>
-> <th>Use to...</th>
-> </tr>
-> <tr>
-> <td>
-> <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) </td>
-> </tr>
-> <tr bgcolor="#ffffff">
-> <td colspan="3">This table is updated automatically based on WebPreferences settings of the individual webs.</td>
-> </tr>
-> </table>
-> <table border="0" cellpadding="0" cellspacing="2">
-> <tr bgcolor="#ffffff">
-> <td valign="top"> Legend: </td>
-> <td valign="top"> </td>
-> <td valign="top"><img alt="Home of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/home.gif" width="16" /> WebHome </td>
-> <td valign="top"><img alt="Search web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/searchtopic.gif" width="16" /> WebSearch </td>
-> <td valign="top"><img alt="Recent changes in the web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/recentchanges.gif" width="16" /> WebChanges </td>
-> <td valign="top"><img alt="Get notified of changes to the web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/notify.gif" width="16" /> WebNotify </td>
-> </tr>
-> <tr bgcolor="#ffffff">
-> <td valign="top"> </td>
-> <td valign="top"> </td>
-> <td valign="top"><img alt="Preferences of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/wrench.gif" width="16" /> WebPreferences </td>
-> <td valign="top"><img alt="Statistics of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/statistics.gif" width="16" /> WebStatistics </td>
-> <td valign="top"><img alt="Bullet list of all topics" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/indexlist.gif" width="16" /> WebTopicList </td>
-> <td valign="top"><img alt="Index of all topics" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/index.gif" width="16" /> WebIndex </td>
-> </tr>
-> </table>
+- <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="help" /> Documentation: [[TWiki Reference Manual|Main/TWikiReferenceManual]]
+- <img src="http://www.dementia.org/twiki//view/Main/WebHome/wrench.gif" width="16" height="16" alt="wrench" /> [[Site Tools|Main/TWikiSiteTools]]: [Configure](http://www.dementia.org/twiki/configure), [[TWikiPreferences]], [[InterWikis]], [[Variables|Main/TWikiVariables]], [[Doc Graphics|Main/TWikiDocGraphics]]
+- <img src="http://www.dementia.org/twiki//view/Main/WebHome/persons.gif" width="16" height="16" alt="persons" /> Manage [[Users|Main/TWikiUsers]]: [[Register|Main/TWikiRegistration]], [[NewUserTemplate]], [[UserForm]], [[ResetPassword]], [[ChangePassword]]
+- <img src="http://www.dementia.org/twiki//view/Main/WebHome/indexlist.gif" width="16" height="16" alt="indexlist" /> Manage Content: [[Topics|Main/ManagingTopics]], [[Webs|Main/ManagingWebs]], [[YouAreHere]]
+- <img src="http://www.dementia.org/twiki//view/Main/WebHome/folder.gif" width="16" height="16" alt="folder" /> Webs: <table bgcolor="#000000" border="0" cellpadding="3" cellspacing="2" width="100%">
+ <tr bgcolor="#99CCCC">
+ <th>Web</th>
+ <th>Tools</th>
+ <th>Use to...</th>
+ </tr>
+ <tr>
+ <td>
+ <h1>TWiki Installation Error</h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) </td>
+ </tr>
+ <tr bgcolor="#ffffff">
+ <td colspan="3">This table is updated automatically based on WebPreferences settings of the individual webs.</td>
+ </tr>
+</table>
+<table border="0" cellpadding="3" cellspacing="2">
+ <tr bgcolor="#ffffff">
+ <td valign="top"> Legend: </td>
+ <td valign="top"> </td>
+ <td valign="top"><img alt="Home of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/home.gif" width="16" /> WebHome </td>
+ <td valign="top"><img alt="Search web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/searchtopic.gif" width="16" /> WebSearch </td>
+ <td valign="top"><img alt="Recent changes in the web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/recentchanges.gif" width="16" /> WebChanges </td>
+ <td valign="top"><img alt="Get notified of changes to the web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/notify.gif" width="16" /> WebNotify </td>
+ </tr>
+ <tr bgcolor="#ffffff">
+ <td valign="top"> </td>
+ <td valign="top"> </td>
+ <td valign="top"><img alt="Preferences of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/wrench.gif" width="16" /> WebPreferences </td>
+ <td valign="top"><img alt="Statistics of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/statistics.gif" width="16" /> WebStatistics </td>
+ <td valign="top"><img alt="Bullet list of all topics" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/indexlist.gif" width="16" /> WebTopicList </td>
+ <td valign="top"><img alt="Index of all topics" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/index.gif" width="16" /> WebIndex </td>
+ </tr>
+</table>
## <a name="All Admin Tools Category topics"></a> All Admin Tools Category topics
And the `SEARCH` function:
- %SEARCH{ "Back to\:__ TWikiFAQ" casesensitive="on" regex="on" nosearch="on" nototal="on"}%
+ %SEARCH{ "Back to\:__ TWikiFAQ" casesensitive="on" type="regex" nosearch="on" nototal="on"}%
**_Back to:_** [[TWikiFAQ]]
**_Related Topics:_** [[UserDocumentationCategory]]
--- TWiki:Main.MiyokoTakushima - 18 Oct 2004 <br />
+-- **_Contributors:_** TWiki:Main.MiyokoTakushima - 18 Oct 2004
--- /dev/null
+# <a name="Behaviour Javascript framework C"></a><a name=" Behaviour Javascript framework "></a> Behaviour Javascript framework Contrib
+
+This contrib packages the third-party `Behaviour` Javascript event library, available from <http://bennolan.com/behaviour/>.
+
+Behaviour is suited to create javascript based interaction that degrades well when javascript is not available.
+
+Javascript file: [behaviour.js](http://www.dementia.org/twiki//view/TWiki/%TOPIC%/behaviour.js) (8.1K). The [compressed javascript file](http://www.dementia.org/twiki//view/TWiki/%TOPIC%/behaviour.compressed.js) (2.9K) has been processed by [ShrinkSafe](http://alex.dojotoolkit.org/shrinksafe/).
+
+<div><span>On this page:</span><ul>
+ <li><a href="#Introduction"> Introduction</a></li>
+ <li><a href="#Usage"> Usage</a></li>
+ <li><a href="#Example"> Example</a></li>
+ <li><a href="#Development"> Development</a></li>
+ <li><a href="#License"> License</a></li>
+ <li><a href="#Links"> Links</a></li>
+ <li><a href="#Contrib Info"> Contrib Info</a></li>
+ </ul>
+</div>
+
+## <a name="Introduction"></a> Introduction
+
+From the website:
+
+> After all the work of WASP and others to promote clean markup, valid pages and graceful degradation via css - it sucks that we're going back to tag soup days by throwing javascript tags into our html.
+>
+> The better way to do javascript is to do it unobtrusively. PPK and Simon Willison have been recommending this approach for ages. And it's definitely the way to go. The only problem is that it's a bit of a pain in the ass.
+>
+> That's why I came up with Behaviour - my solution to unobtrusive javascript behaviours.
+>
+> **How does it work?**
+>
+> Behaviour lets you use CSS selectors to specify elements to add javascript events to. This means that instead of writing:
+>
+> <li>
+> <a onclick="this.parentNode.removeChild(this)" href="#">
+> Click me to delete me
+> </a>
+> </li>
+>
+> You can use:
+>
+> <ul id="example">
+> <li>
+> <a href="/someurl">Click me to delete me</a>
+> </li>
+> </ul>
+>
+> And then use css selectors to select that element and add javascript functions to it.
+>
+> var myrules = {
+> '#example li' : function(el){
+> el.onclick = function(){
+> this.parentNode.removeChild(this);
+>
+> }
+> }
+> };
+>
+> Behaviour.register(myrules);
+
+## <a name="Usage"></a> Usage
+
+Include the javascript file:
+
+> <script type="text/javascript" src="%PUBURL%/%TWIKIWEB%/BehaviourContrib/behaviour.compressed.js"></script>
+
+In your code you create a "rules" object, with sub-objects for each html element class name or id:
+
+> var myrules = {
+> '.classname' : function(element) {
+> // element event
+> element.onclick = function() {
+> // code here
+> }
+> },
+>
+> '#id' : function(element) {
+> // element event
+> element.onclick = function() {
+> // code here
+> }
+> }
+> };
+>
+> Or use nested identifiers:
+>
+> var myrules = {
+> '.menu li a' : function(element) {
+> element.onclick = function() {
+> // code here
+> }
+> }
+> };
+
+Apply the rules with:
+
+> Behaviour.register(myrules);
+
+## <a name="Example"></a> Example
+
+If we have a 'normal' link to TWiki Web hometopic: [[TWiki Web Home|TWiki/WebHome]], we can use javascript to make it open a popup window. When javascript is not available the link behaviour defaults to opening the page in the current window.
+
+> <span class="link%TWIKIWEB%%HOMETOPIC%">[[%TWIKIWEB%.%HOMETOPIC%][TWiki Web Home]]</span>
+>
+> <script type="text/javascript">
+> // <![CDATA[
+> var myrules = {
+> '.link%TWIKIWEB%%HOMETOPIC% a' : function(el){
+> el.onclick = function() {
+> // open in a popup with no other attributes than template 'viewplain'
+> launchTheWindow(this.href,null,null,null,"viewplain");
+> return false;
+> }
+> }
+> };
+>
+> Behaviour.register(myrules);
+> // ]]>
+> </script>
+>
+> The class name `link%TWIKIWEB%%HOMETOPIC%` will get expanded to `linkTWikiWebHome`
+
+Creates:
+
+<span>[[TWiki Web Home|TWiki/WebHome]]</span>
+
+## <a name="Development"></a> Development
+
+- [Google Groups: Behaviour Javascript Library](http://groups.google.com/group/behaviour)
+- [Dean Edwards: Faster DOM Queries](http://dean.edwards.name/weblog/2006/03/faster/) - with a speed-up hack to Behaviour
+
+## <a name="License"></a> License
+
+Behaviour is freely distributable under the terms of an BSD license. For details, see the Behaviour website.
+
+## <a name="Links"></a> Links
+
+- [Behaviour website](http://bennolan.com/behaviour/)
+- [Behaviour Google Group](http://groups.google.com/group/behaviour)
+
+## <a name="Contrib Info"></a> Contrib Info
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> Author: </td>
+ <td> TWiki:Main.ArthurClemens </td>
+ </tr>
+ <tr>
+ <td> Copyright: </td>
+ <td> version 1.1 - Copyright (c) Ben Nolan and Simon Willison </td>
+ </tr>
+ <tr>
+ <td> License: </td>
+ <td> BSD </td>
+ </tr>
+ <tr>
+ <td> Dependencies: </td>
+ <td> None </td>
+ </tr>
+ <tr>
+ <td> 4 June 2006 </td>
+ <td> 1.000 First Version. Included Behaviour version: 1.1 </td>
+ </tr>
+ <tr>
+ <td align="right"> Home: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
+ </tr>
+ <tr>
+ <td align="right"> Feedback: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
+ </tr>
+ <tr>
+ <td align="right"> Appraisal: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
+ </tr>
+</table>
+
+**_Related Topics:_** [[TWikiPreferences]]
# <a name="Bulk Reset Passwords"></a> Bulk Reset Passwords
-The [[TWikiAdminGroup]] can use %TOPIC% to reset any number of passwords. Users whose passwords are reset with this will be sent an e-mail at the address recorded in their home topic (the administrator will **not** be told the new passwords).
-
-<div>
- <form action="http://www.dementia.org/twiki/resetpasswd/%WEB%/%TOPIC%" method="post">
- <table border="0">
- <tr>
- <th colspan="4"> This text will be sent to users in their "reset" e-mail: </th>
- </tr>
- <tr>
- <td colspan="4">
- <textarea cols="70" name="Introduction" rows="4" style="width: 99%">
-Welcome! The site ready for your use. Please use the login name and password listed below and contact me if you have any questions.
+**The [[TWikiAdminGroup]] can use this topic to reset any number of user passwords.**
+
+Users whose passwords are reset with this will be sent an e-mail at the address recorded **in their home topic**. The administrator will **not** be told the new passwords.
+
+**Follow these two steps:**
+
+<form action="http://www.dementia.org/twiki/resetpasswd/%WEB%/%TOPIC%" method="post">
+ <div>
+ <div>
+ <h3><a name="Select users"></a> Select users </h3>
+ <p>
+ </p>
+ <p>
+ </p>
+ <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) <p><strong><em>Note</em></strong> if you don't see all the users you expect in this table, make sure their home topic has an attached [[Main/UserForm]]. This is used to identify users. </p>
+ </div>
+ <div>
+ <h3><a name="Write message"></a> Write message </h3>
+ <p><strong>This text will be sent to users in their "reset" e-mail.</strong> The login name and password will be filled in automatically. </p>
+ <textarea cols="70" name="Introduction" rows="4" style="width: 99%">
+Welcome! The site is ready for your use. Please use the login name and password listed below and contact me if you have any questions.
</textarea>
- </td>
- </tr>
- <tr>
- <th colspan="4">
- <p> Click the checkboxes below for the users whose passwords you want to reset: </p>
- </th>
- </tr>
- <tr bgcolor="lightgray">
- <th>WikiName</th>
- <th>Created</th>
- <th>Changed</th>
- <th>Reset</th>
- </tr>
- <tr>
- <td>
- <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) </td>
- </tr>
- <tr>
- <td align="center" colspan="4"><input name="action" type="hidden" value="resetPassword" /> <input type="submit" value="Reset selected passwords now" /></td>
- </tr>
- </table>
- </form>
-</div>
-
-**_Note_** if you don't see all the users you expect in the table below, make sure their home topic has an attached [[UserForm]]. This is used to identify users.
+ </div>
+ <div><input name="action" type="hidden" value="resetPassword" /> <input type="submit" value="Reset selected user passwords and send message" /></div>
+ </div>
+</form>
+
+%BR% %BR%
----
-**_Related Topics:_** [[AdminToolsCategory]]
+%BR% **_Related Topics:_** [[AdminToolsCategory]]
- - Set ALLOWTOPICVIEW = [[TWikiAdminGroup]]
- Set ALLOWTOPICCHANGE = [[TWikiAdminGroup]]
# <a name="Change E-mail Address"></a> Change E-mail Address
-This form is used to change your registered e-mail addresses. Your registered e-mails are used by TWiki for sending you e-mails, include notifications of password changes. The addresses you register via this form are kept secret and will **not** be published anywhere on this site.
+**This form is used to change your registered e-mail addresses. Your registered e-mails are used by TWiki for sending you e-mails, include notifications of password changes. The addresses you register via this form are kept secret and will **not** be published anywhere on this site.**
%X% **_Security Note_**: You really ought to register a valid e-mail address. If TWiki can't find a registered e-mail for you in the secret database, it will look in your user topic for a line like this:
If your old e-mail addresses are all invalid (you can't receive mail there any more) and you have forgotten your password, please contact 0 for help.
-Registered e-mail addresses for currently logged in user (`admin`):
-
-[[TWikiUsers]] has a list of other TWiki users.
-
<form action="http://www.dementia.org/twiki/passwd/%WEB%/%TOPIC%" method="post" name="passwd">
<div>
+ <div><strong>After submitting this form your e-mail will be changed, and you will be returned to this form.</strong></div>
+ <div> Registered e-mail addresses for currently logged in user (<code>admin</code>): </div>
<div>
- <table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <table border="0" cellpadding="0" cellspacing="0" style="border-width: 0px">
<tr>
- <td align="right" style=""> Your [[TWiki/LoginName]]: </td>
- <td style=""><input name="username" size="40" type="text" value="admin" /> <code><font color="red">**</font></code></td>
+ <td style="border-width: 0px"> </td>
+ <td style="border-width: 0px"> Fields marked <code><font color="red">**</font></code> are required </td>
</tr>
<tr>
- <td align="right" style=""> Password: </td>
- <td style=""><input name="oldpassword" size="40" type="password" value="" /> <code><font color="red">**</font></code></td>
+ <td align="right" style="border-width: 0px"> Your [[TWiki/LoginName]]: </td>
+ <td style="border-width: 0px"><input name="username" size="40" type="text" value="admin" /> <code><font color="red">**</font></code></td>
</tr>
<tr>
- <td align="right" style=""> New e-mails (space-separated list): </td>
- <td style=""><input name="email" size="40" type="text" /> <code><font color="red">**</font></code></td>
+ <td align="right" style="border-width: 0px"> Password: </td>
+ <td style="border-width: 0px"><input name="oldpassword" size="40" type="password" value="" /> <code><font color="red">**</font></code></td>
</tr>
<tr>
- <td align="right" style=""> <input name="TopicName" type="hidden" value="%TOPIC%" /><input name="action" type="hidden" value="changePassword" /></td>
- <td style=""><input type="submit" value="Change e-mail address" /> (Fields marked <code><font color="red">**</font></code> are required) </td>
+ <td align="right" style="border-width: 0px"> New e-mails (space-separated list): </td>
+ <td style="border-width: 0px"><input name="email" size="40" type="text" /> <code><font color="red">**</font></code></td>
</tr>
</table>
</div>
+ <div><input name="TopicName" type="hidden" value="%TOPIC%" /> <input name="action" type="hidden" value="changePassword" /> <input type="submit" value="Change e-mail address" /></div>
</div>
</form>
-After submitting this form your e-mail will be changed, and you will be returned to this form.
-
-If you have any questions, please contact 0.
+<div>
+ <ul>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> If you have any questions, please contact 0. </li>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> [[Main/TWikiUsers]] has a list of other TWiki users. </li>
+ </ul>
+</div>
**_Related topics:_** [[ChangePassword]], [[ResetPassword]], [[UserToolsCategory]], [[AdminToolsCategory]]
**_Forgotten your password?_** Use [[ResetPassword]] instead.
-[[TWikiUsers]] has a list of other TWiki users.
-
<form action="http://www.dementia.org/twiki/passwd/TWiki/WebHome" method="post" name="passwd">
<div>
+ <div><strong>After submitting this form your password will be changed.</strong></div>
<div>
- <table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <table border="0" cellpadding="0" cellspacing="0" style="border-width: 0px">
<tr>
- <td align="right" style=""> Your [[TWiki/LoginName]]: </td>
- <td style=""><input name="username" size="40" type="text" value="admin" /> <code><font color="red">**</font></code></td>
+ <td colspan="2" style="border-width: 0px"> Fields marked <code><font color="red">**</font></code> are required </td>
</tr>
<tr>
- <td align="right" style=""> Current password: </td>
- <td style=""><input name="oldpassword" size="40" type="password" value="" /> <code><font color="red">**</font></code></td>
+ <td align="right" style="border-width: 0px"> Your [[TWiki/LoginName]]: </td>
+ <td style="border-width: 0px"><input name="username" size="40" type="text" value="admin" /> <code><font color="red">**</font></code></td>
</tr>
<tr>
- <td align="right" style=""> New password: </td>
- <td style=""><input name="password" size="40" type="password" /> <code><font color="red">**</font></code></td>
+ <td align="right" style="border-width: 0px"> Current password: </td>
+ <td style="border-width: 0px"><input name="oldpassword" size="40" type="password" value="" /> <code><font color="red">**</font></code></td>
</tr>
<tr>
- <td align="right" style=""> Retype new password: </td>
- <td style=""><input name="passwordA" size="40" type="password" /> <code><font color="red">**</font></code></td>
+ <td align="right" style="border-width: 0px"> New password: </td>
+ <td style="border-width: 0px"><input name="password" size="40" type="password" /> <code><font color="red">**</font></code></td>
</tr>
<tr>
- <td align="right" style=""> <input name="TopicName" type="hidden" value="%TOPIC%" /></td>
- <td style=""><input name="action" type="hidden" value="changePassword" /> <input type="submit" value="Change password" /> (Fields marked <code><font color="red">**</font></code> are required) </td>
+ <td align="right" style="border-width: 0px"> Retype new password: </td>
+ <td style="border-width: 0px"><input name="passwordA" size="40" type="password" /> <code><font color="red">**</font></code></td>
</tr>
</table>
</div>
+ <div><input name="TopicName" type="hidden" value="%TOPIC%" /> <input name="action" type="hidden" value="changePassword" /> <input type="submit" value="Change password" /></div>
</div>
</form>
-After submitting this form your password will be changed.
-
-If you have any questions, please contact 0.
+<div>
+ <ul>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> If you have any questions, please contact 0. </li>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> [[Main/TWikiUsers]] has a list of other TWiki users. </li>
+ </ul>
+</div>
**_Related topics:_** [[ResetPassword]], [[ChangeEmailAddress]], [[UserToolsCategory]], [[AdminToolsCategory]]
# <a name="Comment Plugin"></a><a name=" Comment Plugin"></a> Comment Plugin
-This plugin allows users to quickly post comments to a page without an edit/preview/save cycle.
+**Comment Plugin lets users quickly post comments to a page without an edit/preview/save cycle.**
-**WARNING: TWiki-4 only. If you want to use this plugin with an earlier version of TWiki, please see [here](http://twiki.org/cgi-bin/view/Plugins/%TOPIC%?rev=1.57)**
+<div style="background-color: #ffc">WARNING: TWiki-4 only. If you want to use this plugin with an earlier version of TWiki, please use <a href="http://twiki.org/cgi-bin/attach/Plugins/CommentPlugin?filename=CommentPlugin.zip&revInfo=1" target="_top">revision 31 of the zip</a>.</div>
<div>
<ul>
</ul>
</li>
<li><a href="#Customisation"> Customisation</a><ul>
- <li><a href="#The <code>PROMPT</code> template"> The PROMPT template</a></li>
+ <li><a href="#Defining custom templates"> Defining custom templates</a></li>
+ <li><a href="#Customisation example"> Customisation example</a></li>
+ <li><a href="#The <code>PROMPT</code> template"> The PROMPT template</a><ul>
+ <li><a href="#Providing attribute values"> Providing attribute values</a></li>
+ <li><a href="#Special variables"> Special variables</a></li>
+ </ul>
+ </li>
<li><a href="#The <code>OUTPUT</code> template"> The OUTPUT template</a></li>
</ul>
</li>
</ul>
</div>
-# <a name="Features"></a> Features
+## <a name="Features"></a> Features
Inserts an edit box into the page that allows users to type in and save comments. Comments can be made
- signed or unsigned, dated or undated (as defined by a template),
- in other topics, or other positions within the current topic.
-# <a name="Syntax Rules"></a> Syntax Rules
+## <a name="Syntax Rules"></a> Syntax Rules
-Write the command `%COMMENT{` _attributes_ `}%` anywhere in a TWiki topic. %COMMENT% is also legal.
+Write the command `%COMMENT{` _attributes_ `}%` anywhere in a TWiki topic. `%COMMENT%` is also legal.
-<a name="StandardAttrs"></a> The following attributes are [[recognised|Main/WebHome#MoreAttrs]]
+<a name="StandardAttrs"></a> The following attributes are recognized (see also [[additional attributes|Main/WebHome#MoreAttrs]]):
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td> This is the name of the template to use for this comment. Comment templates are defined in a TWiki template - see [[Main/WebHome#TemPlates]], below. If this attribute is not defined, the type is whatever is defined by COMMENTPLUGIN_DEFAULT_TYPE, either in this topic or in your [[Main/WebPreferences]]. By default this is 'below'. </td>
</tr>
<tr>
+ <td><code>default</code></td>
+ <td> Default text to put into the textarea of the prompt. </td>
+ </tr>
+ <tr>
<td><code>target</code></td>
<td> Name of the topic to add the comment to. Defaults to the current topic. </td>
</tr>
</tr>
<tr>
<td><code>noform</code></td>
- <td> Set to "on" to disable the automatic form that encloses your comment block - <em>remember</em> to insert <code><FORM></code> tags yourself! </td>
+ <td> Set to "on" to disable the automatic form that encloses your comment block - <em>remember</em> to insert <code><form></code> tags yourself! See [[Main/CommentPluginExamples#noform]] for an example. </td>
+ </tr>
+ <tr>
+ <td><code>nopost</code></td>
+ <td> Set to "on" to disable insertion of the posted text into the topic. </td>
+ </tr>
+ <tr>
+ <td><code>remove</code></td>
+ <td> Set to "on" to remove the comment prompt after the first time it is clicked. </td>
+ </tr>
+ <tr>
+ <td><code>button</code></td>
+ <td> Button label text; by default <code>Add comment</code>. </td>
</tr>
</table>
-## <a name="Positioning the comment"></a> Positioning the comment
+### <a name="Positioning the comment"></a> Positioning the comment
`%COMMENT` supports several ways to specify _where_ a comment should be inserted in the target topic. This is referred to as the _location_ of the comment.
-### <a name="Location relative to %COMMENT ta"></a> Location relative to `%COMMENT` tag
+#### <a name="Location relative to %COMMENT ta"></a> Location relative to `%COMMENT` tag
The default _location_ is the `%COMMENT` tag itself. For example:
will add comments in the current topic, directly below the `%COMMENT` tag.
-### <a name="Location relative to a TWiki anc"></a> Location relative to a TWiki anchor
+#### <a name="Location relative to a TWiki anc"></a> Location relative to a TWiki anchor
The `target` attribute may specify a web, and may also specify an anchor within the target topic; for example,
This uses a standard TWiki in-topic anchor as the insertion location. See [[TextFormattingRules]] for more about TWiki anchors.
-### <a name="Location relative to an arbitrar"></a> Location relative to an arbitrary text string
+#### <a name="Location relative to an arbitrar"></a> Location relative to an arbitrary text string
Getting more sophisticated, you can also specify a regular expression for the target location using the `location` parameter. The target topic is searched for the regular expression, and the comment inserted relative to the string that the search matched. For example,
If you specify an anchor _and_ a `location`, the anchor will be ignored.
-## <a name="Default templates"></a> Default templates
+### <a name="Default templates"></a> Default templates
Templates are used to define the "comment style" i.e. how comments appear in the page. The default is to add comments in "Blog like" style using bulleted lists, with the most recent comment at the top, but many other styles are available such as tables or Wiki thread mode comments. It is easy to define your own customer styles as well.
<a name="TemPlates"></a>
-# <a name="Customisation"></a> Customisation
+## <a name="Customisation"></a> Customisation
Customisation of the comment plugin requires
-- familiarity with HTML forms,
+- familiarity with HTML forms
- some familiarity with the [[TWiki templating language|TWiki/TWikiTemplates]].
To define a comment type, you have to provide two simple template definitions in the template file; one for the prompt box, and one for the generated output. If we have a template type "mytype", these are named `PROMPT:mytype` and `OUTPUT:mytype` respectively. See `comments.tmpl` in the templates directory for examples.
-The plugin picks up these template definitions from a standard TWiki template file, `templates/comments.tmpl`. This allows different templates to be defined for different TWiki skins. By default, this template includes the topic [[CommentPluginTemplate]], which contains all the shipped standard templates and in turn includes TWiki.UserCommentsTemplate. This allows for several levels of customisation:
+The plugin picks up these template definitions from a standard TWiki template file, `templates/comments.tmpl`. This allows different templates to be defined for different TWiki skins.
+
+### <a name="Defining custom templates"></a> Defining custom templates
+
+By default, `templates/comments.tmpl` includes the topic [[CommentPluginTemplate]], which contains all the shipped standard templates and in turn includes TWiki.UserCommentsTemplate that can include non-standard customisations.
-1. To override all default templates, everywhere, change `comments.tmpl` to include a different topic (this customisation will be lost next time you upgrade, though).
-2. To add site-wide local template customisations, add them to TWiki.UserCommentsTemplate. You can redefine the standard templates here if you want, and your definitions will override the standard definitions.
-3. To override templates on a web-by-web basis, add a topic UserCommentsTemplate to the web (this will replace TWiki.UserCommentsTemplate)
-4. To override templates for a specific skin, add them to TWiki.UserComments<Skin>Template (where <Skin> is the name of the skin with the first letter capitalised, e.g. Pattern)
+This allows for several levels of customisation:
+
+1. To **override all default templates, everywhere**, change `comments.tmpl` to include a different topic (this customisation will be lost next time you upgrade, though).
+2. To add **site-wide local template customisations**, add them to [[UserCommentsTemplate]] (create if it does not exist yet). You can redefine the standard templates here if you want, and your definitions will override the standard definitions.
+3. To override templates on a **web-by-web basis**, add a topic `UserCommentsTemplate` to the web (this will replace TWiki.UserCommentsTemplate)
+4. To override templates **for a specific skin**, add them to TWiki.UserComments<Skin>Template (where <Skin> is the name of the skin with the first letter capitalised, e.g. Pattern)
%X% Templates are picked up by following the [[standard TWiki rules|Main/TWikiTemplates#Finding_Templates]] for locating template files. Note that you can use `%TMPL:INCLUDE` to include other files of templates.
-## <a name="The <code>PROMPT</code> template"></a> The `PROMPT` template
+### <a name="Customisation example"></a> Customisation example
+
+Provide both a `PROMPT` and an `OUTPUT` definition:
+
+ %TMPL:DEF{PROMPT:myComment}%%TMPL:P{promptbox}%%TMPL:END%
+ %TMPL:DEF{OUTPUT:myComment}%%TMPL:P{outputoneliner}%%POS:TOP%
+ %TMPL:END%
+
+Call your custom comment with:
+
+ %COMMENT{type="myComment"}%
+
+### <a name="The <code>PROMPT</code> template"></a> The `PROMPT` template
The `PROMPT` template defines the contents of an HTML form that is used to capture the comment. This form invokes the comment generator when submitted. Parameters to the comment generator are defined using standard HTML input fields, such as `input`, `textarea` and `select`. The user enters values for these parameters, and these are then available when the `OUTPUT` template is expanded, in the form of `%URLPARAM%`s.
-Only the input fields of the form need be defined. The plugin automatically generates the `>form<` and `>:/form<` tags, unless you specify `noform="on"`, in which case you have to provide them yourself. **Note** that you must define a "submit" button if you want the form to work!
+Only the input fields of the form need be defined. The plugin automatically generates the `<form>` and `</form>` tags, unless you specify `noform="on"`, in which case you have to provide them yourself. **Note** that you must define a "submit" button if you want the form to work!
+
+<a name="MoreAttrs"></a>
+
+#### <a name="Providing attribute values"></a> Providing attribute values
-<a name="MoreAttrs"></a> If an attribute is given to the `%COMMENT` tag that is not one of the [[standard attributes|Main/WebHome#StandardAttrs]], then that attribute is taken as the name of a parameter to be expanded in the `PROMPT` template. Expressions in the template of the form `%`_param_`|`_default_`%` (e.g. `%rows|3%`, `%button|Push me%`) are expanded to the values given in the `%COMMENT`. For example, if the `PROMPT` template 'example' contains:
+If an attribute is given to the `%COMMENT` tag that is not one of the [[standard attributes|Main/WebHome#StandardAttrs]], then that attribute is taken as the name of a parameter to be expanded in the `PROMPT` template. Expressions in the template of the form `%`_param_`|`_default_`%` (e.g. `%rows|3%`, `%button|Push me%`) are expanded to the values given in the `%COMMENT`. For example, if the `PROMPT` template 'example' contains:
<textarea rows=%rows|3% cols="%cols|50%" value="%tval|Rubbish%">
<textarea rows="3" cols="75" value="Rubbish">
+#### <a name="Special variables"></a> Special variables
+
As well as support for all the usual TWiki variables in templates, the following special variables are supported in the `PROMPT` definition:
<table border="1" cellpadding="0" cellspacing="0">
<th bgcolor="#99CCCC"><strong> Description </strong></th>
</tr>
<tr>
+ <td><code>%DISABLED%</code></td>
+ <td> Set to 'disabled' when you cannot comment (e.g. in preview mode). </td>
+ </tr>
+ <tr>
<td><code>%MESSAGE%</code></td>
- <td> A helpful generated message, either a lock message or a reminder to refresh. </td>
+ <td> The text specified by <code>default</code>. This may be overridden by a helpful message when the prompt is DISABLED. </td>
</tr>
+</table>
+
+**EXPERT** Note that when a comment is saved, the TWiki `save` script is invoked on the target topic, with a number of parameters provided by the comment form. Normally the [[CommentPlugin]] will provide these fields in the form, but experts can also provide the fields themselves in order to get finer control over what is submitted, or you might want to define your own HTML forms that do comment submission. The parameters that the [[CommentPlugin]] recognises are as follows:
+
+<table border="1" cellpadding="0" cellspacing="0">
<tr>
- <td><code>%DISABLED%</code></td>
- <td> Set to 'disabled' when you cannot comment (e.g. in preview mode). </td>
+ <th bgcolor="#99CCCC"><strong> CGI parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ </tr>
+ <tr>
+ <td><code>comment_action</code></td>
+ <td> Must be <code>save</code> to get the [[Main/CommentPlugin]] to perform </td>
+ </tr>
+ <tr>
+ <td><code>comment_type</code></td>
+ <td> Type of the OUTPUT template </td>
+ </tr>
+ <tr>
+ <td><code>comment_index</code></td>
+ <td> Zero-based index of the %COMMENT in the source topic. Used to place a post relative to an existing %COMMENT. </td>
+ </tr>
+ <tr>
+ <td><code>comment_anchor</code></td>
+ <td> Anchor taken from the <code>target</code> spec </td>
+ </tr>
+ <tr>
+ <td><code>comment_location</code></td>
+ <td> As passed to %COMMENT </td>
+ </tr>
+ <tr>
+ <td><code>comment_nonotify</code></td>
+ <td> As passed to %COMMENT </td>
+ </tr>
+ <tr>
+ <td><code>comment_remove</code></td>
+ <td> Zero-based index of a %COMMENT to remove from the target topic </td>
+ </tr>
+ <tr>
+ <td><code>comment_nopost</code></td>
+ <td> As passed to %COMMENT </td>
</tr>
</table>
-## <a name="The <code>OUTPUT</code> template"></a> The `OUTPUT` template
+Note that `comment_location` overrides `comment_anchor`, and both override `comment_index`. Example, shows an "I Approve" button that adds your approval signature to the end of the topic:
-The `OUTPUT` template defines the format for the text that actually gets embedded into the topic. All the usual TWiki variables are available in the `PROMPT` definition, but note that they get expanded _when the comment is inserted in the text_, so time, date and username will refer to the time and date when the comment was made and the user who made it.
+ <form method="post" action="%SCRIPTURL{save}%/%WEB%/%TOPIC%">
+ <input type="submit" value="I Approve" />
+ <input type="hidden" name="comment_action" value="save" />
+ <input type="hidden" name="comment_type" value="bottom" />
+ <input type="hidden" name="comment" value="I Approve" />
+ </form>
+
+### <a name="The <code>OUTPUT</code> template"></a> The `OUTPUT` template
+
+The `OUTPUT` template defines the format for the text that actually gets embedded into the topic. All the usual TWiki variables are available in the `PROMPT` definition, but note that they get expanded _when the comment is inserted in the text_, so time, date and username will refer to the time and date when the comment was made, and the user who made it.
There are also four position tags that are used to indicate where the comment should be placed, relative to the `location` defined in the `%COMMENT` tag:
All the usual [[TWikiVariables]] that can be used in a topic template can also be used in an `OUTPUT` template. See [[TWikiVariables]] for details.
-# <a name="Settings"></a> Settings
+## <a name="Settings"></a> Settings
+
+Two TWiki Preference variables are recognised by the [[CommentPlugin]]:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Preference </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ </tr>
+ <tr>
+ <td><code>%COMMENTPLUGIN_TEMPLATES%</code></td>
+ <td><code>comments</code></td>
+ <td> Name of template file in the 'templates' directory that contains the comment templates. The default 'comments.tmpl' automatically includes user templates from [[TWiki/CommentPluginTemplate]], which in turn includes [[TWiki/UserCommentsTemplate]]. </td>
+ </tr>
+ <tr>
+ <td><code>%COMMENTPLUGIN_DEFAULT_TYPE%</code></td>
+ <td><code>above</code></td>
+ <td> Default template type </td>
+ </tr>
+</table>
-- Description:
- - Set SHORTDESCRIPTION = Allows users to quickly post comments to a page without an edit/preview/save cycle.
-- Name of file in the 'templates' directory that contains the comment templates. The default 'comments.tmpl' automatically includes user templates from [[CommentsTmpl]]
- - Set TEMPLATES = comments
-- default template type (if not present, defaults to "below")
- - Set DEFAULT\_TYPE = below
+These can be set in TWikiPreferences, in WebPreferences or in individual topics.
-# <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
+## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
- This plugin is pre-installed in most TWiki releases. However if you need to upgrade the plugin for any reason:
- - Download the archive file from the Plugin web (see below)
- - Unpack the archive in your twiki installation directory.
- - You may need to correct file permissions.
- - Run <code>**%TOPIC%\_installer**</code> to automatically check and install other modules that this module depends on. You can also do this step manually. Dependencies: None
- - Visit `configure` in your TWiki installation, and enable the plugin in the \{Plugins\} section.
+- Download the archive file from the Plugin web (see below)
+- Unpack the archive in your twiki installation directory.
+ - You may need to correct file permissions
+- Run <code>**%TOPIC%\_installer**</code> to automatically check and install other modules that this module depends on, and enable the plugin.
+- Alternatively,
+ - Manually resolve the dependencies listed below. None
+- Use `configure` to enable the plugin
-# <a name="Plugin Info"></a> Plugin Info
+## <a name="Plugin Info"></a> Plugin Info
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<tr>
- <td> 11118 </td>
+ <td align="right"> 11358 </td>
+ <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item2802" rel="nofollow">Item2802</a> moved SHORTDESCRIPTION to .pm. Coded up TWiki:main.PankajPant's suggestions as <code>nopost</code> and <code>remove</code>. Added default text for the %COMMENT as requested by TWiki:Main.AndyGlew </td>
+ </tr>
+ <tr>
+ <td align="right"> 11118 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item2322" rel="nofollow">Item2322</a> removed span tag around oneliner bullet output </td>
</tr>
<tr>
- <td> 8788 </td>
+ <td align="right"> 8788 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1465" rel="nofollow">Item1465</a> Item1577: reverted 8433 to fix inclusion of correct user templates </td>
</tr>
<tr>
- <td> 8787 </td>
+ <td align="right"> 8787 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1573" rel="nofollow">Item1573</a> renamed standard templates topic to avoid naming clash on Windows, where filenames are case-insensitive </td>
</tr>
<tr>
- <td> 8433 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1465" rel="nofollow">Item1465</a> Fix 'TWiki.' to '%TWIKIEB%.'; also fixed include 'UserComments' to 'UserCommentsTemplate' (at least that is what the doc suggests) </td>
+ <td align="right"> 8433 </td>
+ <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1465" rel="nofollow">Item1465</a> Fix 'TWiki.' to 'TWiki.'; also fixed include 'UserComments' to 'UserCommentsTemplate' (at least that is what the doc suggests) </td>
</tr>
<tr>
- <td> 7427 </td>
+ <td align="right"> 7427 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item845" rel="nofollow">Item845</a> removed duplicate date in default comments; stick with server time </td>
</tr>
<tr>
- <td> 7251 </td>
+ <td align="right"> 7251 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item810" rel="nofollow">Item810</a> fix for user template inclusion; reorganised templates to make customisation easier </td>
</tr>
<tr>
- <td> 5906 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item143" rel="nofollow">Item143</a> apache warning from comment plugin when [[Main/CommentsTmpl]].txt not foudn </td>
+ <td align="right"> 5906 </td>
+ <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item143" rel="nofollow">Item143</a> apache warning from comment plugin when CommentsTmpl.txt not found </td>
</tr>
<tr>
- <td> 5519 </td>
- <td>[[Main/CommentPluginOnAnchorsBroken]]: incorporated [[Main/JacobEisinger]]'s fix </td>
+ <td align="right"> 5519 </td>
+ <td> CommentPluginOnAnchorsBroken: incorporated JacobEisinger's fix </td>
</tr>
<tr>
- <td> 5518 </td>
- <td>[[Main/CommentPluginOnAnchorsBroken]]: incorporated [[Main/OlivierBerger]]'s fix </td>
+ <td align="right"> 5518 </td>
+ <td> CommentPluginOnAnchorsBroken: incorporated OlivierBerger's fix </td>
</tr>
<tr>
- <td> 5455 </td>
+ <td align="right"> 5455 </td>
<td> On Niels Kodslo's prompting, removed the global recursion prevention that I believe is no longer needed. </td>
</tr>
<tr>
- <td> 5280 </td>
+ <td align="right"> 5280 </td>
<td> Removed templates, and some minor fixes </td>
</tr>
<tr>
- <td> 5250 </td>
+ <td align="right"> 5250 </td>
<td> Removed newlines from prompt box </td>
</tr>
<tr>
- <td> 4902 </td>
+ <td align="right"> 4902 </td>
<td> Changed to use viewauth. Moved templates into user topics. </td>
</tr>
<tr>
- <td> 4901 </td>
+ <td align="right"> 4901 </td>
<td> Added templates in user webs support </td>
</tr>
<tr>
- <td> 4897 </td>
+ <td align="right"> 4897 </td>
<td> Fixes for disabling during preview; re-enabled old legacy parameters </td>
</tr>
<tr>
- <td> 4889 </td>
- <td> Chopped down from [[Main/PeterMasiar]] version, removing several parameters, savecomment script, changing way templates are done. Major rewrite, atcherly. </td>
+ <td align="right"> 4889 </td>
+ <td> Chopped down from PeterMasiar version, removing several parameters, savecomment script, changing way templates are done. Major rewrite, atcherly. </td>
</tr>
<tr>
- <td> 4882 </td>
- <td> Update from [[Main/PeterMasiar]]'s 2.0 version, plus documentation and small code improvements. </td>
+ <td align="right"> 4882 </td>
+ <td> Update from PeterMasiar's 2.0 version, plus documentation and small code improvements. </td>
</tr>
<tr>
- <td> 4745 </td>
- <td> 06Mar 2002 initial commit </td>
+ <td align="right"> 4745 </td>
+ <td> 06 Mar 2002 initial commit </td>
</tr>
<tr>
<td align="right"> Perl Version: </td>
**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
--- TWiki:Main/CrawfordCurrie - 02:16:06 25 October 2006
+-- TWiki:Main/CrawfordCurrie - 05:07:17 16 January 2007
--- /dev/null
+- Top comment output 2 -- [[TWikiContributor]] - 26 Nov 2006
+- Top comment output 1 -- [[TWikiContributor]] - 26 Nov 2006
+
+# <a name="CommentPlugin examples"></a><a name=" _CommentPlugin examples"></a> [[CommentPlugin]] examples
+
+<div>
+ <ul>
+ <li><a href="#!_CommentPlugin templates"> CommentPlugin templates</a><ul>
+ <li><a href="#Default"> Default</a></li>
+ <li><a href="#=top="> top</a></li>
+ <li><a href="#=bottom="> bottom</a></li>
+ <li><a href="#=above="> above</a></li>
+ <li><a href="#=below="> below</a></li>
+ <li><a href="#=bulletabove="> bulletabove</a></li>
+ <li><a href="#=threadmode="> threadmode</a></li>
+ <li><a href="#=belowthreadmode="> belowthreadmode</a><ul>
+ <li><a href="#Main._TWikiContributor - 26 Nov"> TWikiContributor - 26 Nov 2006 - 12:09</a></li>
+ <li><a href="#Main._TWikiContributor - 26 Nov"> TWikiContributor - 26 Nov 2006 - 12:09</a></li>
+ </ul>
+ </li>
+ <li><a href="#=tableprepend="> tableprepend</a></li>
+ <li><a href="#=tableappend="> tableappend</a></li>
+ <li><a href="#=after="> after</a></li>
+ <li><a href="#=action="> action</a></li>
+ <li><a href="#=table="> table</a></li>
+ <li><a href="#=toctalk="> toctalk</a><ul>
+ <li><a href="#26 Nov 2006 - 00:45 Main._TWikiC"> 26 Nov 2006 - 00:45 TWikiContributor: Toctalk output summary 1</a></li>
+ <li><a href="#26 Nov 2006 - 11:09 Main._TWikiC"> 26 Nov 2006 - 11:09 TWikiContributor: Toctalk output summary 2</a></li>
+ </ul>
+ </li>
+ <li><a href="#=bookmark="> bookmark</a></li>
+ <li><a href="#=return="> return</a></li>
+ <li><a href="#=noform="> noform</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="CommentPlugin templates"></a><a name="_CommentPlugin templates"></a> CommentPlugin templates
+
+### <a name="Default"></a> Default
+
+Default comment output 1
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+Default comment output 2
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="above0" method="post" name="above0"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="above" /><input name="comment_index" type="hidden" value="0" /></form>
+
+### <a name="=top="></a> `top`
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="top1" method="post" name="top1"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="top" /><input name="comment_index" type="hidden" value="1" /></form>
+
+### <a name="=bottom="></a> `bottom`
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="bottom2" method="post" name="bottom2"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="bottom" /><input name="comment_index" type="hidden" value="2" /></form>
+
+### <a name="=above="></a> `above`
+
+Above comment output 1
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+Above comment output 2
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="above3" method="post" name="above3"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="above" /><input name="comment_index" type="hidden" value="3" /></form>
+
+### <a name="=below="></a> `below`
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="below4" method="post" name="below4"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="below" /><input name="comment_index" type="hidden" value="4" /></form>
+
+- Below comment output 2 -- [[TWikiContributor]] - 26 Nov 2006
+- Below comment output 1 -- [[TWikiContributor]] - 26 Nov 2006
+
+### <a name="=bulletabove="></a> `bulletabove`
+
+Example with `inputsize="20"`:
+
+- Bullet above comment output 1
+- Bullet above comment output 2
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="bulletabove5" method="post" name="bulletabove5"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="bulletabove" /><input name="comment_index" type="hidden" value="5" /></form>
+
+### <a name="=threadmode="></a> `threadmode`
+
+Threadmode comment output 1
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+Threadmode comment output 2
+
+-- [[TWikiContributor]] - 26 Nov 2006
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="threadmode6" method="post" name="threadmode6"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="threadmode" /><input name="comment_index" type="hidden" value="6" /></form>
+
+### <a name="=belowthreadmode="></a> `belowthreadmode`
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="belowthreadmode7" method="post" name="belowthreadmode7"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="belowthreadmode" /><input name="comment_index" type="hidden" value="7" /></form>
+
+#### <a name="Main._TWikiContributor - 26 Nov"></a><a name="Main._TWikiContributor - 26 Nov "></a> [[TWikiContributor]] - 26 Nov 2006 - 12:09
+
+Belowthreadmode comment output 2
+
+#### <a name="Main._TWikiContributor - 26 Nov"></a><a name="Main._TWikiContributor - 26 Nov "></a> [[TWikiContributor]] - 26 Nov 2006 - 12:09
+
+Belowthreadmode comment output 1
+
+### <a name="=tableprepend="></a> `tableprepend`
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="tableprepend8" method="post" name="tableprepend8"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="tableprepend" /><input name="comment_index" type="hidden" value="8" /></form>
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> Tablepreprend comment output 2 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> 26 Nov 2006 - 11:03 </td>
+ </tr>
+ <tr>
+ <td> Tablepreprend comment output 1 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> 26 Nov 2006 - 11:02 </td>
+ </tr>
+</table>
+
+### <a name="=tableappend="></a> `tableappend`
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> Tableappend comment output 1 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> 26 Nov 2006 - 10:38 </td>
+ </tr>
+ <tr>
+ <td> Tableappend comment output 2 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> 26 Nov 2006 - 10:39 </td>
+ </tr>
+</table>
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="tableappend9" method="post" name="tableappend9"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="tableappend" /><input name="comment_index" type="hidden" value="9" /></form>
+
+### <a name="=after="></a> `after`
+
+- After comment output 1 -- [[TWikiContributor]] - 26 Nov 2006
+- After comment output 2 -- [[TWikiContributor]] - 26 Nov 2006
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="after10" method="post" name="after10"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="after" /><input name="comment_index" type="hidden" value="10" /></form>
+
+### <a name="=action="></a> `action`
+
+(requires TWiki:Plugins/ActionTrackerPlugin)
+
+%ACTION\{ due="1-Dec-2007" creator="Main.TWikiContributor" uid="000001" state="open" created="26-Nov-2006" who="Main.TWikiContributor" \}% <<EOF Action comment output 1 - Created by [[TWikiContributor]], 26 Nov 2006 - 10:58 EOF %ACTION\{ due="1-Jan-2008" creator="Main.TWikiContributor" uid="000003" state="open" created="26-Nov-2006" who="Main.TWikiContributor" \}% <<EOF Action comment output 2 - Created by [[TWikiContributor]], 26 Nov 2006 - 10:58 EOF
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="action11" method="post" name="action11"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="action" /><input name="comment_index" type="hidden" value="11" /></form>
+
+### <a name="=table="></a> `table`
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> 1 Dec 2007 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> Athens </td>
+ </tr>
+ <tr>
+ <td> 1 Jan 2008 </td>
+ <td>[[Main/TWikiContributor]]</td>
+ <td> Beijing </td>
+ </tr>
+</table>
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="table12" method="post" name="table12"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="table" /><input name="comment_index" type="hidden" value="12" /></form>
+
+### <a name="=toctalk="></a> `toctalk`
+
+#### <a name="26 Nov 2006 - 00:45 Main._TWikiC"></a> 26 Nov 2006 - 00:45 [[TWikiContributor]]: Toctalk output summary 1
+
+Toctalk output message 1
+
+#### <a name="26 Nov 2006 - 11:09 Main._TWikiC"></a> 26 Nov 2006 - 11:09 [[TWikiContributor]]: Toctalk output summary 2
+
+Toctalk output message 2
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="toctalk13" method="post" name="toctalk13"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="toctalk" /><input name="comment_index" type="hidden" value="13" /></form>
+
+### <a name="=bookmark="></a> `bookmark`
+
+- [Bookmark output link label](http://twiki.org)
+- [TWiki](http://twiki.org) - Bookmark output comment
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="bookmark14" method="post" name="bookmark14"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="bookmark" /><input name="comment_index" type="hidden" value="14" /></form>
+
+### <a name="=return="></a> `return`
+
+Post to a different topic and return to here. In this example comments are written to [[%COMMENT_TOPIC%|Main/COMMENT_TOPIC]]. %RED% Available with TWiki 4.1. %ENDCOLOR%
+
+_Comments:_
+
+>
+
+----
+
+<form action="http://www.dementia.org/twiki/save/Main/%COMMENT_TOPIC%" enctype="multipart/form-data" id="return15" method="post" name="return15"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="return" /><input name="comment_index" type="hidden" value="15" /></form>
+
+%BR%
+
+### <a name="=noform="></a> `noform`
+
+Example of a custom form to save a comment to a new topic. When the topic is created the parent will be our Sandbox [[example topic|Sandbox/CommentPluginExampleComments]].
+
+<form action="http://www.dementia.org/twiki/save/Sandbox/" enctype="application/x-www-form-urlencoded" id="noformcomment0" method="post" name="noformcomment0"><input name="topicparent" type="hidden" value="CommentPluginExampleComments" /> <input name="comment_action" type="hidden" value="save" /> <input name="nonwikiword" type="hidden" value="off" /> <input name="onlywikiname" type="hidden" value="on" /><div>
+ <div><strong>New topic name:</strong> %BR% <input %disabled%="%DISABLED%" id="topic" name="topic" size="40" type="text" value="" /> <span>Enter a WikiWord topic name</span></div>
+ <div><strong>Topic text:</strong> %BR% <input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="above" /><input name="comment_index" type="hidden" value="16" /></div>
+ </div>
+</form>
+
+----
+
+- Bottom comment output 1 -- [[TWikiContributor]] - 26 Nov 2006
+- Bottom comment output 2 -- [[TWikiContributor]] - 26 Nov 2006
-Templates for [[CommentPlugin]] - See [[CommentPlugin#Customisation]] for help.
+# <a name="Templates for _CommentPlugin"></a><a name=" Templates for _CommentPlugin"></a> Templates for [[CommentPlugin]]
+
+See [[CommentPlugin: Customisation|TWiki/CommentPlugin#Customisation]] for help.
While this topic can be viewed as a TWiki topic, it is used by the [[CommentPlugin]] as a template file - see [[TWikiTemplates]]. The important content in here is in the verbatim blocks. The rest of the topic is just comments.
-**WARNING: THIS FILE WILL BE OVERWRITTEN WHEN YOU UPGRADE THE COMMENT PLUGIN**
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See [[CommentPluginExamples]] to view rendered templates
+
+<div style="background-color: #ffc">WARNING: THIS FILE WILL BE OVERWRITTEN WHEN YOU UPGRADE THE COMMENT PLUGIN</div>
-Put your local templates into [[UserCommentsTemplate]]. **LOCAL TEMPLATES WILL OVERRIDE TEMPLATES DEFINED IN THIS FILE**
+Put your local templates into [[UserCommentsTemplate]] (create if it does not exist yet). **Local templates defined in that topic will override templates defined below.**
-<div>
- <ul>
+<div><span>Table of Contents</span><ul>
<li><a href="#Template definitions"> Template definitions</a><ul>
<li><a href="#Templates used in rest of file"> Templates used in rest of file</a></li>
<li><a href="#User templates"> User templates</a><ul>
<li><a href="#top"> top</a></li>
<li><a href="#bottom"> bottom</a></li>
<li><a href="#above"> above</a></li>
+ <li><a href="#bulletabove"> bulletabove</a></li>
<li><a href="#threadmode"> threadmode</a></li>
+ <li><a href="#belowthreadmode"> belowthreadmode</a></li>
<li><a href="#below"> below</a></li>
<li><a href="#tableprepend"> tableprepend</a></li>
<li><a href="#tableappend"> tableappend</a></li>
<li><a href="#table"> table</a></li>
<li><a href="#toctalk"> toctalk</a></li>
<li><a href="#bookmark"> bookmark</a></li>
+ <li><a href="#return"> return</a></li>
</ul>
</li>
</ul>
</li>
- <li><a href="#Include _UserCommentsTemplate"> Include UserCommentsTemplate</a></li>
+ <li><a href="#Include _UserComments"> Include UserComments</a></li>
</ul>
</div>
-# <a name="Template definitions"></a> Template definitions
+## <a name="Template definitions"></a> Template definitions
-## <a name="Templates used in rest of file"></a> Templates used in rest of file
+### <a name="Templates used in rest of file"></a> Templates used in rest of file
Generic prompt box used by other templates
- %TMPL:DEF{promptbox}%
- <div class="commentPlugin commentPluginPromptBox">
- <table><tr valign="middle"><td><textarea %DISABLED% rows="%rows|3%" cols="%cols|70%" name="comment" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea></td><td><input %DISABLED% type="submit" value="%button|Add comment%" /></td></tr></table>
- </div><!--/commentPlugin-->
- %TMPL:END%
+ %TMPL:DEF{promptbox}%<div class="commentPlugin commentPluginPromptBox"><table border="0" cellpadding="0" cellspacing="0"><tr valign="middle"><td><textarea %DISABLED% rows="%rows|3%" cols="%cols|70%" name="comment" class="twikiInputField" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea></td><td> <input %DISABLED% type="submit" value="%button|Add comment%" class="twikiButton" /></td></tr></table></div><!--/commentPlugin-->%TMPL:END%
Short comment, signed and dated
- %TMPL:DEF{outputoneliner}% * %URLPARAM{"comment"}% -- %WIKIUSERNAME% - %SERVERTIME%%TMPL:END%
+ %TMPL:DEF{outputoneliner}% * %URLPARAM{"comment"}% -- %WIKIUSERNAME% - %GMTIME{"$day $month $year"}%%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[Default|Main/CommentPluginExamples#Default]]
-## <a name="User templates"></a> User templates
+### <a name="User templates"></a> User templates
-### <a name="top"></a> top
+#### <a name="top"></a> top
Comments, signed and dated, added at top of file
%TMPL:DEF{OUTPUT:top}%%TMPL:P{outputoneliner}%%POS:TOP%
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[top|Main/CommentPluginExamples#top]]
-### <a name="bottom"></a> bottom
+#### <a name="bottom"></a> bottom
Comments, signed and dated, added at end of file
%TMPL:DEF{OUTPUT:bottom}%%POS:BOTTOM%%TMPL:P{outputoneliner}%%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[bottom|Main/CommentPluginExamples#bottom]]
-### <a name="above"></a> above
+#### <a name="above"></a> above
Comments, signed and dated, added immediately before anchor
%TMPL:DEF{PROMPT:above}%%TMPL:P{promptbox}%%TMPL:END%
- %TMPL:DEF{OUTPUT:above}%%POS:BEFORE%%TMPL:P{outputoneliner}%
+ %TMPL:DEF{OUTPUT:above}%%POS:BEFORE%%TMPL:P{OUTPUT:threadmode}%%TMPL:END%
+
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[above|Main/CommentPluginExamples#above]]
+
+#### <a name="bulletabove"></a> bulletabove
+
+Bullet item added immediately before anchor. The input field width is passed with variable `inputsize`, for example:
+
+> %COMMENT{type="bulletabove" inputsize="20"}%
+
+ %TMPL:DEF{PROMPT:bulletabove}%<input class="twikiInputField" name="bullet_above_item" id="bullet_above_item" type="text" size="%inputsize|40" value="%URLPARAM{"bullet_above_item"}%" /> <input %DISABLED% type="submit" value="%button|Add item%" class="twikiButton" />%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:bulletabove}% * %URLPARAM{"bullet_above_item"}%%POS:BEFORE%
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[bulletabove|Main/CommentPluginExamples#bulletabove]]
-### <a name="threadmode"></a> threadmode
+#### <a name="threadmode"></a> threadmode
Wiki thread mode comment, signed and dated
-- %WIKIUSERNAME% - %DATE%
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[threadmode|Main/CommentPluginExamples#threadmode]]
+
+#### <a name="belowthreadmode"></a> belowthreadmode
+
+Comments, signed and dated, added recurse after comment box.
+
+ %TMPL:DEF{PROMPT:belowthreadmode}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:belowthreadmode}%%POS:AFTER%
+ ---++++ %WIKIUSERNAME% - %SERVERTIME%
+
+ %URLPARAM{"comment"}%
+
+ %TMPL:END%
+
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[belowthreadmode|Main/CommentPluginExamples#belowthreadmode]]
-### <a name="below"></a> below
+#### <a name="below"></a> below
Comments, signed and dated, added immediately below anchor
%TMPL:DEF{OUTPUT:below}%%POS:AFTER%%TMPL:P{outputoneliner}%
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[below|Main/CommentPluginExamples#below]]
-### <a name="tableprepend"></a> tableprepend
+#### <a name="tableprepend"></a> tableprepend
Comments, signed and dated, added at top of table below the anchor/location/COMMENT
%TMPL:DEF{PROMPT:tableprepend}%%TMPL:P{promptbox}%%TMPL:END%
- %TMPL:DEF{OUTPUT:tableprepend}%%POS:AFTER%| %URLPARAM{"comment" newline="<br />"}% </td><td> %WIKIUSERNAME% </td><td> %SERVERTIME% |
+ %TMPL:DEF{OUTPUT:tableprepend}%%POS:AFTER%| %URLPARAM{"comment" newline="<br />"}% | %WIKIUSERNAME% | %SERVERTIME% |
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[tableprepend|Main/CommentPluginExamples#tableprepend]]
-### <a name="tableappend"></a> tableappend
+#### <a name="tableappend"></a> tableappend
Comments, signed and dated, added at end of table above the anchor/location/COMMENT
%TMPL:DEF{OUTPUT:tableappend}%%POS:BEFORE%| %URLPARAM{"comment" newline="<br />"}% | %WIKIUSERNAME% | %SERVERTIME% |
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[tableappend|Main/CommentPluginExamples#tableappend]]
-### <a name="after: Add before the comment bo"></a> after: Add before the comment box, after the last comment
+#### <a name="after: Add before the comment bo"></a> after: Add before the comment box, after the last comment
%TMPL:DEF{PROMPT:after}%%TMPL:P{promptbox}%%TMPL:END%
- %TMPL:DEF{OUTPUT:after}%%NOP%
- %TMPL:P{outputoneliner}% %POS:BEFORE%%TMPL:END%
+ %TMPL:DEF{OUTPUT:after}%%NOP%%TMPL:P{outputoneliner}%
+ %POS:BEFORE%%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[after|Main/CommentPluginExamples#after]]
-### <a name="action"></a> action
+#### <a name="action"></a> action
-Action added to action table directly above comment box
+Action added to action table directly above comment box (requires TWiki:Plugins/ActionTrackerPlugin)
%TMPL:DEF{PROMPT:action}%
- <table>
- <tr>
- <td align="right">Action for (%TWIKIWEB%.WikiName):</td>
- <td><input name="who" type="text" size="50" value="%URLPARAM{"who"}%" /></td>
- </tr>
- <tr>
- <td align="right">Due date:</td>
- <td>
- <input name="due" id="idDue" type="text" size="30" value="%URLPARAM{"due"}%" />
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <textarea %DISABLED% rows="5" cols="120" name="comment" wrap="soft"></textarea>
- </td>
- </tr>
- <tr>
- <td colspan=2 align=middle><input %DISABLED% type="submit" value="Add action" /></td>
- </tr>
- </table>
- %TMPL:END%
-
- %TMPL:DEF{OUTPUT:action}%%POS:BEFORE%%AC%NOP%TION{who="%URLPARAM{"who"}%" due="%URLPARAM{"due"}%"}% %URLPARAM{"comment" newline="<br />"}%<br />- Created by %WIKIUSERNAME%, %SERVERTIME%
- %TMPL:END%
-
-----
-
-### <a name="table"></a> table
+
+ %TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
+ | <label for="action_who">Action for</label>| <input class="twikiInputField" name="action_who" id="action_who" type="text" size="50" value="%URLPARAM{"who"}%" /> |
+ | <label for="action_due">Due date</label>| <input class="twikiInputField" name="action_due" id="action_due" type="text" size="30" value="%URLPARAM{"due"}%" /> |
+ | <label for="action_comment">Comment</label>| <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="action_comment" id="action_comment" class="twikiInputField" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> |
+ || <input %DISABLED% type="submit" class="twikiButton" value="Add action" /> |
+ %TMPL:END%
+
+ %TMPL:DEF{OUTPUT:action}%%POS:BEFORE%%AC%NOP%TION{who="%URLPARAM{"action_who"}%" due="%URLPARAM{"action_due"}%"}% %URLPARAM{"action_comment" newline="<br />"}%<br />- Created by %WIKIUSERNAME%, %SERVERTIME%
+ %TMPL:END%
+
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[action|Main/CommentPluginExamples#action]]
+
+#### <a name="table"></a> table
Tablerows adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:table}%
- <hr width="60%" /> Date: <input %DISABLED% type="text" size="40" name="comment_date" /> <br /> City: <input %DISABLED% type="text" size="40" name="comment_city" value="" /> <input %DISABLED% type="submit" value="%button|Add%" /> entry <hr width="90%" />
+ %TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
+ | <label for="comment_date">Date</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_date" id="comment_date" /> |
+ | <label for="comment_city">City</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_city" id="comment_city" value="" /> |
+ || <input %DISABLED% type="submit" class="twikiButton" value="%button|Add entry%" /> |
%TMPL:END%
- %TMPL:DEF{OUTPUT:table}%
- %POS:BEFORE%| %URLPARAM{"comment_date"}% | %WIKIUSERNAME% | %URLPARAM{"comment_city" }% |
+ %TMPL:DEF{OUTPUT:table}%%POS:BEFORE%| %URLPARAM{"comment_date"}% | %WIKIUSERNAME% | %URLPARAM{"comment_city" }% |
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[table|Main/CommentPluginExamples#table]]
-### <a name="toctalk"></a> toctalk
+#### <a name="toctalk"></a> toctalk
Talk using TOC adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:toctalk}%
- <hr width="60%" /> Summary: <input %DISABLED% type="text" size="40" name="comment_summary" /> <br /> <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="comment_text" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> <br /> <input %DISABLED% type="submit" value="%button|Add%" /> <hr width="90%" />
+ %TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
+ | <label for="comment_summary">Summary</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_summary" id="comment_summary" /> |
+ | <label for="toctalk_comment_text">Message</label>| <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="toctalk_comment_text" id="toctalk_comment_text" class="twikiInputField" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> |
+ || <input %DISABLED% type="submit" value="%button|Add%" class="twikiButton" /> |
%TMPL:END%
%TMPL:DEF{OUTPUT:toctalk}%
- %POS:BEFORE%---+++ %SERVERTIME% %WIKIUSERNAME%: %URLPARAM{"comment_summary"}%
- %POS:BEFORE%%URLPARAM{"comment_text" }%
+ %POS:BEFORE%---++++ %SERVERTIME% %WIKIUSERNAME%: %URLPARAM{"comment_summary"}%
+ %POS:BEFORE%%URLPARAM{"toctalk_comment_text" }%
%POS:BEFORE%
%TMPL:END%
-----
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[toctalk|Main/CommentPluginExamples#toctalk]]
-### <a name="bookmark"></a> bookmark
+#### <a name="bookmark"></a> bookmark
Talk using TOC adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:bookmark}%
- <hr width="60%" /> URL: <input %DISABLED% type="text" size="40" name="comment_url" value="http://" /> <br /> Link: <input %DISABLED% type="text" size="40" name="comment_link" /> <br /> Text: <input %DISABLED% type="text" size="40" name="comment_text" value="%MESSAGE%" /> <input %DISABLED% type="submit" value="%button|Add%" /> bookmark <hr width="90%" />
+ %TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
+ | <label for="comment_url">Url</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_url" id="comment_url" value="http://" /> |
+ | <label for="comment_link">Link label</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_link" id="comment_link" /> |
+ | <label for="bookmark_comment_text">Comment</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="bookmark_comment_text" id="bookmark_comment_text" value="%MESSAGE%" /> |
+ || <input %DISABLED% type="submit" value="%button|Add bookmark%" class="twikiButton" /> |
%TMPL:END%
- %TMPL:DEF{OUTPUT:bookmark}%
- %POS:BEFORE% * [[%URLPARAM{"comment_url"}%][%URLPARAM{"comment_link"}%]] - %URLPARAM{"comment_text" }%
+ %TMPL:DEF{OUTPUT:bookmark}%%POS:BEFORE% * [[%URLPARAM{"comment_url" encode="entity"}%][%URLPARAM{"comment_link" encode="entity"}%]] %IF{" '%URLPARAM{"bookmark_comment_text" encode="entity"}%' = '' " then="" else="- "}%%URLPARAM{"bookmark_comment_text" encode="entity"}%
%TMPL:END%
-# <a name="Include _UserCommentsTemplate"></a> Include UserCommentsTemplate
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[bookmark|Main/CommentPluginExamples#bookmark]]
+
+#### <a name="return"></a> return
+
+Post to a different topic and return to here. The comment `target` is set in the `PROMPT`. In the form below the `redirectto` is set to the current (including) topic. %RED% Available with TWiki 4.1. %ENDCOLOR%
+
+ %TMPL:DEF{returnpromptbox}%
+ <input type="hidden" name="redirectto" value="%BASEWEB%.%BASETOPIC%" />
+ %TMPL:P{promptbox}%
+ %TMPL:END%
+
+ %TMPL:DEF{PROMPT:return}%%TMPL:P{returnpromptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:return}%%POS:BEFORE%%TMPL:P{OUTPUT:threadmode}%%TMPL:END%
+
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> See rendered template [[return|Main/CommentPluginExamples#return]]
+
+## <a name="Include _UserComments"></a> Include UserComments
-Including [[UserCommentsTemplate]]:
+Including [[UserComments]]:
%TMPL:INCLUDE\{"UserComments"\}%
</tr>
<tr>
<td><code>format</code></td>
- <td> The format of one column when editing the table. A cell can be a text input field, or any of these edit field types:%BR% • Text input field (1 line):%BR% <code>| text, <size>, <initial value> |</code> %BR% • Textarea input field:%BR% <code>| textarea, <rows>x<columns>, <initial value> |</code> %BR% • Drop down box: %BR% <code>| select, <size>, <option 1>, <option 2>, etc |</code> %BR% • Radio buttons: %BR% <code>| radio, <size*>, <option 1>, <option 2>, etc |</code> %BR% <code>*</code> size indicates the number of buttons per line in edit mode %BR% • Checkboxes: %BR% <code>| checkbox, <size*>, <option 1>, <option 2>, etc |</code> %BR% <code>*</code> size indicates the number of checkboxes per line in edit mode %BR% • Fixed label: %BR% <code>| label, 0, <label text> |</code> %BR% • Row number: %BR% <code>| row, <offset> |</code> %BR% • Date: %BR% <code>| date, <size>, <initial value>, <DHTML date format> |</code> %BR% <code>*</code> see <a href="http://www.dementia.org/twiki//view/TWiki/JSCalendarContrib/doc/html/reference.html" target="_top">Mishoo documentation</a> for more infos about the DHTML date format </td>
+ <td> The format of one column when editing the table. A cell can be a text input field, or any of these edit field types:%BR% • Text input field (1 line):%BR% <code>| text, <size>, <initial value> |</code> %BR% • Textarea input field:%BR% <code>| textarea, <rows>x<columns>, <initial value> |</code> %BR% • Drop down box: %BR% <code>| select, <size>, <option 1>, <option 2>, etc* |</code> %BR% <code>*</code> only one item can be selected %BR% • Radio buttons: %BR% <code>| radio, <size*>, <option 1>, <option 2>, etc |</code> %BR% <code>*</code> size indicates the number of buttons per line in edit mode %BR% • Checkboxes: %BR% <code>| checkbox, <size*>, <option 1>, <option 2>, etc |</code> %BR% <code>*</code> size indicates the number of checkboxes per line in edit mode %BR% • Fixed label: %BR% <code>| label, 0, <label text> |</code> %BR% • Row number: %BR% <code>| row, <offset> |</code> %BR% • Date: %BR% <code>| date, <size>, <initial value>, <DHTML date format> |</code> %BR% <code>*</code> see <a href="http://www.dementia.org/twiki//view/TWiki/JSCalendarContrib/doc/html/reference.html" target="_top">Mishoo documentation</a> for more infos about the DHTML date format </td>
<td><code>"text, 16"</code> %BR% for all cells </td>
</tr>
<tr>
</tr>
<tr>
<td align="right"> Plugin Version: </td>
- <td> 11706 </td>
+ <td> 12327 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
(none)
-## <a name="Plugin Settings"></a> Plugin Settings
-
-Plugin settings are stored as preferences variables. To reference a plugin setting write <code>**%<plugin>\_<setting>%**</code>, i.e. <code>**%EMPTYPLUGIN\_SHORTDESCRIPTION%**</code>
-
-- One line description, is shown in the [[TextFormattingRules]] topic:
- - Set SHORTDESCRIPTION = Empty Plugin used as a template for new Plugins
-
-- Your own setting, for example:
- - Set EXAMPLE = got it!
-
-- Debug plugin: (See output in `data/debug.txt`)
- - Set DEBUG = 0
-
## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
- This plugin is preinstalled, you do not need to install it.
<li><a href="#Deleting Attachments"> Deleting Attachments</a></li>
<li><a href="#Linking to Attached Files"> Linking to Attached Files</a></li>
<li><a href="#File Attachment Contents Table"> File Attachment Contents Table</a></li>
- <li><a href="#File Attachment Controls"> File Attachment Controls</a></li>
+ <li><a href="#File Attachment Controls"> File Attachment Controls</a><ul>
+ <li><a href="#Attach new file"> Attach new file </a></li>
+ <li><a href="#Comment"> Comment </a></li>
+ <li><a href="#Properties"> Properties </a></li>
+ </ul>
+ </li>
<li><a href="#Known Issues"> Known Issues</a></li>
</ul>
</li>
Files attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click **Attach**.
-> <table border="1" cellpadding="1" cellspacing="0">
-> <tr>
-> <th align="center" bgcolor="#99CCCC"><strong>I</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Attachment</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Action</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Size</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Date</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Who</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Comment</strong></th>
-> </tr>
-> <tr>
-> <td><img align="top" alt="txt" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/txt.gif" width="16" /></td>
-> <td><a href="http://www.dementia.org/twiki/viewfile/%WEB%/%TOPIC%?rev=&filename=Sample.txt">Sample.txt</a></td>
-> <td><a href="http://www.dementia.org/twiki/attach/%WEB%/%TOPIC%?filename=Sample.txt&revInfo=1">manage</a></td>
-> <td align="right"> 0.1 K </td>
-> <td> 22 Jul 2000 - 19:37 </td>
-> <td><a href="UploadingUser">UploadingUser</a></td>
-> <td> Just a sample </td>
-> </tr>
-> <tr>
-> <td><img align="top" alt="bmp" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/bmp.gif" width="16" /></td>
-> <td><a href="http://www.dementia.org/twiki/viewfile/%WEB%/%TOPIC%?rev=&filename=Smile.gif">Smile.gif</a></td>
-> <td><a href="http://www.dementia.org/twiki/attach/%WEB%/%TOPIC%?filename=Smile.gif&revInfo=1">manage</a></td>
-> <td align="right"> 0.1 K </td>
-> <td> 22 Jul 2000 - 19:38 </td>
-> <td><a href="UploadingUser">UploadingUser</a></td>
-> <td> Smiley face </td>
-> </tr>
-> </table>
+<div>
+ <table border="1" cellpadding="0" cellspacing="0" id="twikiAttachmentsTable" rules="rows" style="border-width: 1px" summary="Topic attachments">
+ <caption>Topic attachments</caption>
+ <tr>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=0;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">I</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=1;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Attachment</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=2;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Action</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=3;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Size</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=4;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Date</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=5;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Who</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=6;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Comment</font></a></th>
+ </tr>
+ <tr>
+ <td align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: top" valign="top"><img align="top" alt="txt" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/txt.gif" width="16" /><span>txt</span></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/viewfile/TWiki/FileAttachment?rev=;filename=Sample.txt">Sample.txt</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/attach/TWiki/FileAttachment?filename=Sample.txt&revInfo=1" rel="nofollow" title="change, update, previous revisions, move, delete...">manage</a></td>
+ <td align="right" bgcolor="#ffffff" style="text-align: right; vertical-align: top" valign="top"> 0.1 K </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> 22 Jul 2000 - 19:37 </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="TWikiContributor">TWikiContributor</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> Just a sample </td>
+ </tr>
+ <tr>
+ <td align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: top" valign="top"><img align="top" alt="gif" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/gif.gif" width="16" /><span>gif</span></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/viewfile/TWiki/FileAttachment?rev=;filename=Smile.gif">Smile.gif</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/attach/TWiki/FileAttachment?filename=Smile.gif&revInfo=1" rel="nofollow" title="change, update, previous revisions, move, delete...">manage</a></td>
+ <td align="right" bgcolor="#ffffff" style="text-align: right; vertical-align: top" valign="top"> 0.1 K </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> 22 Jul 2000 - 19:38 </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="TWikiContributor">TWikiContributor</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> Smiley face </td>
+ </tr>
+ </table>
+</div>
## <a name="File Attachment Controls"></a> File Attachment Controls
Clicking on a <code>**Manage**</code> link takes you to a new page that looks a bit like this (depending on what [[skin|Main/TWikiSkins]] is selected):
-> <form>
-> <table border="1" cellpadding="20" cellspacing="0">
-> <tr>
-> <td>
-> <h2>Update attachment <code>Sample.txt</code></h2>
-> <div>
-> <table border="1" cellpadding="1" cellspacing="0">
-> <tr>
-> <th align="center" bgcolor="#99CCCC"><strong>Version</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Action</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Date</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Who</strong></th>
-> <th align="center" bgcolor="#99CCCC"><strong>Comment</strong></th>
-> </tr>
-> <tr>
-> <td> 1 </td>
-> <td><a href="http://www.dementia.org/twiki/viewfile/%WEB%/%TOPIC%?rev=1&filename=Sample.txt">view</a></td>
-> <td> 22 Jul 2000 - 19:37 </td>
-> <td><a href="UploadingUser">UploadingUser</a></td>
-> <td> Just a sample </td>
-> </tr>
-> </table>
-> </div>
-> <p>
-> </p>
-> <div>
-> <table>
-> <tr>
-> <th>Previous upload</th>
-> <td><code>Sample.txt</code> <span>(<a href="http://visiblearea.com/devtwiki/bin/view/Main/TWikiContributor">TWikiContributor</a>)</span></td>
-> <td>Select a new local file to update this attachment.</td>
-> </tr>
-> <tr>
-> <th> Local file </th>
-> <td><input name="filename" type="hidden" value="Sample.txt" /><input name="filepath" size="30" type="file" value="Sample.txt" /></td>
-> <td> Upload up to 10000 KB. </td>
-> </tr>
-> <tr>
-> <th> Comment </th>
-> <td><input maxlength="256" name="filecomment" size="50" type="text" value="Just a sample" /></td>
-> <td>
-> </td>
-> </tr>
-> <tr>
-> <th> Link </th>
-> <td><input id="createlink" name="createlink" type="checkbox" /><label for="createlink">Create a link to the attached file</label>
-> </td>
-> <td> Images will be displayed, for other attachments a link will be created. </td>
-> </tr>
-> <tr>
-> <th> Hide file </th>
-> <td><input id="hidefile" name="hidefile" type="checkbox" /><label for="hidefile">Do not show attachment in table</label>
-> </td>
-> <td>Attachments will not be shown in topic view page.</td>
-> </tr>
-> <tr>
-> <th>
-> </th>
-> <td colspan="2"><input name="changeproperties" type="submit" value="Change properties only" /></td>
-> </tr>
-> </table>
-> </div>
-> </td>
-> </tr>
-> </table>
-> </form>
+<div>
+ <div>
+ <h3><a name="Attach new file"></a><a name=" Attach new file"></a> <a name="Attach_new_file"></a> Attach new file </h3>
+ <p> Select a new local file to update attachment <code>Sample.txt</code> <span>(<a href="#">UploadingUser</a>)</span><br />Upload up to 10000 KB. </p>
+ <p>
+ </p><input name="filepath" size="30" type="file" value="Sample.txt" /><input name="filename" type="hidden" value="Sample.txt" /></div>
+ <div>
+ <h3><a name="Comment"></a><a name=" Comment"></a> <a name="Comment"></a> Comment </h3>
+ <p> Describe the file so other people know what it is. </p>
+ <p>
+ </p><input maxlength="256" name="filecomment" size="50" type="text" value="Just a sample" /></div>
+ <div>
+ <h3><a name="Properties"></a><a name=" Properties"></a> <a name="Properties"></a> Properties </h3>
+ <p>
+ </p><input id="createlink" name="createlink" type="checkbox" /><label for="createlink">Create a link to the attached file</label><span>Images will be displayed, for other attachments a link will be created.</span><p>
+ </p><input id="hidefile" name="hidefile" type="checkbox" /><label for="hidefile">Do not show attachment in table</label><span>Attachments will not be shown in topic view page.</span></div>
+ <div><input name="changeproperties" type="submit" value="Change comment and properties only" /></div>
+</div>
+
+<a name="topic-actions"> </a>
+
+<div>
+ <div style="margin-top: -1px"><span> <input type="submit" value="Upload file" /> or <a accesskey="c" href="#" rel="nofollow" title="Back to topic"><span class="twikiAccessKey">C</span>ancel</a></span></div>
+</div>
- The first table is a list of all attachments, including their attributes. An `h` means the attachment is hidden, it isn't listed when viewing a topic.
<div>
<ul>
<li><a href="#TWiki Formatted Search"> TWiki Formatted Search</a><ul>
- <li><a href="#Syntax"> Syntax</a></li>
+ <li><a href="#Syntax"> Syntax</a><ul>
+ <li><a href="#1. <code>header="..."</code> parameter"> 1. header="..." parameter</a></li>
+ <li><a href="#2. <code>format="..."</code> parameter"> 2. format="..." parameter</a></li>
+ </ul>
+ </li>
<li><a href="#Examples"> Examples</a><ul>
<li><a href="#Bullet list showing topic name a"> Bullet list showing topic name and summary</a></li>
</ul>
Two parameters can be used to specify a customized search result:
-1. `header="..."` parameter
+### <a name="1. <code>header="..."</code> parameter"></a> 1. `header="..."` parameter
Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. <br /> Example: `header="| *Topic:* | *Summary:* |"`
-2. `format="..."` parameter
+Variables that can be used in the header string:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Name: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Expands To: </strong></th>
+ </tr>
+ <tr>
+ <td><code>$web</code></td>
+ <td> Name of the web </td>
+ </tr>
+ <tr>
+ <td><code>$n</code> or <code>$n()</code></td>
+ <td> New line. Use <code>$n()</code> if followed by alphanumeric character, e.g. write <code>Foo$n()Bar</code> instead of <code>Foo$nBar</code></td>
+ </tr>
+ <tr>
+ <td><code>$nop</code> or <code>$nop()</code></td>
+ <td> Is a "no operation". This variable gets removed; useful for nested search </td>
+ </tr>
+ <tr>
+ <td><code>$quot</code></td>
+ <td> Double quote (<code>"</code>). Alternatively write <code>\"</code> to escape it </td>
+ </tr>
+ <tr>
+ <td><code>$percnt</code></td>
+ <td> Percent sign (<code>%</code>) </td>
+ </tr>
+ <tr>
+ <td><code>$dollar</code></td>
+ <td> Dollar sign (<code>$</code>) </td>
+ </tr>
+</table>
+
+### <a name="2. <code>format="..."</code> parameter"></a> 2. `format="..."` parameter
Use the format parameter to specify the format of one search hit. <br /> Example: `format="| $topic | $summary |"`
</tr>
<tr>
<td><code>$date</code></td>
- <td> Time stamp of last topic update, e.g. <code>29 Jun 2010 - 15:58</code></td>
+ <td> Time stamp of last topic update, e.g. <code>29 Jun 2010 - 16:02</code></td>
</tr>
<tr>
<td><code>$isodate</code></td>
- <td> Time stamp of last topic update, e.g. <code>2010-06-29T15:58Z</code></td>
+ <td> Time stamp of last topic update, e.g. <code>2010-06-29T16:02Z</code></td>
</tr>
<tr>
<td><code>$rev</code></td>
## <a name="Examples"></a> Examples
+Here are some samples of formatted searches. The [[SearchPatternCookbook]] has other examples, such as [[creating a picklist of usernames|Main/SearchPatternCookbook#SearchUsernames]], [[searching for topic children|Main/SearchPatternCookbook#SearchTopicChildren]] and more.
+
<a name="SearchBulletList"></a>
### <a name="Bullet list showing topic name a"></a> Bullet list showing topic name and summary
In a web where there is a form that contains a `TopicClassification` field, an `OperatingSystem` field and an `OsVersion` field we could write:
-`| *Topic:* | *OperatingSystem:* | *OsVersion:* |`<br />`%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%`
+`| *Topic:* | *OperatingSystem:* | *OsVersion:* |`<br />`%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" type="regex" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%`
To get this:
**Write this:**
-`%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%`
+`%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" type="regex" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%`
**To get this:**
**Write this:**
-`%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="| [[$topic]] | $wikiusername | $date |" limit="7" }%`
+`%SEARCH{ "\.*" scope="topic" type="regex" nosearch="on" nototal="on" order="modified" reverse="on" format="| [[$topic]] | $wikiusername | $date |" limit="7" }%`
**To get this:**
**Write this:**
-`%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}%` %BR% `%SEARCH{ "." scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) < $GET(weekold), <nop>, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%`
+`%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}%` %BR% `%SEARCH{ "." scope="topic" type="regex" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) < $GET(weekold), <nop>, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%`
- The first line sets the `weekold` variable to the serialized date of exactly one week ago
- The SEARCH has a deferred CALC. The `$percnt` makes sure that the CALC gets executed once for each search hit
Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-**_Related Topics:_** [[UserDocumentationCategory]]
+**_Related Topics:_** [[UserDocumentationCategory]], [[SearchHelp]], [[TWikiVariables#VarSEARCH]], [[SearchPatternCookbook]], [[RegularExpression]]
+
+-- **_Contributors:_** TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie
- **faq** to get
# TWiki Installation Error
Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+- **Main.users** to jump to the Main web from any web, and get a list of topics about users (all in one step)
+
+**_%T% Tip:_** Entering part of a topic name is a simple, yet powerful way to quickly navigate to content of interest, also in a large wiki.
**_Note:_** The Go box is not a search box
--- /dev/null
+# <a name="Hierarchical Navigation"></a><a name=" Hierarchical Navigation"></a> Hierarchical Navigation
+
+**Navigation block that displays the current topic, its parent and children (if any).** %BR% This is intended to be included in other topics, for example in a side navigation bar ([[WebLeftBar]]).
+
+_NOTE: The lookup for parent and children will increase the loading time of your pages._
+
+<div>
+ <ul>
+ <li>
+ <ul>
+ <li><a href="#Usage"> Usage</a><ul>
+ <li><a href="#Displaying the Parent - Current"> Displaying the Parent - Current - Children block</a></li>
+ <li><a href="#Displaying child topics"> Displaying child topics</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
+ </ul>
+</div>
+
+## <a name="Usage"></a> Usage
+
+Two sections are defined:
+
+- `all`
+- `children`
+
+### <a name="Displaying the Parent - Current"></a><a name="Displaying the Parent - Current "></a> Displaying the Parent - Current - Children block
+
+> %INCLUDE{"%TWIKIWEB%.HierarchicalNavigation" section="all"}%
+
+generates:
+
+When included in [[WebLeftBar]] (using default Pattern skin) this is styled to:
+
+<div id="patternLeftBarContents">
+ <p>
+ </p>
+</div>
+
+### <a name="Displaying child topics"></a> Displaying child topics
+
+> *Child topics:*
+> %INCLUDE{"%TWIKIWEB%.HierarchicalNavigation" section="children"}%
+
+generates:
+
+**Child topics:**
+
+<div style="display: none">
+ <div>
+ <div>
+ <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)</div>
+ <div>
+ <ul>
+ <li> WebHome </li>
+ </ul>
+ </div>
+ <div>
+ <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)</div>
+ </div>
+ <p>
+ </p>
+ <div>
+ <div>
+ <h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)</div>
+ </div>
+ <p>
+ </p>
+</div>
--- /dev/null
+Example child topic for [[HierarchicalNavigation]].
+# <a name="=IF= Statements"></a> `IF` Statements
+
The `%IF%` construct gives TWiki the power to include content in topics based on the value of simple expressions.
`%IF{"CONDITION" then="THEN" else="ELSE"}%`
Text comparison
%IF{ "$'URLPARAM{scope}'='text'" then="Plain text search" }%
-**Configuration items** are defined in `configure`. You cannot see the value of a configuration item, you can only see if the item is set or not.
+**Configuration items** are defined in [configure](http://www.dementia.org/twiki/configure). You cannot see the value of a configuration item, you can only see if the item is set or not.
**Context identifiers** are used in TWiki to label various stages of the rendering process. They are especially useful for [[skin|Main/TWikiSkins]] authors to find out where they are in the rendering process. The following context identifiers are available:
# <a name="Installed Plugins"></a> Installed Plugins
-Plugins are mainly user-contributed add-ons that enhance and extend TWiki features and capabilities. A limited number of plugins are included in the core TWiki distribution - and any those can be removed - while the rest are optional, available from TWiki:Plugins.PluginPackage.
+Plugins are mainly user-contributed add-ons that enhance and extend TWiki features and capabilities. A limited number of plugins are included in the core TWiki distribution - and any of those can be removed - while the rest are optional, available from TWiki:Plugins.PluginPackage.
Here is a list of the plugins currently installed and enabled on this TWiki site:
Here are the last 15 changed pages, formatted into a neat table.
<table>
- %SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="<tr><td> [[$topic][$topic]] </td><td> $wikiusername </td><td> $date </td></tr>" limit="15" }%
+ %SEARCH{ "\.*" scope="topic" type="regex" nosearch="on" nototal="on" order="modified" reverse="on" format="<tr><td> [[$topic][$topic]] </td><td> $wikiusername </td><td> $date </td></tr>" limit="15" }%
</table>
----
- Inter-Site links are defined in the tables below.
- Each entry must be of format: <br /><code>**| External site alias | URL | Tooltip help text |**</code>.
+- The Alias must start with an upper case letter and may contain alphanumeric letters.
- The URL and Tooltip Text may contain optional <code>**$page**</code> variables; the variable gets expanded to the page name.
- **_Note:_** The Tooltip Text must not contain any HTML tags (including <code>**<nop>**</code> escape code), no internal [[WikiWord]] links, and no external links. Hint: Escape <code>**'WikiWords'**</code> and <code>**'$page'**</code>.
## <a name="Syntax Rules"></a> Syntax Rules
- Enter <code>**ExternalSite:Page**</code> to create a link that points to the <code>**Page**</code> on the <code>**ExternalSite**</code> server.
+- Enter <code>**\[[ExternalSite:Page]\[any label]]**</code> to specify a custom label.
- All <code>**ExternalSite**</code> aliases are defined in the [[InterWikis]] topic.
- Add and edit aliases in [[InterWikis]].
+- Each entry must be of format: <br /><code>**| External site alias | URL | Tooltip help text |**</code>.
+- Site aliases must start with an upper case letter and may contain alphanumeric letters.
+- The URL and Tooltip Text may contain optional <code>**$page**</code> variables; the variable gets expanded to the page name.
- %H% For TWiki sites, both the **web** and the **topic** have to be specified: <code>**TWikisite:Webname/SomePage**</code>
- TWiki:Plugins/InterwikiPlugin or TWiki:Plugins.InterwikiPlugin
- Link rules topic name: (default is [[InterWikis]])
- Set RULESTOPIC =
-- Suppress tooltip help for links: (<code>****</code> or <code>**1**</code>, default is <code>****</code>)
- - Set SUPPRESSTOOLTIP = 0
+- Inter-link format, with variables: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> $site </td>
+ <td> Site alias </td>
+ </tr>
+ <tr>
+ <td> $page </td>
+ <td> Page (part after colon) </td>
+ </tr>
+ <tr>
+ <td> $url </td>
+ <td> Site URL (might contain $page) </td>
+ </tr>
+ <tr>
+ <td> $label </td>
+ <td> Equal to $site:$page </td>
+ </tr>
+ <tr>
+ <td> $tooltip </td>
+ <td> Tooltip message </td>
+ </tr>
+</table>
+ - Set INTERLINKFORMAT = [$label]($url $tooltip)
## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
<td> TWiki:Main.AndreaSterbini, TWiki:Main.PeterThoeny </td>
</tr>
<tr>
+ <td align="right"> Copyright: </td>
+ <td> © 2006, TWiki:Main.AndreaSterbini, <a href="http://www.structuredwikis.com/" target="_top">Peter Thoeny</a></td>
+ </tr>
+ <tr>
+ <td align="right"> License: </td>
+ <td> GPL (<a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>) </td>
+ </tr>
+ <tr>
<td align="right"> Plugin Version: </td>
- <td> 1.008 </td>
+ <td> 11935 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 08 Nov 2006: </td>
+ <td> 11935 - Added css <code></code> (TWiki:Main.PeterThoeny) </td>
+ </tr>
+ <tr>
+ <td align="right"> 07 Nov 2006: </td>
+ <td> 11924 - Added INTERLINKFORMAT; removed redundant SUPPRESSTOOLTIP; allow @ signs in page part of interwiki link; support single digit page part (TWiki:Main.PeterThoeny) </td>
+ </tr>
+ <tr>
<td align="right"> 26 Feb 2005: </td>
<td> 1.008 TWiki:Main.CrawfordCurrie cleaned up code and made Dakar-ready </td>
</tr>
</tr>
<tr>
<td align="right"> 16 Feb 2004: </td>
- <td> Support <code>[[Site:Page][label]]</code> Interwiki links (PTh); use TWiki::Func interface for [[Main/I18N]] regular expressions (Walter Mundt) </td>
+ <td> Support <code>[[Site:Page][label]]</code> Interwiki links (PTh); use TWiki::Func interface for I18N regular expressions (Walter Mundt) </td>
</tr>
<tr>
<td align="right"> 18 Jan 2003: </td>
<td> 5.0 </td>
</tr>
<tr>
+ <td align="right">[[TWiki:Plugins/Benchmark]]: </td>
+ <td>[[TWiki/GoodStyle]] 100%, [[TWiki/FormattedSearch]] 98%, %TOPIC% 98% </td>
+ </tr>
+ <tr>
<td align="right"> Plugin Home: </td>
- <td> TWiki:Plugins/%TOPIC% (TWiki:Plugins/%TOPIC%) </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
</tr>
<tr>
<td align="right"> Feedback: </td>
- <td> TWiki:Plugins/%TOPIC%Dev (TWiki:Plugins/%TOPIC%Dev) </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
+ </tr>
+ <tr>
+ <td align="right"> Appraisal: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
</tr>
</table>
-**_Related Topics:_** [[InterWikis]], [[TWikiPreferences]], [[TWikiPlugins]]
+**_Related Topics:_** [[TWikiPlugins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]], [[TWikiPreferences]], [[InterWikis]]
+
+-- TWiki:Main.PeterThoeny - 08 Nov 2006
Read [the Mishoo documentation](http://www.dementia.org/twiki//view/doc/html/reference.html) or [visit the demo page](http://www.dementia.org/twiki//view).
+This package provides a `renderFormFieldForEditHandler` that could be invoked by a plugin to ensure that forms use the [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl) for editing.
+
This package also includes a small Perl module to make using the calendar easier from TWiki plugins. This module includes the function:
addHEAD( $setup )
</table>
- Make sure that all files are readable by the web server user
+- An administrator can customize the appearance of the calendar by setting the following in `LocalSite.cfg`<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Setting </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default </strong></th>
+ </tr>
+ <tr>
+ <td><code>$TWiki::cfg{JSCalendarContrib}{style}</code></td>
+ <td><code>'blue'</code></td>
+ </tr>
+ <tr>
+ <td><code>$TWiki::cfg{JSCalendarContrib}{lang}</code></td>
+ <td><code>'en'</code></td>
+ </tr>
+ <tr>
+ <td><code>$TWiki::cfg{JSCalendarContrib}{format}</code></td>
+ <td><code>'%e %b %Y'</code></td>
+ </tr>
+</table>
### <a name="Contrib Info"></a> Contrib Info
</tr>
<tr>
<td align="right"> Version: </td>
- <td> 10613 of the Mishoo calendar </td>
+ <td> 11704 of the Mishoo calendar </td>
</tr>
<tr>
<td align="right"> Copyright ©: </td>
<td align="right"> License: </td>
<td> GPL (<a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>) </td>
</tr>
-</table>
-
-|
-
-<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="right"> Dependencies: </td>
<td> None </td>
<td> </td>
</tr>
<tr>
+ <td> 11594 </td>
+ <td> Allow format to be configured. </td>
+ </tr>
+ <tr>
+ <td> 11415 </td>
+ <td> Add a <code>renderFormFieldForEditHandler</code> so other plugins can forward to this handler to add the date field to the [[Main/TWikiForms]]. (TWiki:Main.ThomasWeigert) </td>
+ </tr>
+ <tr>
<td> 10247 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item2054" rel="nofollow">Item2054</a> put the calendar at z-index 2000, way above pattern skin divs. </td>
</tr>
You cannot alter your LoginName: you have to get the administrator to do this for you.
-## <a name="How to find yours"></a> How to find yours
+## <a name="How to Find Yours"></a> How to Find Yours
Look in [[TWikiUsers]] - if your name is followed by a dash and a word, usually lowercase, this is what you log in with.
Then you would log in using your [[WikiName]], in this case 'TWikiGuest'
-**_Related Topics:_** [[UserDocumentationCategory]]
+**_Related Topics for Administrators:_** [[ManagingUsers]], [[UserDocumentationCategory]]
# <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
-Add-on to the TWiki kernel that supports e-mail notification of changes.
+Add-on to the TWiki kernel that allows users to "subscribe" to regularly scheduled e-mails containing either:
+
+- A report on changes to all topics that have changed within a particular TWiki web.
+- A report on changes to a specific topic or set of topics the user can define flexibly.
+- The entire content of a specific topic or set of topics. This is referred to as "news mode."
**WARNING: TWiki-4 only. If you want to use this extension with an earlier version of TWiki, please see [here](http://twiki.org/cgi-bin/view/Plugins/%TOPIC%?rev=1.17)**
<div>
<ul>
- <li><a href="#Summary of Contents"> Summary of Contents</a><ul>
- <li><a href="#tools/mailnotify"> <code>tools/mailnotify</code></a></li>
- <li><a href="#TWiki/Contrib/_MailerContrib cod"> <code>TWiki/Contrib/MailerContrib</code> code library</a></li>
+ <li><a href="#tools/mailnotify"> <code>tools/mailnotify</code></a></li>
+ <li><a href="#TWiki/Contrib/_MailerContrib cod"> <code>TWiki/Contrib/MailerContrib</code> code library</a></li>
+ <li><a href="#package TWiki::Contrib::_MailerC"> package TWiki::Contrib::MailerContrib::WebNotify</a><ul>
+ <li><a href="#ClassMethod new($web, $topic)"> ClassMethod new($web, $topic)</a></li>
+ <li><a href="#ObjectMethod write_WebNotify()"> ObjectMethod writeWebNotify()</a></li>
+ <li><a href="#ObjectMethod getSubscriber($name"> ObjectMethod getSubscriber($name, $noAdd)</a></li>
+ <li><a href="#ObjectMethod getSubscribers()"> ObjectMethod getSubscribers()</a></li>
+ <li><a href="#ObjectMethod subscribe($name, $t"> ObjectMethod subscribe($name, $topics, $depth)</a></li>
+ <li><a href="#ObjectMethod unsubscribe($name,"> ObjectMethod unsubscribe($name, $topics, $depth)</a></li>
+ <li><a href="#ObjectMethod stringify() -> stri"> ObjectMethod stringify() -> string</a></li>
+ <li><a href="#ObjectMethod processChange($chan"> ObjectMethod processChange($change, $db, $changeSet, $seenSet, $allSet)</a></li>
+ <li><a href="#ObjectMethod processCompulsory($"> ObjectMethod processCompulsory($topic, $db, \%allSet)</a></li>
+ <li><a href="#ObjectMethod isEmpty() -> boolea"> ObjectMethod isEmpty() -> boolean</a></li>
+ </ul>
+ </li>
+ <li><a href="#package TWiki::Contrib::_MailerC"> package TWiki::Contrib::MailerContrib::Subscriber</a><ul>
+ <li><a href="#ClassMethod new($name)"> ClassMethod new($name)</a></li>
+ <li><a href="#ObjectMethod get_EmailAddresses("> ObjectMethod getEmailAddresses() -> list</a></li>
+ <li><a href="#ObjectMethod subscribe($subs)"> ObjectMethod subscribe($subs)</a></li>
+ <li><a href="#ObjectMethod unsubscribe($subs)"> ObjectMethod unsubscribe($subs)</a></li>
+ <li><a href="#ObjectMethod is_SubscribedTo($to"> ObjectMethod isSubscribedTo($topic) -> $subscription</a></li>
+ <li><a href="#ObjectMethod is_UnsubscribedFrom"> ObjectMethod isUnsubscribedFrom($topic) -> $subscription</a></li>
+ <li><a href="#ObjectMethod stringify() -> stri"> ObjectMethod stringify() -> string</a></li>
+ </ul>
+ </li>
+ <li><a href="#package TWiki::Contrib::_MailerC"> package TWiki::Contrib::MailerContrib::Subscription</a><ul>
+ <li><a href="#ClassMethod new($pages, $childDe"> ClassMethod new($pages, $childDepth, $news)</a></li>
+ <li><a href="#ObjectMethod stringify() -> stri"> ObjectMethod stringify() -> string</a></li>
+ <li><a href="#ObjectMethod matches($topic, $db"> ObjectMethod matches($topic, $db, $depth) -> boolean</a></li>
+ <li><a href="#ObjectMethod getMode() -> $mode"> ObjectMethod getMode() -> $mode</a></li>
+ </ul>
+ </li>
+ <li><a href="#package TWiki::Contrib::_MailerC"> package TWiki::Contrib::MailerContrib::Change</a><ul>
+ <li><a href="#ClassMethod new($web)"> ClassMethod new($web)</a></li>
+ <li><a href="#ObjectMethod merge($change)"> ObjectMethod merge($change)</a></li>
+ <li><a href="#ObjectMethod expandHTML($html) -"> ObjectMethod expandHTML($html) -> string</a></li>
+ <li><a href="#ObjectMethod expandPlain() -> st"> ObjectMethod expandPlain() -> string</a></li>
+ </ul>
+ </li>
+ <li><a href="#package TWiki::Contrib::_MailerC"> package TWiki::Contrib::MailerContrib::UpData</a><ul>
+ <li><a href="#ClassMethod new($web)"> ClassMethod new($web)</a></li>
+ <li><a href="#ObjectMethod getParent($topic) -"> ObjectMethod getParent($topic) -> string</a></li>
+ </ul>
+ </li>
+ <li><a href="#package TWiki::Contrib::Mailer"> package TWiki::Contrib::Mailer</a><ul>
+ <li><a href="#StaticMethod mailNotify($webs, $"> StaticMethod mailNotify($webs, $session, $verbose)</a></li>
+ </ul>
+ </li>
+ <li><a href="#Installation Instructions"> Installation Instructions</a><ul>
+ <li><a href="#Setting up your cron job(s)"> Setting up your cron job(s)</a></li>
+ </ul>
+ </li>
+ <li><a href="#Developer Notes"> Developer Notes</a><ul>
+ <li><a href="#Contrib Info"> Contrib Info</a></li>
</ul>
</li>
- <li><a href="#Installation Instructions"> Installation Instructions</a></li>
- <li><a href="#Setting up your cron job"> Setting up your cron job</a></li>
- <li><a href="#Settings"> Settings</a></li>
- <li><a href="#Contrib Info"> Contrib Info</a></li>
</ul>
</div>
-## <a name="Summary of Contents"></a> Summary of Contents
+# <a name="tools/mailnotify"></a> `tools/mailnotify`
-### <a name="tools/mailnotify"></a> `tools/mailnotify`
+The central component of [[MailerContrib]] is a script, `tools/mailnotify`, that generates and sends out the emails based on analysis of
-The main part of the mailer module is a script, `tools/mailnotify`. This script is designed to be run from 'cron' (or an equivalent offline job scheduler), and processes the contents of the standard WebNotify topic. As well as providing the usual notification service, it also provides per-topic notification services. The script may be run from the command line or a cron job.
+1. users' subcriptions listed in the WebNotify topic in each web, and
+2. changes within the respective webs.
-Subscribers are listed in WebNotify following one of these bullet list formats:
+This script is designed to be run from `cron` (or an equivalent off-line job scheduler), or from the command-line.
+
+The script collates the changes emails so that each subscriber only receives one changes notification for all changes in all webs in the TWiki. Furthermore, users can elect to receive just summaries of changes, or the entire content of topics that have changed.
+
+Each web can optionally contain a topic called WebNotify.
+
+Users subscribe to email notifications using their [[WikiName]] or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
_three spaces_ \* [ _webname_ . ] _wikiName_ - _SMTP mail address_<br />_three spaces_ \* [ _webName_ . ] _wikiName_<br />_three spaces_ \* _SMTP mail address_<br />_three spaces_ \* _SMTP mail address_ : _topics_<br />_three spaces_ \* [ _webname_ . ] _wikiName_ : _topics_
-where _topics_ is a space-separated list of topic names.
+In the above examples, _topics_ is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
- Specify topics without a _Web._ prefix
- Topics must exist in this web.
- Topics may be specified using \* wildcards
+- Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
- Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. _Note_ This uses the TWiki "Topic parent" feature.
-- Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "don't send notifications regarding this topic". This allows users to elect to filter out changes to certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
+- Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as **complete topics** instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
+
+For example: Subscribe Daisy to all changes to topics in this web.
+
+ * daisy.cutter@flowers.com
-For example:
+Subscribe Daisy to all changes in all webs that start with `Web`.
- * daisy@flowers.com
- * daisy@flowers.com: Web*
- * DaisyCutter: Petal* (1) WeedKillers (3) Red*Phlox
- * StarTrekFan: * - *Wars - *sInTheirEyes - *shipTroopers
+ * daisy.cutter@flowers.com: Web*
-A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified of changes to that topic _once_.
+Subscribe Daisy to changes to topics starting with `Petal`, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with `Pretty` and end with `Flowers` e.g. `PrettyPinkFlowers`
+
+ * DaisyCutter: Petal* (1) WeedKillers (3) Pretty*Flowers
+
+Subscribe StarTrekFan to changes to all topics that start with `Star` **except** those that end in `Wars`, `sInTheirEyes` or `shipTroopers`.
+
+ * StarTrekFan: Star* - *Wars - *sInTheirEyes - *shipTroopers
+
+Subscribe Daisy to the full content of NewsLetter whenever it has changed
+
+ * daisy@flowers.com: NewsLetter?
+
+Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
+
+ * buttercup@flowers.com: NewsLetter! (1)
+
+Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of [[GardenGroup]]:
+
+ * GardenGroup: AllNewsLetters? (3)
+ * petunia@flowers.com: - ManureNewsLetter
+
+A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about _changes_ that topic _once_ (though they will still receive individual mails for news topics).
If a _TWiki group_ is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
In the future it is intended that individual users will be able to control the frequency with which they are notified of topic changes, by changing a schedule specification in their home topic. However at present, the notification schedule is controlled by the frequency of activation of the `cron` job that runs the `mailnotify` script.
-%RED% **_Note_** `mailnotify` ignores permissions in webs. It is entirely possible for a user to get added to a WebNotify topic in a web, when they are not authorised to view the topics in that web. This could result in them having limited access to sensitive information (the topic summaries). %ENDCOLOR%
+%RED% **_Note_** `mailnotify` ignores permissions in webs. It is entirely possible for a user to get added to one of the subscription topics in a web, when they are not authorised to view the topics in that web. This could result in them having access to sensitive information, particularly with news mode. %ENDCOLOR%
+
+Note that when using the "news mode" ! or ? specifiers are used the entire topic text is mailed out as HTML. The `newsletter` template is used to generate the content in this mail, using whatever skin is selected in the topic being mailed.
+
+In addition, the %STARTPUBLISH% and %STOPPUBLISH% markers used by TWiki:Plugins.PublishContrib to delimit the text to be published are respected.
+
+# <a name="TWiki/Contrib/_MailerContrib cod"></a> `TWiki/Contrib/MailerContrib` code library
+
+The second part of the module is a code library that provides the services for other applications to modify the subscription topics through a clean, well documented API. This allows (for example) plugin developers to add (for example) a "Register me for this newsletter" button to their pages. The main interface is the `WebNotify` package described below.
+
+# <a name="package TWiki::Contrib::_MailerC"></a> package TWiki::Contrib::MailerContrib::WebNotify
+
+Object that represents the contents of a [[WebNotify]] topic in a TWiki web
+
+## <a name="ClassMethod new($web, $topic)"></a> [[ClassMethod]] new($web, $topic)
+
+Create a new object by parsing the content of the given topic in the given web. This is the normal way to load a [[WebNotify]] topic. If the topic does not exist, it will create an empty object.
+
+## <a name="ObjectMethod write_WebNotify()"></a> [[ObjectMethod]] writeWebNotify()
+
+Write the object to the [[WebNotify]] topic it was read from. If there is a problem writing the topic (e.g. it is locked), the method will return an error message. If everything is ok it will return undef.
+
+## <a name="ObjectMethod getSubscriber($name"></a> [[ObjectMethod]] getSubscriber($name, $noAdd)
+
+- `$name` - Name of subscriber (wikiname with no web or email address)
+- `$noAdd` - If false or undef, a new subscriber will be created for this name
+
+Get a subscriber from the list of subscribers, and return a reference to the Subscriber object. If $noAdd is true, and the subscriber is not found, undef will be returned. Otherwise a new Subscriber object will be added if necessary.
+
+## <a name="ObjectMethod getSubscribers()"></a> [[ObjectMethod]] getSubscribers()
+
+Get a list of all subscriber names (unsorted)
+
+## <a name="ObjectMethod subscribe($name, $t"></a> [[ObjectMethod]] subscribe($name, $topics, $depth)
+
+- `$name` - Name of subscriber (wikiname with no web or email address)
+- `$topics` - wildcard expression giving topics to subscribe to
+- `$depth` - Child depth to scan (default 0)
+- `$mode` - ! if this is a non-changes subscription and the topics should be mailed evebn if there are no changes. ? to mail the full topic only if there are changes. undef to mail changes only.
+
+Add a subscription, adding the subscriber if necessary.
+
+## <a name="ObjectMethod unsubscribe($name,"></a><a name="ObjectMethod unsubscribe($name, "></a> [[ObjectMethod]] unsubscribe($name, $topics, $depth)
+
+- `$name` - Name of subscriber (wikiname with no web or email address)
+- `$topics` - wildcard expression giving topics to subscribe to
+- `$depth` - Child depth to scan (default 0)
+
+Add an unsubscription, adding the subscriber if necessary. An unsubscription is a specific request to ignore notifications for a topic for this particular subscriber.
+
+## <a name="ObjectMethod stringify() - strin"></a> [[ObjectMethod]] stringify() -> string
+
+Return a string representation of this object, in [[WebNotify]] format.
+
+## <a name="ObjectMethod processChange($chan"></a> [[ObjectMethod]] processChange($change, $db, $changeSet, $seenSet, $allSet)
+
+- `$change` - ref of a TWiki::Contrib::Mailer::Change
+- `$db` - TWiki::Contrib::MailerContrib::UpData database of parent references
+- `$changeSet` - ref of a hash mapping emails to sets of changes
+- `$seenSet` - ref of a hash recording indices of topics already seen
+- `$allSet` - ref of a hash that maps topics to email addresses for news subscriptions
+
+Find all subscribers that are interested in the given change. Only the most recent change to each topic listed in the .changes file is retained. This method does _not_ change this object.
+
+## <a name="ObjectMethod processCompulsory($"></a> [[ObjectMethod]] processCompulsory($topic, $db, \\%allSet)
+
+- `$topic` - topic name
+- `$db` - TWiki::Contrib::MailerContrib::UpData database of parent references
+- `\%allSet` - ref of a hash that maps topics to email addresses for news subscriptions
+
+## <a name="ObjectMethod isEmpty() - boolean"></a> [[ObjectMethod]] isEmpty() -> boolean
+
+Return true if there are no subscribers
+
+# <a name="package TWiki::Contrib::_MailerC"></a> package TWiki::Contrib::MailerContrib::Subscriber
+
+Object that represents a subscriber to notification. A subscriber is a name (which may be a wikiName or an email address) and a list of subscriptions which describe the topis subscribed to, and unsubscriptions representing topics they are specifically not interested in. The subscriber name may also be a group, so it may expand to many email addresses.
+
+## <a name="ClassMethod new($name)"></a> [[ClassMethod]] new($name)
+
+- `$name` - Wikiname, with no web, or email address, of user targeted for notification
+
+Create a new user.
+
+## <a name="ObjectMethod get_EmailAddresses("></a> [[ObjectMethod]] getEmailAddresses() -> list
+
+Get a list of email addresses for the user(s) represented by this subscription
+
+## <a name="ObjectMethod subscribe($subs)"></a> [[ObjectMethod]] subscribe($subs)
+
+- `$subs` - Subscription object
+
+Add a new subscription to this subscriber object. The subscription will always be added, even if there is a wildcard overlap with an existing subscription.
+
+## <a name="ObjectMethod unsubscribe($subs)"></a> [[ObjectMethod]] unsubscribe($subs)
+
+- `$subs` - Subscription object
+
+Add a new unsubscription to this subscriber object. The unsubscription will always be added, even if there is a wildcard overlap with an existing subscription or unsubscription.
+
+An unsubscription is a statement of the subscribers desire _not_ to be notified of changes to this topic.
+
+## <a name="ObjectMethod is_SubscribedTo($to"></a> [[ObjectMethod]] isSubscribedTo($topic) -> $subscription
+
+- `$topic` - Topic object we are checking
+- `$db` - TWiki::Contrib::MailerContrib::UpData database of parents
+
+Check if we have a subscription to the given topic. Return the subscription that matches if we do, undef otherwise.
-### <a name="TWiki/Contrib/_MailerContrib cod"></a> `TWiki/Contrib/MailerContrib` code library
+## <a name="ObjectMethod is_UnsubscribedFrom"></a> [[ObjectMethod]] isUnsubscribedFrom($topic) -> $subscription
-The second part of the module is a code library that provides the services for other applications to modify WebNotify through a clean, well documented interface. This allows (for example) plugin developers to add a "Register me for notification" button to their pages. The main interface is the `WebNotify` package described below.
+- `$topic` - Topic object we are checking
+- `$db` - TWiki::Contrib::MailerContrib::UpData database of parents
-## <a name="Installation Instructions"></a> Installation Instructions
+Check if we have an unsubscription from the given topic. Return the subscription that matches if we do, undef otherwise.
-This Contrib is pre-installed as part of the TWiki release package, and should only have to be re-installed if an upgrade is required.
+## <a name="ObjectMethod stringify() - strin"></a> [[ObjectMethod]] stringify() -> string
+
+Return a string representation of this object, in WebNotify format.
+
+# <a name="package TWiki::Contrib::_MailerC"></a> package TWiki::Contrib::MailerContrib::Subscription
+
+Object that represents a single subscription of a user to notification on a page. A subscription is expressed as a page spec (which may contain wildcards) and a depth of children of matching pages that the user is subscribed to.
+
+## <a name="ClassMethod new($pages, $childDe"></a> [[ClassMethod]] new($pages, $childDepth, $news)
+
+- `$pages` - Wildcarded expression matching subscribed pages
+- `$childDepth` - Depth of children of $topic to notify changes for. Defaults to 0
+- `$mode` - ! if this is a non-changes subscription and the topics should be mailed evebn if there are no changes. ? to mail the full topic only if there are changes. undef to mail changes only.
+
+Create a new subscription.
+
+## <a name="ObjectMethod stringify() - strin"></a> [[ObjectMethod]] stringify() -> string
+
+Return a string representation of this object, in WebNotify format.
+
+## <a name="ObjectMethod matches($topic, $db"></a> [[ObjectMethod]] matches($topic, $db, $depth) -> boolean
+
+- `$topic` - Topic object we are checking
+- `$db` - TWiki::Contrib::MailerContrib::UpData database of parent names
+- `$depth` - If non-zero, check if the parent of the given topic matches as well. undef = 0.
+
+Check if we match this topic. Recurses up the parenthood tree seeing if this is a child of a parent that matches within the depth range.
+
+## <a name="ObjectMethod getMode() - $mode"></a> [[ObjectMethod]] getMode() -> $mode
+
+Return ! if this is a non-changes subscription and the topics should be mailed even if there are no changes. ? to mail the full topic only if there are changes. undef to mail changes only.
+
+----
+
+# <a name="package TWiki::Contrib::_MailerC"></a> package TWiki::Contrib::MailerContrib::Change
+
+Object that represents a change to a topic.
+
+## <a name="ClassMethod new($web)"></a> [[ClassMethod]] new($web)
+
+- `$web` - Web name
+- `$topic` - Topic name
+- `$author` - String author of change
+- `$time` - String time of change
+- `$rev` - Revision identifier
+
+Construct a new change object.
+
+## <a name="ObjectMethod merge($change)"></a> [[ObjectMethod]] merge($change)
+
+- `$change` - Change record to merge
+
+Merge another change record with this one, so that the combined record is a reflection of both changes.
+
+## <a name="ObjectMethod expandHTML($html) -"></a> [[ObjectMethod]] expandHTML($html) -> string
+
+- `$html` - Template to expand keys within
+
+Expand an HTML template using the values in this change. The following keys are expanded: %TOPICNAME%, %AUTHOR%, %TIME%, %REVISION%, %TEXTHEAD%.
+
+Returns the expanded template.
+
+## <a name="ObjectMethod expandPlain() - str"></a> [[ObjectMethod]] expandPlain() -> string
+
+Generate a plaintext version of this change.
+
+# <a name="package TWiki::Contrib::_MailerC"></a> package TWiki::Contrib::MailerContrib::UpData
+
+Object that lazy-scans topics to extract parent relationships.
+
+## <a name="ClassMethod new($web)"></a> [[ClassMethod]] new($web)
+
+- `$web` - Web we are building parent relationships for
+
+Constructor for a web; initially empty, will lazy-load as topics are referenced.
+
+## <a name="ObjectMethod getParent($topic) -"></a> [[ObjectMethod]] getParent($topic) -> string
+
+Get the name of the parent topic of the given topic
+
+# <a name="package TWiki::Contrib::Mailer"></a> package TWiki::Contrib::Mailer
+
+Package of support for extended WebNotify notification, supporting per-topic notification and notification of changes to children.
+
+Also supported is a simple API that can be used to change the WebNotify topic from other code.
+
+## <a name="StaticMethod mailNotify($webs, $"></a> [[StaticMethod]] mailNotify($webs, $session, $verbose)
+
+- `$webs` - filter list of names webs to process. Wildcards (\*) may be used.
+- `$session` - optional session object. If not given, will use a local object.
+- `$verbose` - true to get verbose (debug) output
+
+Main entry point.
+
+Process the WebNotify topics in each web and generate and issue notification mails. Designed to be invoked from the command line; should only be called by `mailnotify` scripts.
+
+# <a name="Installation Instructions"></a> 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 where TWiki is running.
+
+Like many other TWiki extensions, this module is shipped with a fully automatic installer script written using the BuildContrib.
+
+- If you have TWiki 4.1 or later, and Perl 5.8, you can install from the `configure` interface (Go to Plugins->Find More Extensions)
+ - The webserver user has to have permission to write to all areas of your installation for this to work.
+- If you have a permanent connection to the internet (and Perl 5.8), you are recommended to use the automatic installer script
+ - Just download the `MailerContrib_installer` perl script and run it.
+- **Notes:**
+ - The installer script will:
+ - Automatically resolve dependencies,
+ - Copy files into the right places in your local install (even if you have renamed data directories),
+ - check in new versions of any installed files that have existing RCS histories files in your existing install (such as topics).
+ - If the $TWIKI\_PACKAGES environment variable is set to point to a directory, the installer will try to get archives from there. Otherwise it will try to download from twiki.org or cpan.org, as appropriate.
+ - (Developers only: the script will look for twikiplugins/MailerContrib/MailerContrib.tgz before downloading from TWiki.org)
+ - If you don't have a permanent connection, you can still use the automatic installer, by downloading all required TWiki archives to a local directory.
+ - Point the environment variable `$TWIKI_PACKAGES` to this directory, and the installer script will look there first for required TWiki packages.
+ - `$TWIKI_PACKAGES` is actually a path; you can list several directories separated by :
+ - If you are behind a firewall that blocks access to CPAN, you can build a local CPAN mini-mirror, as described at [http://twiki.org/cgi-bin/view/Codev/BuildingDakar#CPAN\_local\_minimirror](http://twiki.org/cgi-bin/view/Codev/BuildingDakar#CPAN_local_minimirror)
+- If you don't want to use the installer script, or have problems on your platform (e.g. you don't have Perl 5.8), then you can still install manually:
+ 1. Download and unpack one of the `.zip` or `.tgz` archives to a temporary directory.
+ 2. Manually copy the contents across to the relevant places in your TWiki installation.
+ 3. Check in any installed files that have existing `,v` files in your existing install (take care **not** to lock the files when you check in)
+ 4. Manually edit LocalSite.cfg to set any configuration variables.
+ 5. Run `configure` and enable the module, if it is a plugin.
+ 6. Repeat from step 1 for any missing dependencies.
-- Download the ZIP file from the Plugin web (see below)
-- Unzip <code>**%TOPIC%.zip**</code> in your twiki installation directory.
-- Run the installer script `MailContrib_intaller.pl` or alternatively resolve all dependencies manually.
- To make sure the installation was successful, run the `mailnotify` script from the command line, with no parameters. In this case it will print out what it would have done to STDOUT.
-## <a name="Setting up your cron job"></a> Setting up your cron job
+## <a name="Setting up your cron job(s)"></a> Setting up your cron job(s)
-You need to set up a `cron` (or equivalent) job to run `mailnotify`.
+You need to set up a `cron` (or equivalent) job to run `tools/mailnotify`.
-<code>Usage: perl -I <bin> mailnotify [-q] [ _web1 web2 ... webN_ ]</code> <bin> is the path to the TWiki bin directory (usually `../bin`), so that the script can find the rest of TWiki.
+Usage: <code>perl -I <bin> mailnotify [-q] [-news] [ _web1 web2 ... webN_ ]</code> <bin> is the path to the TWiki bin directory, so that the script can find the rest of TWiki.
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td> Don't print progress information </td>
</tr>
<tr>
+ <td><code>-news</code></td>
+ <td> Run in news mode (process NewsNotify instead of WebNotify) </td>
+ </tr>
+ <tr>
<td><code><i>web1 web2 ... webN</i></code></td>
<td> List of webs to process, separated by spaces or commas. Default is to process all legal TWiki webs. Wildcards (*) are supported. </td>
</tr>
</table>
-For example, `perl -I /usr/local/twiki/bin mailnotify -q Public Private` will generate notifications for the Public and Private webs.
+For example, assuming TWiki was installed at `/usr/local/twiki`, this cron entry:
+
+ 0 0 * * * cd /usr/local/twiki && perl -I bin tools/mailnotify -q Public Private
+
+will generate change notifications for the `Public` and `Private` webs every night at midnight.
+
+ 0 0 * * 0 cd /usr/local/twiki && perl -I bin tools/mailnotify -news
+
+will generate newsletters from **all** webs every week on midnight Saturday.
+
+# <a name="Developer Notes"></a> Developer Notes
+
+The changes mails sent to users are based on a TWiki template called `mailnotify`. This template must contain the following definitions.
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><code>HTML:before</code></td>
+ <td> Section of a HTML mail before the changes </td>
+ </tr>
+ <tr>
+ <td><code>HTML:middle</code></td>
+ <td> Repeated in a HTML mail for each change </td>
+ </tr>
+ <tr>
+ <td><code>HTML:after</code></td>
+ <td> Section of a HTML mail after the changes </td>
+ </tr>
+ <tr>
+ <td><code>PLAIN:before</code></td>
+ <td> Section of a plain text mail before the changes </td>
+ </tr>
+ <tr>
+ <td><code>PLAIN:middle</code></td>
+ <td> Repeated in a plain text mail for each changes </td>
+ </tr>
+ <tr>
+ <td><code>PLAIN:after</code></td>
+ <td> Section of a plain text mail after the changes </td>
+ </tr>
+ <tr>
+ <td><code>MailNotifyBody</code></td>
+ <td> All the above are embedded in this. %HTML_TEXT% expands to the HTML obtained by expanding the <code>HTML:*</code> templates, and %PLAIN_TEXT% from the <code>PLAIN:*</code> templates. </td>
+ </tr>
+</table>
-## <a name="Settings"></a> Settings
+The default template sends multipart mails containing both HTML and plaintext versions. You can easily provide a custom version of this template using a local skin.
-- Set STUB = TWiki::Contrib::Mailer
-- Set SHORTDESCRIPTION = Supports e-mail notification of changes.
+Newsletters are sent after formatting using the standard `view` template, using whatever skin is selected in the topic being mailed.
## <a name="Contrib Info"></a> Contrib Info
</tr>
<tr>
<td align="right"> Copyright ©: </td>
- <td> 2004, Wind River Systems </td>
+ <td> 2004, Wind River Systems; 2006, <a href="http://WikiRing.com" target="_top">http://WikiRing.com</a></td>
</tr>
<tr>
<td align="right"> License: </td>
<td> GPL </td>
</tr>
<tr>
- <td> Change History: </td>
+ <td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
- <td> 8808 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1654" rel="nofollow">Item1654</a> mailnotify must enter the command_line context </td>
+ <td align="right"> 12496 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item3415" rel="nofollow">Item3415</a> mailnotify did not send notifications to intranet users because of wrong call to findUser. </td>
+ </tr>
+ <tr>
+ <td align="right"> 11672 </td>
+ <td> Added newsletter support, after much harassment from TWiki:Main.LynnwoodBrown </td>
+ </tr>
+ <tr>
+ <td align="right"> 11534 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item2153" rel="nofollow">Item2153</a> Clarified docs. <a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item2698" rel="nofollow">Item2698</a> Improved error reporting. </td>
+ </tr>
+ <tr>
+ <td align="right"> 8808 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1654" rel="nofollow">Item1654</a> mailnotify must enter the command_line context </td>
</tr>
<tr>
- <td> 8625 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> Making the dashes in the separatator clearer </td>
+ <td align="right"> 8625 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> Making the dashes in the separatator clearer </td>
</tr>
<tr>
- <td> 8606 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> [[Main/MailerContrib]]: Brushing up HTML mailnotify template </td>
+ <td align="right"> 8606 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> [[Main/MailerContrib]]: Brushing up HTML mailnotify template </td>
</tr>
<tr>
- <td> 8602 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> [[Main/MailerContrib]]: Cleaning up plaintext e-mail template, removing TEXTAREA </td>
+ <td align="right"> 8602 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1508" rel="nofollow">Item1508</a> [[Main/MailerContrib]]: Cleaning up plaintext e-mail template, removing TEXTAREA </td>
</tr>
<tr>
- <td> 8522 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1511" rel="nofollow">Item1511</a> arguments to getScriptUrl in wrong order :-( </td>
+ <td align="right"> 8522 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1511" rel="nofollow">Item1511</a> arguments to getScriptUrl in wrong order :-( </td>
</tr>
<tr>
- <td> 8434 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1465" rel="nofollow">Item1465</a> Fix 'TWiki.' to '%TWIKIEB%.' </td>
+ <td align="right"> 8434 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1465" rel="nofollow">Item1465</a> Fix 'TWiki.' to '%TWIKIEB%.' </td>
</tr>
<tr>
- <td> 8398 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1460" rel="nofollow">Item1460</a> polished up the comment a bit </td>
+ <td align="right"> 8398 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1460" rel="nofollow">Item1460</a> polished up the comment a bit </td>
</tr>
<tr>
- <td> 8308 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1362" rel="nofollow">Item1362</a> moving mailnotify cron script </td>
+ <td align="right"> 8308 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1362" rel="nofollow">Item1362</a> moving mailnotify cron script </td>
</tr>
<tr>
- <td> 7848 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1167" rel="nofollow">Item1167</a> forced all mail operations to generate absolute URLs </td>
+ <td align="right"> 7848 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item1167" rel="nofollow">Item1167</a> forced all mail operations to generate absolute URLs </td>
</tr>
<tr>
- <td> 7568 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item910" rel="nofollow">Item910</a> use SCRIPTURL{view} instead of complex url expr </td>
+ <td align="right"> 7568 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item910" rel="nofollow">Item910</a> use SCRIPTURL{view} instead of complex url expr </td>
</tr>
<tr>
- <td> 6864 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item624" rel="nofollow">Item624</a> mailer templates moved the the right places </td>
+ <td align="right"> 6864 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item624" rel="nofollow">Item624</a> mailer templates moved the the right places </td>
</tr>
<tr>
- <td> 6861 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item624" rel="nofollow">Item624</a> Added proper templates support for plain text mails </td>
+ <td align="right"> 6861 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item624" rel="nofollow">Item624</a> Added proper templates support for plain text mails </td>
</tr>
<tr>
- <td> 6809 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item623" rel="nofollow">Item623</a> don't print anything if verbosity is switched off. </td>
+ <td align="right"> 6809 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item623" rel="nofollow">Item623</a> don't print anything if verbosity is switched off. </td>
</tr>
<tr>
- <td> 6659 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item528" rel="nofollow">Item528</a> Updated [[Main/MailerContrib]]. it's working and the sendmail parameter is used. </td>
+ <td align="right"> 6659 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item528" rel="nofollow">Item528</a> Updated [[Main/MailerContrib]]. it's working and the sendmail parameter is used. </td>
</tr>
<tr>
- <td> 6474 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item420" rel="nofollow">Item420</a> removed spurious remove_obsolete_locks from [[Main/MailerContrib]]</td>
+ <td align="right"> 6474 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item420" rel="nofollow">Item420</a> removed spurious remove_obsolete_locks from [[Main/MailerContrib]]</td>
</tr>
<tr>
- <td> 5924 </td>
- <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item153" rel="nofollow">Item153</a> fix mail URL-fixing scheme </td>
+ <td align="right"> 5924 </td>
+ <td><a href="http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item153" rel="nofollow">Item153</a> fix mail URL-fixing scheme </td>
</tr>
<tr>
- <td> 5269 </td>
+ <td align="right"> 5269 </td>
<td> Minor doc fixes </td>
</tr>
<tr>
- <td> 5266 </td>
+ <td align="right"> 5266 </td>
<td> Doc tidy-ups, added filtering of _ webs, added obsolete lock script </td>
</tr>
<tr>
- <td> 5264 </td>
+ <td align="right"> 5264 </td>
<td> Changed default to add web name to user name (I hope) </td>
</tr>
<tr>
- <td> 5263 </td>
+ <td align="right"> 5263 </td>
<td> Minor doc tidyups </td>
</tr>
<tr>
- <td> 5261 </td>
+ <td align="right"> 5261 </td>
<td> Documentation changes, and fixed to scan all webs. </td>
</tr>
<tr>
- <td> 5253 </td>
+ <td align="right"> 5253 </td>
<td> runnable as CGI script, minor bugfixes, removed dependency on [[Main/DBCacheContrib]]</td>
</tr>
<tr>
- <td> 5234 </td>
+ <td align="right"> 5234 </td>
<td> Minor doc changes </td>
</tr>
<tr>
- <td> 5231 </td>
+ <td align="right"> 5231 </td>
<td> Made a change an object, added unit tests to CVS, lots of testing. </td>
</tr>
<tr>
### <a name="Effect of User Access Settings"></a> Effect of User Access Settings
-User permissions affect the Rename function in various ways. To rename a topic, you need both <code>**ALLOWTOPICCHANGE**</code> and <code>**ALLOWTOPICRENAME**</code> permission for that topic. To alter referring topics, you need change permission. See [[TWikiAccessControl]] for information on setting up access permissions.
+User permissions affect the Rename function in various ways. To rename a topic, you need both <code>**ALLOWTOPICVIEW**</code> and <code>**ALLOWTOPICCHANGE**</code> permission for that topic. To alter referring topics, you need change permission. See [[TWikiAccessControl]] for information on setting up access permissions.
## <a name="Special Considerations"></a> Special Considerations
<li><a href="#Authentication and Access Contro"> Authentication and Access Control</a></li>
<li><a href="#Register User"> Register User</a></li>
<li><a href="#Change, Reset and Install Passwo"> Change, Reset and Install Passwords</a></li>
+ <li><a href="#Changing User Account Names"> Changing User Account Names</a></li>
<li><a href="#Removing User Accounts"> Removing User Accounts</a></li>
</ul>
</li>
- [[ResetPassword]] is for users who cannot remember their password; a system generated password is e-mailed to them
- [[BulkResetPassword]] if for administrators who want to reset many passwords at once
+## <a name="Changing User Account Names"></a> Changing User Account Names
+
+To change the user's [[WikiName]]:
+
+- Rename the user's TWiki homepage in the Main web, such as from `JaneSmith` to `JaneMiller`.
+ - Fix backlinks in the Main web only
+ - Make sure the group topics are updated (if any.)
+- Edit the [[Main.TWikiUsers|Main/TWikiUsers]] topic and move the user's entry so that the list is in proper alphabetical order.
+- Recreate the old topic with a pointer to the new topic, so that links in other webs work properly. Example content:%BR% `%M% Jane Smith is now known as JaneMiller`
+
+If external authentication is used and you want to change the login name:
+
+- The login name needs to be changed in the directory server, such as AD or LDAP
+- In TWiki's [[Main.TWikiUsers|Main/TWikiUsers]] topic, fix the mapping from login name to [[WikiName]] such as from:%BR% ` * JohnSmith - john - 13 Sep 2006` %BR% to: %BR% ` * JohnSmith - jsmith - 13 Sep 2006`
+
## <a name="Removing User Accounts"></a> Removing User Accounts
To remove a user account (FredQuimby, who logs in as "fred"):
- **Warning:** Do **not** use the Apache `htpasswd` program with `.htpasswd` files generated by TWiki! `htpasswd` wipes out email addresses that TWiki plants in the info fields of this file.
2. Remove the `FredQuimby - fred` line from the Main.TWikiUsers topic
3. Remove `FredQuimby` from all groups and from all the `ALLOWWEB/ALLOWTOPIC...` declarations, if any.%BR% **_Note:_** If you fail to do this you risk creating a security hole, as the next user to register with the wikiname FredQuimby will inherit the old FredQuimby's permissions.
-4. _[optional]_ Delete their user topic Main.FredQuimby.
+4. _[optional]_ Delete their user topic Main.FredQuimby (including attachments, if any.)
**_Note:_** Consider leaving the user topic file in place so their past signatures and revision author entries don't end up looking like [[AnUncreatedTopic]]. If you want to make it clear the user is no longer with the organization or has been banished, replace the topic content with a note to that effect. The existance of the UserName topic should also prevent that user name from being re-used, sealing the potential security hole regarding inherited permissions..
**_Notes:_**
+- You have to have `ROOTCHANGE` access to create a top-level web (one with no parent)
- Attachments will NOT get copied over along with their topics
- While creating the new web, TWiki will update the following variables in the [[WebPreferences]]: `WEBBGCOLOR`, `SITEMAPLIST`, `SITEMAPWHAT`, `SITEMAPUSETO` and `NOSEARCHALL`. These variables are used to dynamically generate the [[SiteMap]]
- TWiki does not edit the [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] to update the `WIKIWEBLIST`. This must be done by hand
If you plan to rename the Main web, remember that TWiki stores user and group topics in this web. That means that every [[WikiName]] signature - `Main.SomeUserName` - points to it and would need updating (unless the variable, `%MAINWEB%.SomeUserName`, is used throughout). This potentially large change can be performed automatically if you rename the web from the Tools section of [[WebPreferences]], as described above.
-%X% If you want to rename the TWiki or Main webs, remember they are referred to in the TWiki configuration. You will need to change the relevant settings in the configuration using the [configure](http://www.dementia.org/twiki/configure) interface.
+%X% If you want to rename the TWiki or Main webs, remember they are referred to in the TWiki configuration. You will need to change the `{SystemWebName}`, `{UsersWebName}` and/or `{LocalSitePreferences}` settings in the configuration using the [configure](http://www.dementia.org/twiki/configure) interface.
## <a name="Hierarchical Webs"></a> Hierarchical Webs
-Hierarchical web support is enabled by turning on the `{EnableHierarchicalWebs}` setting in `configure`. Without this setting, TWiki will only allow a single level of hierarchy (webs). If you set this, you can use multiple levels, like a directory tree, i.e. webs within webs.
+Hierarchical web support is enabled by turning on the `{EnableHierarchicalWebs}` setting in [configure](http://www.dementia.org/twiki/configure). Without this setting, TWiki will only allow a single level of hierarchy (webs). If you set this, you can use multiple levels, like a directory tree, i.e. webs within webs.
**_%T% Note:_** You might not need hierarchical webs. TWiki topics already have a parent/child relationship within a web, which is shown in the breadcrumb. Try to keep the number of webs to a minimum in order to keep search and cross-referencing simple.
- Show tool-tip topic info on mouse-over of [[WikiWord]] links, on or off:
- #Set LINKTOOLTIPINFO = off
-- Horizontal size of text edit box:
- - #Set EDITBOXWIDTH = 70
-- Vertical size of text edit box:
- - #Set EDITBOXHEIGHT = 22
-- Style of text edit box. `width: 99%` for full window width (default), `width: auto` to disable.
- - #Set EDITBOXSTYLE = width: 99%
-- Write protect your home page: (set it to your [[WikiName]])
- - #Set ALLOWTOPICCHANGE = Main.admin
## <a name="Related Topics"></a> Related Topics
- [[UserDocumentationCategory]] is a list of TWiki user documentation
- [[UserToolsCategory]] lists all TWiki user tools
-Note to TWiki Administrator:
+----
+
+Notes to TWiki Administrator:
-Above text is for English speaking users. If you have a multilingual wiki community you can replace the "My Links", "Personal Preferences" and "Related Topics" sections above with the localized text below. Text enclosed in %MAKETEXT will be shown in the language selected by the user. Please note that the %MAKETEXT can be quite intimidating to new users. Consider translating above text to your own language if your community uses a non-English language. (Remove all text from `%STARTSECTION{type="templateonly"}%` to `%ENDSECTION{type="templateonly"}%` when you are done)
+Anything inside this "templateonly" section will not be copied to the home topic of the new user. It is a resource for the administrator to tailor the users home topic.
+
+On public TWiki's on the Internet user topics are often subject to spam so you may want to limit editing to the user himself. You can do this by moving these two lines to the Personal Preferences section above. Remove the small # in front of the "Set".
+
+- Write protect your home page: (set it to your [[WikiName]])
+ - #Set ALLOWTOPICCHANGE = Main.admin
+
+The default topic text above is for English speaking users. If you have a multilingual wiki community you can replace the "My Links", "Personal Preferences" and "Related Topics" sections above with the localized text below. Text enclosed in %MAKETEXT will be shown in the language selected by the user. Please note that the %MAKETEXT can be quite intimidating to new users. Consider translating above text to your own language if your community uses a non-English language. (Remove all text from `%STARTSECTION{type="templateonly"}%` to `%ENDSECTION{type="templateonly"}%` when you are done)
Text for multilingual wiki community, copy from here to %ENDSECTION\{type="templateonly"\}%
- Show tool-tip topic info on mouse-over of [[WikiWord]] links, on or off:
- #Set LINKTOOLTIPINFO = off
-- Horizontal size of text edit box:
- - #Set EDITBOXWIDTH = 70
-- Vertical size of text edit box:
- - #Set EDITBOXHEIGHT = 22
-- Style of text edit box. `width: 99%` for full window width (default), `width: auto` to disable.
- - #Set EDITBOXSTYLE = width: 99%
-- Write protect your home page: (set it to your [[WikiName]])
- - Set ALLOWTOPICCHANGE = Main.admin
## <a name="Related Topics"></a> Related Topics
# <a name="Pattern skin"></a><a name=" Pattern skin"></a> Pattern skin
-**PatternSkin is developed to provide a CSS based default look and feel for TWiki - flexible and [[W3C]]-compliant.** Its layout and color scheme are designed to provide a nice, clean and productive _editing environment_. For use in corporate or perhaps in personal websites it should be fairly easy to tune the looks or even create a PatternSkin-based new skin.
+**PatternSkin provides a CSS based default look and feel for TWiki - flexible and W3C-compliant.** Its layout and color scheme are designed to provide a nice, clean and productive _editing environment_. For use in corporate or perhaps in personal websites it should be fairly easy to tune the looks or even create a PatternSkin-based new skin.
<div><span>Page contents</span><ul>
<li>
<ul>
- <li><a href="#Screen Shot"> Screen Shot</a></li>
+ <li><a href="#Screenshot"> Screenshot</a></li>
</ul>
</li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li><a href="#Creating your own look"> Creating your own look</a></li>
+ <li><a href="#Creating your own look"> Creating your own look</a><ul>
+ <li><a href="#Template customization"> Template customization</a></li>
+ <li><a href="#Style sheet customization"> Style sheet customization</a></li>
+ </ul>
+ </li>
<li><a href="#Supported browsers"> Supported browsers</a></li>
<li><a href="#Installation"> Installation</a><ul>
<li><a href="#Troubleshooting"> Troubleshooting</a></li>
</ul>
</div>
-## <a name="Screen Shot"></a> Screen Shot
+## <a name="Screenshot"></a> Screenshot
[<img src="http://www.dementia.org/twiki//view/patternskin_screenshot.jpg" width="600" height="130" alt="Click for full screen image" style="border: 1px solid #eee" />](http://www.dementia.org/twiki//view/patternskin_screenshot_full.png)
## <a name="Creating your own look"></a> Creating your own look
-It is easy to tune the look and feel of PatternSkin by changing the color and space (margin, padding) settings in the Style Sheet files.
+### <a name="Template customization"></a> Template customization
+
+[[PatternSkinCustomization]] - how to configure page elements
-You may also choose to radically change the look and create a PatternSkin-based new skin. This is easier than to create a skin by writing new template files; you can concentrate on how things should look instead of what elements should get displayed.
+### <a name="Style sheet customization"></a> Style sheet customization
-- [[PatternSkinCustomization]] - how to configure page elements
-- [[PatternSkinCssCookbook]] - how to customize the default look of TWiki
-- [[PatternSkinCss]] - documentation of PatternSkin CSS classes
+[[PatternSkinCssCookbook]] - how to customize the visual style
## <a name="Supported browsers"></a> Supported browsers
* Set TWIKISTYLEURL = %PUBURLPATH%/%TWIKIWEB%/PatternSkin/style.css
* Set TWIKICOLORSURL = %PUBURLPATH%/%TWIKIWEB%/PatternSkin/colors.css
+**NOTE:** customization of these values should be done in [[Main.TWikiPreferences|Main/TWikiPreferences]]
+
If this still does not work, contact the administrator who installs skins.
For further troubleshooting and feedback, go to TWiki:Plugins/PatternSkinDev. Report bugs in the [[Support web|TWiki:Support/WebHome]].
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="right"> Description: </td>
- <td> TWiki's default skin; CSS based, flexible and [[Main/W3C]]-compliant </td>
+ <td> TWiki's default skin; CSS based, flexible and W3C-compliant </td>
</tr>
<tr>
<td align="right"> Screenshot: </td>
</tr>
<tr>
<td align="right"> Skin Version: </td>
- <td> 31 Jan 2006 (v2.0.0) </td>
+ <td> 15 Jan 2006 (v2.0.6) </td>
</tr>
<tr>
<td align="right"> History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 15 Jan 2006: </td>
+ <td> v.2.0.6 - TWiki 4.1.0 (Edinburgh) RELEASE VERSION </td>
+ </tr>
+ <tr>
+ <td align="right"> 26 Sep 2006: </td>
+ <td> v.2.0.5 - Fixed form background colors </td>
+ </tr>
+ <tr>
+ <td align="right"> 22 Jul 2006: </td>
+ <td> v.2.0.4 - Refactored info in colors.css; fixed textarea color </td>
+ </tr>
+ <tr>
+ <td align="right"> 26 Jun 2006: </td>
+ <td> v.2.0.3 - TWiki 4.0.3 (Dakar) RELEASE VERSION </td>
+ </tr>
+ <tr>
<td align="right"> 31 Jan 2006: </td>
- <td> v.2.0.0 - DAKAR RELEASE VERSION </td>
+ <td> v.2.0.0 - TWiki 4.0.0 (Dakar) RELEASE VERSION </td>
</tr>
<tr>
<td align="right"> 28 Aug 2004: </td>
- <td> v.1.0.9 - CAIRO RELEASE VERSION </td>
+ <td> v.1.0.9 - TWiki 3.0 (Cairo) RELEASE VERSION </td>
</tr>
<tr>
<td align="right"> 08 Aug 2004: </td>
--- /dev/null
+# <a name="Color scheme settings for TWiki."></a> Color scheme settings for [[PatternSkin]]
+
+**Appearance: text colors, background colors, border colors.**
+
+Use this topic to change the color settings of [[PatternSkin]]. When this topic is saved, the attachment `theme-colors.css` will be updated with new color values. This method relies on TWiki:Plugins.AttachContentPlugin to work.
+
+## <a name="Usage"></a><a name=" Usage"></a> Usage
+
+### <a name="Step 1"></a><a name=" Step 1"></a> Step 1
+
+Let [[PatternSkin]] point to the custom-made colors style sheet. In [[Main.TWikiPreferences|Main/TWikiPreferences]] put:
+
+ * Set USERCOLORSURL = %PUBURLPATH%/%MAINWEB%/TWikiPreferences/theme-colors.css
+
+### <a name="Step 2"></a><a name=" Step 2"></a> Step 2
+
+Edit this topic, and change the color variables as you like.
+
+## <a name="Color variables"></a><a name=" Color variables"></a> Color variables
+
+<div>
+ <ul>
+ <li><a href="#Logical groupings"> Logical groupings</a><ul>
+ <li><a href="#Text on background"> Text on background</a><ul>
+ <li><a href="#MAIN_TEXT_COLOR Main text color"> MAIN_TEXT_COLOR Main text color</a></li>
+ <li><a href="#MAIN_BACKGROUND_COLOR Main backg"> MAIN_BACKGROUND_COLOR Main background color</a></li>
+ <li><a href="#LIGHT_ON_DARK_TEXT_COLOR Light o"> LIGHT_ON_DARK_TEXT_COLOR Light on dark text color</a></li>
+ </ul>
+ </li>
+ <li><a href="#Links"> Links</a><ul>
+ <li><a href="#LINK_TEXT_NORMAL Link normal tex"> LINK_TEXT_NORMAL Link normal text</a></li>
+ <li><a href="#LINK_BACKGROUND_NORMAL Link norm"> LINK_BACKGROUND_NORMAL Link normal background</a></li>
+ <li><a href="#LINK_TEXT_ACTION_BUTTON Link tex"> LINK_TEXT_ACTION_BUTTON Link text red (same as LINK_BACKGROUND_HOVER)</a></li>
+ <li><a href="#LINK_TEXT_HOVER Link hover text"> LINK_TEXT_HOVER Link hover text</a></li>
+ <li><a href="#LINK_BACKGROUND_HOVER Link backg"> LINK_BACKGROUND_HOVER Link background hover</a></li>
+ <li><a href="#SIDE_BAR_LINK_TEXT Side bar link"> SIDE_BAR_LINK_TEXT Side bar link text</a></li>
+ <li><a href="#LINK_TEXT_NORMAL_TABLE_HEADER Ta"> LINK_TEXT_NORMAL_TABLE_HEADER Table header link text</a></li>
+ <li><a href="#LINK_TEXT_NORMAL_BORDER_TABLE_HE"> LINK_TEXT_NORMAL_BORDER_TABLE_HEADER Table header link border</a></li>
+ <li><a href="#LINK_TEXT_SORTED_TABLE_HEADER So"> LINK_TEXT_SORTED_TABLE_HEADER Sorted table header link text</a></li>
+ <li><a href="#LINK_TEXT_HOVER_TABLE_HEADER Tab"> LINK_TEXT_HOVER_TABLE_HEADER Table header link hover text</a></li>
+ <li><a href="#LINK_BORDER_TABLE_SELECTED_COLUM"> LINK_BORDER_TABLE_SELECTED_COLUMN_HEADER Link border in selected column header</a></li>
+ </ul>
+ </li>
+ <li><a href="#Disabled"> Disabled</a><ul>
+ <li><a href="#DISABLED_BORDER Disabled border"> DISABLED_BORDER Disabled border</a></li>
+ <li><a href="#DISABLED_TEXT Disabled text"> DISABLED_TEXT Disabled text</a></li>
+ <li><a href="#DISABLED_BACKGROUND Disabled bac"> DISABLED_BACKGROUND Disabled background</a></li>
+ </ul>
+ </li>
+ <li><a href="#'New'"> 'New'</a><ul>
+ <li><a href="#NEW_TEXT New text (green)"> NEW_TEXT New text (green) </a></li>
+ <li><a href="#NEW_BACKGROUND New background (l"> NEW_BACKGROUND New background (light green) </a></li>
+ </ul>
+ </li>
+ <li><a href="#Alert"> Alert</a><ul>
+ <li><a href="#ALERT_TEXT Alert text (red)"> ALERT_TEXT Alert text (red)</a></li>
+ <li><a href="#ALERT_TEXT_MUTED Muted alert tex"> ALERT_TEXT_MUTED Muted alert text (dark red)</a></li>
+ <li><a href="#ALERT_BORDER Alert border"> ALERT_BORDER Alert border</a></li>
+ </ul>
+ </li>
+ <li><a href="#Buttons"> Buttons</a><ul>
+ <li><a href="#BUTTON_TEXT Button text color (d"> BUTTON_TEXT Button text color (dark gray)</a></li>
+ <li><a href="#BUTTON_BORDERS Button borders"> BUTTON_BORDERS Button borders</a></li>
+ <li><a href="#BUTTON_BORDERS_ACTIVE Button bor"> BUTTON_BORDERS_ACTIVE Button borders (active)</a></li>
+ <li><a href="#SUBMIT_BUTTON_BACKGROUND Submit"> SUBMIT_BUTTON_BACKGROUND Submit button background (dark yellow)</a></li>
+ <li><a href="#SUBMIT_BUTTON_BORDER Submit butt"> SUBMIT_BUTTON_BORDER Submit button border (blue) </a></li>
+ </ul>
+ </li>
+ <li><a href="#Forms"> Forms</a><ul>
+ <li><a href="#INPUT_FIELD_BORDERS Input field"> INPUT_FIELD_BORDERS Input field borders</a></li>
+ <li><a href="#FORM_INPUT_BORDER Textarea, inpu"> FORM_INPUT_BORDER Textarea, input and select (darker gray)</a></li>
+ <li><a href="#FORM_BORDER Form (same as twikiT"> FORM_BORDER Form (same as twikiTable border)</a></li>
+ <li><a href="#ACTIVE_FORM_BACKGROUND Edit form"> ACTIVE_FORM_BACKGROUND Edit form, form steps</a></li>
+ <li><a href="#FORMFIELD_ACTIVE Active form fie"> FORMFIELD_ACTIVE Active form field (not implemented yet)</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#Color groupings"> Color groupings</a><ul>
+ <li><a href="#Text colors"> Text colors</a><ul>
+ <li><a href="#GENERAL_TEXT General text (if no"> GENERAL_TEXT General text (if not set in MAIN_BACKGROUND_COLOR) (black)</a></li>
+ <li><a href="#HEADER_TEXT Header text"> HEADER_TEXT Header text</a></li>
+ <li><a href="#CODE_TEXT Code text, left bar te"> CODE_TEXT Code text, left bar text and links</a></li>
+ <li><a href="#MUTED_TEXT Muted text (dark gray"> MUTED_TEXT Muted text (dark gray)</a></li>
+ <li><a href="#GRAYED_OUT_TEXT Grayed out text"> GRAYED_OUT_TEXT Grayed out text</a></li>
+ <li><a href="#STRONG_TEXT Dark text, header (d"> STRONG_TEXT Dark text, header (dark gray)</a></li>
+ <li><a href="#SEPARATOR Seperator in topic act"> SEPARATOR Seperator in topic action bar</a></li>
+ </ul>
+ </li>
+ <li><a href="#Background colors"> Background colors</a><ul>
+ <li><a href="#GENERAL_BACKGROUND General backg"> GENERAL_BACKGROUND General background color (if not set in MAIN_BACKGROUND_COLOR) (white)</a></li>
+ <li><a href="#SIDE_BAR_BACKGROUND Side bar bac"> SIDE_BAR_BACKGROUND Side bar background</a></li>
+ <li><a href="#SIDE_BAR_PERSONAL_BACKGROUND Sid"> SIDE_BAR_PERSONAL_BACKGROUND Side bar personal background</a></li>
+ <li><a href="#INFO_BACKGROUND Info (very light"> INFO_BACKGROUND Info (very light blue) (placeholder for background image)</a></li>
+ <li><a href="#TOPIC_ACTION_BACKGROUND Topic ac"> TOPIC_ACTION_BACKGROUND Topic action row (light yellow)</a></li>
+ <li><a href="#HEADER_BACKGROUND H1, H2, etc he"> HEADER_BACKGROUND H1, H2, etc header (light yellow) </a></li>
+ <li><a href="#ATTACHMENT_AND_FORM_BACKGROUND A"> ATTACHMENT_AND_FORM_BACKGROUND Attachment, form (light yellow)</a></li>
+ <li><a href="#DIFF_HEADER_BACKGROUND Diff head"> DIFF_HEADER_BACKGROUND Diff header (dark gray) (same as GRAYED_OUT_TEXT)</a></li>
+ <li><a href="#Table colors"> Table colors</a><ul>
+ <li><a href="#TABLE_DATA_BACKGROUND Table data"> TABLE_DATA_BACKGROUND Table data background</a></li>
+ <li><a href="#TABLE_HEADER_BACKGROUND Table he"> TABLE_HEADER_BACKGROUND Table header background</a></li>
+ <li><a href="#TABLE_SELECTED_COLUMN_HEADER_BAC"> TABLE_SELECTED_COLUMN_HEADER_BACKGROUND Sorted table column accent background </a></li>
+ <li><a href="#TABLE_DATA_ODD_BACKGROUND Table"> TABLE_DATA_ODD_BACKGROUND Table data background (odd row)</a></li>
+ <li><a href="#TABLE_DATA_EVEN_BACKGROUND Table"> TABLE_DATA_EVEN_BACKGROUND Table data background (even row)</a></li>
+ <li><a href="#TABLE_DATA_ODD_SELECTED_BACKGROU"> TABLE_DATA_ODD_SELECTED_BACKGROUND Table data background (odd row, selected column)</a></li>
+ <li><a href="#TABLE_DATA_EVEN_SELECTED_BACKGRO"> TABLE_DATA_EVEN_SELECTED_BACKGROUND Table data background (even row, selected column)</a></li>
+ <li><a href="#TABLE_DATA_MIX_BACKGROUND Table"> TABLE_DATA_MIX_BACKGROUND Table data background (mix between even and odd)</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#Border colors"> Border colors</a><ul>
+ <li><a href="#INFO_BORDER Info (light blue)"> INFO_BORDER Info (light blue)</a></li>
+ <li><a href="#SEPARATOR_BORDER HR line, bottom"> SEPARATOR_BORDER HR line, bottom of h2, attachment table, form (brown)</a></li>
+ <li><a href="#MINOR_SEPARATOR_BORDER Header H3"> MINOR_SEPARATOR_BORDER Header H3..H6 bottom (75% of SEPARATOR_BORDER)</a></li>
+ <li><a href="#LAYOUT_ELEMENT_BORDER Main layou"> LAYOUT_ELEMENT_BORDER Main layout elements (neutral tone) </a></li>
+ <li><a href="#TABLE_BORDER Table border, sup ("> TABLE_BORDER Table border, sup (light neutral tone)</a></li>
+ <li><a href="#TABLE_BORDER_LIGHT Table border"> TABLE_BORDER_LIGHT Table border light</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="Logical groupings"></a> Logical groupings
+
+### <a name="Text on background"></a> Text on background
+
+#### <a name="MAIN_TEXT_COLOR Main text color"></a> MAIN\_TEXT\_COLOR Main text color
+
+- Set MAIN\_TEXT\_COLOR = #000
+
+#### <a name="MAIN_BACKGROUND_COLOR Main backg"></a> MAIN\_BACKGROUND\_COLOR Main background color
+
+- Set MAIN\_BACKGROUND\_COLOR = #fff
+
+#### <a name="LIGHT_ON_DARK_TEXT_COLOR Light o"></a> LIGHT\_ON\_DARK\_TEXT\_COLOR Light on dark text color
+
+- Set LIGHT\_ON\_DARK\_TEXT\_COLOR = #fff
+
+### <a name="Links"></a> Links
+
+#### <a name="LINK_TEXT_NORMAL Link normal tex"></a> LINK\_TEXT\_NORMAL Link normal text
+
+- Set LINK\_TEXT\_NORMAL = #06c
+
+#### <a name="LINK_BACKGROUND_NORMAL Link norm"></a> LINK\_BACKGROUND\_NORMAL Link normal background
+
+- Set LINK\_BACKGROUND\_NORMAL =
+
+#### <a name="LINK_TEXT_ACTION_BUTTON Link tex"></a> LINK\_TEXT\_ACTION\_BUTTON Link text red (same as LINK\_BACKGROUND\_HOVER)
+
+- Set LINK\_TEXT\_ACTION\_BUTTON = #D6000F
+
+#### <a name="LINK_TEXT_HOVER Link hover text"></a> LINK\_TEXT\_HOVER Link hover text
+
+- Set LINK\_TEXT\_HOVER = #FBF7E8
+
+#### <a name="LINK_BACKGROUND_HOVER Link backg"></a> LINK\_BACKGROUND\_HOVER Link background hover
+
+- Set LINK\_BACKGROUND\_HOVER = #D6000F
+
+#### <a name="SIDE_BAR_LINK_TEXT Side bar link"></a> SIDE\_BAR\_LINK\_TEXT Side bar link text
+
+- Set SIDE\_BAR\_LINK\_TEXT = #666
+
+#### <a name="LINK_TEXT_NORMAL_TABLE_HEADER Ta"></a> LINK\_TEXT\_NORMAL\_TABLE\_HEADER Table header link text
+
+- Set LINK\_TEXT\_NORMAL\_TABLE\_HEADER = #fff
+
+#### <a name="LINK_TEXT_NORMAL_BORDER_TABLE_HE"></a> LINK\_TEXT\_NORMAL\_BORDER\_TABLE\_HEADER Table header link border
+
+- Set LINK\_TEXT\_NORMAL\_BORDER\_TABLE\_HEADER = #bbb
+
+#### <a name="LINK_TEXT_SORTED_TABLE_HEADER So"></a> LINK\_TEXT\_SORTED\_TABLE\_HEADER Sorted table header link text
+
+- Set LINK\_TEXT\_SORTED\_TABLE\_HEADER = #fff
+
+#### <a name="LINK_TEXT_HOVER_TABLE_HEADER Tab"></a> LINK\_TEXT\_HOVER\_TABLE\_HEADER Table header link hover text
+
+- Set LINK\_TEXT\_HOVER\_TABLE\_HEADER = #fff
+
+#### <a name="LINK_BORDER_TABLE_SELECTED_COLUM"></a> LINK\_BORDER\_TABLE\_SELECTED\_COLUMN\_HEADER Link border in selected column header
+
+- Set LINK\_BORDER\_TABLE\_SELECTED\_COLUMN\_HEADER = #999
+
+### <a name="Disabled"></a> Disabled
+
+#### <a name="DISABLED_BORDER Disabled border"></a> DISABLED\_BORDER Disabled border
+
+- Set DISABLED\_BORDER = #e0e0e0
+
+#### <a name="DISABLED_TEXT Disabled text"></a> DISABLED\_TEXT Disabled text
+
+- Set DISABLED\_TEXT = #ccc
+
+#### <a name="DISABLED_BACKGROUND Disabled bac"></a> DISABLED\_BACKGROUND Disabled background
+
+- Set DISABLED\_BACKGROUND = #f5f5f5
+
+### <a name="'New'"></a> 'New'
+
+#### <a name="NEW_TEXT New text (green)"></a> NEW\_TEXT New text (green)
+
+- Set NEW\_TEXT = #049804
+
+#### <a name="NEW_BACKGROUND New background (l"></a> NEW\_BACKGROUND New background (light green)
+
+- Set NEW\_BACKGROUND = #ECFADC
+
+### <a name="Alert"></a> Alert
+
+#### <a name="ALERT_TEXT Alert text (red)"></a> ALERT\_TEXT Alert text (red)
+
+- Set ALERT\_TEXT = #f00
+
+#### <a name="ALERT_TEXT_MUTED Muted alert tex"></a> ALERT\_TEXT\_MUTED Muted alert text (dark red)
+
+- Set ALERT\_TEXT\_MUTED = #900
+
+#### <a name="ALERT_BORDER Alert border"></a> ALERT\_BORDER Alert border
+
+- Set ALERT\_BORDER = #f00
+
+### <a name="Buttons"></a> Buttons
+
+#### <a name="BUTTON_TEXT Button text color (d"></a> BUTTON\_TEXT Button text color (dark gray)
+
+- Set BUTTON\_TEXT = #333
+
+#### <a name="BUTTON_BORDERS Button borders"></a> BUTTON\_BORDERS Button borders
+
+- Set BUTTON\_BORDERS = #ddd #aaa #aaa #ddd
+
+#### <a name="BUTTON_BORDERS_ACTIVE Button bor"></a> BUTTON\_BORDERS\_ACTIVE Button borders (active)
+
+- Set BUTTON\_BORDERS\_ACTIVE = #999 #ccc #ccc #999
+
+#### <a name="SUBMIT_BUTTON_BACKGROUND Submit"></a><a name="SUBMIT_BUTTON_BACKGROUND Submit "></a> SUBMIT\_BUTTON\_BACKGROUND Submit button background (dark yellow)
+
+- Set SUBMIT\_BUTTON\_BACKGROUND = #FED764
+
+#### <a name="SUBMIT_BUTTON_BORDER Submit butt"></a> SUBMIT\_BUTTON\_BORDER Submit button border (blue)
+
+- Set SUBMIT\_BUTTON\_BORDER = #88B6CF
+
+### <a name="Forms"></a> Forms
+
+#### <a name="INPUT_FIELD_BORDERS Input field"></a><a name="INPUT_FIELD_BORDERS Input field "></a> INPUT\_FIELD\_BORDERS Input field borders
+
+- Set INPUT\_FIELD\_BORDERS = #aaa #ddd #ddd #aaa
+
+#### <a name="FORM_INPUT_BORDER Textarea, inpu"></a> FORM\_INPUT\_BORDER Textarea, input and select (darker gray)
+
+- Set FORM\_INPUT\_BORDER = #aaa
+
+#### <a name="FORM_BORDER Form (same as twikiT"></a> FORM\_BORDER Form (same as twikiTable border)
+
+- Set FORM\_BORDER = #ccc
+
+#### <a name="ACTIVE_FORM_BACKGROUND Edit form"></a> ACTIVE\_FORM\_BACKGROUND Edit form, form steps
+
+- Set ACTIVE\_FORM\_BACKGROUND = #f8fbfc
+
+#### <a name="FORMFIELD_ACTIVE Active form fie"></a> FORMFIELD\_ACTIVE Active form field (not implemented yet)
+
+- Set FORMFIELD\_ACTIVE = #ffc
+
+## <a name="Color groupings"></a> Color groupings
+
+### <a name="Text colors"></a> Text colors
+
+#### <a name="GENERAL_TEXT General text (if no"></a> GENERAL\_TEXT General text (if not set in MAIN\_BACKGROUND\_COLOR) (black)
+
+- Set GENERAL\_TEXT = #000
+
+#### <a name="HEADER_TEXT Header text"></a> HEADER\_TEXT Header text
+
+- Set HEADER\_TEXT = #a00
+
+#### <a name="CODE_TEXT Code text, left bar te"></a> CODE\_TEXT Code text, left bar text and links
+
+- Set CODE\_TEXT = #7A4707
+
+#### <a name="MUTED_TEXT Muted text (dark gray"></a> MUTED\_TEXT Muted text (dark gray)
+
+- Set MUTED\_TEXT = #666
+
+#### <a name="GRAYED_OUT_TEXT Grayed out text"></a> GRAYED\_OUT\_TEXT Grayed out text
+
+- Set GRAYED\_OUT\_TEXT = #8E9195
+
+#### <a name="STRONG_TEXT Dark text, header (d"></a> STRONG\_TEXT Dark text, header (dark gray)
+
+- Set STRONG\_TEXT = #333
+
+#### <a name="SEPARATOR Seperator in topic act"></a> SEPARATOR Seperator in topic action bar
+
+- Set SEPARATOR = #aaa
+
+### <a name="Background colors"></a> Background colors
+
+#### <a name="GENERAL_BACKGROUND General backg"></a> GENERAL\_BACKGROUND General background color (if not set in MAIN\_BACKGROUND\_COLOR) (white)
+
+- Set GENERAL\_BACKGROUND = #fff
+
+#### <a name="SIDE_BAR_BACKGROUND Side bar bac"></a> SIDE\_BAR\_BACKGROUND Side bar background
+
+- Set SIDE\_BAR\_BACKGROUND = #f7fafc
+
+#### <a name="SIDE_BAR_PERSONAL_BACKGROUND Sid"></a> SIDE\_BAR\_PERSONAL\_BACKGROUND Side bar personal background
+
+- Set SIDE\_BAR\_PERSONAL\_BACKGROUND = #e6eff5;
+
+#### <a name="INFO_BACKGROUND Info (very light"></a> INFO\_BACKGROUND Info (very light blue) (placeholder for background image)
+
+- Set INFO\_BACKGROUND = #f8fbfc
+
+#### <a name="TOPIC_ACTION_BACKGROUND Topic ac"></a> TOPIC\_ACTION\_BACKGROUND Topic action row (light yellow)
+
+- Set TOPIC\_ACTION\_BACKGROUND = #FCF8EC
+
+#### <a name="HEADER_BACKGROUND H1, H2, etc he"></a> HEADER\_BACKGROUND H1, H2, etc header (light yellow)
+
+- Set HEADER\_BACKGROUND = #FDFAF3
+
+#### <a name="ATTACHMENT_AND_FORM_BACKGROUND A"></a> ATTACHMENT\_AND\_FORM\_BACKGROUND Attachment, form (light yellow)
+
+- Set ATTACHMENT\_AND\_FORM\_BACKGROUND = #FEFCF6
+
+#### <a name="DIFF_HEADER_BACKGROUND Diff head"></a> DIFF\_HEADER\_BACKGROUND Diff header (dark gray) (same as GRAYED\_OUT\_TEXT)
+
+- Set DIFF\_HEADER\_BACKGROUND = #ccc
+
+#### <a name="Table colors"></a> Table colors
+
+##### <a name="TABLE_DATA_BACKGROUND Table data"></a> TABLE\_DATA\_BACKGROUND Table data background
+
+- Set TABLE\_DATA\_BACKGROUND = #f0f6f9
+
+##### <a name="TABLE_HEADER_BACKGROUND Table he"></a> TABLE\_HEADER\_BACKGROUND Table header background
+
+- Set TABLE\_HEADER\_BACKGROUND = #6b7f93
+
+##### <a name="TABLE_SELECTED_COLUMN_HEADER_BAC"></a> TABLE\_SELECTED\_COLUMN\_HEADER\_BACKGROUND Sorted table column accent background
+
+- Set TABLE\_SELECTED\_COLUMN\_HEADER\_BACKGROUND = #345
+
+##### <a name="TABLE_DATA_ODD_BACKGROUND Table"></a><a name="TABLE_DATA_ODD_BACKGROUND Table "></a> TABLE\_DATA\_ODD\_BACKGROUND Table data background (odd row)
+
+- Set TABLE\_DATA\_ODD\_BACKGROUND = #edf4f9
+
+##### <a name="TABLE_DATA_EVEN_BACKGROUND Table"></a> TABLE\_DATA\_EVEN\_BACKGROUND Table data background (even row)
+
+- Set TABLE\_DATA\_EVEN\_BACKGROUND = #ffffff
+
+##### <a name="TABLE_DATA_ODD_SELECTED_BACKGROU"></a> TABLE\_DATA\_ODD\_SELECTED\_BACKGROUND Table data background (odd row, selected column)
+
+- Set TABLE\_DATA\_ODD\_SELECTED\_BACKGROUND = #dce7ee
+
+##### <a name="TABLE_DATA_EVEN_SELECTED_BACKGRO"></a> TABLE\_DATA\_EVEN\_SELECTED\_BACKGROUND Table data background (even row, selected column)
+
+- Set TABLE\_DATA\_EVEN\_SELECTED\_BACKGROUND = #f5f5f5
+
+##### <a name="TABLE_DATA_MIX_BACKGROUND Table"></a><a name="TABLE_DATA_MIX_BACKGROUND Table "></a> TABLE\_DATA\_MIX\_BACKGROUND Table data background (mix between even and odd)
+
+- Set TABLE\_DATA\_MIX\_BACKGROUND = #f7fafc
+
+### <a name="Border colors"></a> Border colors
+
+#### <a name="INFO_BORDER Info (light blue)"></a> INFO\_BORDER Info (light blue)
+
+- Set INFO\_BORDER = #D5E6F3
+
+#### <a name="SEPARATOR_BORDER HR line, bottom"></a> SEPARATOR\_BORDER HR line, bottom of h2, attachment table, form (brown)
+
+- Set SEPARATOR\_BORDER = #E2DCC8
+
+#### <a name="MINOR_SEPARATOR_BORDER Header H3"></a> MINOR\_SEPARATOR\_BORDER Header H3..H6 bottom (75% of SEPARATOR\_BORDER)
+
+- Set MINOR\_SEPARATOR\_BORDER = #E9E4D2
+
+#### <a name="LAYOUT_ELEMENT_BORDER Main layou"></a> LAYOUT\_ELEMENT\_BORDER Main layout elements (neutral tone)
+
+- Set LAYOUT\_ELEMENT\_BORDER = #ccc
+
+#### <a name="TABLE_BORDER Table border, sup ("></a> TABLE\_BORDER Table border, sup (light neutral tone)
+
+- Set TABLE\_BORDER = #ccc
+
+#### <a name="TABLE_BORDER_LIGHT Table border"></a><a name="TABLE_BORDER_LIGHT Table border "></a> TABLE\_BORDER\_LIGHT Table border light
+
+- Set TABLE\_BORDER\_LIGHT = #e2e7eb
+
+Do not change the text below this line unless you know what you are doing!
+
+----
+
+ %STARTATTACH{"theme-colors.css"}%
+ /* PatternSkin colors */
+ /* Generated by AttachContentPlugin from TWiki.PatternSkinColorSettings */
+
+ /* LAYOUT ELEMENTS */
+
+ #patternTopBar {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ #patternMain { /* don't set a background here; use patternOuter */ }
+ #patternOuter {
+ background-color:%MAIN_BACKGROUND_COLOR%; /* Sets background of center col */
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ #patternLeftBar, #patternLeftBarContents { /* don't set a background here; use patternWrapper */ }
+ #patternWrapper {
+ background-color:%SIDE_BAR_BACKGROUND%;
+ }
+ #patternBottomBar {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ #patternBottomBarContents,
+ #patternBottomBarContents a:link,
+ #patternBottomBarContents a:visited {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ #patternBottomBarContents a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ /* GENERAL HTML ELEMENTS */
+
+ html body {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ color:%MAIN_TEXT_COLOR%;
+ }
+ /* be kind to netscape 4 that doesn't understand inheritance */
+ body, p, li, ul, ol, dl, dt, dd, acronym, h1, h2, h3, h4, h5, h6 {
+ background-color:transparent;
+ }
+ hr {
+ color:%LAYOUT_ELEMENT_BORDER%;
+ background-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ pre, code, tt {
+ color:%CODE_TEXT%;
+ }
+ blockquote {
+ border-color:%INFO_BORDER%;
+ background-color:%ACTIVE_FORM_BACKGROUND%;
+ }
+ h1, h2, h3, h4, h5, h6 {
+ color:%HEADER_TEXT%;
+ }
+ h1 a:link,
+ h1 a:visited {
+ color:%HEADER_TEXT%;
+ }
+ h1 a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+ h2 {
+ background-color:%HEADER_BACKGROUND%;
+ border-color:%SEPARATOR_BORDER%;
+ }
+ h3, h4, h5, h6 {
+ border-color:%MINOR_SEPARATOR_BORDER%;
+ }
+ /* to override old Render.pm coded font color style */
+ .twikiNewLink font {
+ color:inherit;
+ }
+ .twikiNewLink a:link sup,
+ .twikiNewLink a:visited sup {
+ color:%MUTED_TEXT%;
+ border-color:%TABLE_BORDER%;
+ }
+ .twikiNewLink a:hover sup {
+ background-color:%LINK_BACKGROUND_HOVER%;
+ color:%LINK_TEXT_HOVER%;
+ border-color:%LINK_BACKGROUND_HOVER%;
+ }
+ .twikiNewLink {
+ border-color:%TABLE_BORDER%;
+ }
+ :link:focus,
+ :visited:focus,
+ :link,
+ :visited,
+ :link:active,
+ :visited:active {
+ color:%LINK_TEXT_NORMAL%;
+ background-color:transparent;
+ }
+ :link:hover,
+ :visited:hover {
+ color:%LINK_TEXT_HOVER%;
+ background-color:%LINK_BACKGROUND_HOVER%;
+ }
+ :link:hover img,
+ :visited:hover img {
+ background-color:transparent;
+ }
+ /* fix for hover over transparent logo: */
+ #patternTopBar :link:hover img,
+ #patternTopBar :visited:hover img {
+ background:%MAIN_BACKGROUND_COLOR%;
+ }
+ .patternTopic a:visited {
+ color:%MUTED_TEXT%;
+ }
+ .patternTopic a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ /* Form elements */
+
+ textarea,
+ input,
+ select {
+ border-color:%FORM_INPUT_BORDER%;
+ color:%MAIN_TEXT_COLOR%;
+ background-color:%GENERAL_BACKGROUND%;
+ }
+ .twikiSubmit,
+ .twikiButton {
+ border-color:%BUTTON_BORDERS%;
+ color:%BUTTON_TEXT%;
+ background-color:%GENERAL_BACKGROUND%;
+ }
+ .twikiSubmit:active,
+ .twikiButton:active {
+ border-color:%BUTTON_BORDERS_ACTIVE%;
+ color:%GENERAL_TEXT%;
+ }
+ .twikiSubmitDisabled,
+ .twikiSubmitDisabled:active {
+ border-color:%DISABLED_BORDER%;
+ color:%DISABLED_TEXT%;
+ background-color:%DISABLED_BACKGROUND%;
+ }
+ .twikiInputField,
+ .twikiSelect {
+ border-color:%INPUT_FIELD_BORDERS%;
+ color:%MAIN_TEXT_COLOR%;
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+ .twikiInputFieldDisabled {
+ color:%MUTED_TEXT%;
+ }
+
+ /* -----------------------------------------------------------
+ Plugin elements
+ ----------------------------------------------------------- */
+
+ /* TablePlugin */
+ .twikiTable,
+ .twikiTable td {
+ border-color:%TABLE_BORDER%;
+ }
+ .twikiTable th {
+ border-color:%TABLE_BORDER% %MAIN_BACKGROUND_COLOR%;
+ }
+ .twikiTable th a:link,
+ .twikiTable th a:visited,
+ .twikiTable th a font {
+ color:%LINK_TEXT_NORMAL_TABLE_HEADER%;
+ }
+
+ /* TwistyContrib */
+ .twistyPlaceholder {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ a:hover.twistyTrigger {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ /* TipsContrib */
+ .tipsOfTheDay {
+ background-color:%INFO_BACKGROUND%;
+ }
+ .patternTopic .tipsOfTheDayHeader {
+ color:%STRONG_TEXT%;
+ }
+ /* TipsContrib - in left bar */
+ #patternLeftBar .tipsOfTheDay a:link,
+ #patternLeftBar .tipsOfTheDay a:visited {
+ color:%HEADER_TEXT%;
+ }
+ #patternLeftBar .tipsOfTheDay a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ /* RevCommentPlugin */
+ .revComment .patternTopicAction {
+ background-color:%ATTACHMENT_AND_FORM_BACKGROUND%;
+ }
+
+ /* -----------------------------------------------------------
+ TWiki styles
+ ----------------------------------------------------------- */
+
+ .twikiGrayText {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .twikiGrayText a:link,
+ .twikiGrayText a:visited {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .twikiGrayText a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ table.twikiFormTable th.twikiFormTableHRow,
+ table.twikiFormTable td.twikiFormTableRow {
+ color:%MUTED_TEXT%;
+ }
+ .twikiEditForm {
+ color:%MAIN_TEXT_COLOR%;
+ }
+ .twikiEditForm .twikiFormTable,
+ .twikiEditForm .twikiFormTable th,
+ .twikiEditForm .twikiFormTable td {
+ border-color:%TABLE_BORDER_LIGHT%;
+ }
+ /* use a different table background color mix: no odd/even rows, no white background */
+ .twikiEditForm .twikiFormTable td {
+ background-color:%TABLE_DATA_MIX_BACKGROUND%;
+ }
+ .twikiEditForm .twikiFormTable th {
+ background-color:%TABLE_DATA_ODD_BACKGROUND%;
+ }
+ .patternContent .twikiAttachments,
+ .patternContent .twikiForm {
+ background-color:%ATTACHMENT_AND_FORM_BACKGROUND%;
+ border-color:%SEPARATOR_BORDER%;
+ }
+ .twikiAttachments table,
+ table.twikiFormTable {
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+ .twikiAttachments table {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+ .twikiAttachments td,
+ .twikiAttachments th {
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ .twikiAttachments .twikiTable th font,
+ table.twikiFormTable th.twikiFormTableHRow font {
+ color:%LINK_TEXT_NORMAL%;
+ }
+
+ .twikiFormSteps {
+ background-color:%ACTIVE_FORM_BACKGROUND%;
+ border-color:%SEPARATOR_BORDER%;
+ }
+ .twikiFormStep {
+ border-color:%SEPARATOR_BORDER%;
+ }
+ .twikiFormStep h3,
+ .twikiFormStep h4 {
+ background-color:transparent;
+ }
+ .twikiToc .twikiTocTitle {
+ color:%MUTED_TEXT%;
+ }
+ .twikiBroadcastMessage {
+ background-color:yellow;
+ }
+ .twikiBroadcastMessage b,
+ .twikiBroadcastMessage strong {
+ color:%ALERT_TEXT%;
+ }
+ .twikiAlert,
+ .twikiAlert code {
+ color:%ALERT_TEXT%;
+ }
+ .twikiEmulatedLink {
+ color:%LINK_TEXT_NORMAL%;
+ }
+ .twikiPageForm table {
+ border-color:%TABLE_BORDER%;
+ background:%MAIN_BACKGROUND_COLOR%;
+ }
+ .twikiPageForm hr {
+ border-color:%FORM_BORDER%;
+ background-color:%FORM_BORDER%;
+ color:%FORM_BORDER%;
+ }
+ .twikiHelp {
+ background-color:%INFO_BACKGROUND%;
+ border-color:%INFO_BORDER%;
+ }
+ .twikiAccessKey {
+ color:inherit;
+ border-color:%GRAYED_OUT_TEXT%;
+ }
+ a:link .twikiAccessKey,
+ a:visited .twikiAccessKey,
+ a:hover .twikiAccessKey {
+ color:inherit;
+ }
+
+ /* -----------------------------------------------------------
+ Pattern skin specific elements
+ ----------------------------------------------------------- */
+ #patternPage {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+ /* Left bar */
+ #patternLeftBarContents {
+ color:%MUTED_TEXT%;
+ }
+ #patternLeftBarContents .patternWebIndicator {
+ color:%GENERAL_TEXT%;
+ }
+ #patternLeftBarContents .patternWebIndicator a:link,
+ #patternLeftBarContents .patternWebIndicator a:visited {
+ color:%GENERAL_TEXT%;
+ }
+ #patternLeftBarContents .patternWebIndicator a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+ #patternLeftBarContents hr {
+ color:%SEPARATOR_BORDER%;
+ background-color:%SEPARATOR_BORDER%;
+ }
+ #patternLeftBarContents a:link,
+ #patternLeftBarContents a:visited {
+ color:%SIDE_BAR_LINK_TEXT%;
+ }
+ #patternLeftBarContents a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+ #patternLeftBarContents b,
+ #patternLeftBarContents strong {
+ color:%STRONG_TEXT%;
+ }
+ #patternLeftBarContents .patternChangeLanguage {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ #patternLeftBarContents .patternLeftBarPersonal {
+ background-color:%SIDE_BAR_PERSONAL_BACKGROUND%
+ }
+ #patternLeftBarContents .patternLeftBarPersonal a:link,
+ #patternLeftBarContents .patternLeftBarPersonal a:visited,
+ #patternLeftBarContents .twikiHierarchicalNavigation a:link,
+ #patternLeftBarContents .twikiHierarchicalNavigation a:visited {
+ color:%LINK_TEXT_NORMAL%;
+ }
+ #patternLeftBarContents .patternLeftBarPersonal a:hover,
+ #patternLeftBarContents .twikiHierarchicalNavigation a:hover {
+ color:%LINK_TEXT_HOVER%;
+ background-color:%LINK_BACKGROUND_HOVER%;
+ }
+ #patternLeftBarContents .twikiHierarchicalNavigation {
+ background:%MAIN_BACKGROUND_COLOR%;
+ }
+ .patternTopicActions {
+ border-color:%SEPARATOR_BORDER%;
+ }
+ .patternTopicAction {
+ color:%MUTED_TEXT%;
+ border-color:%SEPARATOR_BORDER%;
+ background-color:%TOPIC_ACTION_BACKGROUND%;
+ }
+ .patternTopicAction s,
+ .patternTopicAction strike {
+ color:%DISABLED_TEXT%;
+ }
+ .patternTopicAction .twikiSeparator {
+ color:%SEPARATOR_BORDER%;
+ }
+ .patternActionButtons a:link,
+ .patternActionButtons a:visited {
+ color:%LINK_TEXT_ACTION_BUTTON%;
+ }
+ .patternActionButtons a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+ .patternTopicAction .twikiAccessKey {
+ color:%LINK_TEXT_ACTION_BUTTON%;
+ border-color:%LINK_TEXT_ACTION_BUTTON%;
+ }
+ .patternTopicAction label {
+ color:%GENERAL_TEXT%;
+ }
+ .patternHelpCol {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .patternFormFieldDefaultColor {
+ /* input fields default text color (no user input) */
+ color:%GRAYED_OUT_TEXT%;
+ }
+
+ .patternToolBar .patternButton s,
+ .patternToolBar .patternButton strike,
+ .patternToolBar .patternButton a:link,
+ .patternToolBar .patternButton a:visited {
+ border-color:%SEPARATOR_BORDER%;
+ background-color:%GENERAL_BACKGROUND%;
+ }
+ .patternToolBar .patternButton a:link,
+ .patternToolBar .patternButton a:visited {
+ color:%MUTED_TEXT%;
+ }
+ .patternToolBar .patternButton s,
+ .patternToolBar .patternButton strike {
+ color:%DISABLED_TEXT%;
+ border-color:%DISABLED_BORDER%;
+ }
+ .patternToolBar .patternButton a:hover {
+ background-color:%LINK_BACKGROUND_HOVER%;
+ color:%LINK_TEXT_HOVER%;
+ border-color:%LINK_TEXT_ACTION_BUTTON%;
+ }
+ .patternToolBar .patternButton img {
+ background-color:transparent;
+ }
+ .patternToolBarBottom {
+ border-color:%SEPARATOR_BORDER%;
+ }
+ .patternToolBar a:link .twikiAccessKey,
+ .patternToolBar a:visited .twikiAccessKey {
+ color:inherit;
+ border-color:%MUTED_TEXT%;
+ }
+ .patternToolBar a:hover .twikiAccessKey {
+ background-color:transparent;
+ color:inherit;
+ }
+
+ .patternRevInfo,
+ .patternRevInfo a:link,
+ .patternRevInfo a:visited {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .patternRevInfo a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+
+ .patternMoved,
+ .patternMoved a:link,
+ .patternMoved a:visited {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .patternMoved a:hover {
+ color:%LINK_TEXT_HOVER%;
+ }
+ .patternSaveHelp {
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+
+ /* WebSearch, WebSearchAdvanced */
+ table#twikiSearchTable th,
+ table#twikiSearchTable td {
+ background-color:%GENERAL_BACKGROUND%;
+ border-color:%TABLE_BORDER%;
+ }
+ table#twikiSearchTable th {
+ color:%MAIN_TEXT_COLOR%;
+ }
+ table#twikiSearchTable td.first {
+ background-color:%TOPIC_ACTION_BACKGROUND%;
+ }
+
+ /* -----------------------------------------------------------
+ Search results
+ styles and overridden styles used in search.pattern.tmpl
+ ----------------------------------------------------------- */
+
+ h3.patternSearchResultsHeader,
+ h4.patternSearchResultsHeader {
+ background-color:%ATTACHMENT_AND_FORM_BACKGROUND%;
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+ h4.patternSearchResultsHeader {
+ color:%MAIN_TEXT_COLOR%;
+ }
+ .patternNoViewPage h4.patternSearchResultsHeader {
+ color:%HEADER_TEXT%;
+ }
+ .patternSearchResult .twikiBottomRow {
+ border-color:%TABLE_BORDER%;
+ }
+ .patternSearchResult .twikiAlert {
+ color:%ALERT_TEXT%;
+ }
+ .patternSearchResult .twikiSummary .twikiAlert {
+ color:%ALERT_TEXT_MUTED%;
+ }
+ .patternSearchResult .twikiNew {
+ background-color:%NEW_BACKGROUND%;
+ border-color:%NEW_TEXT%;
+ color:%NEW_TEXT%;
+ }
+ .patternViewPage .patternSearchResultsBegin {
+ border-color:%TABLE_BORDER%;
+ }
+
+ /* Search results in book view format */
+
+ .patternBookView .twikiTopRow {
+ background-color:transparent; /* set to WEBBGCOLOR in css.pattern.tmpl */
+ color:%MUTED_TEXT%;
+ }
+ .patternBookView .twikiBottomRow {
+ border-color:%TABLE_BORDER%;
+ }
+ .patternBookView .patternSearchResultCount {
+ color:%GRAYED_OUT_TEXT%;
+ }
+
+ /* oopsmore.pattern.tmpl */
+
+ table.patternDiffOptions img {
+ border-color:%LAYOUT_ELEMENT_BORDER%;
+ }
+
+ /* edit.pattern.tmpl */
+
+ .twikiChangeFormButton .twikiButton,
+ .twikiChangeFormButtonHolder .twikiButton { /* looks like a link */
+ color:%LINK_TEXT_NORMAL%;
+ background:none;
+ }
+ .patternSig input {
+ color:%GRAYED_OUT_TEXT%;
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+
+ /* preview.pattern.tmpl */
+
+ .patternPreviewArea {
+ border-color:%ALERT_BORDER%;
+ background-color:%MAIN_BACKGROUND_COLOR%;
+ }
+
+ /* rdiff.pattern.tmpl */
+
+ .patternDiff {
+ border-color:%TABLE_HEADER_BACKGROUND%;
+ }
+ .patternDiff h4.patternSearchResultsHeader {
+ background-color:%TABLE_HEADER_BACKGROUND%;
+ color:%LIGHT_ON_DARK_TEXT_COLOR%;
+ }
+ .patternDiff h4.patternSearchResultsHeader a:link,
+ .patternDiff h4.patternSearchResultsHeader a:visited {
+ color:%LIGHT_ON_DARK_TEXT_COLOR%;
+ }
+ tr.twikiDiffDebug td {
+ border-color:%TABLE_BORDER%;
+ }
+ .patternDiffPage .twikiDiffTable th {
+ background-color:%DIFF_HEADER_BACKGROUND%;
+ }
+ /* Changed */
+ .twikiDiffChangedHeader,
+ tr.twikiDiffDebug .twikiDiffChangedText,
+ tr.twikiDiffDebug .twikiDiffChangedText {
+ background:#9f9; /* green - do not change */
+ }
+ /* Deleted */
+ .twikiDiffDeletedHeader,
+ tr.twikiDiffDebug .twikiDiffDeletedMarker,
+ tr.twikiDiffDebug .twikiDiffDeletedText {
+ background-color:#f99; /* red - do not change */
+ }
+ /* Added */
+ .twikiDiffAddedHeader,
+ tr.twikiDiffDebug .twikiDiffAddedMarker,
+ tr.twikiDiffDebug .twikiDiffAddedText {
+ background-color:#ccf; /* violet - do not change */
+ }
+ /* Unchanged */
+ tr.twikiDiffDebug .twikiDiffUnchangedText {
+ color:%GRAYED_OUT_TEXT%;
+ }
+ .twikiDiffUnchangedTextContents { }
+ .twikiDiffLineNumberHeader {
+ background-color:%DIFF_HEADER_BACKGROUND%;
+ }
+
+ /* IMAGES */
+ /* image positions are set here as well as these are dependent on the image */
+
+ .twikiInputField {
+ background-image:url(background_input.gif);
+ background-repeat:repeat-x;
+ }
+ .twikiInputFieldDisabled {
+ background-image:none;
+ border:none;
+ }
+ .twikiButton {
+ background-image:url(background_button.gif);
+ background-repeat:repeat-x;
+ }
+ .patternToolBarButtons .patternButton a {
+ /*
+ background-image:url(background_button.gif);
+ background-repeat:repeat-x;
+ */
+ }
+ .twikiSubmit {
+ background-image:url(background_submit.gif);
+ background-repeat:repeat-x;
+ }
+ .twikiSubmitDisabled {
+ background-image:none;
+ }
+ .twikiToc li {
+ background-image:url(bullet-child-black.gif);
+ background-repeat:no-repeat;
+ background-position:0 .35em;
+ }
+ /*#patternLeftBarContents .patternLeftBarPersonal,*/
+ #twikiLogin,
+ #patternLeftBarContents .tipsOfTheDayContents {
+ background-image:url(gradient_blue.gif);
+ background-repeat:repeat-x;
+ }
+ #patternOuter {
+ /* gradient yellow of left bar and main */
+ background-image:url(gradient_yellow.gif);
+ background-repeat:repeat-x;
+ }
+ .patternPrintPage #patternOuter {
+ background:#fff; /* white - do not change */
+ }
+ .twikiPageForm table {
+ background-image:url(form_gradient.gif);
+ background-repeat:repeat-x;
+ }
+
+ /* commong settings */
+ .patternLeftBarPersonal li,
+ .twikiHierarchicalNavigation .twikiChildTopics li,
+ .twikiHierarchicalNavigation .twikiParentTopic li,
+ li.patternLogOut,
+ li.patternLogIn {
+ padding-left:13px;
+ background-position:0 .25em;
+ background-repeat:no-repeat;
+ }
+ .patternLeftBarPersonal li,
+ .twikiHierarchicalNavigation .twikiChildTopics li {
+ background-image:url(bullet-blue.gif);
+ }
+ .twikiHierarchicalNavigation .twikiParentTopic li {
+ background-image:url(bullet-parent.gif);
+ }
+ .patternLeftBarPersonal li.patternLogOut {
+ background-image:url(bullet-lock.gif);
+ }
+ .patternLeftBarPersonal li.patternLogIn {
+ background-image:url(bullet-lock.gif);
+ }
+ %ENDATTACH%
PatternSkin uses namespaces for templates, by adding one (sometimes two - multiple) class names to the template's body tag.
- The body tag in view.pattern.tmpl for instance has the class name "patternViewPage": `<body >`. All CSS elements specific to the view template thus can be defined as `.patternViewPage .someClassName`.
-- All templates that are _not_ the view template have the body class name "patternNoViewPage". That makes it easy to give all of these pages a different layout in one sweep (smaller or wider margins for instance). Template edit.pattern.tmpl uses `<body >`.
+- All templates that are _not_ the view template have the body class name "patternNoViewPage". That makes it easy to give all of these pages a different layout (smaller or wider margins for instance) in one sweep. Template edit.pattern.tmpl uses `<body >`.
### <a name="Page type classes"></a> Page type classes
<div>
<ul>
- <li><a href="#Introduction"> Introduction</a><ul>
+ <li><a href="#First Read: How to modify _Patt"> First Read: How to modify PatternSkin styles</a><ul>
+ <li><a href="#Changing the color scheme"> Changing the color scheme</a></li>
<li><a href="#When you need lots of graphic ch"> When you need lots of graphic changes: Rewriting CSS</a></li>
- <li><a href="#When you need small adjustments:"> When you need small adjustments: Adding to existing CSS</a></li>
+ <li><a href="#When you need to make small adju"> When you need to make small adjustments: Adding to existing CSS</a></li>
</ul>
</li>
<li><a href="#Recipes"> Recipes</a><ul>
<li><a href="#Setting _EditTablePlugin styles"> Setting EditTablePlugin styles</a></li>
</ul>
</li>
+ <li><a href="#Style sheet documentation"> Style sheet documentation</a></li>
</ul>
</div>
-## <a name="Introduction"></a> Introduction
+## <a name="First Read: How to modify _Patte"></a> First Read: How to modify PatternSkin styles
PatternSkin uses 3 style sheets (attached to [[PatternSkin]]):
When customizing your TWiki installation, you can either choose to completely rewrite all css styles, or to selectively override some styles. The latter option is by far less time consuming, but all depends on your graphical wishes.
+### <a name="Changing the color scheme"></a> Changing the color scheme
+
+Have a look at [[PatternSkinColorSettings]].
+
### <a name="When you need lots of graphic ch"></a> When you need lots of graphic changes: Rewriting CSS
- Create a new topic that will contain your new CSS files
* Set TWIKISTYLEURL = %PUBURLPATH%/%TWIKIWEB%/YourNewTopic/style.css
* Set TWIKICOLORSURL = %PUBURLPATH%/%TWIKIWEB%/YourNewTopic/colors.css
-### <a name="When you need small adjustments:"></a> When you need small adjustments: Adding to existing CSS
+### <a name="When you need to make small adju"></a> When you need to make small adjustments: Adding to existing CSS
With CSS you cannot remove already defined classes, you can only add to it, or overwrite existing styles. <br /> Overriding default CSS is done with 3 variables: `USERLAYOUTURL`, `USERSTYLEURL`, `USERCOLORSURL`.
### <a name="Setting _EditTablePlugin styles"></a> Setting EditTablePlugin styles
See example at: [[PatternSkinCssCookbookEditTableStyle]]
+
+## <a name="Style sheet documentation"></a> Style sheet documentation
+
+See [[PatternSkinCss]] for documentation of PatternSkin CSS classes
<div> This line loads the extra style definition: <pre>
* Set USERSTYLEURL = %ATTACHURL%/hideleftbar.css
-</pre> You can write this line in [[TWiki/TWikiPreferences]], in [[Main/WebPreferences]], in your user topic or on a single page. </div>
+</pre> You can write this line in [[TWiki/TWikiPreferences]], in [[Main/WebPreferences]], in your user topic, or on a single page. </div>
<div>
<ul>
- <li><a href="#Logo questions"> Logo questions</a><ul>
+ <li><a href="#First Read: How to modify _Patt"> First Read: How to modify PatternSkin templates</a></li>
+ <li><a href="#Logo"> Logo</a><ul>
<li><a href="#How can I change the web logo?"> How can I change the web logo?</a></li>
<li><a href="#How do I set a site-wide logo?"> How do I set a site-wide logo?</a></li>
<li><a href="#My logo does not fit the top bar"> My logo does not fit the top bar</a></li>
<li><a href="#I want to change the white space"> I want to change the white space above and below the logo</a></li>
</ul>
</li>
- <li><a href="#Top bar questions"> Top bar questions</a><ul>
+ <li><a href="#Top bar"> Top bar</a><ul>
<li><a href="#I want to set or change the top"> I want to set or change the top background image</a></li>
<li><a href="#I want to have the web color in"> I want to have the web color in the top bar</a></li>
<li><a href="#I want to remove the Jump and Se"> I want to remove the Jump and Search boxes from the top bar </a></li>
<li><a href="#I want to hide the top bar"> I want to hide the top bar</a></li>
</ul>
</li>
- <li><a href="#Left bar questions"> Left bar questions</a><ul>
+ <li><a href="#Left bar"> Left bar</a><ul>
<li><a href="#I want to hide the left bar"> I want to hide the left bar</a></li>
</ul>
</li>
<li><a href="#Other page parts"> Other page parts</a><ul>
<li><a href="#I want to hide the edit buttons"> I want to hide the edit buttons from certain users</a></li>
+ <li><a href="#I want to remove the History but"> I want to remove the History button from the bottom</a></li>
+ <li><a href="#I want to insert text outside of"> I want to insert text outside of the topic content</a></li>
</ul>
</li>
</ul>
</div>
-## <a name="Logo questions"></a> Logo questions
+## <a name="First Read: How to modify _Patte"></a> First Read: How to modify PatternSkin templates
+
+If you need to change any of the elements that are visible on the common 'view' pages, you need to change the 'view' _template_: `/templates/view.pattern.tmpl`. The quickest way would be to simply change the text in the template. A safer way - strongly recommended, because it will survive a TWiki update - is to create your own custom skin. That may sound like an awful lot of work, but in reality a skin may be as much as 1 file that consists of only a few lines of code.
+
+**Example** %BR% Let's say you want to simplify the bottom toolbar and remove all links except for "More topic actions". You would need to target `%TMPL:DEF{"topicactionbuttons"}%`, which is located in `view.pattern.tmpl`.
+
+**The steps you would need:**
+
+1. Think up a name for your skin. Let us use `myskin` for now.
+2. Create a new (empty) view template file in `/templates` called `view.myskin.tmpl`.
+3. In `view.myskin.tmpl` you write: %BR% `%TMPL:INCLUDE{"view"}%` %BR% `%TMPL:DEF{"topicactionbuttons"}%%TMPL:P{"activatable_more"}%%TMPL:END%`
+4. Now the skin is set. For testing, view any topic and append to the topic name: `?cover=myskin`. You should see an effect now.
+5. To make the changes visible on all pages, go to [[Main.TWikiPreferences|Main/TWikiPreferences]] (to keep [[TWikiPreferences]] intact) and write:
+
+> * Set COVER = myskin
+>
+> or write
+>
+> * Set SKIN = myskin,pattern
+
+## <a name="Logo"></a> Logo
### <a name="How can I change the web logo?"></a> How can I change the web logo?
Redefine your custom variables in [[Main.TWikiPreferences|Main/TWikiPreferences]] (to keep [[TWikiPreferences]] intact):
- * Set WEBLOGONAME = logo.gif
- * Set WEBLOGOIMG = %PUBURLPATH%/%BASEWEB%/%WEBPREFSTOPIC%/%WEBLOGONAME%
- * Set WEBLOGOURL = %SCRIPTURLPATH{"view"}%/%BASEWEB%/%HOMETOPIC%
- * Set WEBLOGOALT = Home
+> * Set WEBLOGONAME = logo.gif
+> * Set WEBLOGOIMG = %PUBURLPATH%/%BASEWEB%/%WEBPREFSTOPIC%/%WEBLOGONAME%
+> * Set WEBLOGOURL = %SCRIPTURLPATH{"view"}%/%BASEWEB%/%HOMETOPIC%
+> * Set WEBLOGOALT = Home
There are 2 ways to change the logo in a web:
> - Create a new image named `logo.gif` and attach it to the web's [[WebPreferences]] topic. [[PatternSkin]]'s stylesheet assumes the logo is 40px high. More about that later.
> - You can also upload the image with FTP to `/pub/YourWeb/WebPreferences/`.
+> - Copy the above instructions ("Redefine your custom variables") and insert your logo name.
**Using a new filename:**
> - Attach whatever image and attach it to the web's [[WebPreferences]] topic. Then add to the [[WebPreferences]] (under _Custom web preferences_):
>
> * Set WEBLOGONAME = your-logo-name.gif-or-png
+>
+> - Copy the above instructions ("Redefine your custom variables") and insert your logo name.
### <a name="How do I set a site-wide logo?"></a> How do I set a site-wide logo?
There is a bunch of site-wide logo variables in [[Main.TWikiPreferences|Main/TWikiPreferences]]: `WIKILOGOIMG`, `WIKILOGOURL` and `WIKILOGOALT`. To change only the web logo image to site-wide, in [[Main.TWikiPreferences|Main/TWikiPreferences]] set:
- * Set WEBLOGOIMG = %WIKILOGOIMG%
+> * Set WEBLOGOIMG = %WIKILOGOIMG%
### <a name="My logo does not fit the top bar"></a> My logo does not fit the top bar
> #patternClearHeaderLeft,
> #patternClearHeaderRight,
> #patternTopBarContentsOuter {
-> height:64px; /* top bar height; make room for header columns */
-> overflow:hidden;
+> height:64px; /* top bar height; make room for header columns */
+> overflow:hidden;
> }
> %TMPL:END%
>
-> Only change the number.
+> Only change the number from 64px to another value.
**Using style sheets:**
### <a name="I want to change the white space"></a> I want to change the white space above and below the logo
-Change the table style in [[WebTopBar]]. Default top padding is 11px.
+Change the table style in topic [[WebTopBar]]. The default top padding is 11px.
-## <a name="Top bar questions"></a> Top bar questions
+## <a name="Top bar"></a> Top bar
### <a name="I want to set or change the top"></a><a name="I want to set or change the top "></a> I want to set or change the top background image
Redefine your custom variables in [[Main.TWikiPreferences|Main/TWikiPreferences]] (to keep [[TWikiPreferences]] intact):
- * Set WEBHEADERART = %PUBURLPATH%/%TWIKIWEB%/PatternSkin/TWiki_header.gif
- * Set WEBHEADERBGCOLOR = somehexcolor (no quotes, for example: #ffffff)
+> * Set WEBHEADERART = %PUBURLPATH%/%TWIKIWEB%/PatternSkin/TWiki_header.gif
+> * Set WEBHEADERBGCOLOR = somehexcolor (no quotes, for example: #ffffff)
You can also set `WEBHEADERART` per web, by defining the variable in the Web's WebPreferences.
Redefine `WEBHEADERBGCOLOR` in [[Main.TWikiPreferences|Main/TWikiPreferences]] (to keep [[TWikiPreferences]] intact):
- * Set WEBHEADERBGCOLOR = %WEBBGCOLOR%
+> * Set WEBHEADERBGCOLOR = %WEBBGCOLOR%
### <a name="I want to remove the Jump and Se"></a> I want to remove the Jump and Search boxes from the top bar
**Using templates:**
-> The view template is populated like this:
->
-> %TMPL:INCLUDE{"page"}%
-> %TMPL:INCLUDE{"viewtopbar"}%
-> %TMPL:INCLUDE{"viewtoolbar"}%
-> %TMPL:INCLUDE{"viewleftbar"}%
-> %TMPL:INCLUDE{"viewrightbar"}%
-> %TMPL:INCLUDE{"viewtopicactionbuttons"}%
-> %TMPL:INCLUDE{"viewbottombar"}%
->
-> Each included template draws a part of the screen. Omit
+The view template is populated with page elements using template inclusions:
+
+ %TMPL:INCLUDE{"page"}%
+ %TMPL:INCLUDE{"viewtopbar"}%
+ %TMPL:INCLUDE{"viewtoolbar"}%
+ %TMPL:INCLUDE{"viewleftbar"}%
+ %TMPL:INCLUDE{"viewrightbar"}%
+ %TMPL:INCLUDE{"viewtopicactionbuttons"}%
+ %TMPL:INCLUDE{"viewbottombar"}%
+
+Each included template draws a part of the screen.%BR% Omit `%TMPL:INCLUDE{"viewtopbar"}%` to hide the top bar.
+
+Another approach is to clear the contents of module `topbar`; for example in `view.myskin.tmpl`:
+
+> %TMPL:INCLUDE{"view"}%
>
-> `%TMPL:INCLUDE{"viewtopbar"}%`
+> %TMPL:INCLUDE{"topbar"}%%TMPL:END%
>
-> to hide the top bar, or in a view template clear it using
+> and add:
>
-> `%TMPL:INCLUDE{"viewtopbar"}%%TMPL:END%`
+> %TMPL:DEF{"topbardimensions"}%#patternTopBar,
+> #patternClearHeaderCenter,
+> #patternClearHeaderLeft,
+> #patternClearHeaderRight,
+> #patternTopBarContentsOuter {
+> height:0px;
+> }%TMPL:END%
**Using style sheets:**
>
> .
-## <a name="Left bar questions"></a> Left bar questions
+## <a name="Left bar"></a> Left bar
### <a name="I want to hide the left bar"></a> I want to hide the left bar
>
> to hide the left bar, or in a view template clear it using
>
-> `%TMPL:INCLUDE{"viewleftbar"}%%TMPL:END%`
+> `%TMPL:DEF{"viewleftbar"}%%TMPL:END%`
**Using style sheets:**
Create in the template directory the file `view.customer.tmpl`. 'Empty' `topicaction` and `toolbar` by writing in the template:
- %TMPL:INCLUDE{"view.pattern"}%
- %TMPL:DEF{"topicaction"}%%TMPL:END%
- %TMPL:DEF{"toolbar"}%%TMPL:END%
+> %TMPL:INCLUDE{"view"}%
+> %TMPL:DEF{"topicaction"}%%TMPL:END%
+> %TMPL:DEF{"toolbar"}%%TMPL:END%
In [[TWikiGuest]], set the cover to
- * Set COVER = customer
+> * Set COVER = customer
By default this topic is editable only by TWikiAdminGroup members.
+
+### <a name="I want to remove the History but"></a> I want to remove the History button from the bottom
+
+All action buttons are defined in `viewtopicactionbuttons.pattern.tmpl`. Remove module `revisions` from `%TMPL:DEF{"topicactionbuttons"}%`. %BR%
+
+> <code> %TMPL:DEF\{"topicactionbuttons"\}%%TMPL:P\{"activatable\_raw\_edit"\}%%TMPL:P\{"sep"\}% %TMPL:P\{context="WysiwygPluginEnabled" then="activatable\_edit\_wysiwyg"\}%%TMPL:P\{context="WysiwygPluginEnabled" then="sep"\}% %TMPL:P\{"activatable\_attach"\}%%TMPL:P\{"sep"\}% %TMPL:P\{"printable"\}%%TMPL:P\{"sep"\}% %TMPL:P\{"raw"\}%%TMPL:P\{"sep"\}% %TMPL:P\{"backlinks"\}%%TMPL:P\{"sep"\}% <span><font><s>%TMPL:P\{"revisions"\}%%TMPL:P\{"sep"\}%</s></font></span> %TMPL:P\{"activatable\_more"\}%%TMPL:END% </code>
+
+In your `view.myskin.tmpl` file (see above) you write:
+
+> %TMPL:INCLUDE{"view"}%
+>
+> %TMPL:DEF{"topicactionbuttons"}% |
+> %TMPL:P{context="WysiwygPluginEnabled" then="activatable_edit_wysiwyg"}%
+> %TMPL:P{"activatable_attach"}% |
+> %TMPL:P{"printable"}% |
+> %TMPL:P{"raw"}% |
+> %TMPL:P{"backlinks"}% |
+> %TMPL:P{"activatable_more"}%%TMPL:END%
+>
+> Remove all newlines if you copy-paste above text.
+
+Test by appending `?cover=myskin` to any topic.
+
+### <a name="I want to insert text outside of"></a> I want to insert text outside of the topic content
+
+PatternSkin has 2 'buckets' to write additional content to: `beforetextcontents` and `aftertextcontents`, both defined in `view.pattern.tmpl`. These containers can contain text or html and are placed directly before and after the topic text.
+
+Both modules are wrapped in CSS containers:
+
+- `beforetextcontents` - wrapped in `div` of class `twikiBeforeText`
+- `aftertextcontents` - wrapped in `div` of class `twikiAfterText`
+
+To put contents before the main text, use the custom skin approach as described above.%BR% So our `view.myskin.tmpl` file contains:
+
+> %TMPL:INCLUDE{"view"}%
+>
+> %TMPL:DEF{"beforetextcontents"}%This is the text before%TMPL:END%
+
+Test by appending `?cover=myskin` to any topic.
+
+Use the same procedure for contents to be put after the topic text:
+
+> %TMPL:INCLUDE{"view"}%
+>
+> %TMPL:DEF{"aftertextcontents"}%This is the text after%TMPL:END%
--- /dev/null
+<div><strong>NOTE:</strong> Edit and Attach will be disabled today between 05:00 PM and 06:00 PM PDT (00:00 to 01:00 GMT) for a scheduled TWiki maintenance.</div>
+
+# <a name="h1 headerwith link"></a><a name=" h1 headerwith link"></a> h1 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+<div><span>On this page:</span><ul>
+ <li>
+ <ul>
+ <li><a href="#h2 headerwith link"> h2 header with link</a></li>
+ <li><a href="#h2 headerwith link - no newline"> h2 header with link - no newline</a><ul>
+ <li><a href="#h3 headerwith link"> h3 header with link</a><ul>
+ <li><a href="#h4 headerwith link"> h4 header with link</a><ul>
+ <li><a href="#h5 headerwith link"> h5 header with link</a><ul>
+ <li><a href="#h6 headerwith link"> h6 header with link</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#Text sizes"> Text sizes</a></li>
+ <li><a href="#Text colors"> Text colors</a></li>
+ <li><a href="#Rule"> Rule</a></li>
+ <li><a href="#Images"> Images</a></li>
+ <li><a href="#Blockquote"> Blockquote</a></li>
+ <li><a href="#Table"> Table</a></li>
+ <li><a href="#Verbatim"> Verbatim</a></li>
+ <li><a href="#Lists"> Lists</a></li>
+ <li><a href="#Attachment table"> Attachment table</a></li>
+ <li><a href="#TWiki form"> TWiki form</a></li>
+ <li><a href="#Search results and search form"> Search results and search form</a></li>
+ </ul>
+ </li>
+ <li><a href="#Web Search"> Web Search </a><ul>
+ <li><a href="#Upload Form"> Upload Form</a><ul>
+ <li><a href="#Attach new file"> Attach new file </a></li>
+ <li><a href="#Comment"> Comment </a></li>
+ <li><a href="#Properties"> Properties </a></li>
+ </ul>
+ </li>
+ <li><a href="#Login form"> Login form</a><ul>
+ <li><a href="#Username"> Username</a></li>
+ <li><a href="#Password"> Password</a></li>
+ </ul>
+ </li>
+ <li><a href="#Comment form/table"> Comment form/table</a></li>
+ <li><a href="#Comment"> Comment</a></li>
+ <li><a href="#Links"> Links</a></li>
+ <li><a href="#Form elements"> Form elements</a></li>
+ <li><a href="#Help text"> Help text</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="h2 headerwith link"></a> h2 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+## <a name="h2 headerwith link - no newline"></a> h2 header [[with link|Main/TOPIC]] - no newline
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+### <a name="h3 headerwith link"></a> h3 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+#### <a name="h4 headerwith link"></a> h4 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+##### <a name="h5 headerwith link"></a> h5 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+###### <a name="h6 headerwith link"></a> h6 header [[with link|Main/TOPIC]]
+
+**Intro text.** Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+## <a name="Text sizes"></a> Text sizes
+
+Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal <span>Smallish text. Smallish text. Smallish text. Smallish text. Smallish text. Smallish text. Smallish text. Smallish text. Smallish text. </span> <span>Small text. Small text. Small text. Small text. Small text. Small text. Small text. Small text. Small text. </span>
+
+## <a name="Text colors"></a> Text colors
+
+<span>Grayed out text.</span>
+
+<span>Alert text.</span>
+
+## <a name="Rule"></a> Rule
+
+----
+
+## <a name="Images"></a> Images
+
+Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Text with :-) smilies and <img src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" height="16" alt="info" /> icons. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+## <a name="Blockquote"></a> Blockquote
+
+> Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text. Normal text.
+
+## <a name="Table"></a> Table
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Numbers </strong></th>
+ <th bgcolor="#99CCCC"><strong> Texts </strong></th>
+ </tr>
+ <tr>
+ <td> 456 </td>
+ <td> uvw </td>
+ </tr>
+ <tr>
+ <td> 123 </td>
+ <td> xyz </td>
+ </tr>
+ <tr>
+ <td> 789 </td>
+ <td> rst </td>
+ </tr>
+</table>
+
+## <a name="Verbatim"></a> Verbatim
+
+ verbatim text
+ A lot more of verbatim text lot more of verbatim text lot more of verbatim text lot more of verbatim text lot more of verbatim text lot more of verbatim text lot more of verbatim text lot more of verbatim text
+
+## <a name="Lists"></a> Lists
+
+Bullet list:
+
+- Item A
+- Item B
+ - Item B.1
+ - Item B.2
+- Item C
+
+Numbered list:
+
+1. Item 1
+2. Item 2
+ 1. Item 2.1
+ 2. Item 2.2
+3. Item 3
+
+## <a name="Attachment table"></a> Attachment table
+
+<div>
+ <table border="1" cellpadding="0" cellspacing="0" id="twikiAttachmentsTable" rules="rows" style="border-width: 1px" summary="Topic attachments">
+ <caption>Topic attachments</caption>
+ <tr>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=0;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">I</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=1;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Attachment</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=2;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Action</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=3;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Size</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=4;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Date</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=5;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Who</font></a></th>
+ <th align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: middle" valign="middle"><a href="%TOPIC%?sortcol=6;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#0066cc">Comment</font></a></th>
+ </tr>
+ <tr>
+ <td align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: top" valign="top"><img align="top" alt="txt" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/txt.gif" width="16" /><span>txt</span></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/viewfile/TWiki/FileAttachment?rev=;filename=Sample.txt">Sample.txt</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/attach/TWiki/FileAttachment?filename=Sample.txt&revInfo=1" rel="nofollow" title="change, update, previous revisions, move, delete...">manage</a></td>
+ <td align="right" bgcolor="#ffffff" style="text-align: right; vertical-align: top" valign="top"> 0.1 K </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> 22 Jul 2000 - 19:37 </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="TWikiContributor">TWikiContributor</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> Just a sample </td>
+ </tr>
+ <tr>
+ <td align="center" bgcolor="#ffffff" style="text-align: center; vertical-align: top" valign="top"><img align="top" alt="gif" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/gif.gif" width="16" /><span>gif</span></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/viewfile/TWiki/FileAttachment?rev=;filename=Smile.gif">Smile.gif</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="/twiki4/MAIN/bin/attach/TWiki/FileAttachment?filename=Smile.gif&revInfo=1" rel="nofollow" title="change, update, previous revisions, move, delete...">manage</a></td>
+ <td align="right" bgcolor="#ffffff" style="text-align: right; vertical-align: top" valign="top"> 0.1 K </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> 22 Jul 2000 - 19:38 </td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"><a href="TWikiContributor">TWikiContributor</a></td>
+ <td align="left" bgcolor="#ffffff" style="text-align: left; vertical-align: top" valign="top"> Smiley face </td>
+ </tr>
+ </table>
+</div>
+
+## <a name="TWiki form"></a> TWiki form
+
+<div>
+ <table border="1" class="twikiFormTable">
+ <tr>
+ <th class="twikiFormTableHRow twikiFirstCol" colspan="2"><a href="/twiki4/MAIN/bin/view/Main/UserForm">Main.UserForm</a></th>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Title </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> FirstName </td>
+ <td> Arthur </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> LastName </td>
+ <td> Clemens </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> OrganisationName </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> OrganisationURL </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Profession </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Country </td>
+ <td> Netherlands </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> State </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Address </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Location </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Telephone </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> VoIP </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> InstantMessaging (IM) </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> HomePage </td>
+ <td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" class="twikiFormTableRow twikiFirstCol"> Comment </td>
+ <td>
+ </td>
+ </tr>
+ </table>
+</div>
+
+## <a name="Search results and search form"></a> Search results and search form
+
+# <a name="Web Search"></a><a name=" Web Search"></a> <a name="Web_Search"></a> Web Search
+
+<span>Searched: **caching**</span><span></span><span></span>
+
+#### <span>**Results from TWiki web** retrieved at 00:46 (GMT)</span><span></span><br />
+
+<div>
+ <div>
+ <div><a href="/twiki4/MAIN/bin/view/TWiki/HeadlinesPlugin"><b>HeadlinesPlugin</b></a></div>
+ <div><a href="/twiki4/MAIN/bin/view/Main/TWikiContributor">TWikiContributor</a></div>
+ <div><span>NEW</span> - <a href="/twiki4/MAIN/bin/rdiff/TWiki/HeadlinesPlugin" rel="nofollow">27 May 2006 - 07:56</a> </div>
+ <br />
+ </div>
+ <div>
+ <div>Headlines Plugin Description This plugin displays RSS and ATOM feeds from news sites. Use it to build news portals that show headline news. Note: Syndic8.com ...</div>
+ </div>
+</div>
+<div>
+ <div>
+ <div><a href="/twiki4/MAIN/bin/view/TWiki/TWikiAjaxContrib"><b>TWikiAjaxContrib</b></a></div>
+ <div><a href="/twiki4/MAIN/bin/view/Main/TWikiContributor">TWikiContributor</a></div>
+ <div>r2 - <a href="/twiki4/MAIN/bin/rdiff/TWiki/TWikiAjaxContrib" rel="nofollow">02 Nov 2006 - 22:04</a> </div>
+ <br />
+ </div>
+ <div>
+ <div>TWikiAjaxContrib TWikiAjaxContrib provides a convenience wrapper class around Yahoo's Connection Manager (AJAX). Goals are: To make it possible for plugins ...</div>
+ </div>
+</div>
+<div>
+ <div>
+ <div><a href="/twiki4/MAIN/bin/view/TWiki/TWikiAjaxContribExamples"><b>TWikiAjaxContribExamples</b></a></div>
+ <div><a href="/twiki4/MAIN/bin/view/Main/TWikiContributor">TWikiContributor</a></div>
+ <div>r2 - <a href="/twiki4/MAIN/bin/rdiff/TWiki/TWikiAjaxContribExamples" rel="nofollow">02 Nov 2006 - 22:04</a> </div>
+ <br />
+ </div>
+ <div>
+ <div>!TWikiAjaxContrib Examples Code examples and demos for TWikiAjaxContrib. Default loading indicator Because TWiki files are served along dynamic urls we cannot use ...</div>
+ </div>
+</div>
+<div id="twikiBottomResultCount">Number of topics: <b>3</b></div>
+
+<a name="twikiSearchForm"></a>
+
+<div>
+ <form action="/twiki4/MAIN/bin/view/TWiki/WebSearch">
+ <table border="0" cellpadding="0" cellspacing="0" id="twikiSearchTable">
+ <tr>
+ <td colspan="2"><input name="search" size="40" type="text" value="caching" /> <input type="submit" value="Search" /><span> <a href="/twiki4/MAIN/bin/view/TWiki/WebSearchAdvanced">Advanced search</a> | <a href="/twiki4/MAIN/bin/view/TWiki/SearchHelp">Help</a></span><div style="padding: 1em 0 0 0">TIP: to search for all topics that contain <code>"SOAP"</code>, <code>"WSDL"</code>, a literal <code>"web service"</code>, but not <code>"shampoo"</code>, write: <code>soap wsdl "web service" -shampoo</code></div>
+ </td>
+ </tr>
+ <tr>
+ <th>Search where:</th>
+ <td><input checked id="textbody" name="scope" type="radio" value="text" /><label for="textbody"> Text body</label> <input id="topictitle" name="scope" type="radio" value="topic" /><label for="topictitle"> Topic title</label> <input id="both" name="scope" type="radio" value="all" /><label for="both"> Both body and title</label>
+ <hr /><input id="web" name="web" type="checkbox" /><label for="web"> All public webs</label><span>(otherwise search TWiki Web only)</span></td>
+ </tr>
+ </table>
+ </form>
+</div>
+
+## <a name="Upload Form"></a> Upload Form
+
+<div>
+ <div>
+ <h3><a name="Attach new file"></a><a name=" Attach new file"></a> <a name="Attach_new_file"></a> Attach new file </h3>
+ <p> Select a new local file to update attachment <code>Sample.txt</code> <span>(<a href="#">UploadingUser</a>)</span><br />Upload up to 10000 KB. </p>
+ <p>
+ </p><input name="filepath" size="30" type="file" value="Sample.txt" /><input name="filename" type="hidden" value="Sample.txt" /></div>
+ <div>
+ <h3><a name="Comment"></a><a name=" Comment"></a> <a name="Comment"></a> Comment </h3>
+ <p> Describe the file so other people know what it is. </p>
+ <p>
+ </p><input maxlength="256" name="filecomment" size="50" type="text" value="Just a sample" /></div>
+ <div>
+ <h3><a name="Properties"></a><a name=" Properties"></a> <a name="Properties"></a> Properties </h3>
+ <p>
+ </p><input id="createlink" name="createlink" type="checkbox" /><label for="createlink">Create a link to the attached file</label><span>Images will be displayed, for other attachments a link will be created.</span><p>
+ </p><input id="hidefile" name="hidefile" type="checkbox" /><label for="hidefile">Do not show attachment in table</label><span>Attachments will not be shown in topic view page.</span></div>
+ <div><input name="changeproperties" type="submit" value="Change comment and properties only" /></div>
+</div>
+
+<a name="topic-actions"> </a>
+
+<div>
+ <div style="margin-top: -1px"><span> <input type="submit" value="Upload file" /> or <a accesskey="c" href="#" rel="nofollow" title="Back to topic"><span class="twikiAccessKey">C</span>ancel</a></span></div>
+</div>
+
+## <a name="Login form"></a> Login form
+
+<div>
+ <div>
+ <p>
+ </p>
+ </div>
+ <div>
+ <h3><a name="Username"></a> Username </h3>
+ <p><img align="top" alt="person" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/person.gif" width="16" /></p><input name="username" size="30" tabindex="1" type="text" value="" /><p>
+ </p>
+ </div>
+ <div>
+ <h3><a name="Password"></a> Password </h3>
+ <p><img align="top" alt="key" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/key.gif" width="16" /></p><input name="password" size="30" tabindex="2" type="password" value="" /></div>
+ <div><input tabindex="3" type="submit" value="Logon" /></div>
+</div>
+
+## <a name="Comment form/table"></a> Comment form/table
+
+(rendered html)
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-width: 0px">
+ <tr>
+ <td align="right" bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top">
+ <label for="comment_url">Url</label>
+ </td>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top"><input id="comment_url" name="comment_url" size="40" type="text" value="http://" /></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top">
+ <label for="comment_link">Link label</label>
+ </td>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top"><input id="comment_link" name="comment_link" size="40" type="text" /></td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top">
+ <label for="bookmark_comment_text">Comment</label>
+ </td>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top"><input id="bookmark_comment_text" name="bookmark_comment_text" size="40" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top">
+ </td>
+ <td bgcolor="#ffffff" style="vertical-align: top; border-width: 0px" valign="top"><input type="submit" value="Add bookmark" /></td>
+ </tr>
+</table>
+<input name="comment_action" type="hidden" value="save" />
+<input name="comment_type" type="hidden" value="bookmark" />
+<input name="comment_index" type="hidden" value="14" />
+<div>
+</div>
+
+## <a name="Comment"></a> Comment
+
+<form action="http://www.dementia.org/twiki/save" enctype="multipart/form-data" id="above0" method="post" name="above0"><input name="comment_action" type="hidden" value="save" /><input name="comment_type" type="hidden" value="above" /><input name="comment_index" type="hidden" value="0" /></form>
+
+## <a name="Links"></a> Links
+
+[[WebHome]] [[DoesNotExist]]
+
+## <a name="Form elements"></a> Form elements
+
+<input type="submit"" value="twikiButton" />
+
+<input type="submit"" value="twikiSubmit" />
+
+<input size="30" />
+
+<textarea rows="4" size="30">
+</textarea>
+
+## <a name="Help text"></a> Help text
+
+<div>
+ <ul>
+ <li><strong>Help:</strong> Please see <a href="" onclick="return launchWindow('TWiki','FileAttachment')" rel="nofollow" target="TWikiVariables">FileAttachment</a> for more information about attaching files. </li>
+ <li><strong>Bug:</strong> Internet Explorer 4.0 or earlier: If you get an "Internal Server Error" message when you upload a file, you need to try again. It should work the second time. </li>
+ </ul>
+</div>
</tr>
<tr>
<td align="right"> Plugin Version: </td>
- <td> 08 May 2005 </td>
+ <td> 15 Apr 2006 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 15 Apr 2006: </td>
+ <td> Adding css classes to buttons. Removed debug print statement causing 500s on SunOne. Prevent extra space in settings on saves. Switched to earlier handler. Converted all SCRIPTURL to SCRIPTURLPATH, and added support. The only SCRIPTURLs should be the one in the BASE tag and those in mail notification templates. Because the forms package was throwing an exception when it failed to create a form, the edit preferences plugin was aborting the whole of the session whenever the form specified in EDITPREFERENCES didn't exist. Changed it so that the Form constructor does not throw, but returns undef on a non-existant form, and changed preferences plugin to be tolerant of missing forms (ie defaults all fields to text if the form is missing, of is a Set exists which is not in the form). </td>
+ </tr>
+ <tr>
<td align="right"> 26 May 2005: </td>
<td> Crawford Currie recoded to use code from Form.pm to render form fields. </td>
</tr>
Attachments are made when people first register, held pending until the registration is confirmed and approved, and are removed when registration is completed.
- Set ALLOWTOPICVIEW = [[TWikiAdminGroup]]
-- Set ALLOWTOPICRENAME = [[TWikiAdminGroup]]
- Set ALLOWTOPICCHANGE = [[TWikiAdminGroup]]
**_Related Topics:_** [[AdminToolsCategory]]
>
> The backreference \\n, where n is a single digit, matches the substring previously matched by the nth parenthesized subexpression of the regular expression.
+**_Related Links:_**
+
+- <http://perldoc.perl.org/perlretut.html> - Regular expressions tutorial
+- <http://www.perl.com/doc/manual/html/pod/perlre.html> - Perl regular expressions
+
**_Related Topics:_** [[UserDocumentationCategory]]
- Wrap long text with continuation lines, the Plugin does not do that for you%BR% `Align continuation lines with leading spaces like this`
- You can specify an icon for a bullet of render type **tree** or **icon**:
- Attach the icon to this Plugin topic, e.g. `myicon.gif`, or
- - Use one of the existing icons: ![globe.gif](http://www.dementia.org/twiki//view/globe.gif) `globe.gif`, ![home.gif](http://www.dementia.org/twiki//view/home.gif) `home.gif`, ![virtualhome.gif](http://www.dementia.org/twiki//view/virtualhome.gif) `virtualhome.gif`, ![group.gif](http://www.dementia.org/twiki//view/group.gif) `group.gif`, ![persons.gif](http://www.dementia.org/twiki//view/persons.gif) `persons.gif`, ![virtualpersons.gif](http://www.dementia.org/twiki//view/virtualpersons.gif) `virtualpersons.gif`, ![person.gif](http://www.dementia.org/twiki//view/person.gif) `person.gif`, ![virtualperson.gif](http://www.dementia.org/twiki//view/virtualperson.gif) `virtualperson.gif`, ![email.gif](http://www.dementia.org/twiki//view/email.gif) `email.gif`, ![trend.gif](http://www.dementia.org/twiki//view/trend.gif) `trend.gif`, ![folder.gif](http://www.dementia.org/twiki//view/folder.gif) `folder.gif`, ![file.gif](http://www.dementia.org/twiki//view/file.gif) `file.gif`, ![doc.gif](http://www.dementia.org/twiki//view/doc.gif) `doc.gif`, ![image.gif](http://www.dementia.org/twiki//view/image.gif) `image.gif`, ![pdf.gif](http://www.dementia.org/twiki//view/pdf.gif) `pdf.gif`, ![ppt.gif](http://www.dementia.org/twiki//view/ppt.gif) `ppt.gif`, ![sound.gif](http://www.dementia.org/twiki//view/sound.gif) `sound.gif`, ![xls.gif](http://www.dementia.org/twiki//view/xls.gif) `xls.gif`, ![zip.gif](http://www.dementia.org/twiki//view/zip.gif) `zip.gif`, ![see.gif](http://www.dementia.org/twiki//view/see.gif) `see.gif`
+ - Use one of the existing icons: ![globe.gif](http://www.dementia.org/twiki//view/globe.gif) `globe.gif`, ![home.gif](http://www.dementia.org/twiki//view/home.gif) `home.gif`, ![virtualhome.gif](http://www.dementia.org/twiki//view/virtualhome.gif) `virtualhome.gif`, ![group.gif](http://www.dementia.org/twiki//view/group.gif) `group.gif`, ![persons.gif](http://www.dementia.org/twiki//view/persons.gif) `persons.gif`, ![virtualpersons.gif](http://www.dementia.org/twiki//view/virtualpersons.gif) `virtualpersons.gif`, ![person.gif](http://www.dementia.org/twiki//view/person.gif) `person.gif`, ![virtualperson.gif](http://www.dementia.org/twiki//view/virtualperson.gif) `virtualperson.gif`, ![email.gif](http://www.dementia.org/twiki//view/email.gif) `email.gif`, ![trend.gif](http://www.dementia.org/twiki//view/trend.gif) `trend.gif`, ![folder.gif](http://www.dementia.org/twiki//view/folder.gif) `folder.gif`, ![folders.gif](http://www.dementia.org/twiki//view/folders.gif) `folders.gif`, ![file.gif](http://www.dementia.org/twiki//view/file.gif) `file.gif`, ![files.gif](http://www.dementia.org/twiki//view/files.gif) `files.gif`, ![doc.gif](http://www.dementia.org/twiki//view/doc.gif) `doc.gif`, ![image.gif](http://www.dementia.org/twiki//view/image.gif) `image.gif`, ![pdf.gif](http://www.dementia.org/twiki//view/pdf.gif) `pdf.gif`, ![ppt.gif](http://www.dementia.org/twiki//view/ppt.gif) `ppt.gif`, ![sound.gif](http://www.dementia.org/twiki//view/sound.gif) `sound.gif`, ![xls.gif](http://www.dementia.org/twiki//view/xls.gif) `xls.gif`, ![zip.gif](http://www.dementia.org/twiki//view/zip.gif) `zip.gif`, ![see.gif](http://www.dementia.org/twiki//view/see.gif) `see.gif`
- Refer to an attached icon at the beginning of the bullet with:
- `icon:myicon Followed by normal bullet text`
+ - Any [[TWikiDocGraphics]] icon can be used as well:
+ - `%ICON{name}% Followed by normal bullet text`
## <a name="Examples"></a> Examples
## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
-**_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 server where TWiki is running.
+**_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 TWiki server.
- Download the ZIP file from the Plugin web (see below)
- Unzip <code>**%TOPIC%.zip**</code> in your twiki installation directory. Content: <table border="1" cellpadding="0" cellspacing="0">
<td> Image files for themes </td>
</tr>
</table>
-- Test if the installation was successful:
- - See if the above example works
+- TWiki 4.0 and up: Run the [configure](http://www.dementia.org/twiki//configure) script to enable the Plugin
+- Test if the installation was successful: See if above examples work
## <a name="Plugin Info"></a> Plugin Info
<td> TWiki:Main/PeterThoeny </td>
</tr>
<tr>
+ <td align="right"> Copyright: </td>
+ <td> © 2006, <a href="http://www.structuredwikis.com/peter.html" target="_top">Peter Thoeny</a></td>
+ </tr>
+ <tr>
+ <td align="right"> License: </td>
+ <td> GPL (<a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>) </td>
+ </tr>
+ <tr>
<td align="right"> Plugin Version: </td>
- <td> 25 Apr 2006 (V1.033) </td>
+ <td> 23 Sep 2006 (V1.034) </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 23 Sep 2006: </td>
+ <td> Support for img tag and image URL after <code>icon:</code> (suggested by TWiki:Main.JanFilipsky); support for [[TWiki/TWikiDocGraphics]] icons, such as <code>%ICON{folder}%</code> instead of <code>icon:folder</code>; added files.gif and folders.gif (contributed by TWiki:Main.SteveHobbs) </td>
+ </tr>
+ <tr>
<td align="right"> 25 Apr 2006: </td>
<td> SVN sync, Cairo + Dakar compatibility </td>
</tr>
</tr>
</table>
-**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]], TWiki:Plugins/TreePlugin
+**_Related Topics:_** [[TWikiPlugins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]], [[TWikiPreferences]], TWiki:Plugins/TreePlugin
--- TWiki:Main/PeterThoeny - 21 Nov 2004
+-- TWiki:Main/PeterThoeny - 23 Sep 2006
**_Remember your password?_** Use [[ChangePassword]] instead. Otherwise, use this form to get a new one e-mailed to you.
-%X% **_Note:_** you **must** have at least one valid registered e-mail to be able to reset your password. If none of your registered e-mail addresses is valid, and you have forgotten your password, contact 0.
-
-[[TWikiUsers]] has a list of other TWiki users.
-
<form action="http://www.dementia.org/twiki/passwd/Main/WebHome" method="post" name="passwd">
<div>
+ <div><strong>After submitting this form, you will receive an e-mail with your new, <strong>system-generated</strong> password, and a link to a page where you can change it.</strong><p> %X% you <strong>must</strong> have at least one valid registered e-mail to be able to reset your password. If none of your registered e-mail addresses is valid, and you have forgotten your password, contact 0. </p>
+ </div>
<div>
- <table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <table border="0" cellpadding="0" cellspacing="0" style="border-width: 0px">
<tr>
- <td style=""> Your [[TWiki/LoginName]]: </td>
- <td style=""><input name="LoginName" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
+ <td colspan="2" style="border-width: 0px"> Fields marked <code><font color="red">**</font></code> are required </td>
</tr>
<tr>
- <td style=""> <input name="action" type="hidden" value="resetPassword" /><input name="TopicName" type="hidden" value="%TOPIC%" /></td>
- <td style=""><input type="submit" value=" Reset password " /> (Fields marked <code><font color="red">**</font></code> are required) </td>
+ <td align="right" style="border-width: 0px"> Your [[TWiki/LoginName]]: </td>
+ <td style="border-width: 0px"><input name="LoginName" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
</tr>
</table>
</div>
+ <div><input name="action" type="hidden" value="resetPassword" /> <input name="TopicName" type="hidden" value="%TOPIC%" /> <input type="submit" value=" Reset password " /></div>
</div>
</form>
-After submitting this form, you will receive an e-mail with your new, **system-generated** password, and a link to a page where you can change it.
-
-If you have any questions, please contact 0.
+<div>
+ <ul>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> [[Main/TWikiUsers]] has a list of other TWiki users. </li>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> If you have any questions, please contact 0. </li>
+ </ul>
+</div>
**_Related topics:_** [[ChangePassword]], [[ChangeEmailAddress]], [[UserToolsCategory]], [[AdminToolsCategory]]
<ul>
<li>
<ul>
- <li><a href="#Pattern 1: Extract values from a"> Pattern 1: Extract values from a table</a><ul>
- <li><a href="#Problem definition"> Problem definition</a></li>
- <li><a href="#Solution"> Solution</a></li>
- </ul>
- </li>
+ <li><a href="#Pattern 1: Extract values from a"> Pattern 1: Extract values from a table</a></li>
</ul>
</li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li><a href="#Pattern 2: List generated from f"> Pattern 2: List generated from form classification</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Test case"> Test case</a></li>
- <li><a href="#Solution"> Solution</a></li>
- </ul>
- </li>
- <li><a href="#Pattern 3: Creating lists of TWi"> Pattern 3: Creating lists of TWiki usernames</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution 1: Appropriate for Sep"> Solution 1: Appropriate for Sep 2004 TWiki (Cairo)</a></li>
- </ul>
- </li>
+ <li><a href="#Pattern 2: List generated from f"> Pattern 2: List generated from form classification</a></li>
+ <li><a href="#Pattern 3: Creating lists of TWi"> Pattern 3: Creating lists of TWiki usernames</a></li>
</ul>
</li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li>
- <ul>
- <li><a href="#Solution 2: As Solution 1, but w"> Solution 2: As Solution 1, but with possibility for multi-selecting usernames</a></li>
- </ul>
- </li>
+ <li><a href="#Pattern 4: Extract the parent of"> Pattern 4: Extract the parent of a given topic</a></li>
</ul>
</li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li>
- <ul>
- <li><a href="#Solution 3: Appropriate for TWik"> Solution 3: Appropriate for TWiki 4 (Dakar)</a></li>
- </ul>
- </li>
- <li><a href="#Pattern 4: Extract the parent of"> Pattern 4: Extract the parent of a given topic</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution"> Solution</a></li>
- <li><a href="#Test Case"> Test Case</a></li>
- </ul>
- </li>
- <li><a href="#Pattern 5: Search and display th"> Pattern 5: Search and display the home topics of public webs in a list</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution"> Solution</a></li>
- <li><a href="#Test case"> Test case</a></li>
- </ul>
- </li>
+ <li><a href="#Pattern 5: Show all Children of"> Pattern 5: Show all Children of a given topic</a></li>
+ <li><a href="#Pattern 6: Search and display th"> Pattern 6: Search and display the home topics of public webs in a list</a></li>
</ul>
</li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li>
- <ul>
- <li><a href="#Alternative solution"> Alternative solution</a></li>
- </ul>
- </li>
- <li><a href="#Pattern 6: Extract a value from"> Pattern 6: Extract a value from a bullet list</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution"> Solution</a></li>
- <li><a href="#Test case"> Test case</a></li>
- </ul>
- </li>
+ <li><a href="#Pattern 7: Create a select box w"> Pattern 7: Create a select box with values from a bullet list</a></li>
+ <li><a href="#Pattern 8: Extract a value from"> Pattern 8: Extract a value from a named bullet list item</a></li>
</ul>
</li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li><a href="#Pattern 7: Search for Form and M"> Pattern 7: Search for Form and Meta data: explained</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution"> Solution</a></li>
- </ul>
- </li>
- <li><a href="#Pattern 8: Search all topics tha"> Pattern 8: Search all topics that have been moved</a><ul>
- <li><a href="#Problem"> Problem</a></li>
- <li><a href="#Solution"> Solution</a></li>
- </ul>
- </li>
- <li><a href="#Contributors"> Contributors</a></li>
+ <li><a href="#Pattern 9: Search for Form and M"> Pattern 9: Search for Form and Meta data: explained</a></li>
+ <li><a href="#Pattern 10: Search all topics th"> Pattern 10: Search all topics that have been moved</a></li>
</ul>
</li>
</ul>
</div>
+<a name="SearchTables"></a>
+
## <a name="Pattern 1: Extract values from a"></a> Pattern 1: Extract values from a table
### <a name="Problem definition"></a> Problem definition
<form>
<select>
- %SEARCH{ "^\|[^\|]*\| *option *\|" topic="%TOPIC%" regex="on" multiple="on" nosearch="on" nototal="on" format="<option>$pattern(^\| *(.*?) *\|.*)</option>" }%
+ %SEARCH{ "^\|[^\|]*\| *option *\|" topic="%TOPIC%" type="regex" multiple="on" nosearch="on" nototal="on" format="<option>$pattern(^\| *(.*?) *\|.*)</option>" }%
</select>
</form>
<form><select><h1><a name="TWiki Installation Error"></a> TWiki Installation Error </h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) </select></form>
-%BR%
+<a name="SearchFormClassification"></a>
## <a name="Pattern 2: List generated from f"></a> Pattern 2: List generated from form classification
### <a name="Solution"></a> Solution
%SEARCH{"[T]opicClassification.*value\=.*Two;[T]opicStatus.*value\=.*%URLPARAM{type}%"
- regex="on" casesensitive="on" nosearch="on"
+ type="regex" casesensitive="on" nosearch="on"
format=" * $topic - <font face=\"arial,helvetica\" size=\"1\">
_last modified by_ $wikiusername _on_ $date </font> %BR%
<font face=\"arial,helvetica\" size=\"1\"> $formfield(TopicStatus) </font>"
*Filter:* %BR%
<form name="selectType" action="%SCRIPTURLPATH{"view"}%/%WEB%/" >
<select name="type" size="1" onchange="document.location=this.value;">
- %SEARCH{ "^\|[^\|]*\| *option *\|" topic="TopicClassification" web="%WEB%" regex="on"
+ %SEARCH{ "^\|[^\|]*\| *option *\|" topic="TopicClassification" web="%WEB%" type="regex"
multiple="on" nosearch="on" nototal="on" format="<option value=%INCLUDINGTOPIC%?type=$pattern(^\| *(.*?) *\|.*)>$pattern(^\| *(.*?) *\|.*)</option>" }%
<option value=%INCLUDINGTOPIC%>All pages</option> </select>
</form>
%STOPSIDEBAR%
-This will create similar functionality as TWiki:Plugins.TopicClassificationAddOn %BR%
+This will create similar functionality as TWiki:Plugins.TopicClassificationAddOn
+
+<a name="SearchUsernames"></a>
## <a name="Pattern 3: Creating lists of TWi"></a> Pattern 3: Creating lists of TWiki usernames
<form name="testing" action="%SCRIPTURLPATH{"view"}%/%MAINWEB%" method="get">
<select name="topic">
<option>Select user...</option>
- %SEARCH{"%META:FORM.*[U]serForm" web="%MAINWEB%" regex="on" casesensitive="on" nosearch="on" format="<option>$topic</option>" sort="topic" excludetopic="Test*, TWiki*"}%
+ %SEARCH{"%META:FORM.*[U]serForm" web="%MAINWEB%" type="regex" casesensitive="on" nosearch="on" format="<option>$topic</option>" sort="topic" excludetopic="Test*, TWiki*"}%
</select>
<input type="submit" value="Go" />
</form>
- <code>**META:FORM.\*[U]serForm**</code> will search for all topics with a [[UserForm]] attached - change this if you have a different form where userdata is stored. Please note that this search does not actually extract anything from the form - it just uses it to identify the appropriate pages
- <code>**excludetopic="Test\*, TWiki\*"**</code> allows to skip all topics starting with Test and TWiki, such as TestUser or TWikiAdmin. Use this if you have any special users who you do not want appearing in this list
+<a name="SearchTopicParent"></a>
+
## <a name="Pattern 4: Extract the parent of"></a> Pattern 4: Extract the parent of a given topic
### <a name="Problem"></a> Problem
How to get to the parent of the current topic to display on the page?
-### <a name="Solution"></a> Solution
+### <a name="Solution 1: Using META"></a> Solution 1: Using META
+
+Since TWiki 4.0 you can now use the META variable:
+
+`%META{ "parent" dontrecurse="on" }%`
+
+### <a name="Solution 2: Using _SpreadSheetPl"></a> Solution 2: Using SpreadSheetPlugin
You might think that the following Search would do the trick:
- %SEARCH{ "^%BASETOPIC%$" scope="topic" nosearch="on" type="regex" nototal="on" format="[[$parent][parent_link]]" }%
+ %SEARCH{ "^%BASETOPIC%$" scope="topic" nosearch="on" type="regex" nonoise="on" format=" * $parent" }%
-However, the `[[$parent][parent_link]]` link fails if the topic has no parent set (`$parent` will be empty). You can use some [[SpreadSheetPlugin]] magic to conditionally link to the parent or to `WebHome`: `[[$percntCALC{$IF($EXACT($parent,), %HOMETOPIC%, $parent)}$percnt][parent_link]]`
+However, the `$parent` link fails if the topic has no parent set (`$parent` will be empty). You can use some TWiki:Plugins/SpreadSheetPlugin magic to conditionally link to the parent or to `WebHome`:
+
+ $percntCALC{$IF($EXACT($parent,),<nop>,$NOP( * $parent))}$percnt
So the total Search query to find a topic's parent topic is:
- %SEARCH{ "^%BASETOPIC%$" scope="topic" nosearch="on" type="regex" nototal="on" format="[<nop>[$percntCALC{$IF($EXACT($parent,), <nop>%HOMETOPIC%, $parent)}$percnt][parent_link]]" }%
+ %SEARCH{ "^%BASETOPIC%$" scope="topic" type="regex" nonoise="on" format="$percntCALC{$IF($EXACT($parent,),<nop>,$NOP( * $parent))}$percnt" }%
-### <a name="Test Case"></a> Test Case
+#### <a name="Test Case"></a> Test Case
The parent topic of this topic is:
-# TWiki Installation Error
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-## <a name="Pattern 5: Search and display th"></a> Pattern 5: Search and display the home topics of public webs in a list
+### <a name="Solution 3: Using IF statement"></a> Solution 3: Using IF statement
+
+This pattern can be rewritten using `%IF%`, removing the dependency on SpreadSheetPlugin:
+
+ %SEARCH{ "^%BASETOPIC%$" web="%BASEWEB%" scope="topic" type="regex" nonoise="on" format="$percntIF{$quot$parent$quot then=$quot * $parent$quot else=$quot<nop>$quot}$percnt" }%
+
+#### <a name="Test Case"></a> Test Case
+
+The parent topic of this topic is: %BR%
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+<a name="SearchTopicChildren"></a>
+
+## <a name="Pattern 5: Show all Children of"></a><a name="Pattern 5: Show all Children of "></a> Pattern 5: Show all Children of a given topic
+
+### <a name="Problem"></a> Problem
+
+How to get to the list of all children of the current topic to display on the page?
+
+### <a name="Solution"></a> Solution
+
+The parent information is stored in the META:TOPICPARENT meta data. Do a SEARCH to find all topic parent meta data pointing to the current topic:
+
+ Children:
+ %SEARCH{ "META\:TOPICPARENT.*\"%TOPIC%\"" type="regex" nonoise="on" format="[[$topic]]" separator=", " }%
+
+**_Note:_** Replace `%TOPIC%` with `%BASETOPIC%` if you put this SEARCH into the skin or a sidebar.
+
+<a name="SearchPublicWebsList"></a>
+
+## <a name="Pattern 6: Search and display th"></a> Pattern 6: Search and display the home topics of public webs in a list
### <a name="Problem"></a> Problem
<p>
</p></select> <input type="submit" value="Go" /></form>
-## <a name="Pattern 6: Extract a value from"></a><a name="Pattern 6: Extract a value from "></a> Pattern 6: Extract a value from a bullet list
+<a name="SearchBulletList"></a>
+
+## <a name="Pattern 7: Create a select box w"></a> Pattern 7: Create a select box with values from a bullet list
+
+### <a name="Problem"></a> Problem
+
+We have a topic with a bullet list with category names. In another topic we want to offer these values in a select box dropdown.
+
+For example, CategoryList has:
+
+- Clients
+- People
+- Rooms
+- Buildings
+
+### <a name="Solution"></a> Solution
+
+The following search pattern can be employed:
+
+ <select name="type">
+ <option>Select category...</option>
+ %SEARCH{" *\s*.*?" topic="CategoryList" type="regex" multiple="on" casesensitive="on" nosummary="on" nosearch="on" noheader="on" nototal="on" format="<option>$pattern(.* \*\s*([^\n]*).*)</option>"}%
+ </select>
+
+To render the bullet list as a comma-separated list, use the `separator` parameter:
+
+ %SEARCH{" *\s*.*?" topic="CategoryList" type="regex" multiple="on" casesensitive="on" nosummary="on" nosearch="on" noheader="on" nototal="on" separator="," format="$pattern(.* \*\s*([^\n]*).*)"}%
+
+<a name="SearchNamedBulletList"></a>
+
+## <a name="Pattern 8: Extract a value from"></a><a name="Pattern 8: Extract a value from "></a> Pattern 8: Extract a value from a named bullet list item
### <a name="Problem"></a> Problem
Search for the `Name:` entry.
- %SEARCH{" * [N]ame: " topic="%TOPIC%" regex="on" casesensitive="on" nosummary="on" nosearch="on" noheader="on" nototal="on" format="---+!! $pattern(.* \* Name: ([^\n]*).*)"}%
+ %SEARCH{" * [N]ame: " topic="%TOPIC%" type="regex" casesensitive="on" nosummary="on" nosearch="on" noheader="on" nototal="on" format="---+!! $pattern(.* \* Name: ([^\n]*).*)"}%
### <a name="Test case"></a> Test case
Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-## <a name="Pattern 7: Search for Form and M"></a> Pattern 7: Search for Form and Meta data: explained
+<a name="SearchMetaData"></a>
+
+## <a name="Pattern 9: Search for Form and M"></a> Pattern 9: Search for Form and Meta data: explained
### <a name="Problem"></a> Problem
- why is this searching the metadata, shouldn't it just search the text?
- what is the meaning of the `td..td` in the search expression?
- %SEARCH{ "[S]tatus.*(td..td|value\=).*[W]aiting" casesensitive="on" regex="on"
+ %SEARCH{ "[S]tatus.*(td..td|value\=).*[W]aiting" casesensitive="on" type="regex"
nosearch="on" nototal="on" format="| [[$topic]]<br /> ($date - $rev -
[[%SCRIPTURLPATH{rdiff}%/$web/$topic][Diffs]]) |"}%
So a search for a form field could look like:
- %SEARCH{ "[O]peratingSystem.*value\=.*[O]sWin" regex="on" ... }%
+ %SEARCH{ "[O]peratingSystem.*value\=.*[O]sWin" type="regex" ... }%
- Using square brackets is a trick to avoid a hit on the topic doing the search.
- The `.*` indicate that there can be any number of any character between `OperatingSystem` and `value` in the (whole) file
The following search finds topics in the old and new format:
- %SEARCH{ "[O]peratingSystem.*(td..td|value\=).*[O]sWin" regex="on" ... }%
+ %SEARCH{ "[O]peratingSystem.*(td..td|value\=).*[O]sWin" type="regex" ... }%
The `td..td` matches `td<>td`; a simple search on `"[O]peratingSystem.*[O]sWin"` could find a hit in the topic text by coincidence.
A simple `%SEARCH{ "[O]peratingSystem.*value\=.*[O]sWin" ...}%` search is sufficient if you do not have topics in the old format.
-## <a name="Pattern 8: Search all topics tha"></a> Pattern 8: Search all topics that have been moved
+<a name="MovedTopics"></a>
+
+## <a name="Pattern 10: Search all topics th"></a> Pattern 10: Search all topics that have been moved
### <a name="Problem"></a> Problem
Search for the META:TOPICMOVED meta data. Type this:
-`Moved topics: %SEARCH{ "%META\:TOPICMOVED" regex="on" format="$topic, " nosearch="on" noheader="on" nosummary="on" }%`
+`Moved topics: %SEARCH{ "%META\:TOPICMOVED" type="regex" format="$topic, " nosearch="on" noheader="on" nosummary="on" }%`
to get this (limited to 10 results):
Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-## <a name="Contributors"></a> Contributors
-
-TWiki:Main.AntonAylward, TWiki:Main.ArthurClemens, TWiki:Main.JosMaccabiani, TWiki:Main.PeterThoeny, TWiki:Main.SueLocke
+**_Related Topics:_** [[UserDocumentationCategory]], [[SearchHelp]], [[TWikiVariables#VarSEARCH]], [[FormattedSearch]], [[RegularExpression]]
-**_Related Topics:_** [[UserDocumentationCategory]]
+-- **_Contributors:_** TWiki:Main.AntonAylward, TWiki:Main.ArthurClemens, TWiki:Main.JosMaccabiani, TWiki:Main.PeterThoeny, TWiki:Main.SueLocke
<th bgcolor="#99CCCC"><strong> Sitemap </strong></th>
<th bgcolor="#99CCCC" colspan="2"><strong> VIEW </strong></th>
<th bgcolor="#99CCCC" colspan="2"><strong> CHANGE </strong></th>
- <th bgcolor="#99CCCC" colspan="2"><strong> RENAME </strong></th>
</tr>
<tr>
<td> ^ </td>
<th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
<th bgcolor="#99CCCC"><strong> DENY </strong></th>
<th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
- <th bgcolor="#99CCCC"><strong> DENY </strong></th>
- <th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
</tr>
</table>
----
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr bgcolor="#003399">
- <td valign="middle" width="2%"><img alt="TWiki Slide Show" border="0" src="http://www.dementia.org/twiki//view/%WEB%/SlideShowPlugin/logo.gif" /> </td>
+ <td valign="middle" width="2%"><img alt="TWiki Slide Show" border="0" src="http://www.dementia.org/twiki//view/%WEB%/SlideShowPlugin/logo.gif" /></td>
<td valign="middle"><font color="#FFFFFF" size="+3">%SLIDETITLE%</font></td>
- <td align="right" valign="middle"> %SLIDENAVNEXT% </td>
+ <td align="right" valign="middle"> %SLIDENAVNEXT%</td>
</tr>
</table>
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<td> Plugin topic </td>
</tr>
<tr>
- <td><code><b>data/TWiki/%TOPIC%.txt,v</b></code></td>
- <td> Plugin topic repository </td>
+ <td><code><b>lib/TWiki/Plugins/%TOPIC%.pm</b></code></td>
+ <td> Plugin Perl module </td>
</tr>
<tr>
- <td><code><b>lib/TWiki/Plugins/%TOPIC%.pm</b></code></td>
+ <td><code><b>lib/TWiki/Plugins/%TOPIC%/SlideShow.pm</b></code></td>
<td> Plugin Perl module </td>
</tr>
<tr>
<td> Various button image files </td>
</tr>
</table>
-- (Dakar) Visit `configure` in your TWiki installation, and enable the plugin in the \{Plugins\} section.
+- TWiki 4.0 and up: Run the [configure](http://www.dementia.org/twiki//configure) script, and enable the plugin in the \{Plugins\} section.
- Test above example if the installation was successful.
## <a name="Plugin Info"></a> Plugin Info
<td> TWiki:Main/PeterThoeny </td>
</tr>
<tr>
+ <td align="right"> Copyright: </td>
+ <td> © 2006, <a href="http://www.structuredwikis.com/peter/" target="_top">Peter Thoeny</a></td>
+ </tr>
+ <tr>
+ <td align="right"> License: </td>
+ <td> GPL (<a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>) </td>
+ </tr>
+ <tr>
<td align="right"> Plugin Version: </td>
- <td> 1.005 </td>
+ <td> 12011 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 19 Nov 2006: </td>
+ <td> 12011: Preserve URL parameters in slideshow (suggested by TWiki:Main/ThomasWeigert); changed logo in default template to T-logo; fixed warning errors introduced by 1.005 </td>
+ </tr>
+ <tr>
<td align="right"> 16 Mar 2005: </td>
<td> 1.005 Crawford Currie prepped for Dakar, and fixed multiple evaluation bug </td>
</tr>
Plugin settings are stored as preferences variables. To reference a plugin setting write <code>**%<plugin>\_<setting>%**</code>, for example, <code>**%INTERWIKIPLUGIN\_SHORTDESCRIPTION%**</code>
- One line description, shown in the [[TextFormattingRules]] topic:
-- Set SHORTDESCRIPTION = Render smilies as icons, like ` :-)` for :-) or ` :cool:` for :cool:
+- Set SHORTDESCRIPTION = Render smilies as icons, like :-) for ` :-)` or :eek: for ` :eek:`
- The name of the topic containig your Smilies. Default: <code>**%WEB%.SmiliesPlugin**</code>
- #Set TOPIC = [[SmiliesPlugin]]
<li><a href="#ObjectData =twiki="> ObjectData twiki</a></li>
<li><a href="#TWiki::Client::_TemplateLogin"> TWiki::Client::TemplateLogin </a></li>
<li><a href="#TWiki::Compatibility"> TWiki::Compatibility </a></li>
+ <li><a href="#TWiki::Configure::Load"> TWiki::Configure::Load </a></li>
+ <li><a href="#Purpose"> Purpose</a></li>
+ <li><a href="#"> </a></li>
<li><a href="#TWiki"> TWiki </a></li>
<li><a href="#TWiki::Form"> TWiki::Form </a></li>
<li><a href="#TWiki::Func"> TWiki::Func </a></li>
<li><a href="#TWiki::UI::Oops"> TWiki::UI::Oops </a></li>
<li><a href="#TWiki::UI::RDiff"> TWiki::UI::RDiff </a></li>
<li><a href="#TWiki::UI::Register"> TWiki::UI::Register </a></li>
- <li><a href="#TWiki::UI::Rest"> TWiki::UI::Rest </a></li>
<li><a href="#TWiki::UI::Save"> TWiki::UI::Save </a></li>
<li><a href="#TWiki::UI::Search"> TWiki::UI::Search </a></li>
<li><a href="#TWiki::UI::Statistics"> TWiki::UI::Statistics </a></li>
A singleton object of this class is used to deal with attachments to topics.
-This package has smell factor of **2**
+This package has smell factor of **1**
## <a name="TWiki::Attrs"></a> [[TWiki::Attrs|Main/TWikiAttrsDotPm]]
## <a name="TWiki::Client::_ApacheLogin"></a> [[TWiki::Client::ApacheLogin|Main/TWikiClientApacheLoginDotPm]]
-This is login manager that you can specify in the security setup section of [configure](http://www.dementia.org/twiki//configure). It instructs TWiki to cooperate with your web server (typically Apache) to require authentication information (username & password) from users. It requires that you configure your web server to demand authentication for scripts named "login" and anything ending in "auth". The latter should be symlinks to existing scripts; e.g., `viewauth -> view`, `editauth -> edit`, and so on.
+This is login manager that you can specify in the security setup section of [configure](http://www.dementia.org/twiki/configure). It instructs TWiki to cooperate with your web server (typically Apache) to require authentication information (username & password) from users. It requires that you configure your web server to demand authentication for scripts named "login" and anything ending in "auth". The latter should be symlinks to existing scripts; e.g., `viewauth -> view`, `editauth -> edit`, and so on.
See also [[TWikiUserAuthentication]].
The package is also a Factory for login managers and also the base class for all login managers.
-On it's own, an object of this class is used when you specify 'none' in the security setup section of [configure](http://www.dementia.org/twiki//configure). When it is used, logins are not supported. If you want to authenticate users then you should consider [[TemplateLogin]] or [[ApacheLogin]], which are subclasses of this class.
+On it's own, an object of this class is used when you specify 'none' in the security setup section of [configure](http://www.dementia.org/twiki/configure). When it is used, logins are not supported. If you want to authenticate users then you should consider [[TemplateLogin]] or [[ApacheLogin]], which are subclasses of this class.
If you are building a new login manager, then you should write a new subclass of this class, implementing the methods marked as **VIRTUAL**. There are already examples in the `lib/TWiki/Client` directory.
The class has extensive tracing, which is enabled by $TWiki::cfg\{Trace\}\{Client.pm\}. The tracing is done in such a way as to let the perl optimiser optimise out the trace function as a no-op if tracing is disabled.
+Here's an overview of how it works:
+
+Early in TWiki::new, the login manager is created. The creation of the login manager does two things:
+
+1. If sessions are in use, it loads CGI::Session but doesn't initialise the session yet.
+2. Creates the login manager object
+
+Slightly later in TWiki::new, loginManager->loadSession is called.
+
+1. Calls loginManager->getUser to get the username **before** the session is created
+ - TWiki::Client::ApacheLogin looks at REMOTE\_USER
+ - TWiki::Client::TemplateLogin just returns undef
+2. reads the TWIKISID cookie to get the SID (or the TWIKISID parameters in the CGI query if cookies aren't available, or [[IP2SID]] mapping if that's enabled).
+3. Creates the CGI::Session object, and the session is thereby read.
+4. If the username still isn't known, reads it from the cookie. Thus TWiki::Client::ApacheLogin overrides the cookie using REMOTE\_USER, and TWiki::Client::TemplateLogin **always** uses the session.
+
+Later again in TWiki::new, plugins are given a chance to **override** the username found from the loginManager.
+
+The last step in TWiki::new is to find the user, using whatever user mapping manager is in place.
+
## <a name="ObjectData <code>twiki="></a> [[ObjectData]] =twiki
The TWiki object this login manager is attached to.
## <a name="TWiki::Client::_TemplateLogin"></a> [[TWiki::Client::TemplateLogin|Main/TWikiClientTemplateLoginDotPm]]
-This is a login manager that you can specify in the security setup section of [configure](http://www.dementia.org/twiki//configure). It provides users with a template-based form to enter usernames and passwords, and works with the [[PasswordManager]] that you specify to verify those passwords.
+This is a login manager that you can specify in the security setup section of [configure](http://www.dementia.org/twiki/configure). It provides users with a template-based form to enter usernames and passwords, and works with the [[PasswordManager]] that you specify to verify those passwords.
Subclass of TWiki::Client; see that class for documentation of the methods of this class.
-This package has smell factor of **2**
+This package has smell factor of **1**
## <a name="TWiki::Compatibility"></a> [[TWiki::Compatibility|Main/TWikiCompatibilityDotPm]]
Support for compatibility with old TWiki versions. Packaged separately because 99.999999% of the time this won't be needed.
-=end
-
-sub \_upgradeCategoryItem \{ my ( $catitems, $ctext ) = @\_; my $catname = ''; my $scatname = ''; my $catmodifier = ''; my $catvalue = ''; my @cmd = split( /\\|/, $catitems ); my $src = ''; my $len = @cmd; if( $len < '2' ) \{ # FIXME return ( $catname, $catmodifier, $catvalue ) \} my $svalue = '';
-
-my $i; my $itemsPerLine;
+This package has smell factor of **2**
-# check for [[CategoryName]]=CategoryValue parameter my $paramCmd = ''; my $cvalue = ''; # was$query->param( $cmd[1] ); if( $cvalue ) \{ $src = "$cvalue"; \} elsif( $ctext ) \{ foreach( split( /\\r?\\n/, $ctext ) ) \{ if( /$cmd[1]/ ) \{ $src = $\_; last; \} \} \}
+## <a name="TWiki::Configure::Load"></a> [[TWiki::Configure::Load|Main/TWikiConfigureLoadDotPm]]
-if( $cmd[0] eq 'select' || $cmd[0] eq 'radio') \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; my $size = $cmd[2]; for( $i = 3; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; if( $src =~ /$value/ ) \{ $catvalue = $svalue; \} \}
+## <a name="Purpose"></a> Purpose
-\} elsif( $cmd[0] eq 'checkbox' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; if( $cmd[2] eq 'true' || $cmd[2] eq '1' ) \{ $i = $len - 4; $catmodifier = 1; \} $itemsPerLine = $cmd[3]; for( $i = 4; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; # [[I18N]]: FIXME - need to look at this, but since it's upgrading # old forms that probably didn't use [[I18N]], it's not a high # priority. if( $src =~ /$value[^a-zA-Z0-9\\.]/ ) \{ $catvalue .= ", " if( $catvalue ); $catvalue .= $svalue; \} \}
+This module consists of just a single subroutine `readConfig`. It allows to safely modify configuration variables _for one single run_ without affecting normal TWiki operation.
-\} elsif( $cmd[0] eq 'text' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; $src =~ /(.\*)/; if( $1 ) \{ $src = $1; \} else \{ $src = ''; \} $catvalue = $src; \}
+This package doesn't smell
-return ( $catname, $catmodifier, $catvalue ) \}
+## <> \[[TWikiConfigureUIsEXTENDDotPm]\[]]
-This package has smell factor of **2**
+This package has smell factor of **1**
## <a name="TWiki"></a> [[TWiki|Main/TWikiDotPm]]
Global variables are avoided wherever possible to avoid problems with CGI accelerators such as mod\_perl.
-This package has smell factor of **29**
+This package has smell factor of **25**
## <a name="TWiki::Form"></a> [[TWiki::Form|Main/TWikiFormDotPm]]
Object representing a single form definition.
-This package has smell factor of **10**
+This package has smell factor of **9**
## <a name="TWiki::Func"></a> [[TWiki::Func|Main/TWikiFuncDotPm]]
Meta-data objects are created by the Store engine when topics are read. They are populated using the `put` method.
-This package has smell factor of **6**
+This package has smell factor of **3**
## <a name="TWiki::Net"></a> [[TWiki::Net|Main/TWikiNetDotPm]]
This class does no validation or duplicate-checking on the settings; it simply returns the recognized settings in the order it sees them in.
-This package has smell factor of **2**
+This package has smell factor of **1**
## <a name="TWiki::Prefs::_PrefsCache"></a> [[TWiki::Prefs::PrefsCache|Main/TWikiPrefsPrefsCacheDotPm]]
As each cache level is built, the values are copied down from the parent cache level. This sounds monstrously inefficient, but in fact perl does this a lot better than doing a multi-level lookup when a value is referenced. This is especially important when many prefs lookups may be done in a session, for example when searching.
-This package has smell factor of **1**
+This package doesn't smell
## <a name="TWiki::Render"></a> [[TWiki::Render|Main/TWikiRenderDotPm]]
This module provides most of the actual HTML rendering code in TWiki.
-This package has smell factor of **22**
+This package has smell factor of **19**
## <a name="TWiki::Sandbox"></a> [[TWiki::Sandbox|Main/TWikiSandboxDotPm]]
This module implements all the search functionality.
-This package has smell factor of **22**
+This package has smell factor of **20**
## <a name="TWiki::Store"></a> [[TWiki::Store|Main/TWikiStoreDotPm]]
Time handling functions.
-This package has smell factor of **10**
+This package has smell factor of **7**
## <a name="TWiki::UI::_ChangeForm"></a> [[TWiki::UI::ChangeForm|Main/TWikiUIChangeFormDotPm]]
UI delegate for oops function
-This package has smell factor of **1**
+This package doesn't smell
## <a name="TWiki::UI::RDiff"></a> [[TWiki::UI::RDiff|Main/TWikiUIRDiffDotPm]]
User registration handling.
-This package has smell factor of **20**
-
-## <a name="TWiki::UI::Rest"></a> [[TWiki::UI::Rest|Main/TWikiUIRestDotPm]]
-
-Rest delegate for view function
-
-This package doesn't smell
+This package has smell factor of **19**
## <a name="TWiki::UI::Save"></a> [[TWiki::UI::Save|Main/TWikiUISaveDotPm]]
UI delegate for save function
-This package doesn't smell
+This package has smell factor of **1**
## <a name="TWiki::UI::Search"></a> [[TWiki::UI::Search|Main/TWikiUISearchDotPm]]
UI delegate for view function
-This package has smell factor of **1**
+This package has smell factor of **2**
## <a name="TWiki::User"></a> [[TWiki::User|Main/TWikiUserDotPm]]
This package has smell factor of **3**
-There were a total of **220** smells
+There were a total of **201** smells
<li><a href="#LISTITEM( index, list ) -- get o"> LISTITEM( index, list ) -- get one element of a list</a></li>
<li><a href="#LISTJOIN( separator, list ) -- c"> LISTJOIN( separator, list ) -- convert a list into a string</a></li>
<li><a href="#LISTMAP( formula, list ) -- eval"> LISTMAP( formula, list ) -- evaluate and update each element of a list</a></li>
+ <li><a href="#LISTRAND( list ) -- get one rand"> LISTRAND( list ) -- get one random element of a list</a></li>
<li><a href="#LISTREVERSE( list ) -- opposite"> LISTREVERSE( list ) -- opposite order of a list</a></li>
<li><a href="#LISTSIZE( list ) -- number of el"> LISTSIZE( list ) -- number of elements in a list</a></li>
+ <li><a href="#LISTSHUFFLE( list ) -- shuffle e"> LISTSHUFFLE( list ) -- shuffle element of a list in random order</a></li>
<li><a href="#LISTSORT( list ) -- sort a list"> LISTSORT( list ) -- sort a list</a></li>
+ <li><a href="#LISTTRUNCATE( size, list ) -- tr"> LISTTRUNCATE( size, list ) -- truncate list to size</a></li>
<li><a href="#LISTUNIQUE( list ) -- remove all"> LISTUNIQUE( list ) -- remove all duplicates from a list</a></li>
<li><a href="#LOWER( text ) -- lower case stri"> LOWER( text ) -- lower case string of a text</a></li>
<li><a href="#MAX( list ) - biggest value of a"> MAX( list ) - biggest value of a list or range of cells</a></li>
<li><a href="#PROPER( text ) -- properly capit"> PROPER( text ) -- properly capitalize text</a></li>
<li><a href="#PROPERSPACE( text ) -- properly"> PROPERSPACE( text ) -- properly space out WikiWords</a></li>
<li><a href="#RAND( max ) -- random number"> RAND( max ) -- random number</a></li>
- <li><a href="#REPEAT(text) -- repeat text a nu"> REPEAT(text) -- repeat text a number of times</a></li>
+ <li><a href="#REPEAT( text, num ) -- repeat te"> REPEAT( text, num ) -- repeat text a number of times</a></li>
<li><a href="#REPLACE( text, start, num, new )"> REPLACE( text, start, num, new ) -- replace part of a text string</a></li>
<li><a href="#RIGHT( ) -- address range of cel"> RIGHT( ) -- address range of cells to the right of the current cell</a></li>
<li><a href="#ROUND( formula, digits ) -- roun"> ROUND( formula, digits ) -- round a number</a></li>
<li><a href="#WORKINGDAYS( serial_1, serial_2"> WORKINGDAYS( serial_1, serial_2 ) -- working days between two serialized dates</a></li>
</ul>
</li>
+ <li><a href="#FAQ"> FAQ</a><ul>
+ <li><a href="#Can I use CALC in a formatted se"> Can I use CALC in a formatted search?</a></li>
+ <li><a href="#How can I easily repeat a formul"> How can I easily repeat a formula in a table?</a></li>
+ </ul>
+ </li>
<li><a href="#Bug Tracking Example"> Bug Tracking Example</a></li>
<li><a href="#Plugin Settings"> Plugin Settings</a></li>
<li><a href="#Plugin Installation Instructions"> Plugin Installation Instructions</a></li>
- Convert the content of a range of cells into a flat list, delimited by comma. Cells containing commas are merged into the list
- Syntax: <code>**$LIST( range )**</code>
- Example: <code>**%CALC\{"$LIST($LEFT())"\}%**</code> returns <code>**Apples, Lemons, Oranges, Kiwis**</code> assuming the cells to the left contain <code>**| Apples | Lemons, Oranges | Kiwis |**</code>
-- Related: <code>[[$AVERAGE()|Main/WebHome#FuncAVERAGE]]</code>, <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$DEF()|Main/WebHome#FuncDEF]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTJOIN()|Main/WebHome#FuncLISTJOIN]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$MAX()|Main/WebHome#FuncMAX]]</code>, <code>[[$MEDIAN()|Main/WebHome#FuncMEDIAN]]</code>, <code>[[$MIN()|Main/WebHome#FuncMIN]]</code>, <code>[[$PRODUCT()|Main/WebHome#FuncPRODUCT]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>, <code>[[$SUMDAYS()|Main/WebHome#FuncSUMDAYS]]</code>, <code>[[$SUMPRODUCT()|Main/WebHome#FuncSUMPRODUCT]]</code>
+- Related: <code>[[$AVERAGE()|Main/WebHome#FuncAVERAGE]]</code>, <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$DEF()|Main/WebHome#FuncDEF]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTJOIN()|Main/WebHome#FuncLISTJOIN]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTRAND()|Main/WebHome#FuncLISTRAND]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSHUFFLE()|Main/WebHome#FuncLISTSHUFFLE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTTRUNCATE()|Main/WebHome#FuncLISTTRUNCATE]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$MAX()|Main/WebHome#FuncMAX]]</code>, <code>[[$MEDIAN()|Main/WebHome#FuncMEDIAN]]</code>, <code>[[$MIN()|Main/WebHome#FuncMIN]]</code>, <code>[[$PRODUCT()|Main/WebHome#FuncPRODUCT]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>, <code>[[$SUMDAYS()|Main/WebHome#FuncSUMDAYS]]</code>, <code>[[$SUMPRODUCT()|Main/WebHome#FuncSUMPRODUCT]]</code>
<a name="FuncLISTIF"></a>
- Syntax: <code>**$LISTITEM( index, list )**</code>
- Example: <code>**%CALC\{"$LISTITEM(2, Apple, Orange, Apple, Kiwi)"\}%**</code> returns <code>**Orange**</code>
- Example: <code>**%CALC\{"$LISTITEM(-1, Apple, Orange, Apple, Kiwi)"\}%**</code> returns <code>**Kiwi**</code>
-- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTRAND()|Main/WebHome#FuncLISTRAND]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
<a name="FuncLISTJOIN"></a>
- Example: <code>**%CALC\{"$LISTMAP($index: $EVAL(2 \* $item), 3, 5, 7, 11)"\}%**</code> returns <code>**1: 6, 2: 10, 3: 14, 4: 22**</code>
- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+<a name="FuncLISTRAND"></a>
+
+### <a name="LISTRAND( list ) -- get one rand"></a> LISTRAND( list ) -- get one random element of a list
+
+- Syntax: <code>**$LISTRAND( list )**</code>
+- Example: <code>**%CALC\{"$LISTRRAND(Apple, Orange, Apple, Kiwi)"\}%**</code> returns one of the four elements
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTSHUFFLE()|Main/WebHome#FuncLISTSHUFFLE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$RAND()|Main/WebHome#FuncRAND]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+
<a name="FuncLISTREVERSE"></a>
### <a name="LISTREVERSE( list ) -- opposite"></a><a name="LISTREVERSE( list ) -- opposite "></a> LISTREVERSE( list ) -- opposite order of a list
- Syntax: <code>**$LISTSIZE( list )**</code>
- Example: <code>**%CALC\{"$LISTSIZE(Apple, Orange, Apple, Kiwi)"\}%**</code> returns <code>**4**</code>
-- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTJOIN()|Main/WebHome#FuncLISTJOIN]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTJOIN()|Main/WebHome#FuncLISTJOIN]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTTRUNCATE()|Main/WebHome#FuncLISTTRUNCATE]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+
+<a name="FuncLISTSHUFFLE"></a>
+
+### <a name="LISTSHUFFLE( list ) -- shuffle e"></a> LISTSHUFFLE( list ) -- shuffle element of a list in random order
+
+- Syntax: <code>**$LISTSHUFFLE( list )**</code>
+- Example: <code>**%CALC\{"$LISTSHUFFLE(Apple, Orange, Apple, Kiwi)"\}%**</code> returns the four elements in random order
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTRAND()|Main/WebHome#FuncLISTRAND]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$RAND()|Main/WebHome#FuncRAND]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
<a name="FuncLISTSORT"></a>
- Sorts a list in ASCII order, or numerically if all elements are numeric
- Syntax: <code>**$LISTSORT( list )**</code>
- Example: <code>**%CALC\{"$LISTSORT(Apple, Orange, Apple, Kiwi)"\}%**</code> returns <code>**Apple, Apple, Kiwi, Orange**</code>
-- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTREVERSE()|Main/WebHome#FuncLISTREVERSE]]</code>, <code>[[$LISTSHUFFLE()|Main/WebHome#FuncLISTSHUFFLE]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
+
+<a name="FuncLISTTRUNCATE"></a>
+
+### <a name="LISTTRUNCATE( size, list ) -- tr"></a> LISTTRUNCATE( size, list ) -- truncate list to size
+
+- Specify the desired size of the list; use a negative number to count from the end of the list
+- Syntax: <code>**$LISTTRUNCATE( size, list )**</code>
+- Example: <code>**%CALC\{"$LISTTRUNCATE(2, Apple, Orange, Kiwi)"\}%**</code> returns <code>**Apple, Orange**</code>
+- Related: <code>[[$COUNTITEMS()|Main/WebHome#FuncCOUNTITEMS]]</code>, <code>[[$COUNTSTR()|Main/WebHome#FuncCOUNTSTR]]</code>, <code>[[$LIST()|Main/WebHome#FuncLIST]]</code>, <code>[[$LISTIF()|Main/WebHome#FuncLISTIF]]</code>, <code>[[$LISTITEM()|Main/WebHome#FuncLISTITEM]]</code>, <code>[[$LISTMAP()|Main/WebHome#FuncLISTMAP]]</code>, <code>[[$LISTSIZE()|Main/WebHome#FuncLISTSIZE]]</code>, <code>[[$LISTSORT()|Main/WebHome#FuncLISTSORT]]</code>, <code>[[$LISTUNIQUE()|Main/WebHome#FuncLISTUNIQUE]]</code>, <code>[[$SUM()|Main/WebHome#FuncSUM]]</code>
<a name="FuncLISTUNIQUE"></a>
- Random number, evenly distributed between 0 and <code>**max**</code>, or 0 and 1 if max is not specified
- Syntax: <code>**$RAND( max )**</code>
-- Related: <code>[[$EVAL()|Main/WebHome#FuncEVAL]]</code>
+- Related: <code>[[$EVAL()|Main/WebHome#FuncEVAL]]</code>, <code>[[$LISTRAND()|Main/WebHome#FuncLISTRAND]]</code>, <code>[[$LISTSHUFFLE()|Main/WebHome#FuncLISTSHUFFLE]]</code>
<a name="FuncREPEAT"></a>
-### <a name="REPEAT(text) -- repeat text a nu"></a> REPEAT(text) -- repeat text a number of times
+### <a name="REPEAT( text, num ) -- repeat te"></a> REPEAT( text, num ) -- repeat text a number of times
-- Syntax: <code>**$REPEAT( text )**</code>
+- Syntax: <code>**$REPEAT( text, num )**</code>
- Example: <code>**%CALC\{"$REPEAT(/\\, 5)"\}%**</code> returns <code>**/\\/\\/\\/\\/\\**</code>
<a name="FuncREPLACE"></a>
- Example: <code>**%CALC\{"$WORKINGDAYS($TIME(2004/07/15), $TIME(2004/08/03))"\}%**</code> returns <code>**13**</code>
- Related: <code>[[$SUMDAYS()|Main/WebHome#FuncSUMDAYS]]</code>, <code>[[$TIME()|Main/WebHome#FuncTIME]]</code>, <code>[[$TIMEDIFF()|Main/WebHome#FuncTIMEDIFF]]</code>
+## <a name="FAQ"></a> FAQ
+
+### <a name="Can I use CALC in a formatted se"></a> Can I use CALC in a formatted search?
+
+Specifically, how can I output some conditional text in a [[FormattedSearch]]?
+
+You need to escape the CALC so that it executes once per search hit. This can be done by escaping the `%` signs of `%CALC{...}%` with `$percnt`. For example, to execute `$IF($EXACT($formfield(Tested), Yes), %PUBURL%/%TWIKIWEB%/TWikiDocGraphics/choice-yes.gif, %PUBURL%/%TWIKIWEB%/TWikiDocGraphics/choice-no.gif)` in the `format=""` parameter, write this:
+
+`%SEARCH{ .... format="| $topic | $percntCALC{$IF($EXACT($formfield(Tested), Yes), %PUBURL%/%TWIKIWEB%/TWikiDocGraphics/choice-yes.gif, %PUBURL%/%TWIKIWEB%/TWikiDocGraphics/choice-no.gif)}$percnt |" }%`
+
+### <a name="How can I easily repeat a formul"></a> How can I easily repeat a formula in a table?
+
+To repeat the same formula in all cells of a table row define the formula once in a preferences setting and use that in the CALC. The preferences setting can be hidden in HTML comments. Example:
+
+ <!--
+ * Set MYFORMULA = $EVAL($SUBSTITUTE(...etc...))
+ -->
+ | A | 1 | %CALC{%MYFORMULA%}% |
+ | B | 2 | %CALC{%MYFORMULA%}% |
+ | C | 3 | %CALC{%MYFORMULA%}% |
+
## <a name="Bug Tracking Example"></a> Bug Tracking Example
<table border="1" cellpadding="0" cellspacing="0">
Plugin settings are stored as preferences variables. To reference a plugin setting write <code>**%<plugin>\_<setting>%**</code>, i.e. <code>**%SPREADSHEETPLUGIN\_SHORTDESCRIPTION%**</code>
- One line description, is shown in the [[TextFormattingRules]] topic:
- - Set SHORTDESCRIPTION = Add spreadsheet calculation like `"$SUM( $ABOVE() )"` to tables located in %WIKITOOLNAME% topics.
+ - Set SHORTDESCRIPTION = Add spreadsheet calculation like `"$SUM( $ABOVE() )"` to TWiki tables and other topic text
- Debug plugin: (See output in `data/debug.txt`)
- Set DEBUG = 0
</tr>
<tr>
<td align="right"> Plugin Version: </td>
- <td> 13 May 2006 (10197) </td>
+ <td> 18 Dec 2006 (r12315) </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 18 Dec 2006: </td>
+ <td> Added $LISTRAND(), $LISTSHUFFLE(), $LISTTRUNCATE(); fixed spurious newline at end of topic, contributed by TWiki:Main/MichaelDaum </td>
+ </tr>
+ <tr>
+ <td align="right"> 10 Oct 2006: </td>
+ <td> Enhanced documentation </td>
+ </tr>
+ <tr>
<td align="right"> 13 May 2006: </td>
<td> Added $SETIFEMPTY(); fixes in documentation </td>
</tr>
**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
--- TWiki:Main/PeterThoeny - 13 May 2006
+-- TWiki:Main/PeterThoeny - 18 Dec 2006
<li><a href="#Controlling access to a Web"> Controlling access to a Web</a></li>
<li><a href="#Controlling access to a Topic"> Controlling access to a Topic</a></li>
<li><a href="#Controlling access to Attachment"> Controlling access to Attachments</a></li>
+ <li><a href="#Controlling who can create top-l"> Controlling who can create top-level webs</a></li>
+ <li><a href="#How TWiki evaluates ALLOW/DENY s"> How TWiki evaluates ALLOW/DENY settings</a></li>
+ </ul>
+ </li>
+ <li><a href="#Access Control quick recipes"> Access Control quick recipes</a><ul>
+ <li><a href="#Obfuscating Webs"> Obfuscating Webs</a></li>
+ <li><a href="#Authenticate all Webs and Restri"> Authenticate all Webs and Restrict Selected Webs</a></li>
+ <li><a href="#Authenticate and Restrict Select"> Authenticate and Restrict Selected Webs Only</a></li>
+ <li><a href="#Hide Control Settings"> Hide Control Settings</a></li>
</ul>
</li>
</ul>
### <a name="The Super Admin Group"></a> The Super Admin Group
-By mistyping a user or group name in the settings, it's possible to lock a topic so that no-one can edit it from a browser. To avoid this, add the [[WikiNames]] of registered administrators to the super admin group topic called <code>**TWikiAdminGroup**</code>. The name of this topic is defined by the \{SuperAdminGroup\} configure setting. Example group setting:
+By mistyping a user or group name in the settings, it's possible to lock a topic so that no-one can edit it from a browser. To avoid this, add the [[WikiNames]] of registered administrators to the super admin group topic called <code>**TWikiAdminGroup**</code>. The name of this topic is defined by the \{SuperAdminGroup\} [configure](http://www.dementia.org/twiki/configure) setting. Example group setting:
- <code>**Set GROUP= Main.ElizabethWindsor, Main.TonyBlair**</code>
- Restricting VIEW blocks viewing and searching of content.
- Restricting CHANGE blocks creating new topics, changing topics or attaching files.
-- Restricting RENAME controls who is allowed to rename, move or delete a topic.
- - To rename, move or delete a topic, the user also also needs VIEW and CHANGE permission. They also need CHANGE access to change references in any referring topics (though the rename can proceed without this access), and CHANGE access to the target topic.
-- Restricting MANAGE controls access to certain management functions, such as 'create web'. It must be set in the TWiki web.
### <a name="Controlling access to a Web"></a> Controlling access to a Web
-You can define restrictions of who is allowed to view a %WIKITOOLNAME% web. You can restrict access to certain webs to selected Users and Groups, by:
+You can define restrictions on who is allowed to view a %WIKITOOLNAME% web. You can restrict access to certain webs to selected Users and Groups, by:
- **authenticating all webs and restricting selected webs:** Topic access in all webs is authenticated, and selected webs have restricted access.
- **authenticating and restricting selected webs only:** Provide unrestricted viewing access to open webs, with authentication and restriction only on selected webs.
- <code>**Set ALLOWWEBVIEW = < comma-delimited list of Users and Groups >**</code>
- <code>**Set DENYWEBCHANGE = < comma-delimited list of Users and Groups >**</code>
- <code>**Set ALLOWWEBCHANGE = < comma-delimited list of Users and Groups >**</code>
- - <code>**Set DENYWEBRENAME = < comma-delimited list of Users and Groups >**</code>
- - <code>**Set ALLOWWEBRENAME = < comma-delimited list of Users and Groups >**</code>
**Be careful** with empty values for any of these. In older versions of TWiki,
### <a name="Controlling access to a Topic"></a> Controlling access to a Topic
-- You can define these settings in the [[WebPreferences]] topic, preferable towards the end of the topic:
+- You can define these settings in any topic, preferable towards the end of the topic:
- <code>**Set DENYTOPICVIEW = < comma-delimited list of Users and Groups >**</code>
- <code>**Set ALLOWTOPICVIEW = < comma-delimited list of Users and Groups >**</code>
- <code>**Set DENYTOPICCHANGE = < comma-delimited list of Users and Groups >**</code>
- <code>**Set ALLOWTOPICCHANGE = < comma-delimited list of Users and Groups >**</code>
- - <code>**Set DENYTOPICRENAME = < comma-delimited list of Users and Groups >**</code>
- - <code>**Set ALLOWTOPICRENAME = < comma-delimited list of Users and Groups >**</code>
Remember when opening up access to specific topics within a restricted web that other topics in the web - for example, the [[WebLeftBar]] - may also be accessed when viewing the topics. The message you get when you are denied access should tell you what topic you were not permitted to access.
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/+twiki/+pub/+TWiki/+.+
RewriteRule ^/+twiki/+pub/+([^/]+)/+((([^/]+)/+)+)(.+) /twiki/bin/viewfile/$1/$4?filename=$5 [L,PT]
- </verbatim
- That way all the controls that apply to the topic also apply to attachments to the topic. Other types of webserver have similar support.
+That way all the controls that apply to the topic also apply to attachments to the topic. Other types of webserver have similar support.
+
+**_Note:_** Images embedded in topics will load much slower since each image will be delivered by the `viewfile` script.
+
+### <a name="Controlling who can create top-l"></a> Controlling who can create top-level webs
+
+Top level webs are a special case, because they don't have a parent web with a [[WebPreferences]]. So there has to be a special control just for the root level.
+
+- You can define these settings in the Main.%TWIKIPREFSTOPIC% topic, preferable towards the end of the topic:
+ - <code>**Set DENYROOTCHANGE = < comma-delimited list of Users and Groups >**</code>
+ - <code>**Set ALLOWROOTCHANGE = < comma-delimited list of Users and Groups >**</code>
+
+Note that you do **not** require `ROOTCHANGE` access to rename an existing top-level web. You just need `WEBCHANGE` in the web itself.
+
+### <a name="How TWiki evaluates ALLOW/DENY s"></a> How TWiki evaluates ALLOW/DENY settings
- __Note:__ Images embedded in topics will load much slower since each image will be delivered by the =viewfile= script.
+When deciding whether to grant access, TWiki evaluates the following rules in order (read from the top of the list; if the logic arrives at **PERMITTED** or **DENIED** that applies immediately and no more rules are applied). You need to read the rules bearing in mind that VIEW and CHANGE access may be granted/denied separately.
- ---+++ How TWiki evaluates ALLOW/DENY settings
+1. If the user is a [[super-user|Main/WebHome#SuperAdminGroup]]
+ - access is **PERMITTED**.
+2. If DENYTOPIC is set to a list of wikinames
+ - people in the list will be **DENIED**.
+3. If DENYTOPIC is set to _empty_ ( i.e. `Set DENYTOPIC =` )
+ - access is **PERMITTED** _i.e_ no-one is denied access to this topic
+4. If ALLOWTOPIC is set
+ 1. people in the list are **PERMITTED**
+ 2. everyone else is **DENIED**
+ - Note that this means that setting ALLOWTOPIC to empty _denies access to everyone except admins_ (unless DENYTOPIC is also set to empty, as described above)
+5. If DENYWEB is set to a list of wikiname
+ - people in the list are **DENIED** access
+6. If ALLOWWEB is set to a list of wikinames
+ - people in the list will be **PERMITTED**
+ - everyone else will be **DENIED**
+ - Note that setting ALLOWWEB to empty _denies access to everyone except admins_
+7. If you got this far, access is **PERMITTED**
- When deciding whether to grant access, TWiki evaluates the following rules in order (read from the top of the list; if the logic arrives at *PERMITTED* or *DENIED* that applies immediately and no more rules are applied). You need to read the rules bearing in mind that VIEW, CHANGE and RENAME access may be granted/denied separately.
- 1 If the user is a [[#SuperAdminGroup][super-user]]
- * access is *PERMITTED*.
- 1 If DENYTOPIC is set to a list of wikinames
- * people in the list will be *DENIED*.
- 1 If DENYTOPIC is set to _empty_ ( i.e. <tt>Set DENYTOPIC =</tt> )
- * access is *PERMITTED* _i.e_ no-one is denied access to this topic
- 1 If ALLOWTOPIC is set
- 1 people in the list are *PERMITTED*
- 1 everyone else is *DENIED*
- * Note that this means that setting ALLOWTOPIC to empty _denies access to everyone except admins_ (unless DENYTOPIC is also set to empty, as described above)
- 1 If DENYWEB is set to a list of wikiname
- * people in the list are *DENIED* access
- 1 If ALLOWWEB is set to a list of wikinames
- * people in the list will be *PERMITTED*
- * everyone else will be *DENIED*
- * Note that setting ALLOWWEB to empty _denies access to everyone except admins_
- 1 If you got this far, access is *PERMITTED*
+## <a name="Access Control quick recipes"></a> Access Control quick recipes
- ---++ Access Control quick recipes
+### <a name="Obfuscating Webs"></a> Obfuscating Webs
- ---+++ Obfuscating Webs
+Another way of hiding webs is to keep them hidden by not publishing the URL and by preventing the <code>**all webs**</code> search option from accessing obfuscated webs. Do so by enabling the <code>**NOSEARCHALL**</code> variable in [[WebPreferences]]:
- Another way of hiding webs is to keep them hidden by not publishing the URL and by preventing the ==all webs== search option from accessing obfuscated webs. Do so by enabling the ==NOSEARCHALL== variable in %WEBPREFSTOPIC%:
- * ==Set <nop>NOSEARCHALL = on==
+- <code>**Set NOSEARCHALL = on**</code>
- This setup can be useful to hide a new web until content its ready for deployment, or to hide view access restricted webs.
+This setup can be useful to hide a new web until content its ready for deployment, or to hide view access restricted webs.
- __%X% Note:__ Obfuscating a web without view access control is *very* insecure, as anyone who knows the URL can access the web.
+**_%X% Note:_** Obfuscating a web without view access control is **very** insecure, as anyone who knows the URL can access the web.
- ---+++ Authenticate all Webs and Restrict Selected Webs
+### <a name="Authenticate all Webs and Restri"></a> Authenticate all Webs and Restrict Selected Webs
- Use the following setup to authenticate users for topic viewing in all webs and to restrict access to selected webs. Requires TWikiUserAuthentication to be enabled.
+Use the following setup to authenticate users for topic viewing in all webs and to restrict access to selected webs. Requires [[TWikiUserAuthentication]] to be enabled.
- 1. *Restrict* view access to selected Users and Groups. Set one or both of these variables in its %WEBPREFSTOPIC% topic:
- * ==Set <nop>DENYWEBVIEW = < list of Users and Groups >==
- * ==Set <nop>ALLOWWEBVIEW = < list of Users and Groups >==
- * __Note:__ =DENYWEBVIEW= is evaluated before =ALLOWWEBVIEW=. Access is denied if the authenticated person is in the =DENYWEBVIEW= list, or not in the =ALLOWWEBVIEW= list. Access is granted in case =DENYWEBVIEW= and =ALLOWWEBVIEW= is not defined.
+1. **Restrict** view access to selected Users and Groups. Set one or both of these variables in its [[WebPreferences]] topic:
+ - <code>**Set DENYWEBVIEW = < list of Users and Groups >**</code>
+ - <code>**Set ALLOWWEBVIEW = < list of Users and Groups >**</code>
+ - **_Note:_** `DENYWEBVIEW` is evaluated before `ALLOWWEBVIEW`. Access is denied if the authenticated person is in the `DENYWEBVIEW` list, or not in the `ALLOWWEBVIEW` list. Access is granted in case `DENYWEBVIEW` and `ALLOWWEBVIEW` is not defined.
- ---+++ Authenticate and Restrict Selected Webs Only
+### <a name="Authenticate and Restrict Select"></a> Authenticate and Restrict Selected Webs Only
- Use the following setup to provide unrestricted viewing access to open webs, with authentication only on selected webs. Requires TWikiUserAuthentication to be enabled.
+Use the following setup to provide unrestricted viewing access to open webs, with authentication only on selected webs. Requires [[TWikiUserAuthentication]] to be enabled.
- 1. *Restrict* view access to selected Users and Groups. Set one or both of these variables in its %WEBPREFSTOPIC% topic:
- * ==Set <nop>DENYWEBVIEW = < list of Users and Groups >==
- * ==Set <nop>ALLOWWEBVIEW = < list of Users and Groups >==
- * __Note:__ =DENYWEBVIEW= is evaluated before =ALLOWWEBVIEW=. Access is denied if the authenticated person is in the =DENYWEBVIEW= list, or not in the =ALLOWWEBVIEW= list. Access is granted in case =DENYWEBVIEW= and =ALLOWWEBVIEW= is not defined.
+1. **Restrict** view access to selected Users and Groups. Set one or both of these variables in its [[WebPreferences]] topic:
+ - <code>**Set DENYWEBVIEW = < list of Users and Groups >**</code>
+ - <code>**Set ALLOWWEBVIEW = < list of Users and Groups >**</code>
+ - **_Note:_** `DENYWEBVIEW` is evaluated before `ALLOWWEBVIEW`. Access is denied if the authenticated person is in the `DENYWEBVIEW` list, or not in the `ALLOWWEBVIEW` list. Access is granted in case `DENYWEBVIEW` and `ALLOWWEBVIEW` is not defined.
- ---+++ Hide Control Settings
+### <a name="Hide Control Settings"></a> Hide Control Settings
- __%T% Tip:__ To hide access control settings from normal browser viewing, place them in HTML comment markers.
+**_%T% Tip:_** To hide access control settings from normal browser viewing, you can put them into the topic-local settings. You can access those settings via the "More" screen, as explained in [[TWikiVariables|Main/TWikiVariables#Setting_Preferences_Variables]].
- <blockquote>
- ==<!--== <br />
- == * Set <nop>DENYTOPICCHANGE = %MAINWEB%.<nop>SomeGroup== <br />
- ==-->==
- </blockquote>
+Alternatively, place them in HTML comment markers, but this exposes the access setting during ordinary editing.
- %STOPINCLUDE%
+> <code>**<!--**</code>
+>
+> <br />
+>
+> <code>** \* Set DENYTOPICCHANGE = Main.SomeGroup**</code>
+>
+> <br />
+>
+> <code>**-->**</code>
- __Related Topics:__ AdminDocumentationCategory, TWikiUserAuthentication, TWiki:TWiki.TWikiAccessControlSupplement
+**_Related Topics:_** [[AdminDocumentationCategory]], [[TWikiUserAuthentication]], TWiki:TWiki.TWikiAccessControlSupplement
- -- __Contributors:__ TWiki:Main.PeterThoeny, TWiki:Main.MikeMannix, TWiki:Main.CrawfordCurrie
+-- **_Contributors:_** TWiki:Main.PeterThoeny, TWiki:Main.MikeMannix, TWiki:Main.CrawfordCurrie
--- /dev/null
+<div>
+ <ul>
+ <li><a href="#TWiki Add-Ons"> TWiki Add-Ons</a><ul>
+ <li><a href="#Overview"> Overview</a></li>
+ <li><a href="#Add-Ons Installed on this TWiki"> Add-Ons Installed on this TWiki</a></li>
+ </ul>
+ </li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
+ <li><a href="#Installing Add-Ons"> Installing Add-Ons</a></li>
+ <li><a href="#Creating new Add-Ons"> Creating new Add-Ons</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+# <a name="TWiki Add-Ons"></a> TWiki Add-Ons
+
+_Add functionality to TWiki with extensions not based on the TWiki scripts._
+
+## <a name="Overview"></a> Overview
+
+An add-on runs separately from the TWiki scripts, e.g. for data import, export to static HTML, etc. Add-Ons normally do not call any TWiki code directly, though may invoke TWiki scripts. There are different types on add-ons, they may be stand alone scripts, browser plugins, office tool extensions, or even a set of TWiki topics that form a TWiki application.
+
+**_Relevant links on TWiki.org:_**
+
+- TWiki:Plugins.AddOnPackage - list of all contributed add-on scripts
+- TWiki:Plugins.AddOnDevelopment - discussion and feedback on contributed add-on scripts
+- TWiki:Plugins.AddOnBrainstorming - open forum for new add-on script ideas
+- TWiki:Plugins.AddOnPackageHowTo - instructions and template to create a new add-on topic
+
+**_See other types of extensions:_** [[TWikiContribs]], [[TWikiPlugins]], [[TWikiSkins]]
+
+## <a name="Add-Ons Installed on this TWiki"></a> Add-Ons Installed on this TWiki
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+## <a name="Installing Add-Ons"></a> Installing Add-Ons
+
+- Download an add-on from TWiki:Plugins.AddOnPackage.
+- Follow the installation instructions in the add-on topic.
+
+## <a name="Creating new Add-Ons"></a> Creating new Add-Ons
+
+- Visit TWiki:Plugins.AddOnPackageHowTo and follow the instructions.
+
+**_Related Topics:_** [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]], TWiki:TWiki.TWikiPluginsSupplement
+
+-- **_Contributors:_** TWiki:Main.PeterThoeny
Support for compatibility with old TWiki versions. Packaged separately because 99.999999% of the time this won't be needed.
-=end
-
-sub \_upgradeCategoryItem \{ my ( $catitems, $ctext ) = @\_; my $catname = ''; my $scatname = ''; my $catmodifier = ''; my $catvalue = ''; my @cmd = split( /\\|/, $catitems ); my $src = ''; my $len = @cmd; if( $len < '2' ) \{ # FIXME return ( $catname, $catmodifier, $catvalue ) \} my $svalue = '';
-
-my $i; my $itemsPerLine;
-
-# check for [[CategoryName]]=CategoryValue parameter my $paramCmd = ''; my $cvalue = ''; # was$query->param( $cmd[1] ); if( $cvalue ) \{ $src = "$cvalue"; \} elsif( $ctext ) \{ foreach( split( /\\r?\\n/, $ctext ) ) \{ if( /$cmd[1]/ ) \{ $src = $\_; last; \} \} \}
-
-if( $cmd[0] eq 'select' || $cmd[0] eq 'radio') \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; my $size = $cmd[2]; for( $i = 3; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; if( $src =~ /$value/ ) \{ $catvalue = $svalue; \} \}
-
-\} elsif( $cmd[0] eq 'checkbox' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; if( $cmd[2] eq 'true' || $cmd[2] eq '1' ) \{ $i = $len - 4; $catmodifier = 1; \} $itemsPerLine = $cmd[3]; for( $i = 4; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; # [[I18N]]: FIXME - need to look at this, but since it's upgrading # old forms that probably didn't use [[I18N]], it's not a high # priority. if( $src =~ /$value[^a-zA-Z0-9\\.]/ ) \{ $catvalue .= ", " if( $catvalue ); $catvalue .= $svalue; \} \}
-
-\} elsif( $cmd[0] eq 'text' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; $src =~ /(.\*)/; if( $1 ) \{ $src = $1; \} else \{ $src = ''; \} $catvalue = $src; \}
-
-return ( $catname, $catmodifier, $catvalue ) \}
-
<div>
<ul>
<li><a href="#Package =TWiki::Compatibility="> Package TWiki::Compatibility</a><ul>
--- /dev/null
+# <a name="Package <code>TWiki::Configure::Load="></a> Package =TWiki::Configure::Load
+
+## <a name="Purpose"></a> Purpose
+
+This module consists of just a single subroutine `readConfig`. It allows to safely modify configuration variables _for one single run_ without affecting normal TWiki operation.
+
+<div>
+ <ul>
+ <li><a href="#Package =TWiki::Configure::Load="> Package TWiki::Configure::Load</a><ul>
+ <li><a href="#Purpose"> Purpose</a></li>
+ <li><a href="#StaticMethod <strong>readConfig</strong> ()"> StaticMethod readConfig <tt>()</tt></a></li>
+ <li><a href="#StaticMethod <strong>expandValue</strong> ($str"> StaticMethod expandValue <tt>($string) -> $boolean</tt></a></li>
+ <li><a href="#StaticMethod <strong>readDefaults</strong> () -"> StaticMethod readDefaults <tt>() -> \@errors</tt></a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="StaticMethod <strong>readConfig</strong> ()"></a> [[StaticMethod]] **readConfig** `()`
+
+In normal TWiki operations as a web server this routine is called by the `BEGIN` block of `TWiki.pm`. However, when benchmarking/debugging it can be replaced by custom code which sets the configuration hash. To prevent us from overriding the custom code again, we use an "unconfigurable" key `$cfg{ConfigurationFinished}` as an indicator.
+
+Note that this method is called by TWiki and configure, and **only** reads TWiki.spec= to get defaults. Other spec files (those for extensions) are **not** read.
+
+The assumption is that `configure` will be run when an extension is installed, and that will add the config values to [[LocalSite]].cfg, so no defaults are needed. TWiki.spec is still read because so much of the core code doesn't provide defaults, and it would be silly to have them in two places anyway.
+
+## <a name="StaticMethod <strong>expandValue</strong> ($str"></a> [[StaticMethod]] **expandValue** `($string) -> $boolean`
+
+Expands references to TWiki configuration items which occur in the value of other configuration items. Use expand($hashref) if the item is not a plain scalar.
+
+Happens to return true if something has been expanded, though I don't know whether you would want that. The replacement is done in-place,
+
+## <a name="StaticMethod <strong>readDefaults</strong> () -"></a> [[StaticMethod]] **readDefaults** `() -> \@errors`
+
+This is only called by `configure` to initialise the TWiki config hash with default values from the .spec files.
+
+Normally all configuration values come from [[LocalSite]].cfg. However when `configure` runs it has to get default values for config vars that have not yet been saved to `LocalSite.cfg`.
+
+Returns a reference to a list of the errors it saw.
+
+SEE ALSO: TWiki::Configure::TWikiCfg::load
--- /dev/null
+# <a name="Package <code>="></a> Package =
+
+<div>
+ <ul>
+ <li><a href="#Package =="> Package ==</a><ul>
+ <li><a href="#StaticMethod <strong>_unpackArchive</strong> ($"> StaticMethod _unpackArchive <tt>($archive[,$dir])</tt></a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="StaticMethod <strong>_unpackArchive</strong> ($"></a> [[StaticMethod]] **\_unpackArchive** `($archive[,$dir])`
+
+Unpack an archive. The unpacking method is determined from the file extension e.g. .zip, .tgz. .tar, etc. If $dir is not given, unpack to a temporary directory, the name of which is returned.
--- /dev/null
+<div>
+ <ul>
+ <li><a href="#TWiki Contribs"> TWiki Contribs</a><ul>
+ <li><a href="#Overview"> Overview</a></li>
+ <li><a href="#TWiki Contribs Installed on this"> TWiki Contribs Installed on this TWiki</a></li>
+ </ul>
+ </li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
+ <li><a href="#Installing Contribs"> Installing Contribs</a></li>
+ <li><a href="#Creating new Contribs"> Creating new Contribs</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+# <a name="TWiki Contribs"></a> TWiki Contribs
+
+_Reusable code that may be used over several plugins and add-ons._
+
+## <a name="Overview"></a> Overview
+
+TWiki contribs extend the functionality of TWiki, typically used by plugins and add-ons. They may also provide alternative implementations for sections of the TWiki core e.g. user management, or when an extension just can't be implemented as a plugin because it requires very close access to TWiki internals.
+
+**_Relevant links on TWiki.org:_**
+
+- TWiki:Plugins.ContribPackage - list of all contributed contrib packages
+- TWiki:Plugins.ContribDevelopment - discussion and feedback on contributed packages
+- TWiki:Plugins.ContribBrainstorming - open forum for new contrib ideas
+- TWiki:Plugins.ContribPackageHowTo - instructions and template to create a new contrib package
+
+**_See other types of extensions:_** [[TWikiAddOns]], [[TWikiPlugins]], [[TWikiSkins]]
+
+## <a name="TWiki Contribs Installed on this"></a> TWiki Contribs Installed on this TWiki
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+## <a name="Installing Contribs"></a> Installing Contribs
+
+- Download an add-on from TWiki:Plugins.ContribPackage.
+- Follow the installation instructions in the contrib topic.
+
+## <a name="Creating new Contribs"></a> Creating new Contribs
+
+- Visit TWiki:Plugins.ContribPackageHowTo and follow the instructions.
+
+**_Related Topics:_** [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]], TWiki:TWiki.TWikiPluginsSupplement
+
+-- **_Contributors:_** TWiki:Main.PeterThoeny
<li><a href="#TWiki styles in core code"> TWiki styles in core code</a></li>
<li><a href="#TWiki Styles in Plugins"> TWiki Styles in Plugins</a></li>
<li><a href="#TWiki Styles in Templates"> TWiki Styles in Templates</a></li>
+ <li><a href="#TWiki Styles used in =configure="> TWiki Styles used in configure</a></li>
<li><a href="#TWiki Styles in topics"> TWiki Styles in topics</a></li>
+ <li><a href="#TWiki Styles in Skins"> TWiki Styles in Skins</a></li>
</ul>
</li>
<li><a href="#Tips"> Tips</a></li>
## <a name="Naming conventions"></a> Naming conventions
1. All TWiki class names have the prefix `twiki`. So: twikiAlert, twikiToc, etcetera. Remember that CSS class names are case sensitive - TWiki CSS uses lowercase `tw`.
-2. TWiki uses class names only (.twikiDiffTable) and no id names (#twikiDiffTable), to allow multiple class names. Class names are written using the dot prefix.
-3. If you define your own CSS classes, it is preferable that you do not use the `twiki` prefix to prevent undesired overriding effects.
+2. If you define your own CSS classes, it is preferable that you do not use the `twiki` prefix to prevent undesired overriding effects.
A wide range of standard styles are used in the TWiki core code and topics, and more are used in plugins. The following is an exhaustive list of all styles defined by the Pattern skin. For the most part, the names are the only documentation of the purpose of the style. For more information on how these styles are used, read the code (sorry!)
<td> Render.pm </td>
</tr>
<tr>
+ <td> .twikiCurrentWebHomeLink </td>
+ <td> Render.pm </td>
+ </tr>
+ <tr>
+ <td> .twikiCurrentTopicLink </td>
+ <td> Render.pm </td>
+ </tr>
+ <tr>
<td> .twikiEmulatedLink </td>
<td> Preview.pm </td>
</tr>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
+ <td> .twikiEditFormDateField </td>
+ <td> Form.pm </td>
+ </tr>
+ <tr>
<td> .twikiEditFormTextField </td>
<td> Form.pm </td>
</tr>
<td> .twikiFirstCol </td>
<td>[[Main/TablePlugin]]</td>
</tr>
+ <tr>
+ <td> .twikiTableEven </td>
+ <td>[[Main/TablePlugin]]</td>
+ </tr>
+ <tr>
+ <td> .twikiTableOdd </td>
+ <td>[[Main/TablePlugin]]</td>
+ </tr>
</table>
### <a name="TWiki Styles in Templates"></a> TWiki Styles in Templates
<td> formtables.tmpl </td>
</tr>
<tr>
+ <td> .twikiFormTableFooter </td>
+ <td> formtables.tmpl </td>
+ </tr>
+ <tr>
<td> .twikiAttachments </td>
<td> attachtables.tmpl </td>
</tr>
</tr>
</table>
+### <a name="TWiki Styles used in <code>configure="></a> TWiki Styles used in =configure
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> #twikiLogin </td>
+ <td> CSS.pm </td>
+ </tr>
+ <tr>
+ <td> .twikiFormSteps </td>
+ <td> CSS.pm </td>
+ </tr>
+ <tr>
+ <td> .twikiFormStep </td>
+ <td> CSS.pm </td>
+ </tr>
+</table>
+
### <a name="TWiki Styles in topics"></a> TWiki Styles in topics
<table border="1" cellpadding="0" cellspacing="0">
<td> .twikiBroadcastMessage </td>
<td>[[TWiki/TWikiPreferences]]</td>
</tr>
+ <tr>
+ <td> #twikiSearchTable </td>
+ <td>[[TWiki/WebSearch]], [[TWiki/WebSearchAdvanced]]</td>
+ </tr>
+</table>
+
+### <a name="TWiki Styles in Skins"></a> TWiki Styles in Skins
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> #twikiLogin </td>
+ <td> login.pattern.tmpl </td>
+ <td> </td>
+ </tr>
</table>
## <a name="Tips"></a> Tips
<li><a href="#Topic, file, folder icons"> <img align="top" alt="viewtopic" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/viewtopic.gif" width="16" /> Topic, <img align="top" alt="attachfile" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/attachfile.gif" width="16" /> file, <img align="top" alt="folder" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/folder.gif" width="16" /> folder icons</a></li>
<li><a href="#Person, group, access icons"> <img align="top" alt="person" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/person.gif" width="16" /> Person, <img align="top" alt="group" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/group.gif" width="16" /> group, <img align="top" alt="lock" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/lock.gif" width="16" /> access icons</a></li>
<li><a href="#Changes, notification icons"> <img align="top" alt="changes" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/changes.gif" width="16" /> Changes, <img align="top" alt="notify" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/notify.gif" width="16" /> notification icons</a></li>
- <li><a href="#Status, flag, LED icons"> <img align="top" alt="choice-yes" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" /> Status, <img align="top" alt="flag" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/flag.gif" width="16" /> flag, <img align="top" alt="led-box-red" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/led-box-red.gif" width="16" /> LED icons</a></li>
+ <li><a href="#Status, flag, LED, tag icons"> <img align="top" alt="choice-yes" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" /> Status, <img align="top" alt="flag" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/flag.gif" width="16" /> flag, <img align="top" alt="led-box-red" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/led-box-red.gif" width="16" /> LED, <img align="top" alt="tag-yellow" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/tag-yellow.gif" width="16" /> tag icons</a></li>
<li><a href="#Navigation icons"> <img align="top" alt="home" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/home.gif" width="16" /> Navigation icons</a></li>
<li><a href="#Interface icons"> <img align="top" alt="toggleclose" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/toggleclose.gif" width="16" /> Interface icons</a></li>
+ <li><a href="#TWiki icons"> <img align="top" alt="twiki" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/twiki.gif" width="16" /> TWiki icons</a></li>
<li><a href="#Block graphics"> <img align="top" alt="line_ur" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/line_ur.gif" width="16" /> Block graphics</a></li>
<li><a href="#Filetype icons"> <img align="top" alt="gif" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/gif.gif" width="16" /> Filetype icons</a></li>
- <li><a href="#TWiki icons"> <img align="top" alt="twiki" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/twiki.gif" width="16" /> TWiki icons</a></li>
</ul>
</li>
+ <li><a href="#Usage (extended)"> Usage (extended)</a></li>
</ul>
</div>
## <a name="Usage"></a> Usage
-There are several ways to put an image in a topic.
-
-- **Shorthand notation:** `%ICON{help}%` results in: <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="help" />
- - Note that `ICON{}` assumes an image of 16 x 16 pixels
-- **Really shorthand notation:** in [[TWikiPreferences]] set a variable to an ICON, for example:%BR% ` * Set H = %ICON{help}%` %BR% Now you can use the icon by writing `%H%`.
-- There are other approaches as well:
- - In any topic, write `%PUBURL%/%TWIKIWEB%/TWikiDocGraphics/help.gif` to show the ![help.gif](http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/help.gif) icon. %BR%
- - You are not restricted to use the TWikiDocGraphics topic - in a similar way you can show attached images by replacing `TWikiDocGraphics` with the topic name.
- - The TWiki:Plugins.SmiliesPlugin, using a different short hand than `%VARIABLES%`, may be worth checking out for extended use
-- To create an image with a link, write: `[[WebHome][%ICON{home}%]]` to get: [[Main/WebHome]]
-- To get the full URL of the icon, use [[ICONURL|Main/VarICONURL]]: `%ICONURL{"toggleopen"}%` gets you: `http://www.dementia.org/twiki//view/Main/WebHome/toggleopen.gif` (if you paste that in a topic you will get: ![toggleopen.gif](http://www.dementia.org/twiki//view/Main/WebHome/toggleopen.gif))
-- **_Note:_** Most images have 16x16 pixels. For those images you can use the `%ICON{}%` syntax. Use an HTML img tag with `%ICONURL{}%` for image with other sizes.
+Default notation:
-**_Related Topics:_** [[TWikiSkins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]]
+> `%ICON{help}%`
+>
+> results in:
+>
+> <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="help" />
+>
+> Note that `ICON{}` assumes a GIF image of 16 x 16 pixels. Use a HTML `img` tag with `%ICONURL{}%` for image with other sizes. See the tables below for copy-paste examples.
-**_Contributors:_** The icons on this page were originally designed by TWiki:Main.PeterThoeny. All except led-color icons, dot graph and line graph images were then recreated by TWiki:Main.ArthurClemens.
+Other usage: [[see below|Main/TOPIC#Usage_extended]].
## <a name="Graphics"></a> Graphics
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Book" src="http://www.dementia.org/twiki//view/book.gif" title="Book" /></td>
+ <td bgcolor="#ffffff" style=""><code>book.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Book </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{book}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Speech bubble" src="http://www.dementia.org/twiki//view/bubble.gif" title="Speech bubble" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>bubble.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Speech bubble </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{bubble}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Speech bubble" src="http://www.dementia.org/twiki//view/bubble.gif" title="Speech bubble" /></td>
+ <td bgcolor="#ffffff" style=""><code>bubble.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Speech bubble </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{bubble}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Days / Calendar" src="http://www.dementia.org/twiki//view/days.gif" title="Days / Calendar" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Days / Calendar" src="http://www.dementia.org/twiki//view/days.gif" title="Days / Calendar" /></td>
<td bgcolor="#ffffff" style=""><code>days.gif</code></td>
<td bgcolor="#ffffff" style=""> Days, Calendar </td>
<td bgcolor="#ffffff" style=""><code>%ICON{days}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Download" src="http://www.dementia.org/twiki//view/download.gif" title="Download" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>download.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Download </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{download}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Download" src="http://www.dementia.org/twiki//view/download.gif" title="Download" /></td>
+ <td bgcolor="#ffffff" style=""><code>download.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Download </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{download}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Filter" src="http://www.dementia.org/twiki//view/filter.gif" title="Filter" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Filter" src="http://www.dementia.org/twiki//view/filter.gif" title="Filter" /></td>
<td bgcolor="#ffffff" style=""><code>filter.gif</code></td>
<td bgcolor="#ffffff" style=""> Filter </td>
<td bgcolor="#ffffff" style=""><code>%ICON{filter}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Gear" src="http://www.dementia.org/twiki//view/gear.gif" title="Gear" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>gear.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Gear </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{gear}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Gear" src="http://www.dementia.org/twiki//view/gear.gif" title="Gear" /></td>
+ <td bgcolor="#ffffff" style=""><code>gear.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Gear </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{gear}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Globe" src="http://www.dementia.org/twiki//view/globe.gif" title="Globe" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Globe" src="http://www.dementia.org/twiki//view/globe.gif" title="Globe" /></td>
<td bgcolor="#ffffff" style=""><code>globe.gif</code></td>
<td bgcolor="#ffffff" style=""> Globe </td>
<td bgcolor="#ffffff" style=""><code>%ICON{globe}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Pointing hand" src="http://www.dementia.org/twiki//view/hand.gif" title="Pointing hand" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>hand.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Pointing hand </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{hand}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Pointing hand" src="http://www.dementia.org/twiki//view/hand.gif" title="Pointing hand" /></td>
+ <td bgcolor="#ffffff" style=""><code>hand.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Pointing hand </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{hand}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Help" src="http://www.dementia.org/twiki//view/help.gif" title="Help" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Help" src="http://www.dementia.org/twiki//view/help.gif" title="Help" /></td>
<td bgcolor="#ffffff" style=""><code>help.gif</code></td>
<td bgcolor="#ffffff" style=""> Help </td>
<td bgcolor="#ffffff" style=""><code>%H%</code>, <code>%ICON{help}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Information" src="http://www.dementia.org/twiki//view/info.gif" title="Information" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>info.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Info </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{info}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Information" src="http://www.dementia.org/twiki//view/info.gif" title="Information" /></td>
+ <td bgcolor="#ffffff" style=""><code>info.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Info </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{info}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Hour glass (clock)" src="http://www.dementia.org/twiki//view/hourglass.gif" title="Hour glass (clock)" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Hour glass (clock)" src="http://www.dementia.org/twiki//view/hourglass.gif" title="Hour glass (clock)" /></td>
<td bgcolor="#ffffff" style=""><code>hourglass.gif</code></td>
<td bgcolor="#ffffff" style=""> Hour glass (clock) </td>
<td bgcolor="#ffffff" style=""><code>%ICON{hourglass}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Read more" src="http://www.dementia.org/twiki//view/more.gif" title="Read more" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>more.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Read more </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{more}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Read more" src="http://www.dementia.org/twiki//view/more.gif" title="Read more" /></td>
+ <td bgcolor="#ffffff" style=""><code>more.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Read more </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{more}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Read more" src="http://www.dementia.org/twiki//view/more-small.gif" title="Read more" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Read more" src="http://www.dementia.org/twiki//view/more-small.gif" title="Read more" /></td>
<td bgcolor="#ffffff" style=""><code>more-small.gif</code></td>
<td bgcolor="#ffffff" style=""> Read more, 13x13 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{more-small}%" width="13" height="13" alt="Read more" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Move" src="http://www.dementia.org/twiki//view/move.gif" title="Move" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>move.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Move </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{move}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Move" src="http://www.dementia.org/twiki//view/move.gif" title="Move" /></td>
+ <td bgcolor="#ffffff" style=""><code>move.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Move </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{move}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Note" src="http://www.dementia.org/twiki//view/note.gif" title="Note" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Note" src="http://www.dementia.org/twiki//view/note.gif" title="Note" /></td>
<td bgcolor="#ffffff" style=""><code>note.gif</code></td>
<td bgcolor="#ffffff" style=""> Note </td>
<td bgcolor="#ffffff" style=""><code>%ICON{note}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Parked" src="http://www.dementia.org/twiki//view/parked.gif" title="Parked" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>parked.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Parked </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{parked}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Parked" src="http://www.dementia.org/twiki//view/parked.gif" title="Parked" /></td>
+ <td bgcolor="#ffffff" style=""><code>parked.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Parked </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{parked}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Pencil / Refactor / Edit" src="http://www.dementia.org/twiki//view/pencil.gif" title="Pencil / Refactor / Edit" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Pencil / Refactor / Edit" src="http://www.dementia.org/twiki//view/pencil.gif" title="Pencil / Refactor / Edit" /></td>
<td bgcolor="#ffffff" style=""><code>pencil.gif</code></td>
<td bgcolor="#ffffff" style=""> Pencil / Refactor / Edit </td>
<td bgcolor="#ffffff" style=""><code>%P%</code>, <code>%ICON{pencil}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Request for comments" src="http://www.dementia.org/twiki//view/rfc.gif" title="Request for comments" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>rfc.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Request for comments </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{rfc}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Puzzle" src="http://www.dementia.org/twiki//view/puzzle.gif" title="Puzzle" /></td>
+ <td bgcolor="#ffffff" style=""><code>puzzle.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Puzzle </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{puzzle}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Question" src="http://www.dementia.org/twiki//view/question.gif" title="Question" /></td>
+ <td bgcolor="#ffffff" style=""><code>question.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Question </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{question}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Sort" src="http://www.dementia.org/twiki//view/sort.gif" title="Sort" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Request for comments" src="http://www.dementia.org/twiki//view/rfc.gif" title="Request for comments" /></td>
+ <td bgcolor="#ffffff" style=""><code>rfc.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Request for comments </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{rfc}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Sort" src="http://www.dementia.org/twiki//view/sort.gif" title="Sort" /></td>
<td bgcolor="#ffffff" style=""><code>sort.gif</code></td>
<td bgcolor="#ffffff" style=""> Sort </td>
<td bgcolor="#ffffff" style=""><code>%ICON{sort}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Gold star, favorites" src="http://www.dementia.org/twiki//view/stargold.gif" title="Gold star, favorites" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>stargold.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Gold star, favorites </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{stargold}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Gold star, favorites" src="http://www.dementia.org/twiki//view/stargold.gif" title="Gold star, favorites" /></td>
+ <td bgcolor="#ffffff" style=""><code>stargold.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Gold star, favorites </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{stargold}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Red star, highlight" src="http://www.dementia.org/twiki//view/starred.gif" title="Red star, highlight" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Red star, highlight" src="http://www.dementia.org/twiki//view/starred.gif" title="Red star, highlight" /></td>
<td bgcolor="#ffffff" style=""><code>starred.gif</code></td>
<td bgcolor="#ffffff" style=""> Red star, highlight </td>
<td bgcolor="#ffffff" style=""><code>%S%</code>, <code>%ICON{starred}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Stop" src="http://www.dementia.org/twiki//view/stop.gif" title="Stop" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>stop.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Stop </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{stop}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Stop" src="http://www.dementia.org/twiki//view/stop.gif" title="Stop" /></td>
+ <td bgcolor="#ffffff" style=""><code>stop.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Stop </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{stop}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Target" src="http://www.dementia.org/twiki//view/target.gif" title="Target" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Target" src="http://www.dementia.org/twiki//view/target.gif" title="Target" /></td>
<td bgcolor="#ffffff" style=""><code>target.gif</code></td>
<td bgcolor="#ffffff" style=""> Target </td>
<td bgcolor="#ffffff" style=""><code>%ICON{target}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Tip, idea" src="http://www.dementia.org/twiki//view/tip.gif" title="Tip, idea" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>tip.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Tip, idea </td>
- <td bgcolor="#eaeaea" style=""><code>%T%</code>, <code>%ICON{tip}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Tip, idea" src="http://www.dementia.org/twiki//view/tip.gif" title="Tip, idea" /></td>
+ <td bgcolor="#ffffff" style=""><code>tip.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Tip, idea </td>
+ <td bgcolor="#ffffff" style=""><code>%T%</code>, <code>%ICON{tip}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Warning, important" src="http://www.dementia.org/twiki//view/warning.gif" title="Warning, important" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Warning, important" src="http://www.dementia.org/twiki//view/warning.gif" title="Warning, important" /></td>
<td bgcolor="#ffffff" style=""><code>warning.gif</code></td>
<td bgcolor="#ffffff" style=""> Warning, important </td>
- <td bgcolor="#ffffff" style=""><code>%W%</code>, <code>%ICON{warning}%</code></td>
+ <td bgcolor="#ffffff" style=""><code>%X%</code>, <code>%ICON{warning}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Watch" src="http://www.dementia.org/twiki//view/watch.gif" title="Watch" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>watch.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Watch </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{watch}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Watch" src="http://www.dementia.org/twiki//view/watch.gif" title="Watch" /></td>
+ <td bgcolor="#ffffff" style=""><code>watch.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Watch </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{watch}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Work in progress, under construction" src="http://www.dementia.org/twiki//view/wip.gif" title="Work in progress, under construction" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Work in progress, under construction" src="http://www.dementia.org/twiki//view/wip.gif" title="Work in progress, under construction" /></td>
<td bgcolor="#ffffff" style=""><code>wip.gif</code></td>
<td bgcolor="#ffffff" style=""> Work in progress, under construction </td>
<td bgcolor="#ffffff" style=""><code>%ICON{wip}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Wrench, tools" src="http://www.dementia.org/twiki//view/wrench.gif" title="Wrench, tools" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>wrench.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Wrench, tools </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{wrench}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Wrench, tools" src="http://www.dementia.org/twiki//view/wrench.gif" title="Wrench, tools" /></td>
+ <td bgcolor="#ffffff" style=""><code>wrench.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Wrench, tools </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{wrench}%</code></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="View topic" src="http://www.dementia.org/twiki//view/viewtopic.gif" title="View topic" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>viewtopic.gif</code></td>
- <td bgcolor="#eaeaea" style=""> View topic </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{viewtopic}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="View topic" src="http://www.dementia.org/twiki//view/viewtopic.gif" title="View topic" /></td>
+ <td bgcolor="#ffffff" style=""><code>viewtopic.gif</code></td>
+ <td bgcolor="#ffffff" style=""> View topic </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{viewtopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Print topic" src="http://www.dementia.org/twiki//view/printtopic.gif" title="Print topic" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Print topic" src="http://www.dementia.org/twiki//view/printtopic.gif" title="Print topic" /></td>
<td bgcolor="#ffffff" style=""><code>printtopic.gif</code></td>
<td bgcolor="#ffffff" style=""> Print topic </td>
<td bgcolor="#ffffff" style=""><code>%ICON{printtopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Refresh topic" src="http://www.dementia.org/twiki//view/refreshtopic.gif" title="Refresh topic" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>refreshtopic.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Refresh topic </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{refreshtopic}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Refresh topic" src="http://www.dementia.org/twiki//view/refreshtopic.gif" title="Refresh topic" /></td>
+ <td bgcolor="#ffffff" style=""><code>refreshtopic.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Refresh topic </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{refreshtopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="New topic" src="http://www.dementia.org/twiki//view/newtopic.gif" title="New topic" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="New topic" src="http://www.dementia.org/twiki//view/newtopic.gif" title="New topic" /></td>
<td bgcolor="#ffffff" style=""><code>newtopic.gif</code></td>
<td bgcolor="#ffffff" style=""> New topic </td>
<td bgcolor="#ffffff" style=""><code>%ICON{newtopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Edit topic" src="http://www.dementia.org/twiki//view/edittopic.gif" title="Edit topic" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>edittopic.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Edit topic </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{edittopic}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Edit topic" src="http://www.dementia.org/twiki//view/edittopic.gif" title="Edit topic" /></td>
+ <td bgcolor="#ffffff" style=""><code>edittopic.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Edit topic </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{edittopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Save" src="http://www.dementia.org/twiki//view/save.gif" title="Save" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Save" src="http://www.dementia.org/twiki//view/save.gif" title="Save" /></td>
<td bgcolor="#ffffff" style=""><code>save.gif</code></td>
<td bgcolor="#ffffff" style=""> Save </td>
<td bgcolor="#ffffff" style=""><code>%ICON{save}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Attach file" src="http://www.dementia.org/twiki//view/attachfile.gif" title="Attach file" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>attachfile.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Attach file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{attachfile}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Attach file" src="http://www.dementia.org/twiki//view/attachfile.gif" title="Attach file" /></td>
+ <td bgcolor="#ffffff" style=""><code>attachfile.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Attach file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{attachfile}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Download" src="http://www.dementia.org/twiki//view/download.gif" title="Download" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Download" src="http://www.dementia.org/twiki//view/download.gif" title="Download" /></td>
<td bgcolor="#ffffff" style=""><code>download.gif</code></td>
<td bgcolor="#ffffff" style=""> Download </td>
<td bgcolor="#ffffff" style=""><code>%ICON{download}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Trash" src="http://www.dementia.org/twiki//view/trash.gif" title="Trash" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>trash.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Trash </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{trash}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Trash" src="http://www.dementia.org/twiki//view/trash.gif" title="Trash" /></td>
+ <td bgcolor="#ffffff" style=""><code>trash.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Trash </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{trash}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Search topic" src="http://www.dementia.org/twiki//view/searchtopic.gif" title="Search topic" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Search topic" src="http://www.dementia.org/twiki//view/searchtopic.gif" title="Search topic" /></td>
<td bgcolor="#ffffff" style=""><code>searchtopic.gif</code></td>
<td bgcolor="#ffffff" style=""> Search topic </td>
<td bgcolor="#ffffff" style=""><code>%ICON{searchtopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Search" src="http://www.dementia.org/twiki//view/search-small.gif" title="Search" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>search-small.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Small search button, 13x13 </td>
- <td bgcolor="#eaeaea" style=""><code><img src="%ICONURL{search-small}%" width="13" height="13" alt="Search" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Search" src="http://www.dementia.org/twiki//view/search-small.gif" title="Search" /></td>
+ <td bgcolor="#ffffff" style=""><code>search-small.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Small search button, 13x13 </td>
+ <td bgcolor="#ffffff" style=""><code><img src="%ICONURL{search-small}%" width="13" height="13" alt="Search" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Topic back-links" src="http://www.dementia.org/twiki//view/topicbacklinks.gif" title="Topic back-links" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Topic back-links" src="http://www.dementia.org/twiki//view/topicbacklinks.gif" title="Topic back-links" /></td>
<td bgcolor="#ffffff" style=""><code>topicbacklinks.gif</code></td>
<td bgcolor="#ffffff" style=""> Topic back-links </td>
<td bgcolor="#ffffff" style=""><code>%ICON{topicbacklinks}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Topic difference" src="http://www.dementia.org/twiki//view/topicdiffs.gif" title="Topic difference" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>topicdiffs.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Topic difference </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{topicdiffs}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Topic difference" src="http://www.dementia.org/twiki//view/topicdiffs.gif" title="Topic difference" /></td>
+ <td bgcolor="#ffffff" style=""><code>topicdiffs.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Topic difference </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{topicdiffs}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Statistics" src="http://www.dementia.org/twiki//view/statistics.gif" title="Statistics" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Statistics" src="http://www.dementia.org/twiki//view/statistics.gif" title="Statistics" /></td>
<td bgcolor="#ffffff" style=""><code>statistics.gif</code></td>
<td bgcolor="#ffffff" style=""> Statistics </td>
<td bgcolor="#ffffff" style=""><code>%ICON{statistics}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Index" src="http://www.dementia.org/twiki//view/index.gif" title="Index" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>index.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Index </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{index}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Index" src="http://www.dementia.org/twiki//view/index.gif" title="Index" /></td>
+ <td bgcolor="#ffffff" style=""><code>index.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Index </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{index}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Index list" src="http://www.dementia.org/twiki//view/indexlist.gif" title="Index list" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Index list" src="http://www.dementia.org/twiki//view/indexlist.gif" title="Index list" /></td>
<td bgcolor="#ffffff" style=""><code>indexlist.gif</code></td>
<td bgcolor="#ffffff" style=""> Index list </td>
<td bgcolor="#ffffff" style=""><code>%ICON{indexlist}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Cache topic" src="http://www.dementia.org/twiki//view/cachetopic.gif" title="Cache topic" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>cachetopic.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Cache topic </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{cachetopic}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Cache topic" src="http://www.dementia.org/twiki//view/cachetopic.gif" title="Cache topic" /></td>
+ <td bgcolor="#ffffff" style=""><code>cachetopic.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Cache topic </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{cachetopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Folder" src="http://www.dementia.org/twiki//view/folder.gif" title="Folder" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Folder" src="http://www.dementia.org/twiki//view/folder.gif" title="Folder" /></td>
<td bgcolor="#ffffff" style=""><code>folder.gif</code></td>
<td bgcolor="#ffffff" style=""> Folder </td>
<td bgcolor="#ffffff" style=""><code>%ICON{folder}%</code></td>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Person" src="http://www.dementia.org/twiki//view/person.gif" title="Person" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>person.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Person </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{person}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Person" src="http://www.dementia.org/twiki//view/person.gif" title="Person" /></td>
+ <td bgcolor="#ffffff" style=""><code>person.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Person </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{person}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Persons" src="http://www.dementia.org/twiki//view/persons.gif" title="Persons" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Persons" src="http://www.dementia.org/twiki//view/persons.gif" title="Persons" /></td>
<td bgcolor="#ffffff" style=""><code>persons.gif</code></td>
<td bgcolor="#ffffff" style=""> Persons </td>
<td bgcolor="#ffffff" style=""><code>%ICON{persons}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Group" src="http://www.dementia.org/twiki//view/group.gif" title="Group" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>group.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Group </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{group}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Group" src="http://www.dementia.org/twiki//view/group.gif" title="Group" /></td>
+ <td bgcolor="#ffffff" style=""><code>group.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Group </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{group}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Building" src="http://www.dementia.org/twiki//view/building.gif" title="Building" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Building" src="http://www.dementia.org/twiki//view/building.gif" title="Building" /></td>
<td bgcolor="#ffffff" style=""><code>building.gif</code></td>
<td bgcolor="#ffffff" style=""> Building </td>
<td bgcolor="#ffffff" style=""><code>%ICON{building}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Buildings" src="http://www.dementia.org/twiki//view/buildings.gif" title="Buildings" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>buildings.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Buildings </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{buildings}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Buildings" src="http://www.dementia.org/twiki//view/buildings.gif" title="Buildings" /></td>
+ <td bgcolor="#ffffff" style=""><code>buildings.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Buildings </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{buildings}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Log out" src="http://www.dementia.org/twiki//view/logout.gif" title="Log out" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Log out" src="http://www.dementia.org/twiki//view/logout.gif" title="Log out" /></td>
<td bgcolor="#ffffff" style=""><code>logout.gif</code></td>
<td bgcolor="#ffffff" style=""> Log out </td>
<td bgcolor="#ffffff" style=""><code>%ICON{logout}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Key" src="http://www.dementia.org/twiki//view/key.gif" title="Key" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>key.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Key </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{key}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Key" src="http://www.dementia.org/twiki//view/key.gif" title="Key" /></td>
+ <td bgcolor="#ffffff" style=""><code>key.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Key </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{key}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Lock" src="http://www.dementia.org/twiki//view/lock.gif" title="Lock" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Lock" src="http://www.dementia.org/twiki//view/lock.gif" title="Lock" /></td>
<td bgcolor="#ffffff" style=""><code>lock.gif</code></td>
<td bgcolor="#ffffff" style=""> Lock </td>
<td bgcolor="#ffffff" style=""><code>%ICON{lock}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Locked topic" src="http://www.dementia.org/twiki//view/locktopic.gif" title="Locked topic" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>locktopic.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Locked topic </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{locktopic}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Locked topic" src="http://www.dementia.org/twiki//view/locktopic.gif" title="Locked topic" /></td>
+ <td bgcolor="#ffffff" style=""><code>locktopic.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Locked topic </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{locktopic}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Locked topic, gray" src="http://www.dementia.org/twiki//view/locktopicgray.gif" title="Locked topic, gray" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Locked topic, gray" src="http://www.dementia.org/twiki//view/locktopicgray.gif" title="Locked topic, gray" /></td>
<td bgcolor="#ffffff" style=""><code>locktopicgray.gif</code></td>
<td bgcolor="#ffffff" style=""> Locked topic, gray </td>
<td bgcolor="#ffffff" style=""><code>%ICON{locktopicgray}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Locked folder" src="http://www.dementia.org/twiki//view/lockfolder.gif" title="Locked folder" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>lockfolder.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Locked folder </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{lockfolder}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Locked folder" src="http://www.dementia.org/twiki//view/lockfolder.gif" title="Locked folder" /></td>
+ <td bgcolor="#ffffff" style=""><code>lockfolder.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Locked folder </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{lockfolder}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Locked folder, gray" src="http://www.dementia.org/twiki//view/lockfoldergray.gif" title="Locked folder, gray" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Locked folder, gray" src="http://www.dementia.org/twiki//view/lockfoldergray.gif" title="Locked folder, gray" /></td>
<td bgcolor="#ffffff" style=""><code>lockfoldergray.gif</code></td>
<td bgcolor="#ffffff" style=""> Locked folder, gray </td>
<td bgcolor="#ffffff" style=""><code>%ICON{lockfoldergray}%</code></td>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=4;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Changes" src="http://www.dementia.org/twiki//view/changes.gif" title="Changes" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>changes.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Changes </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{changes}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Changes" src="http://www.dementia.org/twiki//view/changes.gif" title="Changes" /></td>
+ <td bgcolor="#ffffff" style=""><code>changes.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Changes </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{changes}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Changes" src="http://www.dementia.org/twiki//view/changes-small.gif" title="Changes" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Changes" src="http://www.dementia.org/twiki//view/changes-small.gif" title="Changes" /></td>
<td bgcolor="#ffffff" style=""><code>changes-small.gif</code></td>
<td bgcolor="#ffffff" style=""> Changes (small), 13x13 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{changes-small}%" width="13" height="13" alt="Changes" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Recent changes" src="http://www.dementia.org/twiki//view/recentchanges.gif" title="Recent changes" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>recentchanges.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Recent changes </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{recentchanges}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Recent changes" src="http://www.dementia.org/twiki//view/recentchanges.gif" title="Recent changes" /></td>
+ <td bgcolor="#ffffff" style=""><code>recentchanges.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Recent changes </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{recentchanges}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Mail" src="http://www.dementia.org/twiki//view/mail.gif" title="Mail" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Mail" src="http://www.dementia.org/twiki//view/mail.gif" title="Mail" /></td>
<td bgcolor="#ffffff" style=""><code>mail.gif</code></td>
<td bgcolor="#ffffff" style=""> Mail </td>
<td bgcolor="#ffffff" style=""><code>%ICON{mail}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Notify" src="http://www.dementia.org/twiki//view/notify.gif" title="Notify" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>notify.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Notify </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{notify}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Notify" src="http://www.dementia.org/twiki//view/notify.gif" title="Notify" /></td>
+ <td bgcolor="#ffffff" style=""><code>notify.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Notify </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{notify}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="RSS feed" src="http://www.dementia.org/twiki//view/rss-feed.gif" title="RSS feed" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="RSS feed" src="http://www.dementia.org/twiki//view/rss-feed.gif" title="RSS feed" /></td>
<td bgcolor="#ffffff" style=""><code>rss-feed.gif</code></td>
<td bgcolor="#ffffff" style=""> RSS feed, 36x14 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{rss-feed}%" width="36" height="14" alt="RSS feed" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="RSS feed" src="http://www.dementia.org/twiki//view/rss-small.gif" title="RSS feed" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>rss-small.gif</code></td>
- <td bgcolor="#eaeaea" style=""> RSS feed </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{rss-small}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="RSS feed" src="http://www.dementia.org/twiki//view/rss-small.gif" title="RSS feed" /></td>
+ <td bgcolor="#ffffff" style=""><code>rss-small.gif</code></td>
+ <td bgcolor="#ffffff" style=""> RSS feed </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{rss-small}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="XML feed" src="http://www.dementia.org/twiki//view/xml-feed.gif" title="XML feed" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="XML feed" src="http://www.dementia.org/twiki//view/xml-feed.gif" title="XML feed" /></td>
<td bgcolor="#ffffff" style=""><code>xml-feed.gif</code></td>
<td bgcolor="#ffffff" style=""> XML feed, 36x14 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{xml-feed}%" width="36" height="13" alt="XML feed" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="XML feed" src="http://www.dementia.org/twiki//view/xml-small.gif" title="XML feed" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>xml-small.gif</code></td>
- <td bgcolor="#eaeaea" style=""> XML feed </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{xml-small}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="XML feed" src="http://www.dementia.org/twiki//view/xml-small.gif" title="XML feed" /></td>
+ <td bgcolor="#ffffff" style=""><code>xml-small.gif</code></td>
+ <td bgcolor="#ffffff" style=""> XML feed </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{xml-small}%</code></td>
</tr>
</table>
-### <a name="Status, flag, LED icons"></a><a name=" Status, flag, LED icons"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" height="16" alt="choice-yes" /> Status, <img src="http://www.dementia.org/twiki//view/Main/WebHome/flag.gif" width="16" height="16" alt="flag" /> flag, <img src="http://www.dementia.org/twiki//view/Main/WebHome/led-box-red.gif" width="16" height="16" alt="led-box-red" /> LED icons
+### <a name="Status, flag, LED, tag icons"></a><a name=" Status, flag, LED, tag icons"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" height="16" alt="choice-yes" /> Status, <img src="http://www.dementia.org/twiki//view/Main/WebHome/flag.gif" width="16" height="16" alt="flag" /> flag, <img src="http://www.dementia.org/twiki//view/Main/WebHome/led-box-red.gif" width="16" height="16" alt="led-box-red" /> LED, <img src="http://www.dementia.org/twiki//view/Main/WebHome/tag-yellow.gif" width="16" height="16" alt="tag-yellow" /> tag icons
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=5;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="NEW" src="http://www.dementia.org/twiki//view/new.gif" title="NEW" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>new.gif</code></td>
- <td bgcolor="#eaeaea" style=""> NEW, 30x16 </td>
- <td bgcolor="#eaeaea" style=""><code>%N%</code>, <code><img src="%ICONURL{new}%" width="30" height="16" alt="New" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="NEW" src="http://www.dementia.org/twiki//view/new.gif" title="NEW" /></td>
+ <td bgcolor="#ffffff" style=""><code>new.gif</code></td>
+ <td bgcolor="#ffffff" style=""> NEW, 30x16 </td>
+ <td bgcolor="#ffffff" style=""><code>%N%</code>, <code><img src="%ICONURL{new}%" width="30" height="16" alt="New" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="TODO" src="http://www.dementia.org/twiki//view/todo.gif" title="TODO" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="TODO" src="http://www.dementia.org/twiki//view/todo.gif" title="TODO" /></td>
<td bgcolor="#ffffff" style=""><code>todo.gif</code></td>
<td bgcolor="#ffffff" style=""> TODO, 37x16 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{todo}%" width="37" height="16" alt="TODO" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="UPDATED" src="http://www.dementia.org/twiki//view/updated.gif" title="UPDATED" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>updated.gif</code></td>
- <td bgcolor="#eaeaea" style=""> UPDATED, 55x16 </td>
- <td bgcolor="#eaeaea" style=""><code>%U%</code>, <code><img src="%ICONURL{updated}%" width="55" height="16" alt="UPDATED" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="UPDATED" src="http://www.dementia.org/twiki//view/updated.gif" title="UPDATED" /></td>
+ <td bgcolor="#ffffff" style=""><code>updated.gif</code></td>
+ <td bgcolor="#ffffff" style=""> UPDATED, 55x16 </td>
+ <td bgcolor="#ffffff" style=""><code>%U%</code>, <code><img src="%ICONURL{updated}%" width="55" height="16" alt="UPDATED" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="DONE" src="http://www.dementia.org/twiki//view/done.gif" title="DONE" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="DONE" src="http://www.dementia.org/twiki//view/done.gif" title="DONE" /></td>
<td bgcolor="#ffffff" style=""><code>done.gif</code></td>
<td bgcolor="#ffffff" style=""> DONE, 37x16 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{done}%" width="37" height="16" alt="Done" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="CLOSED" src="http://www.dementia.org/twiki//view/closed.gif" title="CLOSED" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>closed.gif</code></td>
- <td bgcolor="#eaeaea" style=""> CLOSED, 48x16 </td>
- <td bgcolor="#eaeaea" style=""><code><img src="%ICONURL{closed}%" width="48" height="16" alt="Closed" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="CLOSED" src="http://www.dementia.org/twiki//view/closed.gif" title="CLOSED" /></td>
+ <td bgcolor="#ffffff" style=""><code>closed.gif</code></td>
+ <td bgcolor="#ffffff" style=""> CLOSED, 48x16 </td>
+ <td bgcolor="#ffffff" style=""><code><img src="%ICONURL{closed}%" width="48" height="16" alt="Closed" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Minus" src="http://www.dementia.org/twiki//view/minus.gif" title="Minus" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Minus" src="http://www.dementia.org/twiki//view/minus.gif" title="Minus" /></td>
<td bgcolor="#ffffff" style=""><code>minus.gif</code></td>
<td bgcolor="#ffffff" style=""> Minus </td>
<td bgcolor="#ffffff" style=""><code>%ICON{minus}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Plus" src="http://www.dementia.org/twiki//view/plus.gif" title="Plus" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>plus.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Plus </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{plus}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Plus" src="http://www.dementia.org/twiki//view/plus.gif" title="Plus" /></td>
+ <td bgcolor="#ffffff" style=""><code>plus.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Plus </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{plus}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Cancel" src="http://www.dementia.org/twiki//view/choice-cancel.gif" title="Cancel" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Cancel" src="http://www.dementia.org/twiki//view/choice-cancel.gif" title="Cancel" /></td>
<td bgcolor="#ffffff" style=""><code>choice-cancel.gif</code></td>
<td bgcolor="#ffffff" style=""> Cancel </td>
<td bgcolor="#ffffff" style=""><code>%ICON{choice-cancel}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="No" src="http://www.dementia.org/twiki//view/choice-no.gif" title="No" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>choice-no.gif</code></td>
- <td bgcolor="#eaeaea" style=""> No </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{choice-no}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="No" src="http://www.dementia.org/twiki//view/choice-no.gif" title="No" /></td>
+ <td bgcolor="#ffffff" style=""><code>choice-no.gif</code></td>
+ <td bgcolor="#ffffff" style=""> No </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{choice-no}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Yes / Done" src="http://www.dementia.org/twiki//view/choice-yes.gif" title="Yes / Done" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Yes / Done" src="http://www.dementia.org/twiki//view/choice-yes.gif" title="Yes / Done" /></td>
<td bgcolor="#ffffff" style=""><code>choice-yes.gif</code></td>
<td bgcolor="#ffffff" style=""> Yes / Done </td>
<td bgcolor="#ffffff" style=""><code>%Y%</code>, <code>%ICON{choice-yes}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Unchecked checkbox" src="http://www.dementia.org/twiki//view/unchecked.gif" title="Unchecked checkbox" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>unchecked.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Unchecked checkbox </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{unchecked}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Unchecked checkbox" src="http://www.dementia.org/twiki//view/unchecked.gif" title="Unchecked checkbox" /></td>
+ <td bgcolor="#ffffff" style=""><code>unchecked.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Unchecked checkbox </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{unchecked}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Checked checkbox" src="http://www.dementia.org/twiki//view/checked.gif" title="Checked checkbox" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Checked checkbox" src="http://www.dementia.org/twiki//view/checked.gif" title="Checked checkbox" /></td>
<td bgcolor="#ffffff" style=""><code>checked.gif</code></td>
<td bgcolor="#ffffff" style=""> Checked checkbox </td>
<td bgcolor="#ffffff" style=""><code>%ICON{checked}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Flag" src="http://www.dementia.org/twiki//view/flag.gif" title="Flag" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>flag.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Flag </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{flag}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Flag" src="http://www.dementia.org/twiki//view/flag.gif" title="Flag" /></td>
+ <td bgcolor="#ffffff" style=""><code>flag.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Flag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{flag}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Flag" src="http://www.dementia.org/twiki//view/flag-gray.gif" title="Flag" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Flag" src="http://www.dementia.org/twiki//view/flag-gray.gif" title="Flag" /></td>
<td bgcolor="#ffffff" style=""><code>flag-gray.gif</code></td>
<td bgcolor="#ffffff" style=""> Gray flag </td>
<td bgcolor="#ffffff" style=""><code>%ICON{flag-gray}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Flag" src="http://www.dementia.org/twiki//view/flag-gray-small.gif" title="Flag" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>flag-gray-small.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Small gray flag, 13x13 </td>
- <td bgcolor="#eaeaea" style=""><code><img src="%ICONURL{flag-gray-small}%" width="13" height="13" alt="Flag" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Flag" src="http://www.dementia.org/twiki//view/flag-gray-small.gif" title="Flag" /></td>
+ <td bgcolor="#ffffff" style=""><code>flag-gray-small.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Small gray flag, 13x13 </td>
+ <td bgcolor="#ffffff" style=""><code><img src="%ICONURL{flag-gray-small}%" width="13" height="13" alt="Flag" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Aqua led" src="http://www.dementia.org/twiki//view/led-aqua.gif" title="Aqua led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Aqua led" src="http://www.dementia.org/twiki//view/led-aqua.gif" title="Aqua led" /></td>
<td bgcolor="#ffffff" style=""><code>led-aqua.gif</code></td>
<td bgcolor="#ffffff" style=""> Aqua led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-aqua}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Blue led" src="http://www.dementia.org/twiki//view/led-blue.gif" title="Blue led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-blue.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Blue led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-blue}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Blue led" src="http://www.dementia.org/twiki//view/led-blue.gif" title="Blue led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-blue.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Blue led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-blue}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Gray led" src="http://www.dementia.org/twiki//view/led-gray.gif" title="Gray led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Gray led" src="http://www.dementia.org/twiki//view/led-gray.gif" title="Gray led" /></td>
<td bgcolor="#ffffff" style=""><code>led-gray.gif</code></td>
<td bgcolor="#ffffff" style=""> Gray led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-gray}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Green led" src="http://www.dementia.org/twiki//view/led-green.gif" title="Green led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-green.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Green led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-green}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Green led" src="http://www.dementia.org/twiki//view/led-green.gif" title="Green led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-green.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Green led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-green}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Orange led" src="http://www.dementia.org/twiki//view/led-orange.gif" title="Orange led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Orange led" src="http://www.dementia.org/twiki//view/led-orange.gif" title="Orange led" /></td>
<td bgcolor="#ffffff" style=""><code>led-orange.gif</code></td>
<td bgcolor="#ffffff" style=""> Orange led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-orange}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Purple led" src="http://www.dementia.org/twiki//view/led-purple.gif" title="Purple led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-purple.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Purple led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-purple}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Purple led" src="http://www.dementia.org/twiki//view/led-purple.gif" title="Purple led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-purple.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Purple led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-purple}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Red led" src="http://www.dementia.org/twiki//view/led-red.gif" title="Red led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Red led" src="http://www.dementia.org/twiki//view/led-red.gif" title="Red led" /></td>
<td bgcolor="#ffffff" style=""><code>led-red.gif</code></td>
<td bgcolor="#ffffff" style=""> Red led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-red}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Yellow led" src="http://www.dementia.org/twiki//view/led-yellow.gif" title="Yellow led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-yellow.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Yellow led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-yellow}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Yellow led" src="http://www.dementia.org/twiki//view/led-yellow.gif" title="Yellow led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-yellow.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Yellow led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-yellow}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Aqua led" src="http://www.dementia.org/twiki//view/led-box-aqua.gif" title="Aqua led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Aqua led" src="http://www.dementia.org/twiki//view/led-box-aqua.gif" title="Aqua led" /></td>
<td bgcolor="#ffffff" style=""><code>led-box-aqua.gif</code></td>
<td bgcolor="#ffffff" style=""> Aqua led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-box-aqua}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Blue led" src="http://www.dementia.org/twiki//view/led-box-blue.gif" title="Blue led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-box-blue.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Blue led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-box-blue}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Blue led" src="http://www.dementia.org/twiki//view/led-box-blue.gif" title="Blue led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-box-blue.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Blue led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-box-blue}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Gray led" src="http://www.dementia.org/twiki//view/led-box-gray.gif" title="Gray led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Gray led" src="http://www.dementia.org/twiki//view/led-box-gray.gif" title="Gray led" /></td>
<td bgcolor="#ffffff" style=""><code>led-box-gray.gif</code></td>
<td bgcolor="#ffffff" style=""> Gray led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-box-gray}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Green led" src="http://www.dementia.org/twiki//view/led-box-green.gif" title="Green led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-box-green.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Green led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-box-green}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Green led" src="http://www.dementia.org/twiki//view/led-box-green.gif" title="Green led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-box-green.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Green led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-box-green}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Orange led" src="http://www.dementia.org/twiki//view/led-box-orange.gif" title="Orange led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Orange led" src="http://www.dementia.org/twiki//view/led-box-orange.gif" title="Orange led" /></td>
<td bgcolor="#ffffff" style=""><code>led-box-orange.gif</code></td>
<td bgcolor="#ffffff" style=""> Orange led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-box-orange}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Purple led" src="http://www.dementia.org/twiki//view/led-box-purple.gif" title="Purple led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-box-purple.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Purple led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-box-purple}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Purple led" src="http://www.dementia.org/twiki//view/led-box-purple.gif" title="Purple led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-box-purple.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Purple led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-box-purple}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Red led" src="http://www.dementia.org/twiki//view/led-box-red.gif" title="Red led" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Red led" src="http://www.dementia.org/twiki//view/led-box-red.gif" title="Red led" /></td>
<td bgcolor="#ffffff" style=""><code>led-box-red.gif</code></td>
<td bgcolor="#ffffff" style=""> Red led </td>
<td bgcolor="#ffffff" style=""><code>%ICON{led-box-red}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Yellow led" src="http://www.dementia.org/twiki//view/led-box-yellow.gif" title="Yellow led" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>led-box-yellow.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Yellow led </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{led-box-yellow}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Yellow led" src="http://www.dementia.org/twiki//view/led-box-yellow.gif" title="Yellow led" /></td>
+ <td bgcolor="#ffffff" style=""><code>led-box-yellow.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Yellow led </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{led-box-yellow}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Tag" src="http://www.dementia.org/twiki//view/tag.gif" title="Tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Blue tag" src="http://www.dementia.org/twiki//view/tag-blue.gif" title="Blue tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-blue.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Blue tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-blue}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Brown tag" src="http://www.dementia.org/twiki//view/tag-brown.gif" title="Brown tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-brown.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Brown tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-brown}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Green tag" src="http://www.dementia.org/twiki//view/tag-green.gif" title="Green tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-green.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Green tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-green}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Magenta tag" src="http://www.dementia.org/twiki//view/tag-magenta.gif" title="Magenta tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-magenta.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Magenta tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-magenta}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Orange tag" src="http://www.dementia.org/twiki//view/tag-orange.gif" title="Orange tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-orange.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Orange tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-orange}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Purple tag" src="http://www.dementia.org/twiki//view/tag-purple.gif" title="Purple tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-purple.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Purple tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-purple}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Red tag" src="http://www.dementia.org/twiki//view/tag-red.gif" title="Red tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-red.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Red tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-red}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Yellow tag" src="http://www.dementia.org/twiki//view/tag-yellow.gif" title="Yellow tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag-yellow.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Yellow tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag-yellow}%</code></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=6;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Home" src="http://www.dementia.org/twiki//view/home.gif" title="Home" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>home.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Home </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{home}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Home" src="http://www.dementia.org/twiki//view/home.gif" title="Home" /></td>
+ <td bgcolor="#ffffff" style=""><code>home.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Home </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{home}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="External site" src="http://www.dementia.org/twiki//view/external.gif" title="External site" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="External site" src="http://www.dementia.org/twiki//view/external.gif" title="External site" /></td>
<td bgcolor="#ffffff" style=""><code>external.gif</code></td>
<td bgcolor="#ffffff" style=""> External site </td>
<td bgcolor="#ffffff" style=""><code>%ICON{external}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Meet here (arrows to red dot)" src="http://www.dementia.org/twiki//view/arrowdot.gif" title="Meet here (arrows to red dot)" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>arrowdot.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Meet here (arrows to red dot) </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{arrowdot}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Meet here (arrows to red dot)" src="http://www.dementia.org/twiki//view/arrowdot.gif" title="Meet here (arrows to red dot)" /></td>
+ <td bgcolor="#ffffff" style=""><code>arrowdot.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Meet here (arrows to red dot) </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{arrowdot}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Left" src="http://www.dementia.org/twiki//view/left.gif" title="Left" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Left" src="http://www.dementia.org/twiki//view/left.gif" title="Left" /></td>
<td bgcolor="#ffffff" style=""><code>left.gif</code></td>
<td bgcolor="#ffffff" style=""> Left </td>
<td bgcolor="#ffffff" style=""><code>%ICON{left}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Right" src="http://www.dementia.org/twiki//view/right.gif" title="Right" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>right.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{right}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Right" src="http://www.dementia.org/twiki//view/right.gif" title="Right" /></td>
+ <td bgcolor="#ffffff" style=""><code>right.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{right}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Up" src="http://www.dementia.org/twiki//view/up.gif" title="Up" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Up" src="http://www.dementia.org/twiki//view/up.gif" title="Up" /></td>
<td bgcolor="#ffffff" style=""><code>up.gif</code></td>
<td bgcolor="#ffffff" style=""> Up </td>
<td bgcolor="#ffffff" style=""><code>%ICON{up}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Down" src="http://www.dementia.org/twiki//view/down.gif" title="Down" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>down.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{down}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Down" src="http://www.dementia.org/twiki//view/down.gif" title="Down" /></td>
+ <td bgcolor="#ffffff" style=""><code>down.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{down}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow blue left" src="http://www.dementia.org/twiki//view/arrowbleft.gif" title="Arrow blue left" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow blue left" src="http://www.dementia.org/twiki//view/arrowbleft.gif" title="Arrow blue left" /></td>
<td bgcolor="#ffffff" style=""><code>arrowbleft.gif</code></td>
<td bgcolor="#ffffff" style=""> Arrow blue left </td>
<td bgcolor="#ffffff" style=""><code>%ICON{arrowbleft}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow blue right" src="http://www.dementia.org/twiki//view/arrowbright.gif" title="Arrow blue right" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>arrowbright.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Arrow blue right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{arrowbright}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow blue right" src="http://www.dementia.org/twiki//view/arrowbright.gif" title="Arrow blue right" /></td>
+ <td bgcolor="#ffffff" style=""><code>arrowbright.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Arrow blue right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{arrowbright}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow blue up" src="http://www.dementia.org/twiki//view/arrowbup.gif" title="Arrow blue up" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow blue up" src="http://www.dementia.org/twiki//view/arrowbup.gif" title="Arrow blue up" /></td>
<td bgcolor="#ffffff" style=""><code>arrowbup.gif</code></td>
<td bgcolor="#ffffff" style=""> Arrow blue up </td>
<td bgcolor="#ffffff" style=""><code>%ICON{arrowbup}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow blue down" src="http://www.dementia.org/twiki//view/arrowbdown.gif" title="Arrow blue down" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>arrowbdown.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Arrow blue down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{arrowbdown}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow blue down" src="http://www.dementia.org/twiki//view/arrowbdown.gif" title="Arrow blue down" /></td>
+ <td bgcolor="#ffffff" style=""><code>arrowbdown.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Arrow blue down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{arrowbdown}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow left" src="http://www.dementia.org/twiki//view/arrowleft.gif" title="Arrow left" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow left" src="http://www.dementia.org/twiki//view/arrowleft.gif" title="Arrow left" /></td>
<td bgcolor="#ffffff" style=""><code>arrowleft.gif</code></td>
<td bgcolor="#ffffff" style=""> Arrow left </td>
<td bgcolor="#ffffff" style=""><code>%ICON{arrowleft}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow right" src="http://www.dementia.org/twiki//view/arrowright.gif" title="Arrow right" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>arrowright.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Arrow right </td>
- <td bgcolor="#eaeaea" style=""><code>%M%</code>, <code>%ICON{arrowright}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow right" src="http://www.dementia.org/twiki//view/arrowright.gif" title="Arrow right" /></td>
+ <td bgcolor="#ffffff" style=""><code>arrowright.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Arrow right </td>
+ <td bgcolor="#ffffff" style=""><code>%M%</code>, <code>%ICON{arrowright}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow up" src="http://www.dementia.org/twiki//view/arrowup.gif" title="Arrow up" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow up" src="http://www.dementia.org/twiki//view/arrowup.gif" title="Arrow up" /></td>
<td bgcolor="#ffffff" style=""><code>arrowup.gif</code></td>
<td bgcolor="#ffffff" style=""> Arrow up </td>
<td bgcolor="#ffffff" style=""><code>%ICON{arrowup}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Arrow down" src="http://www.dementia.org/twiki//view/arrowdown.gif" title="Arrow down" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>arrowdown.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Arrow down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{arrowdown}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Arrow down" src="http://www.dementia.org/twiki//view/arrowdown.gif" title="Arrow down" /></td>
+ <td bgcolor="#ffffff" style=""><code>arrowdown.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Arrow down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{arrowdown}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go to start" src="http://www.dementia.org/twiki//view/go_start.gif" title="Go to start" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Go to start" src="http://www.dementia.org/twiki//view/go_start.gif" title="Go to start" /></td>
<td bgcolor="#ffffff" style=""><code>go_start.gif</code></td>
<td bgcolor="#ffffff" style=""> Go to start </td>
<td bgcolor="#ffffff" style=""><code>%ICON{go_start}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go fast back" src="http://www.dementia.org/twiki//view/go_fb.gif" title="Go fast back" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>go_fb.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Go fast back </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{go_fb}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Go fast back" src="http://www.dementia.org/twiki//view/go_fb.gif" title="Go fast back" /></td>
+ <td bgcolor="#ffffff" style=""><code>go_fb.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Go fast back </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{go_fb}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go back" src="http://www.dementia.org/twiki//view/go_back.gif" title="Go back" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Go back" src="http://www.dementia.org/twiki//view/go_back.gif" title="Go back" /></td>
<td bgcolor="#ffffff" style=""><code>go_back.gif</code></td>
<td bgcolor="#ffffff" style=""> Go back </td>
<td bgcolor="#ffffff" style=""><code>%ICON{go_back}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go forward" src="http://www.dementia.org/twiki//view/go_forward.gif" title="Go forward" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>go_forward.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Go forward </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{go_forward}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Go forward" src="http://www.dementia.org/twiki//view/go_forward.gif" title="Go forward" /></td>
+ <td bgcolor="#ffffff" style=""><code>go_forward.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Go forward </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{go_forward}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go fast forward" src="http://www.dementia.org/twiki//view/go_ff.gif" title="Go fast forward" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Go fast forward" src="http://www.dementia.org/twiki//view/go_ff.gif" title="Go fast forward" /></td>
<td bgcolor="#ffffff" style=""><code>go_ff.gif</code></td>
<td bgcolor="#ffffff" style=""> Go fast forward </td>
<td bgcolor="#ffffff" style=""><code>%ICON{go_ff}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Go to end" src="http://www.dementia.org/twiki//view/go_end.gif" title="Go to end" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>go_end.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Go to end </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{go_end}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Go to end" src="http://www.dementia.org/twiki//view/go_end.gif" title="Go to end" /></td>
+ <td bgcolor="#ffffff" style=""><code>go_end.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Go to end </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{go_end}%</code></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Monospace" src="http://www.dementia.org/twiki//view/monospace.gif" title="Monospace" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>monospace.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Monospace </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{monospace}%</code></td>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=7;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=7;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=7;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=7;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Monospace" src="http://www.dementia.org/twiki//view/monospace.gif" title="Monospace" /></td>
+ <td bgcolor="#ffffff" style=""><code>monospace.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Monospace </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{monospace}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Proportional" src="http://www.dementia.org/twiki//view/proportional.gif" title="Proportional" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Proportional" src="http://www.dementia.org/twiki//view/proportional.gif" title="Proportional" /></td>
<td bgcolor="#ffffff" style=""><code>proportional.gif</code></td>
<td bgcolor="#ffffff" style=""> Proportional </td>
<td bgcolor="#ffffff" style=""><code>%ICON{proportional}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen.gif" title="Open toggle, Twisty open toggle" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>toggleopen.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Open toggle, Twisty open toggle </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{toggleopen}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Sort table" src="http://www.dementia.org/twiki//view/tablesortdiamond.gif" title="Sort table" /></td>
+ <td bgcolor="#ffffff" style=""><code>tablesortdiamond.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Sort table </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tablesortdiamond}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose.gif" title="Close toggle, Twisty close toggle" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Sort table descending" src="http://www.dementia.org/twiki//view/tablesortdown.gif" title="Sort table descending" /></td>
+ <td bgcolor="#ffffff" style=""><code>tablesortdown.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Sort table descending </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tablesortdown}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Sort table ascending" src="http://www.dementia.org/twiki//view/tablesortup.gif" title="Sort table ascending" /></td>
+ <td bgcolor="#ffffff" style=""><code>tablesortup.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Sort table ascending </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tablesortup}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen.gif" title="Open toggle, Twisty open toggle" /></td>
+ <td bgcolor="#ffffff" style=""><code>toggleopen.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Open toggle, Twisty open toggle </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{toggleopen}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose.gif" title="Close toggle, Twisty close toggle" /></td>
<td bgcolor="#ffffff" style=""><code>toggleclose.gif</code></td>
<td bgcolor="#ffffff" style=""> Close toggle, Twisty close toggle </td>
<td bgcolor="#ffffff" style=""><code>%ICON{toggleclose}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen-small.gif" title="Open toggle, Twisty open toggle" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>toggleopen-small.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Open toggle, Twisty open toggle </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{toggleopen-small}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen-small.gif" title="Open toggle, Twisty open toggle" /></td>
+ <td bgcolor="#ffffff" style=""><code>toggleopen-small.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Open toggle, Twisty open toggle </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{toggleopen-small}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose-small.gif" title="Close toggle, Twisty close toggle" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose-small.gif" title="Close toggle, Twisty close toggle" /></td>
<td bgcolor="#ffffff" style=""><code>toggleclose-small.gif</code></td>
<td bgcolor="#ffffff" style=""> Close toggle, Twisty close toggle </td>
<td bgcolor="#ffffff" style=""><code>%ICON{toggleclose-small}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen-mini.gif" title="Open toggle, Twisty open toggle" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>toggleopen-mini.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Open toggle, Twisty open toggle </td>
- <td bgcolor="#eaeaea" style=""><code><img src="%ICONURL{toggleopen-mini}%" width="7" height="9" alt="Open" border="0" /></code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopen-mini.gif" title="Open toggle, Twisty open toggle" /></td>
+ <td bgcolor="#ffffff" style=""><code>toggleopen-mini.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Open toggle, Twisty open toggle </td>
+ <td bgcolor="#ffffff" style=""><code><img src="%ICONURL{toggleopen-mini}%" width="7" height="9" alt="Open" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose-mini.gif" title="Close toggle, Twisty close toggle" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Close toggle, Twisty close toggle" src="http://www.dementia.org/twiki//view/toggleclose-mini.gif" title="Close toggle, Twisty close toggle" /></td>
<td bgcolor="#ffffff" style=""><code>toggleclose-mini.gif</code></td>
<td bgcolor="#ffffff" style=""> Close toggle, Twisty close toggle </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{toggleclose-mini}%" width="7" height="9" alt="Close" border="0" /></code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopenleft.gif" title="Open toggle, Twisty open toggle" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>toggleopenleft.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Open toggle, Twisty open toggle </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{toggleopenleft}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopenleft.gif" title="Open toggle, Twisty open toggle" /></td>
+ <td bgcolor="#ffffff" style=""><code>toggleopenleft.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Open toggle, Twisty open toggle </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{toggleopenleft}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopenleft-small.gif" title="Open toggle, Twisty open toggle" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Open toggle, Twisty open toggle" src="http://www.dementia.org/twiki//view/toggleopenleft-small.gif" title="Open toggle, Twisty open toggle" /></td>
<td bgcolor="#ffffff" style=""><code>toggleopenleft-small.gif</code></td>
<td bgcolor="#ffffff" style=""> Open toggle, Twisty open toggle </td>
<td bgcolor="#ffffff" style=""><code>%ICON{toggleopenleft-small}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Web" src="http://www.dementia.org/twiki//view/web-bg.gif" title="Web" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>web-bg.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Web background, used in [[TWiki/WebLeftBarWebsList]]</td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{web-bg}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="Web" src="http://www.dementia.org/twiki//view/web-bg.gif" title="Web" /></td>
+ <td bgcolor="#ffffff" style=""><code>web-bg.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Web background, used in [[TWiki/WebLeftBarWebsList]]</td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{web-bg}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="Web" src="http://www.dementia.org/twiki//view/web-bg-small.gif" title="Web" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="Web" src="http://www.dementia.org/twiki//view/web-bg-small.gif" title="Web" /></td>
<td bgcolor="#ffffff" style=""><code>web-bg-small.gif</code></td>
<td bgcolor="#ffffff" style=""> Web background, 13x13 </td>
<td bgcolor="#ffffff" style=""><code><img src="%ICONURL{web-bg-small}%" width="13" height="13" alt="Web" border="0" /></code></td>
</tr>
</table>
+### <a name="TWiki icons"></a><a name=" TWiki icons"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/twiki.gif" width="16" height="16" alt="twiki" /> TWiki icons
+
+<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <tr>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Add-on" src="http://www.dementia.org/twiki//view/addon.gif" title="Add-on" /></td>
+ <td bgcolor="#ffffff" style=""><code>addon.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Add-on </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{addon}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Application" src="http://www.dementia.org/twiki//view/application.gif" title="Application" /></td>
+ <td bgcolor="#ffffff" style=""><code>application.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Application </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{application}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Code" src="http://www.dementia.org/twiki//view/code.gif" title="Code" /></td>
+ <td bgcolor="#ffffff" style=""><code>code.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Code </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{code}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Package" src="http://www.dementia.org/twiki//view/package.gif" title="Package" /></td>
+ <td bgcolor="#ffffff" style=""><code>package.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Package </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{package}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Plugin" src="http://www.dementia.org/twiki//view/plugin.gif" title="Plugin" /></td>
+ <td bgcolor="#ffffff" style=""><code>plugin.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Plugin </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{plugin}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Tag" src="http://www.dementia.org/twiki//view/tag.gif" title="Tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>tag.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{tag}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Search package" src="http://www.dementia.org/twiki//view/searchpackage.gif" title="Search package" /></td>
+ <td bgcolor="#ffffff" style=""><code>searchpackage.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Search package </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{searchpackage}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Search tag" src="http://www.dementia.org/twiki//view/searchtag.gif" title="Search tag" /></td>
+ <td bgcolor="#ffffff" style=""><code>searchtag.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Search tag </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{searchtag}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="Skin" src="http://www.dementia.org/twiki//view/skin.gif" title="Skin" /></td>
+ <td bgcolor="#ffffff" style=""><code>skin.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Skin </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{skin}%</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><img alt="TWiki" src="http://www.dementia.org/twiki//view/twiki.gif" title="TWiki" /></td>
+ <td bgcolor="#ffffff" style=""><code>twiki.gif</code></td>
+ <td bgcolor="#ffffff" style=""> TWiki logo </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{twiki}%</code></td>
+ </tr>
+</table>
+
### <a name="Block graphics"></a><a name=" Block graphics"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/line_ur.gif" width="16" height="16" alt="line_ur" /> Block graphics
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=8;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_ld.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_ld.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph left-down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_ld}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_ld.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_ld.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph left-down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_ld}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_lr.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_lr.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>line_lr.gif</code></td>
<td bgcolor="#ffffff" style=""> Line graph left-right </td>
<td bgcolor="#ffffff" style=""><code>%ICON{line_lr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_lrd.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_lrd.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph left-right-down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_lrd}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_lrd.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_lrd.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph left-right-down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_lrd}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_rd.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_rd.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>line_rd.gif</code></td>
<td bgcolor="#ffffff" style=""> Line graph right-down </td>
<td bgcolor="#ffffff" style=""><code>%ICON{line_rd}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_ud.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_ud.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph up-down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_ud}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_ud.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_ud.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph up-down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_ud}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_udl.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_udl.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>line_udl.gif</code></td>
<td bgcolor="#ffffff" style=""> Line graph up-down-left </td>
<td bgcolor="#ffffff" style=""><code>%ICON{line_udl}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_udlr.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_udlr.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph up-down-left-right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_udlr}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_udlr.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_udlr.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph up-down-left-right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_udlr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_udr.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_udr.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>line_udr.gif</code></td>
<td bgcolor="#ffffff" style=""> Line graph up-down-right </td>
<td bgcolor="#ffffff" style=""><code>%ICON{line_udr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_ul.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_ul.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph up-left </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_ul}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_ul.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_ul.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph up-left </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_ul}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_ulr.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_ulr.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>line_ulr.gif</code></td>
<td bgcolor="#ffffff" style=""> Line graph up-left-right </td>
<td bgcolor="#ffffff" style=""><code>%ICON{line_ulr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/line_ur.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>line_ur.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Line graph up-right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{line_ur}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/line_ur.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>line_ur.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Line graph up-right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{line_ur}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_ld.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_ld.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_ld.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph left-down </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_ld}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_lr.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dot_lr.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dot graph left-right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dot_lr}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_lr.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>dot_lr.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dot graph left-right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dot_lr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_lrd.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_lrd.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_lrd.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph left-right-down </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_lrd}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_rd.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dot_rd.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dot graph right-down </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dot_rd}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_rd.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>dot_rd.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dot graph right-down </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dot_rd}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_ud.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_ud.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_ud.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph up-down </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_ud}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_udl.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dot_udl.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dot graph up-down-left </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dot_udl}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_udl.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>dot_udl.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dot graph up-down-left </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dot_udl}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_udlr.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_udlr.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_udlr.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph up-down-left-right </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_udlr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_udr.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dot_udr.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dot graph up-down-right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dot_udr}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_udr.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>dot_udr.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dot graph up-down-right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dot_udr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_ul.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_ul.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_ul.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph up-left </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_ul}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_ulr.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dot_ulr.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dot graph up-left-right </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dot_ulr}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_ulr.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>dot_ulr.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dot graph up-left-right </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dot_ulr}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/dot_ur.gif" title="" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/dot_ur.gif" title="" /></td>
<td bgcolor="#ffffff" style=""><code>dot_ur.gif</code></td>
<td bgcolor="#ffffff" style=""> Dot graph up-right </td>
<td bgcolor="#ffffff" style=""><code>%ICON{dot_ur}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="" src="http://www.dementia.org/twiki//view/empty.gif" title="" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>empty.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Empty transparent 16x16 spacer </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{empty}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="" src="http://www.dementia.org/twiki//view/empty.gif" title="" /></td>
+ <td bgcolor="#ffffff" style=""><code>empty.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Empty transparent 16x16 spacer </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{empty}%</code></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=9;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Name</font></a></th>
+ <th align="left" bgcolor="#6b7f93" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="as" src="http://www.dementia.org/twiki//view/as.gif" title="as" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>as.gif</code></td>
- <td bgcolor="#eaeaea" style=""> ActionScript </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{as}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="as" src="http://www.dementia.org/twiki//view/as.gif" title="as" /></td>
+ <td bgcolor="#ffffff" style=""><code>as.gif</code></td>
+ <td bgcolor="#ffffff" style=""> ActionScript </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{as}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="bat" src="http://www.dementia.org/twiki//view/bat.gif" title="bat" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="bat" src="http://www.dementia.org/twiki//view/bat.gif" title="bat" /></td>
<td bgcolor="#ffffff" style=""><code>bat.gif</code></td>
<td bgcolor="#ffffff" style=""> MS-DOS batch file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{bat}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="bmp" src="http://www.dementia.org/twiki//view/bmp.gif" title="bmp" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>bmp.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Bitmap </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{bmp}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="bmp" src="http://www.dementia.org/twiki//view/bmp.gif" title="bmp" /></td>
+ <td bgcolor="#ffffff" style=""><code>bmp.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Bitmap </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{bmp}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="c" src="http://www.dementia.org/twiki//view/c.gif" title="c" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="c" src="http://www.dementia.org/twiki//view/c.gif" title="c" /></td>
<td bgcolor="#ffffff" style=""><code>c.gif</code></td>
<td bgcolor="#ffffff" style=""> C source code file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{c}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="dll" src="http://www.dementia.org/twiki//view/dll.gif" title="dll" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>dll.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Dynamic Linked Library; Microsoft application file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{dll}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="dll" src="http://www.dementia.org/twiki//view/dll.gif" title="dll" /></td>
+ <td bgcolor="#ffffff" style=""><code>dll.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Dynamic Linked Library; Microsoft application file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{dll}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="doc" src="http://www.dementia.org/twiki//view/doc.gif" title="doc" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="doc" src="http://www.dementia.org/twiki//view/doc.gif" title="doc" /></td>
<td bgcolor="#ffffff" style=""><code>doc.gif</code></td>
<td bgcolor="#ffffff" style=""> Microsoft Word file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{doc}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="else" src="http://www.dementia.org/twiki//view/else.gif" title="else" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>else.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Unknown file format </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{else}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="else" src="http://www.dementia.org/twiki//view/else.gif" title="else" /></td>
+ <td bgcolor="#ffffff" style=""><code>else.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Unknown file format </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{else}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="eml" src="http://www.dementia.org/twiki//view/eml.gif" title="eml" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="eml" src="http://www.dementia.org/twiki//view/eml.gif" title="eml" /></td>
<td bgcolor="#ffffff" style=""><code>eml.gif</code></td>
<td bgcolor="#ffffff" style=""> Microsoft Outlook e-mail file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{eml}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="exe" src="http://www.dementia.org/twiki//view/exe.gif" title="exe" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>exe.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Microsoft Executable file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{exe}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="exe" src="http://www.dementia.org/twiki//view/exe.gif" title="exe" /></td>
+ <td bgcolor="#ffffff" style=""><code>exe.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Microsoft Executable file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{exe}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="fla" src="http://www.dementia.org/twiki//view/fla.gif" title="fla" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="fla" src="http://www.dementia.org/twiki//view/fla.gif" title="fla" /></td>
<td bgcolor="#ffffff" style=""><code>fla.gif</code></td>
<td bgcolor="#ffffff" style=""> Macromedia Flash Movie </td>
<td bgcolor="#ffffff" style=""><code>%ICON{fla}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="fon" src="http://www.dementia.org/twiki//view/fon.gif" title="fon" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>fon.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Windows bitmapped font file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{fon}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="fon" src="http://www.dementia.org/twiki//view/fon.gif" title="fon" /></td>
+ <td bgcolor="#ffffff" style=""><code>fon.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Windows bitmapped font file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{fon}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="gif" src="http://www.dementia.org/twiki//view/gif.gif" title="gif" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="gif" src="http://www.dementia.org/twiki//view/gif.gif" title="gif" /></td>
<td bgcolor="#ffffff" style=""><code>gif.gif</code></td>
<td bgcolor="#ffffff" style=""> GIF </td>
<td bgcolor="#ffffff" style=""><code>%ICON{gif}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="h" src="http://www.dementia.org/twiki//view/h.gif" title="h" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>h.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Header file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{h}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="h" src="http://www.dementia.org/twiki//view/h.gif" title="h" /></td>
+ <td bgcolor="#ffffff" style=""><code>h.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Header file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{h}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="hlp" src="http://www.dementia.org/twiki//view/hlp.gif" title="hlp" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="hlp" src="http://www.dementia.org/twiki//view/hlp.gif" title="hlp" /></td>
<td bgcolor="#ffffff" style=""><code>hlp.gif</code></td>
<td bgcolor="#ffffff" style=""> Standard help file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{hlp}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="html" src="http://www.dementia.org/twiki//view/html.gif" title="html" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>html.gif</code></td>
- <td bgcolor="#eaeaea" style=""> HTML </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{html}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="html" src="http://www.dementia.org/twiki//view/html.gif" title="html" /></td>
+ <td bgcolor="#ffffff" style=""><code>html.gif</code></td>
+ <td bgcolor="#ffffff" style=""> HTML </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{html}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="java" src="http://www.dementia.org/twiki//view/java.gif" title="java" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="java" src="http://www.dementia.org/twiki//view/java.gif" title="java" /></td>
<td bgcolor="#ffffff" style=""><code>java.gif</code></td>
<td bgcolor="#ffffff" style=""> Java source code file </td>
<td bgcolor="#ffffff" style=""><code>%ICON{java}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="jpg" src="http://www.dementia.org/twiki//view/jpg.gif" title="jpg" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>jpg.gif</code></td>
- <td bgcolor="#eaeaea" style=""> JPEG </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{jpg}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="jpg" src="http://www.dementia.org/twiki//view/jpg.gif" title="jpg" /></td>
+ <td bgcolor="#ffffff" style=""><code>jpg.gif</code></td>
+ <td bgcolor="#ffffff" style=""> JPEG </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{jpg}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="js" src="http://www.dementia.org/twiki//view/js.gif" title="js" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="js" src="http://www.dementia.org/twiki//view/js.gif" title="js" /></td>
<td bgcolor="#ffffff" style=""><code>js.gif</code></td>
<td bgcolor="#ffffff" style=""> JavaScript </td>
<td bgcolor="#ffffff" style=""><code>%ICON{js}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="mdb" src="http://www.dementia.org/twiki//view/mdb.gif" title="mdb" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>mdb.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Microsoft Access database File </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{mdb}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="mdb" src="http://www.dementia.org/twiki//view/mdb.gif" title="mdb" /></td>
+ <td bgcolor="#ffffff" style=""><code>mdb.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Microsoft Access database File </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{mdb}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="mov" src="http://www.dementia.org/twiki//view/mov.gif" title="mov" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="mov" src="http://www.dementia.org/twiki//view/mov.gif" title="mov" /></td>
<td bgcolor="#ffffff" style=""><code>mov.gif</code></td>
<td bgcolor="#ffffff" style=""> Quicktime movie </td>
<td bgcolor="#ffffff" style=""><code>%ICON{mov}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="mp3" src="http://www.dementia.org/twiki//view/mp3.gif" title="mp3" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>mp3.gif</code></td>
- <td bgcolor="#eaeaea" style=""> MP3 </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{mp3}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="mp3" src="http://www.dementia.org/twiki//view/mp3.gif" title="mp3" /></td>
+ <td bgcolor="#ffffff" style=""><code>mp3.gif</code></td>
+ <td bgcolor="#ffffff" style=""> MP3 </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{mp3}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="pdf" src="http://www.dementia.org/twiki//view/pdf.gif" title="pdf" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="pdf" src="http://www.dementia.org/twiki//view/pdf.gif" title="pdf" /></td>
<td bgcolor="#ffffff" style=""><code>pdf.gif</code></td>
<td bgcolor="#ffffff" style=""> PDF </td>
<td bgcolor="#ffffff" style=""><code>%ICON{pdf}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="pl" src="http://www.dementia.org/twiki//view/pl.gif" title="pl" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>pl.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Perl source code file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{pl}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="pl" src="http://www.dementia.org/twiki//view/pl.gif" title="pl" /></td>
+ <td bgcolor="#ffffff" style=""><code>pl.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Perl source code file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{pl}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="png" src="http://www.dementia.org/twiki//view/png.gif" title="png" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="png" src="http://www.dementia.org/twiki//view/png.gif" title="png" /></td>
<td bgcolor="#ffffff" style=""><code>png.gif</code></td>
<td bgcolor="#ffffff" style=""> PNG </td>
<td bgcolor="#ffffff" style=""><code>%ICON{png}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="ppt" src="http://www.dementia.org/twiki//view/ppt.gif" title="ppt" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>ppt.gif</code></td>
- <td bgcolor="#eaeaea" style=""> PowerPoint </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{ppt}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="ppt" src="http://www.dementia.org/twiki//view/ppt.gif" title="ppt" /></td>
+ <td bgcolor="#ffffff" style=""><code>ppt.gif</code></td>
+ <td bgcolor="#ffffff" style=""> PowerPoint </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{ppt}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="ps" src="http://www.dementia.org/twiki//view/ps.gif" title="ps" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="ps" src="http://www.dementia.org/twiki//view/ps.gif" title="ps" /></td>
<td bgcolor="#ffffff" style=""><code>ps.gif</code></td>
<td bgcolor="#ffffff" style=""> Postscript </td>
<td bgcolor="#ffffff" style=""><code>%ICON{ps}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="py" src="http://www.dementia.org/twiki//view/py.gif" title="py" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>py.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Python source code file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{py}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="py" src="http://www.dementia.org/twiki//view/py.gif" title="py" /></td>
+ <td bgcolor="#ffffff" style=""><code>py.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Python source code file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{py}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="ram" src="http://www.dementia.org/twiki//view/ram.gif" title="ram" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="ram" src="http://www.dementia.org/twiki//view/ram.gif" title="ram" /></td>
<td bgcolor="#ffffff" style=""><code>ram.gif</code></td>
<td bgcolor="#ffffff" style=""> RealAudio </td>
<td bgcolor="#ffffff" style=""><code>%ICON{ram}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="reg" src="http://www.dementia.org/twiki//view/reg.gif" title="reg" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>reg.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Registry file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{reg}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="reg" src="http://www.dementia.org/twiki//view/reg.gif" title="reg" /></td>
+ <td bgcolor="#ffffff" style=""><code>reg.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Registry file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{reg}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="sh" src="http://www.dementia.org/twiki//view/sh.gif" title="sh" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="sh" src="http://www.dementia.org/twiki//view/sh.gif" title="sh" /></td>
<td bgcolor="#ffffff" style=""><code>sh.gif</code></td>
<td bgcolor="#ffffff" style=""> Unix shell script </td>
<td bgcolor="#ffffff" style=""><code>%ICON{sh}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="sniff" src="http://www.dementia.org/twiki//view/sniff.gif" title="sniff" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>sniff.gif</code></td>
- <td bgcolor="#eaeaea" style=""> sniff </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{sniff}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="sniff" src="http://www.dementia.org/twiki//view/sniff.gif" title="sniff" /></td>
+ <td bgcolor="#ffffff" style=""><code>sniff.gif</code></td>
+ <td bgcolor="#ffffff" style=""> sniff </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{sniff}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="swf" src="http://www.dementia.org/twiki//view/swf.gif" title="swf" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="swf" src="http://www.dementia.org/twiki//view/swf.gif" title="swf" /></td>
<td bgcolor="#ffffff" style=""><code>swf.gif</code></td>
<td bgcolor="#ffffff" style=""> SWF (Shockwave Flash) </td>
<td bgcolor="#ffffff" style=""><code>%ICON{swf}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="ttf" src="http://www.dementia.org/twiki//view/ttf.gif" title="ttf" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>ttf.gif</code></td>
- <td bgcolor="#eaeaea" style=""> True Type font </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{ttf}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="ttf" src="http://www.dementia.org/twiki//view/ttf.gif" title="ttf" /></td>
+ <td bgcolor="#ffffff" style=""><code>ttf.gif</code></td>
+ <td bgcolor="#ffffff" style=""> True Type font </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{ttf}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="txt" src="http://www.dementia.org/twiki//view/txt.gif" title="txt" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="txt" src="http://www.dementia.org/twiki//view/txt.gif" title="txt" /></td>
<td bgcolor="#ffffff" style=""><code>txt.gif</code></td>
<td bgcolor="#ffffff" style=""> Text </td>
<td bgcolor="#ffffff" style=""><code>%ICON{txt}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="wav" src="http://www.dementia.org/twiki//view/wav.gif" title="wav" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>wav.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Waveform sound file </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{wav}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="wav" src="http://www.dementia.org/twiki//view/wav.gif" title="wav" /></td>
+ <td bgcolor="#ffffff" style=""><code>wav.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Waveform sound file </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{wav}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="wri" src="http://www.dementia.org/twiki//view/wri.gif" title="wri" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="wri" src="http://www.dementia.org/twiki//view/wri.gif" title="wri" /></td>
<td bgcolor="#ffffff" style=""><code>wri.gif</code></td>
<td bgcolor="#ffffff" style=""> Windows Write </td>
<td bgcolor="#ffffff" style=""><code>%ICON{wri}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="xls" src="http://www.dementia.org/twiki//view/xls.gif" title="xls" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>xls.gif</code></td>
- <td bgcolor="#eaeaea" style=""> Microsoft Excel Spreadsheet </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{xls}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="xls" src="http://www.dementia.org/twiki//view/xls.gif" title="xls" /></td>
+ <td bgcolor="#ffffff" style=""><code>xls.gif</code></td>
+ <td bgcolor="#ffffff" style=""> Microsoft Excel Spreadsheet </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{xls}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="xml" src="http://www.dementia.org/twiki//view/xml.gif" title="xml" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="xml" src="http://www.dementia.org/twiki//view/xml.gif" title="xml" /></td>
<td bgcolor="#ffffff" style=""><code>xml.gif</code></td>
<td bgcolor="#ffffff" style=""> XML </td>
<td bgcolor="#ffffff" style=""><code>%ICON{xml}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="xsl" src="http://www.dementia.org/twiki//view/xsl.gif" title="xsl" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>xsl.gif</code></td>
- <td bgcolor="#eaeaea" style=""> XSL (XML style sheet) </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{xsl}%</code></td>
+ <td bgcolor="#ffffff" style=""><img alt="xsl" src="http://www.dementia.org/twiki//view/xsl.gif" title="xsl" /></td>
+ <td bgcolor="#ffffff" style=""><code>xsl.gif</code></td>
+ <td bgcolor="#ffffff" style=""> XSL (XML style sheet) </td>
+ <td bgcolor="#ffffff" style=""><code>%ICON{xsl}%</code></td>
</tr>
<tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="zip" src="http://www.dementia.org/twiki//view/zip.gif" title="zip" /> </strong> </font></span></th>
+ <td bgcolor="#ffffff" style=""><img alt="zip" src="http://www.dementia.org/twiki//view/zip.gif" title="zip" /></td>
<td bgcolor="#ffffff" style=""><code>zip.gif</code></td>
<td bgcolor="#ffffff" style=""> Compressed Zip archive </td>
<td bgcolor="#ffffff" style=""><code>%ICON{zip}%</code></td>
</tr>
</table>
-### <a name="TWiki icons"></a><a name=" TWiki icons"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/twiki.gif" width="16" height="16" alt="twiki" /> TWiki icons
+## <a name="Usage (extended)"></a> Usage (extended)
-<table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
- <tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=0;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff"> </font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=1;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">File Name</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=2;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Description</font></a></th>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><a href="http://localhost?sortcol=3;table=10;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Write...</font></a></th>
- </tr>
- <tr>
- <th align="left" bgcolor="#ffffff" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> <img alt="TWiki" src="http://www.dementia.org/twiki//view/twiki.gif" title="TWiki" /> </strong> </font></span></th>
- <td bgcolor="#eaeaea" style=""><code>twiki.gif</code></td>
- <td bgcolor="#eaeaea" style=""> TWiki logo </td>
- <td bgcolor="#eaeaea" style=""><code>%ICON{twiki}%</code></td>
- </tr>
-</table>
+There are several other ways to put an image in a topic.
+
+Shorthand notation:
+
+> In
+>
+> [[Main.TWikiPreferences|Main/TWikiPreferences]]
+>
+> set a variable to an ICON, for example:
+>
+> ` * Set H = %ICON{help}%`
+>
+> Now you can use the icon by writing `%H%`
+>
+> For extended use, check out TWiki:Plugins.SmiliesPlugin that uses a different short hand than `%VARIABLES%`.
+
+Full path:
+
+> In any topic, write
+>
+> `%PUBURL%/%TWIKIWEB%/TWikiDocGraphics/help.gif`
+>
+> to show
+>
+> ![help.gif](http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/help.gif)
+>
+> You are not restricted to use the TWikiDocGraphics topic - in a similar way you can show attached images by replacing `TWikiDocGraphics` with the topic name.
+
+To create an image with a link, write:
+
+> `[[WebHome][%ICON{home}% Home]]`
+>
+> to get:
+>
+> [[ Home|Main/WebHome]]
+>
+> To get rid of the underline under the space, write: %BR% `[[WebHome][%ICON{home}%]] [[WebHome][Home]]` to get: [[Main/WebHome]] [[Home|Main/WebHome]]
+
+To get the full URL of the icon, use [[ICONURL|Main/VarICONURL]]:
+
+> `%ICONURL{"toggleopen"}%`
+>
+> gets you the image path:
+>
+> `http://www.dementia.org/twiki//view/Main/WebHome/toggleopen.gif`
+>
+> %BR% and that will get rendered as:
+>
+> ![toggleopen.gif](http://www.dementia.org/twiki//view/Main/WebHome/toggleopen.gif)
+
+**_Related Topics:_** [[TWikiSkins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]]
+
+**_Contributors:_** Most icons on this page were originally designed by TWiki:Main.PeterThoeny. All icons were recreated by TWiki:Main.ArthurClemens, except for led-color icons, dot graph and line graph images.
----
----
+
+----
+
+----
<li><a href="#ObjectMethod *_UTF82SiteCharSet*"> ObjectMethod UTF82SiteCharSet <tt>($utf8) -> $ascii</tt></a></li>
<li><a href="#ObjectMethod *write_CompletePage"> ObjectMethod writeCompletePage <tt>($text,$pageType,$contentType)</tt></a></li>
<li><a href="#ObjectMethod *write_PageHeader*"> ObjectMethod writePageHeader <tt>($query,$pageType,$contentType,$contentLength)</tt></a></li>
- <li><a href="#ObjectMethod <strong>redirect</strong> ($url,.."> ObjectMethod redirect <tt>($url,...)</tt></a></li>
+ <li><a href="#ObjectMethod <strong>redirect</strong> ($url,$p"> ObjectMethod redirect <tt>($url,$passthrough)</tt></a></li>
+ <li><a href="#ObjectMethod <strong>cacheQuery</strong> () ->"> ObjectMethod cacheQuery <tt>() -> $queryString</tt></a></li>
<li><a href="#StaticMethod *is_ValidWikiWord*"> StaticMethod isValidWikiWord <tt>($name) -> $boolean</tt></a></li>
<li><a href="#StaticMethod *is_ValidTopicName*"> StaticMethod isValidTopicName <tt>($name) -> $boolean</tt></a></li>
<li><a href="#StaticMethod <strong>is_ValidAbbrev</strong> ($"> StaticMethod isValidAbbrev <tt>($name) -> $boolean</tt></a></li>
<li><a href="#ObjectMethod *map_ToIconFileName"> ObjectMethod mapToIconFileName <tt>($fileName,$default) -> $fileName</tt></a></li>
<li><a href="#ObjectMethod <strong>get_OopsUrl</strong> ($tem"> ObjectMethod getOopsUrl <tt>($template,@options) -> $absoluteOopsURL</tt></a></li>
<li><a href="#ObjectMethod *normalize_WebTopic"> ObjectMethod normalizeWebTopicName <tt>($theWeb,$theTopic) -> ($theWeb,$theTopic)</tt></a></li>
- <li><a href="#ClassMethod <strong>new</strong> ($remoteUser,$"> ClassMethod new <tt>($remoteUser,$query)</tt></a></li>
+ <li><a href="#ClassMethod <strong>new</strong> ($loginName,$q"> ClassMethod new <tt>($loginName,$query,\%initialContext)</tt></a></li>
<li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
<li><a href="#ObjectMethod <strong>writeLog</strong> ($action"> ObjectMethod writeLog <tt>($action,$webTopic,$extra,$user)</tt></a></li>
<li><a href="#ObjectMethod <strong>writeWarning</strong> ($te"> ObjectMethod writeWarning <tt>($text)</tt></a></li>
<li><a href="#ObjectMethod <strong>writeDebug</strong> ($text"> ObjectMethod writeDebug <tt>($text)</tt></a></li>
<li><a href="#StaticMethod *apply_PatternToInc"> StaticMethod applyPatternToIncludedText <tt>($text,$pattern) -> $text</tt></a></li>
<li><a href="#ObjectMethod <strong>inlineAlert</strong> ($tem"> ObjectMethod inlineAlert <tt>($template,$def,...) -> $string</tt></a></li>
+ <li><a href="#StaticMethod <strong>parseSections</strong> ($t"> StaticMethod parseSections <tt>($text) -> ($string,$sectionlistref)</tt></a></li>
<li><a href="#ObjectMethod *expand_VariablesOn"> ObjectMethod expandVariablesOnTopicCreation <tt>($text,$user) -> $text</tt></a></li>
<li><a href="#StaticMethod <strong>entityEncode</strong> ($te"> StaticMethod entityEncode <tt>($text,$extras) -> $encodedText</tt></a></li>
<li><a href="#StaticMethod <strong>entityDecode</strong> ($en"> StaticMethod entityDecode <tt>($encodedText) -> $text</tt></a></li>
<li><a href="#ObjectMethod <strong>enterContext</strong> ($id"> ObjectMethod enterContext <tt>($id,$val)</tt></a></li>
<li><a href="#ObjectMethod <strong>leaveContext</strong> ($id"> ObjectMethod leaveContext <tt>($id)</tt></a></li>
<li><a href="#ObjectMethod <strong>inContext</strong> ($id)"> ObjectMethod inContext <tt>($id)</tt></a></li>
- <li><a href="#StaticMethod *register_TagHandle"> StaticMethod registerTagHandler <tt>($tag,$fnref)</tt></a><ul>
- <li><a href="#registerRESTHandler( $subject, $"> registerRESTHandler( $subject, $verb, \&fn )</a></li>
- <li><a href="#restDispatch( $subject, $verb) ="> restDispatch( $subject, $verb) => \&fn</a></li>
- </ul>
- </li>
+ <li><a href="#StaticMethod *register_TagHandle"> StaticMethod registerTagHandler <tt>($tag,$fnref)</tt></a></li>
+ <li><a href="#StaticMethod *registerRESTHandle"> StaticMethod registerRESTHandler <tt>($subject,$verb,\&fn)</tt></a></li>
+ <li><a href="#StaticMethod <strong>restDispatch</strong> ($su"> StaticMethod restDispatch <tt>($subject,$verb)=>\&fn</tt></a></li>
<li><a href="#ObjectMethod *handle_CommonTags*"> ObjectMethod handleCommonTags <tt>($text,$web,$topic) -> $text</tt></a></li>
<li><a href="#ObjectMethod <strong>add_ToHEAD</strong> ($id,$"> ObjectMethod addToHEAD <tt>($id,$html)</tt></a></li>
<li><a href="#StaticMethod <strong>initialize</strong> ($path"> StaticMethod initialize <tt>($pathInfo,$remoteUser,$topic,$url,$query) -> ($topicName,$webName,$scriptUrlPath,$userName,$dataDir)</tt></a></li>
<li><a href="#StaticMethod <strong>readFile</strong> ($filena"> StaticMethod readFile <tt>($filename) -> $text</tt></a></li>
+ <li><a href="#StaticMethod *expand_StandardEsc"> StaticMethod expandStandardEscapes <tt>($str) -> $unescapedStr</tt></a></li>
</ul>
</li>
</ul>
## <a name="ObjectMethod <strong>write_CompletePage"></a> [[ObjectMethod]] \*writeCompletePage `($text,$pageType,$contentType)`
-Write a complete HTML page with basic header to the browser. $text is the HTML of the page body (<html> to </html>)
+Write a complete HTML page with basic header to the browser.
-This method removes noautolink and nop tags before outputting the page.
+- `$text` is the text of the page body (<html> to </html> if it's HTML)
+- `$pageType` - May be "edit", which will cause headers to be generated that force caching for 24 hours, to prevent [[BackFromPreviewLosesText]] bug, which caused data loss with IE5 and IE6.
+- `$contentType` - page content type | text/html
+
+This method removes noautolink and nop tags before outputting the page unless $contentType is text/plain.
## <a name="ObjectMethod <strong>write_PageHeader*"></a><a name="ObjectMethod *write_PageHeader</strong> "></a> [[ObjectMethod]] **writePageHeader** `($query,$pageType,$contentType,$contentLength)`
Implements the post-Dec2001 release plugin API, which requires the writeHeaderHandler in plugin to return a string of HTTP headers, CR/LF delimited. Filters any illegal headers. Plugin headers will override core settings.
-## <a name="ObjectMethod <strong>redirect</strong> ($url,.."></a> [[ObjectMethod]] **redirect** `($url,...)`
+## <a name="ObjectMethod <strong>redirect</strong> ($url,$p"></a> [[ObjectMethod]] **redirect** `($url,$passthrough)`
+
+Redirects the request to `$url`, **unless**
+
+1. It is overridden by a plugin declaring a `redirectCgiQueryHandler`.
+2. `$session->{cgiQuery}` is `undef` or
+3. $query->param('noredirect') is set to a true value.
+
+Thus a redirect is only generated when in a CGI context.
+
+Normally this method will ignore parameters to the current query. If $passthrough is set, then it will pass all parameters that were passed to the current query on to the redirect target. If the request\_method was GET, then all parameters can be passed in the URL. If the request\_method was POST then it caches the form data and passes over a cache reference in the redirect GET.
+
+Passthrough is only meaningful if the redirect target is on the same server.
-Generate a CGI redirect to $url unless (1) $session->\{cgiQuery\} is undef or (2) $query->param('noredirect') is set to a true value. Thus a redirect is only generated when in a CGI context.
+## <a name="ObjectMethod <strong>cacheQuery</strong> () - $"></a> [[ObjectMethod]] **cacheQuery** `() -> $queryString`
-The ... parameters are concatenated to the message written when printing to STDOUT, and are ignored for a redirect.
+Caches the current query in the params cache, and returns a rewritten query string for the cache to be picked up again on the other side of a redirect.
-Redirects the request to $url, via the CGI module object $query unless overridden by a plugin declaring a `redirectCgiQueryHandler`.
+We can't encode post params into a redirect, because they may exceed the size of the GET request. So we cache the params, and reload them when the redirect target is reached.
## <a name="StaticMethod <strong>is_ValidWikiWord*"></a><a name="StaticMethod *is_ValidWikiWord</strong> "></a> [[StaticMethod]] **isValidWikiWord** `($name) -> $boolean`
Returns the URL to a TWiki script, providing the web and topic as "path info" parameters. The result looks something like this: "http://host/twiki/bin/$script/$web/$topic".
-- `...` - an arbitrary number of name,value parameter pairs that will be url-encoded and added to the url. The special parameter name '#' is reserved for specifying an anchor. e.g. `getScriptUrl('x','y','view','#'=>'XXX',a=>1,b=>2)` will give `.../view/x/y#XXX?a=1&b=2`
+- `...` - an arbitrary number of name,value parameter pairs that will be url-encoded and added to the url. The special parameter name '#' is reserved for specifying an anchor. e.g. `getScriptUrl('x','y','view','#'=>'XXX',a=>1,b=>2)` will give `.../view/x/y?a=1&b=2#XXX`
If $absolute is set, generates an absolute URL. $absolute is advisory only; TWiki can decide to generate absolute URLs (for example when run from the command-line) even when relative URLs have been requested.
The returned URL ends up looking something like this: "http://host/twiki/bin/oops/$web/$topic?template=$template&param1=$scriptParams[0]..."
+Note: if \{keep\} is true in the params, then they will also be pushed into the current query.
+
## <a name="ObjectMethod <strong>normalize_WebTopic"></a> [[ObjectMethod]] \*normalizeWebTopicName `($theWeb,$theTopic) -> ($theWeb,$theTopic)`
Normalize a Web.TopicName
- Input: Return:
- ( 'Web', 'Topic' ) ( 'Web', 'Topic' )
- ( '', 'Topic' ) ( 'Main', 'Topic' )
- ( '', '' ) ( 'Main', 'WebHome' )
- ( '', 'Web/Topic' ) ( 'Web', 'Topic' )
- ( '', 'Web.Topic' ) ( 'Web', 'Topic' )
- ( 'Web1', 'Web2.Topic' ) ( 'Web2', 'Topic' )
- ( 'Main', 'Web2.Topic' ) ( 'Main', 'Topic' )
- ( 'TWiki', 'Web2.Topic' ) ( 'TWiki', 'Topic' )
-
-Note: Function renamed from getWebTopic
+See [[TWikiFuncDotPm]] for a full specification of the expansion (not duplicated here)
-SMELL: WARNING: this function defaults the web and topic names. Be very careful where you use it!
+**WARNING** if there is no web specification (in the web or topic parameters) the web defaults to $TWiki::cfg\{UsersWebName\}. If there is no topic specification, or the topic is '0', the topic defaults to the web home topic name.
-## <a name="ClassMethod <strong>new</strong> ($remoteUser,$"></a> [[ClassMethod]] **new** `($remoteUser,$query)`
+## <a name="ClassMethod <strong>new</strong> ($loginName,$q"></a> [[ClassMethod]] **new** `($loginName,$query,\%initialContext)`
Constructs a new TWiki object. Parameters are taken from the query object.
-- `$remoteUser` the logged-in user (login name)
-- `$query` the query
+- `$loginName` is the username of the user you want to be logged-in if none is available from a session or browser. Used mainly for side scripts and debugging.
+- `$query` the CGI query (may be undef, in which case an empty query is used)
+- `\%initialContext` - reference to a hash containing context name=value pairs to be pre-installed in the context hash
## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
Format an error for inline inclusion in rendered output. The message string is obtained from the template 'oops'.$template, and the DEF $def is selected. The parameters (...) are used to populate %PARAM1%..%PARAMn%
+## <a name="StaticMethod <strong>parseSections</strong> ($t"></a> [[StaticMethod]] **parseSections** `($text) -> ($string,$sectionlistref)`
+
+Generic parser for sections within a topic. Sections are delimited by STARTSECTION and ENDSECTION, which may be nested, overlapped or otherwise abused. The parser builds an array of sections, which is ordered by the order of the STARTSECTION within the topic. It also removes all the SECTION tags from the text, and returns the text and the array of sections.
+
+Each section is a `TWiki::Attrs` object, which contains the attributes \{type, name, start, end\} where start and end are character offsets in the string **after all section tags have been removed**. All sections are required to be uniquely named; if a section is unnamed, it will be given a generated name. Sections may overlap or nest.
+
+See test/unit/Fn\_SECTION.pm for detailed testcases that round out the spec.
+
## <a name="ObjectMethod <strong>expand_VariablesOn"></a> [[ObjectMethod]] \*expandVariablesOnTopicCreation `($text,$user) -> $text`
- `$text` - text to expand
- `$tag` name of the tag e.g. MYTAG
- `$fnref` Function to execute. Will be passed ($session, \\%params, $web, $topic )
-### <a name="registerRESTHandler( $subject, $"></a> registerRESTHandler( $subject, $verb, \\&fn )
+## <a name="StaticMethod <strong>registerRESTHandle"></a> [[StaticMethod]] \*registerRESTHandler `($subject,$verb,\&fn)`
Adds a function to the dispatch table of the REST interface for a given subject. See [[TWikiScripts#rest]] for more info.
**Since:** TWiki::Plugins::VERSION 1.1
-### <a name="restDispatch( $subject, $verb) ="></a> restDispatch( $subject, $verb) => \\&fn
+## <a name="StaticMethod <strong>restDispatch</strong> ($su"></a> [[StaticMethod]] **restDispatch** `($subject,$verb)=>\&fn`
Returns the handler function associated to the given $subject and $werb, or undef if none is found.
Returns the entire contents of the given file, which can be specified in any format acceptable to the Perl open() function. Fast, but inherently unsafe.
WARNING: Never, ever use this for accessing topics or attachments! Use the Store API for that. This is for global control files only, and should be used **only** if there is **absolutely no alternative**.
+
+## <a name="StaticMethod <strong>expand_StandardEsc"></a> [[StaticMethod]] \*expandStandardEscapes `($str) -> $unescapedStr`
+
+Expands standard escapes used in parameter values to block evaluation. The following escapes are handled:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Escape: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Expands To: </strong></th>
+ </tr>
+ <tr>
+ <td><code>$n</code> or <code>$n()</code></td>
+ <td> New line. Use <code>$n()</code> if followed by alphanumeric character, e.g. write <code>Foo$n()Bar</code> instead of <code>Foo$nBar</code></td>
+ </tr>
+ <tr>
+ <td><code>$nop</code> or <code>$nop()</code></td>
+ <td> Is a "no operation". </td>
+ </tr>
+ <tr>
+ <td><code>$quot</code></td>
+ <td> Double quote (<code>"</code>) </td>
+ </tr>
+ <tr>
+ <td><code>$percnt</code></td>
+ <td> Percent sign (<code>%</code>) </td>
+ </tr>
+ <tr>
+ <td><code>$dollar</code></td>
+ <td> Dollar sign (<code>$</code>) </td>
+ </tr>
+</table>
-## <a name="TWiki Editing Shorthand'"></a> TWiki Editing Shorthand'
+## <a name="TWiki Editing Shorthand"></a> TWiki Editing Shorthand
<table bgcolor="#ffffff" border="1" cellpadding="3">
<tr bgcolor="#ffffff">
<li><code>|^|</code> cell with caret indicating follow-up row of multi-span rows </li>
<li> You can split rows over multiple lines by putting a backslash <code>'\'</code> at the end of each line </li>
<li> Contents of table cells wrap automatically as determined by the browser </li>
+ <li> Use <code>&#124;</code> or <code>%VBAR%</code> to add <code>|</code> characters in tables. </li>
</ul> %T% The [[TWiki/TablePlugin]] provides the <code>|^|</code> multiple-span row functionality and additional rendering features </td>
<td><pre>
| *L* | *C* | *R* |
# <a name="Frequently Asked Questions About"></a> Frequently Asked Questions About TWiki
-This is a real FAQ, and also a demo of an easily implemented knowledge-base solution. To see how it's done, [view the source of this topic](http://www.dementia.org/twiki//view/%WEB%/%TOPIC%?raw=on).
+This is a real FAQ, and also a demo of an easily implemented knowledge-base solution. To see how it's done, [[view the source of this topic|%WEB%/%TOPIC%?raw=on]].
# <a name="TWiki Installation Error"></a> TWiki Installation Error
%X% **_NOTE:_** These topics are for frequently asked questions **_including_** answers; please ask support questions in the TWiki:Support web. New FAQ topics are based on the [[TWikiFaqTemplate]].
-<form action="http://www.dementia.org/twiki//edit/%WEB%/"> New FAQ topic: (Use a name in [[Main/WikiNotation]]) <br /><input name="topic" size="32" type="text" /> <input name="onlywikiname" type="hidden" value="on" /> <input name="templatetopic" type="hidden" value="TWikiFaqTemplate" /> <input name="topicparent" type="hidden" value="%TOPIC%" /> <input type="submit" value="Create Topic" /></form>
+<form action="http://www.dementia.org/twiki/edit/%WEB%/"> New FAQ topic: (Use a name in [[Main/WikiNotation]]) <br /><input name="topic" size="32" type="text" /> <input name="onlywikiname" type="hidden" value="on" /> <input name="templatetopic" type="hidden" value="TWikiFaqTemplate" /> <input name="topicparent" type="hidden" value="%TOPIC%" /> <input type="submit" value="Create Topic" /></form>
## <a name="More sources..."></a> More sources...
<div>
<ul>
<li><a href="#Package =TWiki::Form="> Package TWiki::Form</a><ul>
- <li><a href="#ClassMethod <strong>new</strong> ($session,$web"> ClassMethod new <tt>($session,$web,$form)</tt></a></li>
+ <li><a href="#ClassMethod <strong>new</strong> ($session,$web"> ClassMethod new <tt>($session,$web,$form,$def)</tt></a></li>
<li><a href="#ObjectMethod <strong>render_ForEdit</strong> ($"> ObjectMethod renderForEdit <tt>($web,$topic,$meta) -> $html</tt></a></li>
<li><a href="#ObjectMethod *render_FieldForEdi"> ObjectMethod renderFieldForEdit <tt>($fieldDef,$web,$topic,$value) -> $html</tt></a></li>
<li><a href="#ObjectMethod <strong>renderHidden</strong> ($me"> ObjectMethod renderHidden <tt>($meta) -> $html</tt></a></li>
</ul>
</div>
-## <a name="ClassMethod <strong>new</strong> ($session,$web"></a> [[ClassMethod]] **new** `($session,$web,$form)`
+## <a name="ClassMethod <strong>new</strong> ($session,$web"></a> [[ClassMethod]] **new** `($session,$web,$form,$def)`
- $web - default web to recover form from, if $form doesn't specify a web
- `$form` - topic name to read form definition from
+- `$def` - optional. a reference to a list of field definitions. if present, these definitions will be used, rather than those in `$form`.
May throw TWiki::OopsException
Render a single form field for entry during an edit session, using data values from $meta. Plugins can provide a handler that extends the set of supported types
-SMELL: this should be a method on a field class SMELL: [[JSCalendarContrib]] ought to provide a 'date' handler.
+SMELL: this should be a method on a field class
## <a name="ObjectMethod <strong>renderHidden</strong> ($me"></a> [[ObjectMethod]] **renderHidden** `($meta) -> $html`
<ul>
<li><a href="#TWiki Forms"> TWiki Forms</a><ul>
<li><a href="#Overview"> Overview</a></li>
- <li><a href="#Defining a Form Template"> Defining a Form Template</a><ul>
- <li><a href="#Form Template Elements"> Form Template Elements</a></li>
- <li><a href="#Defining a Form"> Defining a Form</a></li>
- </ul>
- </li>
+ <li><a href="#Defining a Form"> Defining a Form</a></li>
<li><a href="#Enabling Forms by Web"> Enabling Forms by Web</a></li>
- <li><a href="#Add a form to a topic"> Add a form to a topic</a></li>
- <li><a href="#Build an HTML form to create new"> Build an HTML form to create new Form-based topics</a></li>
+ <li><a href="#Adding a form to a topic"> Adding a form to a topic</a></li>
<li><a href="#Changing a form"> Changing a form</a></li>
- <li><a href="#Searching for Form Data"> Searching for Form Data</a></li>
+ <li><a href="#Structure of a Form Template"> Structure of a Form Template</a><ul>
+ <li><a href="#Values in Other Topics"> Values in Other Topics</a></li>
+ </ul>
+ </li>
<li><a href="#Extending the range of form data"> Extending the range of form data types</a></li>
- <li><a href="#Gotcha!"> Gotcha!</a></li>
- <li><a href="#Importing Category Table Data"> Importing Category Table Data</a></li>
+ <li><a href="#Hints and Tips"> Hints and Tips</a><ul>
+ <li><a href="#Build an HTML form to create new"> Build an HTML form to create new Form-based topics</a></li>
+ <li><a href="#Searching for Form Data"> Searching for Form Data</a></li>
+ <li><a href="#Gotcha!"> Gotcha!</a></li>
+ </ul>
+ </li>
</ul>
</li>
</ul>
4. Build an HTML form to create new topics based on that template topic
5. Build a [[FormattedSearch]] to list topics that share the same form
-## <a name="Defining a Form Template"></a> Defining a Form Template
-
-A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table is one form field.
-
-### <a name="Form Template Elements"></a> Form Template Elements
-
-- **form template** - a set of fields defining a form
- - A web can use one or more form templates
-- **form** - additional meta data (besides the freeform TEXTAREA) attached to a topic
- - Within a form-enabled web, individual topics can have a form or no form
-- **form field** - a named item in a form (also known as a _key_)
-- **field type** - selects the field type: <table border="1" cellpadding="0" cellspacing="0">
- <tr>
- <th bgcolor="#99CCCC"><strong> Input type </strong></th>
- <th bgcolor="#99CCCC"><strong> Type field </strong></th>
- <th bgcolor="#99CCCC"><strong> Size field </strong></th>
- <th bgcolor="#99CCCC"><strong> Value field </strong></th>
- </tr>
- <tr>
- <td> One or more checkboxes </td>
- <td><code>checkbox</code></td>
- <td> number of items per line </td>
- <td> comma list of item labels </td>
- </tr>
- <tr>
- <td> One or more checkboxes, plus <strong>Set</strong> and <strong>Clear</strong> buttons </td>
- <td><code>checkbox+buttons</code></td>
- <td> (same) </td>
- <td> (same) </td>
- </tr>
- <tr>
- <td> One or more radio buttons (radio buttons are mutually exclusive; only one can be selected) </td>
- <td><code>radio</code></td>
- <td> (same) </td>
- <td> (same) </td>
- </tr>
- <tr>
- <td> Read-only label text </td>
- <td><code>label</code></td>
- <td><em>ignored</em></td>
- <td> text </td>
- </tr>
- <tr>
- <td> Drop-down menu or scrollable box </td>
- <td><code>select</code></td>
- <td><code>1</code> for drop down, <code>2</code> and up for scrollable box </td>
- <td> comma-separated list of options </td>
- </tr>
- <tr>
- <td> A one-line text field </td>
- <td><code>text</code></td>
- <td> text box width in number of characters </td>
- <td> initial text, if a new topic is created with a form template </td>
- </tr>
- <tr>
- <td> A text box </td>
- <td><code>textarea</code></td>
- <td> columns x rows, e.g. <code>80x6</code>; default size is 40x5 </td>
- <td> initial text, if a new topic is created with a form template </td>
- </tr>
-</table>
-- **field value** - one or more values from a fixed set (select, checkbox, radio type) or free-form (label, text, text area).
-
-### <a name="Defining a Form"></a> Defining a Form
+## <a name="Defining a Form"></a> Defining a Form
+
+A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
1. Create a new topic with your form name: <code>**YourForm**</code>, <code>**ExpenseReportForm**</code>, <code>**InfoCategoryForm**</code>, <code>**RecordReviewForm**</code>, whatever you need.
-2. Create a TWiki table, with each column head representing one element of an entry field: <code>**Name**</code>, <code>**Type**</code>, <code>**Size**</code>, <code>**Values**</code>, <code>**Tooltip message**</code>, and <code>**Attributes**</code> _(see sample below)_.
+2. Create a TWiki table, with each column representing one element of an entry field: <code>**Name**</code>, <code>**Type**</code>, <code>**Size**</code>, <code>**Values**</code>, <code>**Tooltip message**</code>, and <code>**Attributes**</code> _(see sample below)_.
3. For each field, fill in a new line; for the type of field, select from the list.
4. Save the topic _(you can later choose to [[enable/disable|Main/WebHome#EnablingForms]] individual forms)_.
-> **Example: WebForm**
+> **Example:**
>
> %BR%
>
> </tr>
> </table>
-You can also retrieve possible values for select, checkbox or radio types from other topics:
+See [[structure of a form|Main/WebHome#FormStructure]] for full details of what types are available and what all the columns mean.
+
+You can also retrieve possible values for `select`, `checkbox` or `radio` types from other topics:
-> **Example: WebForm**
+> **Example:**
>
> - In the WebForm topic, define the form: <br /><table border="1" cellpadding="0" cellspacing="0">
> <tr>
> </table>
> <br /> %X% Leave the <code>**Values**</code> field **blank**.
>
-> - Then in the TopicClassification topic, define the possible values: <br /><table border="1" cellpadding="0" cellspacing="0">
+> - Then in the TopicClassification topic, define the possible values: <br />`| *Name* |` %BR% `| NoDisclosure |` %BR% `| Public Supported |` %BR% `| Public FAQ |` %BR% <table border="1" cellpadding="0" cellspacing="0">
> <tr>
> <th bgcolor="#99CCCC"><strong> Name </strong></th>
-> <th bgcolor="#99CCCC"><strong> Type </strong></th>
-> <th bgcolor="#99CCCC"><strong> Tooltip message </strong></th>
> </tr>
> <tr>
> <td> NoDisclosure </td>
-> <td> option </td>
-> <td> blah blah... </td>
> </tr>
> <tr>
> <td> Public Supported </td>
-> <td> option </td>
-> <td> blah blah... </td>
> </tr>
> <tr>
> <td> Public FAQ </td>
-> <td> option </td>
-> <td> blah blah... </td>
> </tr>
> </table>
Field values can also be obtained as the result of a [[FormattedSearch]]. For example,
-> `%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nototal="on" nosummary="on" nosearch="on" regex="on" format="$web.$topic" separator=", " }%`
-
-when used in the value field of the form definition, will take the set of field values to be all topic names in the Main web which end in "Office".
+> `%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nonoise="on" type="regex" format="$web.$topic" separator=", " }%`
-**Notes:**
-
-- A very few field names are reserved. If you try to use one of these names, TWiki will automatically append an underscore to the name when the form is used.
-- The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For `label`, `text`, and `textarea` fields the value may also contain commas. `checkbox` fields cannot be initialized through the form template.
-- If a `label` field has no name (blank first column in the form definition) it will **not** be shown when the form is **viewed**, only when it is **edited**.
-- The topic definition is not read when a topic is viewed.
-- Field names can include any text, but you should stick to alphanumeric characters. If you want to use a non-wikiname for a `select`, `checkbox` or `radio` field, and want to get the values from another topic, you can use <code>**\[[...]]**</code> links. This notation can also be used when referencing another topic to obtain field values, but a name other than the topic name is required as the name of the field.
-- Field names have to be unique. If the same name is necessary (as when the field values for several fields are obtained from the same topic), an alternative name must be assigned using the <code>**\[[...]]**</code> notation.
-- The topic defining field values can also be generated through a [[FormattedSearch]], which must yield a suitable table as the result.
-- Form definition topics can be protected in the usual manner, using [[TWikiAccessControl]], to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is _not_ required to view a topic where the form has been used.
-- The <code>**Tooltip message**</code> column is used as a tooltip for the field name (only if field name is a [[WikiName]]) - you only see the tooltip in edit view.
-- The <code>**Attributes**</code> column is used to define special behavior for that form field (multiple attributes can be entered, with or without separators):
- - An attribute `H` indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
- - An attribute `M` indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an `oops` page. Mandatory fields are indicated by an asterisks next to the field name.
+when used in the value field of the form definition, this will find all topic names in the Main web which end in "Office" and use them as the legal field values.
<a name="EnablingForms"></a>
> - Set WEBFORMS = BugForm, FeatureForm, Books.BookLoanForm
- With <code>**WEBFORMS**</code> enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an **Add Form** button appears at the end of the topic. If a Form is present, a **Change** button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in `WEBFORMS`, or the **No form** option.
+- You have to list the available form topics explicitly. You cannot use a `SEARCH` to define `WEBFORMS`.
-## <a name="Add a form to a topic"></a> Add a form to a topic
+## <a name="Adding a form to a topic"></a> Adding a form to a topic
-- Edit a topic and follow the "Add form" button to add a Form to the topic. This is typically done to a [[template topic|Main/TWikiTemplates#TemplateTopic]], either to the `WebTopicEditTemplate` topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
+- Edit the topic and follow the "Add form" button to add a Form. This is typically done to a [[template topic|Main/TWikiTemplates#TemplateTopic]], either to the `WebTopicEditTemplate` topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
- Additionally a new topic can be given a Form using the `formtemplate` parameter in the (edit or save) URL. Initial values can then be provided in the URLs or as form values:
- other than checkboxes: <code>**name**</code>, ex: <code>**?BugPriority=1**</code>
<form name="newtopic" action="%SCRIPTURLPATH{"edit"}%/%WEB%/">
<input type="hidden" name="formtemplate" value="MyForm" />
New topic name <input type="text" name="topic" size="40" />
- <input type="submit" value="Create" />
+ <input type="submit" class="twikiSubmit" value="Create" />
</form>
- **_%T% Tip:_** For TWiki applications you can [[automatically generate unique topicnames|Main/TWikiTemplates#AutomaticallyGeneratedTopicname]].
- **_%X% Note:_** Initial values will not be submitted to the form of a new topic if you only use the formtemplate parameter.
-## <a name="Build an HTML form to create new"></a> Build an HTML form to create new Form-based topics
-
-- New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a `SubmitExpenseReport` topic where you can create new expense reports, a `SubmitVacationRequest` topic, and so on. These can specify the required template topic with its associated form. [[Template topics|Main/TWikiTemplates#TemplateTopics]] has more.
-
## <a name="Changing a form"></a> Changing a form
- You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
- If you delete a field from the form, or change a field name, then the data will not be visible when you edit the topic (the changed form definition will be used). **If you save the topic, the old data will be lost** (though thanks to revision control, you can always see it in older versions of the topic)
-<a name="UsingFormData"></a>
+- If two people edit the same topic containing a form at exactly the same time, and both change fields in the form, TWiki will try to merge the changes so that no data is lost.
-## <a name="Searching for Form Data"></a> Searching for Form Data
+<a name="FormStructure"></a>
-TWiki Forms accept user-input data, stored as [[TWikiMetaData]]. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see [[TWikiMetaData]], <code>**FORMFIELD**</code>, <code>**SEARCH**</code> and <code>**METASEARCH**</code> variables in [[TWikiVariables]], and [[TWiki Formatted Search|Main/FormattedSearch]].
+## <a name="Structure of a Form Template"></a> Structure of a Form Template
-> **Example**
->
-> %BR% TWiki users often want to have an overview of topics they contributed to. With the
->
-> <code>**$formfield**</code>
->
-> parameter it is easy to display the value of a classification field next to the topic link:
->
-> | *Topic* | *Classification* |
-> %SEARCH{"%MAINWEB%.UserName" scope="text" regex="off" nosearch="on" nototal="on" order="modified" reverse="on"
-> format="|<b>[[$web.$topic][$topic]]</b> |<nop>$formfield(TopicClassification) |" web="Sandbox"}%
+A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
+
+Each **column** of the table is one element of an entry field: <code>**Name**</code>, <code>**Type**</code>, <code>**Size**</code>, <code>**Values**</code>, <code>**Tooltip message**</code>, and <code>**Attributes**</code>.
+
+The `Name`, `Type` and `Size` columns are required. Other columns are optional. The form **must** have a header row (e.g. `| *Name* | *Type* | *Size* |`).
+
+<code>**Name**</code> is the name of the form field.
+
+The <code>**Type**</code>, <code>**Size**</code> and <code>**Value**</code> fields describe the legal values for this field, and how to display them.
+
+- <code>**Type**</code> `checkbox` specifies one or more checkboxes. The `Size` field specifies how many checkboxes will be displayed on each line. The `Value` field should be a comma-separated list of item labels.
+ - <code>**Type**</code> `checkbox+buttons` will add **Set** and **Clear** buttons to the basic `checkbox` type.
+- <code>**Type**</code> `radio` is like `checkbox` except that radio buttons are mutually exclusive; only one can be selected.
+- <code>**Type**</code> `label` specifies read-only label text, The `Value` field should contian the text of the label.
+- <code>**Type**</code> `select` specifies a select box. The `Value` field should contain a comma-separated list of options for the box. The `Size` field can specify a fixed size for the box (e.g. `1`, or a range e.g. `3..10`. If you specify a range, then the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options.
+ - There are two modifiers that can be applied to the `select` type:
+ - `select+multi` turns multiselect on for the select, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items.
+ - `select+values` allows the definition of values that are different to the displayed text. For example: | Field 9 | select+values | 5 | One, Two=2, Three=III, Four | Various values formats | shows <select size="2"><option>One</option>
+ <option>Two</option>
+ <option>Three</option>
+ <option>Four</option></select>
+ but the values or options `Two` and `Three` are `2` and `III` respectively.<br /> You can combine these modifiers e.g. `select+multi+values`
+- <code>**Type**</code> `text` specifies a one-line text field. `Size` specifies the text box width in number of characters. `Value` is the initial (default) content when a new topic is created with this form template.
+- <code>**Type**</code> `textarea` specifies a multi-line text box. The `Size` field should specify columns x rows, e.g. `80x6`; default size is 40x5. As for `text`, the `Value` field specifies the initial text
+- <code>**Type**</code> `date` specifies a single-line text box and a button next to it; clicking on the button will bring up a calendar from which the user can select a date. The date can also be typed into the text box. `Size` specifies the text box width in characters. As for `text`, the `Value` field specifies the initial text
+
+<code>**Tooltip message**</code> is a message that will be displayed when the cursor is hovered over the field in `edit` view.
+
+<code>**Attributes**</code> specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
+
+- An attribute `H` indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
+- An attribute `M` indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an `oops` page. Mandatory fields are indicated by an asterisks next to the field name.
+
+For example, a simple form just supporting entry of a name and a date would look as follows:
+
+ | *Name* | *Type* | *Size* |
+ | Name | text | 80 |
+ | Date | date | 30 |
+
+**Field Name Notes:**
+
+- Field names have to be unique.
+- A very few field names are reserved. If you try to use one of these names, TWiki will automatically append an underscore to the name when the form is used.
+- You can space out the title of the field, and it will still find the topic e.g. `Aeroplane Manufacturers` is equivalent to `AeroplaneManufacturers`.
+- If a `label` field has no name, it will **not** be shown when the form is **viewed**, only when it is **edited**.
+- Field names can in theory include any text, but you should stick to alphanumeric characters. If you want to use a non-wikiname for a `select`, `checkbox` or `radio` field, and want to get the values from another topic, you can use <code>**\[[...]]**</code> links. This notation can also be used when referencing another topic to obtain field values, but a name other than the topic name is required as the name of the field.
+- Leading and trailing spaces are _not_ significant.
+
+**Field Value Notes:**
+
+- The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For `label`, `text`, and `textarea` fields the value may also contain commas. `checkbox` fields cannot be initialized through the form template.
+- Leading and trailing spaces are _not_ significant.
+- Field values can also be generated through a [[FormattedSearch]], which must yield a suitable table as the result.
+- Variables in the initial values of a form definition get expanded when form values are initialized from the form definition. The escape words `$quot` ("), `$percnt` (%), `$dollar` ($), `$n` (newline), and `$nop` can be used to prevent expansion.
+
+**General Notes:**
+
+- The topic definition is not read when a topic is viewed.
+- Form definition topics can be protected in the usual manner, using [[TWikiAccessControl]], to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is _not_ required to view a topic where the form has been used.
+
+### <a name="Values in Other Topics"></a> Values in Other Topics
+
+As described above, you can also retrieve possible values for select, checkbox or radio types from other topics. For example, if you have a rows defined like this:
+
+ | *Name* | *Type* | *Size* |
+ | AeroplaneManufacturers | select | |
+
+the TWiki will look for the topic AeroplaneManufacturers to get the possible values for the `select`.
+
+The AeroplaneManufacturers topic must contain a table, where each row of the table describes a possible value. The table only requires one column, <code>**Name**</code>. Other columns may be present, but are ignored.
+
+For example:
+
+ | *Name* |
+ | Routan |
+ | Focke-Wulf |
+ | De Havilland |
+
+**Notes:**
+
+- The <code>**Values**</code> column **must be empty** in the referring form definition.
## <a name="Extending the range of form data"></a> Extending the range of form data types
-Several Plugins allow you to extend the range of data types accepted by forms. For example, the TWiki:Plugins.DateFieldPlugin lets you add a 'date' type to the available data types. All data types are single-valued (can only have one value) with the following exceptions:
+You can extend the range of data types accepted by forms by using [[TWikiPlugins]]. All such extended data types are single-valued (can only have one value) with the following exceptions:
- any type name starting with `checkbox`
- any type name with `+multi` anywhere in the name
Types with names like this can both take multiple values.
-## <a name="Gotcha!"></a> Gotcha!
+## <a name="Hints and Tips"></a> Hints and Tips
-- Some browsers may strip linefeeds from `text` fields when a topic is saved. If you need linefeeds in a field, make sure it is a `textarea`.
+### <a name="Build an HTML form to create new"></a> Build an HTML form to create new Form-based topics
-<a name="FormsVsCategoryTables"></a>
+- New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a `SubmitExpenseReport` topic where you can create new expense reports, a `SubmitVacationRequest` topic, and so on. These can specify the required template topic with its associated form. [[Template topics|Main/TWikiTemplates#TemplateTopics]] has more.
+
+A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field. <a name="UsingFormData"></a>
-## <a name="Importing Category Table Data"></a> Importing Category Table Data
+### <a name="Searching for Form Data"></a> Searching for Form Data
-Very, very old TWiki releases used a system called the "TWikiCategoryTable". Later releases support automatic import of this data.
+TWiki Forms accept user-input data, stored as [[TWikiMetaData]]. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see [[TWikiMetaData]], <code>**FORMFIELD**</code>, <code>**SEARCH**</code> and <code>**METASEARCH**</code> variables in [[TWikiVariables]], and [[TWiki Formatted Search|Main/FormattedSearch]].
+
+> **Example**
+>
+> %BR% TWiki users often want to have an overview of topics they contributed to. With the
+>
+> <code>**$formfield**</code>
+>
+> parameter it is easy to display the value of a classification field next to the topic link:
+>
+> | *Topic* | *Classification* |
+> %SEARCH{"%MAINWEB%.UserName" scope="text" nosearch="on" nototal="on" order="modified" reverse="on"
+> format="|<b>[[$web.$topic][$topic]]</b> |<nop>$formfield(TopicClassification) |" web="Sandbox"}%
-On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old <code>**twikicatitems.tmpl**</code>. The replacement Form Template must be set as the first item in the [[WebPreferences]] variable `WEBFORMS`. If missing, pages will display, but attempting to edit results in an error message.
+Searching forms this way is obviously pretty inefficient, but it's easy to do. If you want better performance, take a look at some of the structured wiki extensions that support higher performance searching e.g. TWiki:Plugins.DBCachePlugin.
-The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
+### <a name="Gotcha!"></a> Gotcha!
-%T% If things aren't working correctly, there may be useful entries in `data/warning.txt`.
+- Some browsers may strip linefeeds from `text` fields when a topic is saved. If you need linefeeds in a field, make sure it is a `textarea`.
**_Related Topics:_** [[UserDocumentationCategory]], [[TWikiTemplates]]
<li><a href="#moveWeb( $oldName, $newName )"> moveWeb( $oldName, $newName )</a></li>
<li><a href="#get_TopicList( $web ) -> @topics"> getTopicList( $web ) -> @topics</a></li>
<li><a href="#topicExists( $web, $topic ) -> $"> topicExists( $web, $topic ) -> $boolean</a></li>
- <li><a href="#check_TopicEditLock( $web, $topi"> checkTopicEditLock( $web, $topic ) -> ( $oopsUrl, $loginName, $unlockTime )</a></li>
+ <li><a href="#check_TopicEditLock( $web, $topi"> checkTopicEditLock( $web, $topic, $script ) -> ( $oopsUrl, $loginName, $unlockTime )</a></li>
<li><a href="#set_TopicEditLock( $web, $topic,"> setTopicEditLock( $web, $topic, $lock )</a></li>
<li><a href="#saveTopic( $web, $topic, $meta,"> saveTopic( $web, $topic, $meta, $text, $options ) -> $error</a></li>
<li><a href="#save_TopicText( $web, $topic, $t"> saveTopicText( $web, $topic, $text, $ignorePermissions, $dontNotify ) -> $oopsUrl</a></li>
<li><a href="#loadTemplate ( $name, $skin, $we"> loadTemplate ( $name, $skin, $web ) -> $text</a></li>
<li><a href="#expandTemplate( $def ) -> $stri"> expandTemplate( $def ) -> $string</a></li>
<li><a href="#writeHeader( $query, $contentLen"> writeHeader( $query, $contentLength )</a></li>
- <li><a href="#redirect_CgiQuery( $query, $url"> redirectCgiQuery( $query, $url )</a></li>
+ <li><a href="#redirect_CgiQuery( $query, $url,"> redirectCgiQuery( $query, $url, $passthru )</a></li>
<li><a href="#add_ToHEAD( $id, $header )"> addToHEAD( $id, $header )</a></li>
<li><a href="#expand_CommonVariables( $text, $"> expandCommonVariables( $text, $topic, $web ) -> $text</a></li>
<li><a href="#renderText( $text, $web ) -> $te"> renderText( $text, $web ) -> $text</a></li>
- `$web` - Web name, e.g. `'Main'`
- `$topic` - Topic name, e.g. `'WebNotify'`
- `$script` - Script name, e.g. `'view'`
+- `...` - an arbitrary number of name,value parameter pairs that will be url-encoded and added to the url. The special parameter name '#' is reserved for specifying an anchor. e.g. `getScriptUrl('x','y','view','#'=>'XXX',a=>1,b=>2)` will give `.../view/x/y?a=1&b=2#XXX`
Return: `$url` URL, e.g. `"http://example.com:80/cgi-bin/view.pl/Main/WebNotify"`
### <a name="set_SessionValue( $key, $value )"></a> setSessionValue( $key, $value ) -> $boolean
-Set a session value via the client session module
+Set a session value.
- `$key` - Session key
- `$value` - Value associated with key
### <a name="clear_SessionValue( $key ) - $bo"></a> clearSessionValue( $key ) -> $boolean
-Clear a session value via the client session module
+Clear a session value that was set using `setSessionValue`.
-- `$key` - Session key
+- `$key` - name of value stored in session to be cleared. Note that you **cannot** clear `AUTHUSER`.
-Return: true if function succeeded
+Return: true if the session value was cleared
**Since:** TWiki::Plugins::VERSION 1.1
- [[WebPreferences]] topic has: `* Set WEBBGCOLOR = #FFFFC0`
- `my $webColor = TWiki::Func::getPreferencesValue( 'WEBBGCOLOR', 'Sandbox' );`
+**NOTE:** As of TWiki4.1, if `$NO_PREFS_IN_TOPIC` is enabled in the plugin, then preferences set in the plugin topic will be ignored.
+
### <a name="get_PluginPreferencesValue( $key"></a> getPluginPreferencesValue( $key ) -> $value
Get a preferences value from your Plugin
**Since:** TWiki::Plugins::VERSION 1.021 (27 Mar 2004)
+**NOTE:** As of TWiki4.1, if `$NO_PREFS_IN_TOPIC` is enabled in the plugin, then preferences set in the plugin topic will be ignored.
+
### <a name="get_PreferencesFlag( $key, $web"></a><a name="get_PreferencesFlag( $key, $web "></a> getPreferencesFlag( $key, $web ) -> $value
Get a preferences flag from TWiki or from a Plugin
- Use `"MYPLUGIN_SHOWHELP"` for `$key`
- `my $showHelp = TWiki::Func::getPreferencesFlag( "MYPLUGIN_SHOWHELP" );`
+**NOTE:** As of TWiki4.1, if `$NO_PREFS_IN_TOPIC` is enabled in the plugin, then preferences set in the plugin topic will be ignored.
+
### <a name="get_PluginPreferencesFlag( $key"></a><a name="get_PluginPreferencesFlag( $key "></a> getPluginPreferencesFlag( $key ) -> $boolean
Get a preferences flag from your Plugin
**Since:** TWiki::Plugins::VERSION 1.021 (27 Mar 2004)
+**NOTE:** As of TWiki4.1, if `$NO_PREFS_IN_TOPIC` is enabled in the plugin, then preferences set in the plugin topic will be ignored.
+
### <a name="get_WikiToolName( ) - $name"></a> getWikiToolName( ) -> $name
Get toolname as defined in TWiki.cfg
**Since:** TWiki::Plugins::VERSION 1.000 (14 Jul 2001)
-### <a name="check_TopicEditLock( $web, $topi"></a> checkTopicEditLock( $web, $topic ) -> ( $oopsUrl, $loginName, $unlockTime )
+### <a name="check_TopicEditLock( $web, $topi"></a> checkTopicEditLock( $web, $topic, $script ) -> ( $oopsUrl, $loginName, $unlockTime )
Check if a lease has been taken by some other user.
Return: `( $oopsUrl, $loginName, $unlockTime )` - The `$oopsUrl` for calling redirectCgiQuery(), user's `$loginName`, and estimated `$unlockTime` in minutes, or ( '', '', 0 ) if no lease exists.
+- `$script` The script to invoke when continuing with the edit
+
**Since:** TWiki::Plugins::VERSION 1.010 (31 Dec 2002)
### <a name="set_TopicEditLock( $web, $topic,"></a> setTopicEditLock( $web, $topic, $lock )
**Since:** TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
-### <a name="redirect_CgiQuery( $query, $url"></a><a name="redirect_CgiQuery( $query, $url "></a> redirectCgiQuery( $query, $url )
+### <a name="redirect_CgiQuery( $query, $url,"></a> redirectCgiQuery( $query, $url, $passthru )
Redirect to URL
- `$query` - CGI query object. Ignored, only there for compatibility. The session CGI query object is used instead.
- `$url` - URL to redirect to
+- `$passthru` - enable passthrough.
+
+Return: none
+
+Print output to STDOUT that will cause a 302 redirect to a new URL. Nothing more should be printed to STDOUT after this method has been called.
+
+The `$passthru` parameter allows you to pass the parameters that were passed to the current query on to the target URL, as long as it is another URL on the same TWiki installation. If `$passthru` is set to a true value, then TWiki will save the current URL parameters, and then try to restore them on the other side of the redirect. Parameters are stored on the server in a cache file (see `{PassthroughDir} in =configure`).
+
+Note that if `$passthru` is set, then any parameters in `$url` will be lost when the old parameters are restored. if you want to change any parameter values, you will need to do that in the current CGI query before redirecting e.g.
-Return: none, never returns
+ my $query = TWiki::Func::getCgiQuery();
+ $query->param(-name => 'text', -value => 'Different text');
+ TWiki::Func::redirectCgiQuery(
+ undef, TWiki::Func::getScriptUrl($web, $topic, 'edit'), 1);
+
+`$passthru` does nothing if `$url` does not point to a script in the current TWiki installation.
**Since:** TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
would let you do this: `%EXEC{"ps -Af" silent="on"}%`
+Registered tags differ from tags implemented using the old TWiki approach (text substitution in `commonTagsHandler`) in the following ways:
+
+- registered tags are evaluated at the same time as system tags, such as %SERVERTIME. `commonTagsHandler` is only called later, when all system tags have already been expanded (though they are expanded _again_ after `commonTagsHandler` returns).
+- registered tag names can only contain alphanumerics and \_ (underscore)
+- registering a tag `FRED` defines both `%FRED{...}%` **and also** `%FRED%`.
+- registered tag handlers **cannot** return another tag as their only result (e.g. `return '%SERVERTIME%';`). It won't work.
+
### <a name="registerRESTHandler( $alias, \fn"></a> registerRESTHandler( $alias, \\&fn, )
Should only be called from initPlugin.
- `$web` - Web name, identifying variable, or empty string
- `$topic` - Topic name, may be a web.topic string, required.
-Return: the parsed Web/Topic pai
+Return: the parsed Web/Topic pair
**Since:** TWiki::Plugins::VERSION 1.1
<td><tt>( 'Web', 'Topic' ) </tt></td>
</tr>
<tr>
+ <td><tt>( '', 'Web/Subweb/Topic' ) </tt></td>
+ <td><tt>( 'Web/Subweb', 'Topic' ) </tt></td>
+ </tr>
+ <tr>
<td><tt>( '', 'Web.Topic' ) </tt></td>
<td><tt>( 'Web', 'Topic' ) </tt></td>
</tr>
<tr>
+ <td><tt>( '', 'Web.Subweb.Topic' ) </tt></td>
+ <td><tt>( 'Web/Subweb', 'Topic' ) </tt></td>
+ </tr>
+ <tr>
<td><tt>( 'Web1', 'Web2.Topic' )</tt></td>
<td><tt>( 'Web2', 'Topic' ) </tt></td>
</tr>
+</table>
+
+Note that hierarchical web names ([[SubWeb]]) are only available if hierarchical webs are enabled in `configure`.
+
+The symbols %USERSWEB%, %SYSTEMWEB%, %DOCWEB%, %MAINWEB% and %TWIKIWEB% can be used in the input to represent the web names set in $cfg\{UsersWebName\} and $cfg\{SystemWebName\}. For example:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Input </strong></th>
+ <th bgcolor="#99CCCC"><strong> Return </strong></th>
+ </tr>
<tr>
- <td><tt>( 'Main', 'Topic' )</tt></td>
+ <td><tt>( '%USERSWEB%', 'Topic' )</tt></td>
<td><tt>( 'Main', 'Topic' ) </tt></td>
</tr>
<tr>
- <td><tt>( 'TWiki', 'Topic' )</tt></td>
+ <td><tt>( '%SYSTEMWEB%', 'Topic' )</tt></td>
+ <td><tt>( 'TWiki', 'Topic' ) </tt></td>
+ </tr>
+ <tr>
+ <td><tt>( '', '%DOCWEB%.Topic' )</tt></td>
<td><tt>( 'TWiki', 'Topic' ) </tt></td>
</tr>
</table>
-where `Main` and `TWiki` are the web names set in $cfg\{UsersWebName\} and $cfg\{SystemWebName\} respectively.
-
### <a name="writeWarning( $text )"></a> writeWarning( $text )
Log Warning that may require admin intervention to data/warning.txt
### <a name="get_DataDir( ) - $dir"></a> getDataDir( ) -> $dir
-**DEPRECATED** since 1.1 - use the [[content handling functions|Main/WebHome#Functions_Content_Handling]] to manipulate topics instead
+**DEPRECATED** since 1.1 - use the "Webs, Topics and Attachments" functions to manipulate topics instead
Get data directory (topic file root)
### <a name="get_PubDir( ) - $dir"></a> getPubDir( ) -> $dir
-**DEPRECATED** since 1.1 - use the [[content handling functions|Main/WebHome#Functions_Content_Handling]] to manipulateattachments instead
+**DEPRECATED** since 1.1 - use the "Webs, Topics and Attachments" functions to manipulateattachments instead
Get pub directory (file attachment root). Attachments are in `$dir/Web/TopicName`
<div>
<ul>
<li><a href="#Appendix A: TWiki Development Ti"> Appendix A: TWiki Development Timeline</a><ul>
+ <li><a href="#TWiki Release 4.1 (Edinburgh), 1"> TWiki Release 4.1 (Edinburgh), 17 Jan 2007</a></li>
<li><a href="#TWiki Release 4.0.0 (Dakar), 01"> TWiki Release 4.0.0 (Dakar), 01 Feb 2006</a></li>
<li><a href="#01-Sep-2004 Release (Cairo)"> 01-Sep-2004 Release (Cairo)</a></li>
<li><a href="#01-Feb-2003 Release (Beijing)"> 01-Feb-2003 Release (Beijing)</a></li>
# <a name="Appendix A: TWiki Development Ti"></a> Appendix A: TWiki Development Timeline
+<a name="EdinburghRelease"></a>
+
+## <a name="TWiki Release 4.1 (Edinburgh), 1"></a> TWiki Release 4.1 (Edinburgh), 17 Jan 2007
+
+**_New Features and Enhancements of TWiki Release 4.1_**
+
+- **Easier Installation and Upgrade**
+ - Plugins can now be installed from the configure script.
+ - The loading of plugin preferences settings has been moved earlier in the preferences evaluation order so that plugin settings can be redefined in [[Main.TWikiPreferences|Main/TWikiPreferences]], WebPreferences and in topics. To make TWiki upgrades easier, it is recommended to set the plugin settings in Main.TWikiPreferences, and not to customize the settings in the plugin topic. For example, to change the TEMPLATES setting of the [[CommentPlugin]], create a new COMMENTPLUGIN\_TEMPLATES setting in Main.TWikiPreferences.
+ - Plugin settings can now be defined in configure instead of in the plugin topic (requires that the individual plugin has implemented this). TWiki performs slightly better by not looking for preferences settings in plugin topics.
+ - Configure no longer shows many unnecessary errors when run first time.
+ - The webmaster email address is now defined in configure instead of TWikiPreferences.
+ - Default file access rights in the distribution package have been changed to be more universally defined and in line with the default access rights for new topics.
+
+- **Usability Enhancements**
+ - Redesigned result page when typing incomplete topic name into the Jump box, so that it is possible to quickly navigate to a topic, also in a very large TWiki installation. For example, "I know there is a topic about Ajax somewhere in the Eng web. OK, let my type `Eng.ajax` into the Jump box... Here we go, the third link is the AjaxCookbook I was looking for."
+ - Many user documentation improvements.
+ - URL parameters maintained in Table of Contents links so you can stay in a temporary skin (e.g. print) and keep URLPARAM values when you click the TOC links
+ - Attachment tables now sorted alphabetically.
+ - Better printing of tables and verbatim text in [[PatternSkin]].
+
+- **Application Platform Enhancements**
+ - Auto-incremented topic name on save with AUTOINC<n> in topic name; used by TWiki applications to create topic based database records.
+ - The edit and save scripts support a `redirectto` parameter to redirect to a topic or a URL; for security, redirect to URL needs to be enabled with a `{AllowRedirectUrl}` configure flag.
+ - [[CommentPlugin]] supports the `redirectto` parameter to redirect to a URL or link to TWiki topic after submitting comment.
+ - The `topic` URL parameter also respects the `{AllowRedirectUrl}` configure flag so redirects to URLs can be disabled which could be abused for phishing attacks.
+ - The view script supports a `section` URL parameter to view just a named section within a topic. Useful for simple AJAX type applications.
+ - New plugin handler for content move.
+ - Enhancements for Ajax based applications with TWiki:Plugins/YahooUserInterfaceContrib and TWiki:Plugins.TWikiAjaxContrib (available at twiki.org).
+
+- **Search Enhancements**
+ - METASEARCH handles a format parameter like SEARCH.
+ - Topic not found / [[WebTopicViewTemplate]] search now case insensitive.
+ - [[FormattedSearch]] header supporting `$nop`, `$quot`, `$percnt`, `$dollar`.
+ - Add search by createdate option to SEARCH.
+ - New newline option for SEARCH to protect e.g. formfields from being altered during rendering in SEARCH.
+
+- **Skins and Templates Enhancements**
+ - Support for templates to have text rendering affecting aspect outside of textarea.
+ - Pattern skin dependence on [[TwistyPlugin]] instead of [[TwistyContrib]] (performance improvement.)
+ - Don't strip newlines from the front of TMPL:DEFs.
+
+- **Miscellaneous Feature Enhancements**
+ - Change in [[WikiWord]] definition: Numbers are treated as lower case letters, e.g. Y2K is now a WikiWord.
+ - Configurable template load path. Advanced feature for those that work with customized templates.
+ - Added %VBAR% to [[TWikiPreferences]] for vertical bar symbol.
+ - On topic creation, force initial letter of topic name to be upper case.
+ - Allow date format in form fields.
+ - Enhance REVINFO\{\} variable with same date qualifiers as GMTIME\{\}.
+ - [[WebTopicCreator]] - adding ability to select a template from any topic name ending in ...Template
+ - Functionality of DateFieldPlugin merged into core
+
+- **Enhancements of Pre-installed Plugins**
+ - [[CommentPlugin]]: Supports removal of comment prompt after a comment is made.
+ - [[EditTablePlugin]]: Default date format based on [[JSCalendarContrib]] instead of plugin topic.
+ - [[InterwikiPlugin]]: Supports custom link formats.
+ - [[SlideShowPlugin]]: Preserves URL parameters in slideshow
+ - [[SpreadSheetPlugin]]: New functions `$LISTRAND()`, `$LISTSHUFFLE()`, `$LISTTRUNCATE()`.
+ - [[TablePlugin]]: New attribute `cellborder`.
+ - [[TablePlugin]]: Highlight the sorted column with custom colors; includes also a general cosmetic update of default colors.
+ - [[TablePlugin]]: Support for initsort on more than one table. A table with the initsort option is initsorted UNLESS it is sorted by clicking on a column header. If you click on a header of another table all other tables goes back to the default sort defined by initsort or not sorted if no initsort, and the new table is sorted based on the user clicking on a table header.
+
+- **Bugfixes**
+ - More than 200 bugs fixed since 4.0.5
+
+**_Hall of Fame of TWiki Release 4.1_**
+
+Although many more people have been involved in creating TWiki-4.1, special thanks go to the most active contributors in the following areas:
+
+- **Sponsor and facilitator:** TWiki:Main.PeterThoeny
+- **Process improvement:** TWiki:Main.KennethLavrsen, TWiki:Main.PeterThoeny, TWiki:Main.SteffenPoulsen, TWiki:Main.CrawfordCurrie
+- **Release management:** TWiki:Main.KennethLavrsen
+- **Spec, code, testing:** TWiki:Main.CrawfordCurrie, TWiki:Main.ArthurClemens, TWiki:Main.SteffenPoulsen, TWiki:Main.PeterThoeny, TWiki:Main.ThomasWeigert, TWiki:Main.KennethLavrsen, TWiki:Main.SvenDowideit, TWiki:Main.HaraldJoerg, TWiki:Main.MichaelDaum, TWiki:Main.MeredithLesly, TWiki:Main.WillNorris, TWiki:Main.RafaelAlvarez, TWiki:Main.AntonioTerceiro
+- **Templates and skins:** TWiki:Main.ArthurClemens, TWiki:Main.MichaelDaum, TWiki:Main.SvenDowideit
+- **Documentation:** TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie, TWiki:Main.ArthurClemens, TWiki:Main.SteffenPoulsen, TWiki:Main.KennethLavrsen
+- **Translations:** Coordinated by TWiki:Main.AntonioTerceiro
+ - Chinese: TWiki:Main.CheDong
+ - Czech: TWiki:Main.IvanKuncl
+ - Danish: TWiki:Main.SteffenPoulsen
+ - Dutch: TWiki:Main.ArthurClemens
+ - French: TWiki:Main.BenVoui
+ - German: TWiki:Main.AndreUlrich
+ - Italian: TWiki:Main.MassimoMancini
+ - Polish: TWiki:Main.ZbigniewKulesza
+ - Portuguese: TWiki:Main.AntonioTerceiro, TWiki:Main.CarlinhosCecconi
+ - Russian: TWiki:Main.AndreyTkachenko, TWiki:Main.SergejZnamenskij, TWiki:Main.SergeyJSinx, TWiki:Main.AlexTananaev
+ - Spanish: TWiki:Main.WillNorris, TWiki:Main.MiguelABayona
+ - Swedish: TWiki:Main.ErikAman
+- **Public relations:** TWiki:Main.PeterThoeny, TWiki:Main.TomTansy
+- **TWiki.org wiki champions:** TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie, TWiki:Main.KennethLavrsen, TWiki:Main.SteffenPoulsen, TWiki:Main.ArthurClemens, TWiki:Main.ThomasWeigert, TWiki:Main.MichaelDaum
+- **Customer support:** TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie, TWiki:Main.ArthurClemens, TWiki:Main.SteffenPoulsen, TWiki:Main.SteveStark, TWiki:Main.MichaelDaum
+- **System administration:** TWiki:Main.SvenDowideit, TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie
+
+If you find an omission please fix it at TWiki:TWiki.TWikiHistory. For the full list of contributors see [[TWikiContributor]].
+
+See more details on the TWiki 4.1 release at [[TWikiReleaseNotes04x01]].
+
<a name="DakarRelease"></a>
## <a name="TWiki Release 4.0.0 (Dakar), 01"></a><a name="TWiki Release 4.0.0 (Dakar), 01 "></a> TWiki Release 4.0.0 (Dakar), 01 Feb 2006
- **07 Jul 2000** - TWiki:Main.PeterThoeny
- Added an "Release edit lock" checkbox in preview to let other people edit the topic immediately without the one hour lock.
- **07 Jul 2000** - TWiki:Main.PeterThoeny
- - Fixed problem of losing carriage returns when editing topics with KDE KFM browser or [[W3M]] browser.
+ - Fixed problem of losing carriage returns when editing topics with KDE KFM browser or W3M browser.
- **21 Jun 2000** - TWiki:Main.PeterThoeny
- Fixed problem that a page redirect on some server environments is not working (host name is needed in URL).
- **21 Jun 2000** - TWiki:Main.CrisBailiff, TWiki:Main.PeterThoeny
- **10 Jan 2000** - TWiki:Main.PeterThoeny
- No more escaping for '%' percent characters. (Number of consecutive '%' entered and displayed is identical.)
- **03 Oct 1999** - TWiki:Main.PeterThoeny
- - Limit the number of revisions shown at the bottom of the topic. Example %BR% Topic %TOPIC% . \{ ..... [Diffs](http://www.dementia.org/twiki//rdiff/%WEB%/%TOPIC%) r1.10 [>](http://www.dementia.org/twiki//rdiff/%WEB%/%TOPIC%?rev1=1.10&rev2=1.9) [r1.9](http://www.dementia.org/twiki//view/%WEB%/%TOPIC%?rev=1.9) [>](http://www.dementia.org/twiki//rdiff/%WEB%/%TOPIC%?rev1=1.9&rev2=1.8) [r1.8](http://www.dementia.org/twiki//view/%WEB%/%TOPIC%?rev=1.8) [>](http://www.dementia.org/twiki//rdiff/%WEB%/%TOPIC%?rev1=1.8&rev2=1.7) [r1.7](http://www.dementia.org/twiki//view/%WEB%/%TOPIC%?rev=1.7) [>...](http://www.dementia.org/twiki//oops/%WEB%/%TOPIC%?template=oopsrev¶m1=1.10) \} %BR% Additional revisions can be selected by pressing the `>...` link.
+ - Limit the number of revisions shown at the bottom of the topic. Example %BR% Topic %TOPIC% . \{ ..... [Diffs](http://www.dementia.org/twiki/rdiff/%WEB%/%TOPIC%) r1.10 [>](http://www.dementia.org/twiki/rdiff/%WEB%/%TOPIC%?rev1=1.10&rev2=1.9) [[r1.9|%WEB%/%TOPIC%?rev=1.9]] [>](http://www.dementia.org/twiki/rdiff/%WEB%/%TOPIC%?rev1=1.9&rev2=1.8) [[r1.8|%WEB%/%TOPIC%?rev=1.8]] [>](http://www.dementia.org/twiki/rdiff/%WEB%/%TOPIC%?rev1=1.8&rev2=1.7) [[r1.7|%WEB%/%TOPIC%?rev=1.7]] [>...](http://www.dementia.org/twiki/oops/%WEB%/%TOPIC%?template=oopsrev¶m1=1.10) \} %BR% Additional revisions can be selected by pressing the `>...` link.
## <a name="01-Sep-1999 Release"></a> 01-Sep-1999 Release
- **31 Aug 1999** - TWiki:Main.PeterThoeny
- - Fixed [[Y2K]] bug. (Date in year 2000 had wrong format.)
+ - Fixed Y2K bug. (Date in year 2000 had wrong format.)
- **08 Aug 1999** - TWiki:Main.PeterThoeny
- New text formatting rule for creating tables. Text gets rendered as a table if enclosed in " " vertical bars. Example line as it is written and how it shows up
- **03 Aug 1999** - TWiki:Main.PeterThoeny
- **24 Sep 1998** - TWiki:Main.PeterThoeny
- Corrected templates for automatic e-mail notification so that MS Outlook can display attachment as an HTML file.
- **13 Aug 1998** - TWiki:Main.PeterThoeny
- - [[WikiNotation]] allows also numbers after the `AaA` sequence, e.g. `AaA1` is a valid [[WikiTopic]] name, but not `Aa1`.
+ - [[WikiNotation]] allows also numbers after the `AaA` sequence, e.g. `AaA1` is a valid [[TWikiTopics]] name, but not `Aa1`.
- **07 Aug 1998** - TWiki:Main.PeterThoeny
- Automatic e-mail notification when something has changed in a TWiki web. Each web has a topic [[WebNotify]] where one can subscribe and unsubscribe.
- **06 Aug 1998** - TWiki:Main.PeterThoeny
<ul>
<li><a href="#Package =TWiki::_I18N::Extract="> Package TWiki::I18N::Extract</a><ul>
<li><a href="#ClassMethod <strong>new</strong> ($session) ->"> ClassMethod new <tt>($session) -> $extract</tt></a></li>
- <li><a href="#ObjectMethod <strong>extract</strong> ($msgid)"> ObjectMethod extract <tt>($msgid) -> $formated</tt></a></li>
+ <li><a href="#ObjectMethod <strong>extract</strong> ($file,$t"> ObjectMethod extract <tt>($file,$text)</tt></a></li>
</ul>
</li>
</ul>
Constructor. Creates a fresh new Extract object. A $session object, instance of the TWiki class, is optional: if it's available, it'll be used for printing warnings.
-## <a name="ObjectMethod <strong>extract</strong> ($msgid)"></a><a name="ObjectMethod <strong>extract</strong> ($msgid) "></a> [[ObjectMethod]] **extract** `($msgid) -> $formated`
+## <a name="ObjectMethod <strong>extract</strong> ($file,$t"></a> [[ObjectMethod]] **extract** `($file,$text)`
-This method overrides the one with same name in `Locale::Maketext::Extract`, as a workaround for [a bug](http://rt.cpan.org/Public/Bug/Display.html?id=14629) in the `Locale::Maketext::Lexicon` Perl package, and was not fixed up to the 0.53 release.
+Extract the strings from `$text`,m using `$file` as the name of the current file being read (for comments in PO file, for example). Overrides the base class method but calls it so the base behavior is preserved.
-What it does is to call an alternative version of the \_format function, which avoids [double-escaping](http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1500) the extracted strings.
-
-This method was tested only under the circumstances of TWiki's needs, i.e., extracting strings from source and topics and generating a brand new POT file. Merging with previous PO files is done with GNU gettext tools, so maybe if it's used for merging it can
-
-Once that bug is fixed, in future TWiki versions this method may be removed.
-
-!!!extract!!!
+As in base class, extracted strings are just stored in the =$self='s internal table for further use (e.g. creating/updating a PO file). Nothing is returned.
- During installation and configuration, the CGI user needs to be able to read and write _everything_ in the distribution,
- Once installation and configuration is complete, the CGI user needs write access to everything under the `data` and `pub` directories and to `lib/LocalSite.cfg`. _Everything else_ should be read-only.
- Everybody else should be denied access to everything, always.
-4. **Make sure** Perl 5 and the Perl CGI library are installed on your system. %BR% The default location of Perl is `/usr/bin/perl`. **If it's somewhere else**, change the path to Perl in the first line of each script in the `twiki/bin` directory. %BR% %H% Some systems require a special extension on perl scripts (e.g. `.cgi` or `.pl`). If necessary, rename all files in `twiki/bin` (i.e. rename `view` to `view.pl` etc). If you do this, make sure you set the `ScriptSuffix` option in `configure` (Step 6).
+4. **Make sure** Perl 5 and the Perl CGI library are installed on your system. %BR% The default location of Perl is `/usr/bin/perl`. **If it's somewhere else**, change the path to Perl in the first line of each script in the `twiki/bin` directory. %BR% %H% Some systems require a special extension on perl scripts (e.g. `.cgi` or `.pl`). If necessary, rename all files in `twiki/bin` (i.e. rename `view` to `view.pl` etc). If you do this, make sure you set the `ScriptSuffix` option in [configure](http://www.dementia.org/twiki/configure) (Step 6).
5. **Create the file** `/twiki/bin/LocalLib.cfg`. %BR% There is a template for this file in `/twiki/bin/LocalLib.cfg.txt`. %BR% The file must contain a setting for `$twikiLibPath`, which must point to the absolute file path of your `twiki/lib` e.g. `/home/httpd/twiki/lib`. %BR% %H% If you need to install additional CPAN modules, but can't update the main Perl installation files on the server, you can set `$CPANBASE` to point to your personal CPAN install. Don't forget that the webserver user has to be able to read those files as well.
6. **Configure the webserver** so you can execute the `bin/configure` script from your browser.
- - Explicit instructions for doing this are beyond the scope of this document, though there is a lot of advice on TWiki.org covering different configurations of webserver. To help you out, there's an example Apache `httpd.conf` file in `twiki_httpd_conf.txt` at the root of the package. This file also contains advice on securing your installation. There's also a script called `tools/rewriteshebang.pl` to help you in fixing up the shebang lines in your CGI scripts.
+ - Explicit instructions for doing this are beyond the scope of this document, though there is a lot of advice on TWiki.org covering different configurations of webserver. To help you out, there's an example Apache `httpd.conf` file in `twiki_httpd_conf.txt` at the root of the package. This file also contains advice on securing your installation. Additionally, see TWiki:TWiki.ApacheConfigGenerator. There's also a script called `tools/rewriteshebang.pl` to help you in fixing up the shebang lines in your CGI scripts.
7. Run the `configure` script from your browser, and resolve any errors or warnings it tells you about.
You now have a basic, unauthenticated installation running. At this point you can just point your Web browser at `http://yourdomain.com/twiki/bin/view` and start TWiki-ing away!
If you use the official TWiki.org artwork on your own site you can link back to TWiki.org. Use this HTML (with any logo file on this page):
-`<a href="http://twiki.org/"><img src="http://www.dementia.org/twiki//view/T-logo-88x31-t.gif" alt="This site is powered by the TWiki collaboration platform" title="This site is powered by the TWiki collaboration platform" border="0" /></a>`
+`<a href="http://twiki.org/"><img src="%PUBURL%/%TWIKIWEB%/TWikiLogos/T-logo-140x40-t.gif" alt="This site is powered by the TWiki collaboration platform" title="This site is powered by the TWiki collaboration platform" border="0" /></a>`
+
+If you create your own TWiki skin you are encouraged to add the small 80x31 pixel TWiki logo at the bottom of your skin:
+
+`<a href="http://twiki.org/"><img src="%PUBURL%/%TWIKIWEB%/TWikiLogos/T-logo-80x15.gif" alt="This site is powered by the TWiki collaboration platform" width="80" height="15" title="This site is powered by the TWiki collaboration platform" border="0" /></a>`
## <a name="Right to use Trademarked Artwork"></a> Right to use Trademarked Artwork
</tr>
<tr>
<td> name </td>
- <td> The topic from which this was created, [[Main/WebHome]] if done from <code>Go</code>, othewise topic where <code>?</code> or form used. Normally just topic, but is full web.topic format if parent is in a different Web. Renaming a Web will then only break a few of these references or they can be scanned and fixed. </td>
+ <td> The topic from which this was created, typically when clicking on a <code>?</code> questionmark link, or by filling out a form. Normally just <code>TopicName</code>, but it can be a full <code>Web.TopicName</code> format if the parent is in a different Web. </td>
</tr>
</table>
</tr>
</table>
+**_Note:_** SEARCH can also be used to render meta data, see examples in [[FormattedSearch]] and [[SearchPatternCookbook]].
+
## <a name="Known Issues"></a> Known Issues
At present, there is no Meta Data support for Plugins. However, the format is readily extendable and the `Meta.pm` code that supports the format needs only minor alteration.
**_Related Topics:_** [[DeveloperDocumentationCategory]], [[UserDocumentationCategory]]
+
+-- **_Contributors:_** TWiki:Main.JohnTalintyre, TWiki:Main.MikeMannix, TWiki:Main.PeterThoeny, TWiki:Main.CrawfordCurrie
If $nameFilter is defined (an RE), it will copy only data where \{name\} matches $nameFilter.
-SMELL: That spec absolutely _STINKS_ !! SMELL: this is a shallow copy
+SMELL: This is a shallow copy
## <a name="ObjectMethod <strong>count</strong> ($type) - $"></a> [[ObjectMethod]] **count** `($type) -> $integer`
<div>
<ul>
<li><a href="#Package =TWiki::Net="> Package TWiki::Net</a><ul>
- <li><a href="#ObjectMethod <strong>getUrl</strong> ($host,$po"> ObjectMethod getUrl <tt>($host,$port,$url,$user,$pass,$header) -> $text</tt></a></li>
+ <li><a href="#ObjectMethod <strong>getUrl</strong> ($protocol"> ObjectMethod getUrl <tt>($protocol,$host,$port,$url,$user,$pass) -> $text</tt></a></li>
<li><a href="#set_MailHandler( \fn )"> setMailHandler( \&fn )</a></li>
<li><a href="#ObjectMethod <strong>sendEmail</strong> ($text,"> ObjectMethod sendEmail <tt>($text,$retries) -> $error</tt></a></li>
</ul>
</ul>
</div>
-## <a name="ObjectMethod <strong>getUrl</strong> ($host,$po"></a> [[ObjectMethod]] **getUrl** `($host,$port,$url,$user,$pass,$header) -> $text`
+## <a name="ObjectMethod <strong>getUrl</strong> ($protocol"></a> [[ObjectMethod]] **getUrl** `($protocol,$host,$port,$url,$user,$pass) -> $text`
Get the text at the other end of a URL
<ul>
<li><a href="#Package =TWiki::_OopsException="> Package TWiki::OopsException</a><ul>
<li><a href="#ClassMethod <strong>new</strong> ($template,..."> ClassMethod new <tt>($template,...)</tt></a></li>
- <li><a href="#ObjectMethod <strong>stringify</strong> () -> $"> ObjectMethod stringify <tt>() -> $string</tt></a></li>
+ <li><a href="#ObjectMethod <strong>stringify</strong> ([$sess"> ObjectMethod stringify <tt>([$session]) -> $string</tt></a></li>
</ul>
</li>
</ul>
- `keep` - if set, the exception handler should try it's damndest to retain parameter values from the query.
- `params` is a reference to an array of parameters. These will be substituted for %PARAM1%, %PARAM2% ... %PARAMn% in the template.
-## <a name="ObjectMethod <strong>stringify</strong> () - $s"></a> [[ObjectMethod]] **stringify** `() -> $string`
+## <a name="ObjectMethod <strong>stringify</strong> ([$sess"></a> [[ObjectMethod]] **stringify** `([$session]) -> $string`
-Generates a string representation for the object, mainly for debugging.
+Generates a string representation for the object. if a session is passed in, and the excpetion specifies a def, then that def is expanded. This is to allow internal expansion of oops exceptions for example when performing bulk operations.
TWiki Plugins are developed and contributed by interested members of the community. Plugins are provided on an 'as is' basis; they are not a part of TWiki, but are independently developed and maintained.
-**_%T% Tip:_** TWiki:TWiki.TWikiPluginsSupplement on TWiki.org has supplemental documentation on TWiki Plugins.
+**_Relevant links on TWiki.org:_**
+
+- TWiki:TWiki.TWikiPluginsSupplement - **_%T% tip:_** supplemental documentation on TWiki plugins
+- TWiki:Plugins.PluginPackage - list of all contributed plugin packages
+- TWiki:Plugins.PluginDevelopment - discussion and feedback on contributed plugins
+- TWiki:Plugins.PluginBrainstorming - open forum for new plugin ideas
+- TWiki:Plugins.PluginPackageHowTo - template to create a new plugin package
+
+**_See other types of extensions:_** [[TWikiAddOns]], [[TWikiContribs]], [[TWikiSkins]]
<a name="InstallPlugin"></a>
The performance of the system depends to some extent on the number of Plugins installed and on the Plugin implementation. Some Plugins impose no measurable performance decrease, some do. For example, a Plugin might use many Perl libraries that need to be initialized with each page view (unless you run mod\_perl). You can only really tell the performance impact by installing the Plugin and by measuring the performance with and without the new Plugin. Use the TWiki:Plugins.PluginBenchmarkAddOn, or test manually with the Apache `ab` utility. Example on Unix:%BR% `time wget -qO /dev/null http://www.dementia.org/twiki/view/TWiki/AbcPlugin`
-%T% If you need to install an "expensive" Plugin, and you need its functionality only in one web, you can place the Plugin topic into that web. TWiki will initialize the Plugin only if the Plugin topic is found (which won't be the case for other webs.)
+%T% If you need to install an "expensive" Plugin, but you only need its functionality only in a subset of your data, you can disable it elsewhere by defining the %DISABLEDPLUGINS% TWiki variable.
+
+Define `DISABLEDPLUGINS` to be a comma-separated list of names of plugins to disable. Define it in Main.TWikiPreferences to disable those plugins everywhere, in the WebPreferences topic to disable them in an individual web, or in a topic to disable them in that topic. For example,
+
+ * Set DISABLEDPLUGINS = SpreadSheetPlugin, EditTablePlugin
<a name="ManagingPlugins"></a>
### <a name="Plugin-Specific Settings"></a> Plugin-Specific Settings
-Plugin-specific settings are done in individual Plugin topics. Two settings are standard for each Plugin:
+Plugins are usually configured by variables accessible though the [configure](http://www.dementia.org/twiki/configure) interface, but in some cases (usually older plugins) TWiki preferences are used. If a TWiki variable is defined in a Plugin topic e.g:
-1. One line description, used to form the bullets describing the Plugins in the [[TextFormattingRules]] topic:
- - `Set SHORTDESCRIPTION = Create dynamic foo bar reports`
-2. Debug Plugin, output can be seen in `data/debug.txt`. Set to 0=off or 1=on:
- - `Set DEBUG = 0`
+- Set SETTING = Create dynamic foo bar reports
-- The settings can be retrieved as Preferences variables like `%<pluginname>_<var>%`. For example, `%DEFAULTPLUGIN_SHORTDESCRIPTION%` shows the description of the DefaultPlugin.
+Then these settings can be retrieved as preferences variables like `%<pluginname>_<var>%`. For example, `%RUBBERPLUGIN_SETTING%` shows the value of SETTING in the RubberPlugin topic.
### <a name="Listing Active Plugins"></a> Listing Active Plugins
### <a name="Web Accessible Data"></a> Web Accessible Data
-**_Topic-specific data_** such as generated images can be stored in the topics attachment area, which is web accessible. Use the `TWiki::Func::saveAttachment()` function to store the data.
+**_Topic-specific data_** such as generated images can be stored in the topic's attachment area, which is web accessible. Use the `TWiki::Func::saveAttachment()` function to store the data.
Recommendation for file name:
<li><a href="#PUBLIC $SESSION"> PUBLIC $SESSION</a></li>
<li><a href="#ClassMethod <strong>new</strong> ($session)"> ClassMethod new <tt>($session)</tt></a></li>
<li><a href="#ObjectMethod <strong>load</strong> ($allDisable"> ObjectMethod load <tt>($allDisabled) -> $loginName</tt></a></li>
+ <li><a href="#ObjectMethod <strong>settings</strong> ()"> ObjectMethod settings <tt>()</tt></a></li>
<li><a href="#ObjectMethod <strong>enable</strong> ()"> ObjectMethod enable <tt>()</tt></a></li>
<li><a href="#ObjectMethod *get_PluginVersion*"> ObjectMethod getPluginVersion <tt>() -> $number</tt></a></li>
<li><a href="#ObjectMethod <strong>addListener</strong> ($com"> ObjectMethod addListener <tt>($command,$handler)</tt></a></li>
<li><a href="#ObjectMethod *before_CommonTagsH"> ObjectMethod beforeCommonTagsHandler <tt>()</tt></a></li>
<li><a href="#ObjectMethod *common_TagsHandler"> ObjectMethod commonTagsHandler <tt>()</tt></a></li>
<li><a href="#ObjectMethod *after_CommonTagsHa"> ObjectMethod afterCommonTagsHandler <tt>()</tt></a></li>
- <li><a href="#ObjectMethd pre_RenderingHandler"> ObjectMethd preRenderingHandler( $text, \%map )</a></li>
+ <li><a href="#ObjectMethod *pre_RenderingHandl"> ObjectMethod preRenderingHandler <tt>($text,\%map)</tt></a></li>
+ <li><a href="#ObjectMethod *post_RenderingHand"> ObjectMethod postRenderingHandler <tt>(\$text)</tt></a></li>
+ <li><a href="#ObjectMethod *start_RenderingHan"> ObjectMethod startRenderingHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *outsidePREHandler*"> ObjectMethod outsidePREHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *insidePREHandler*"> ObjectMethod insidePREHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *end_RenderingHandl"> ObjectMethod endRenderingHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *before_EditHandler"> ObjectMethod beforeEditHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *after_EditHandler*"> ObjectMethod afterEditHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *before_SaveHandler"> ObjectMethod beforeSaveHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *after_SaveHandler*"> ObjectMethod afterSaveHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *after_RenameHandle"> ObjectMethod afterRenameHandler <tt>($oldWeb,$oldTopic,$oldAttachment,$newWeb,$newTopic,$newAttachment)</tt></a></li>
+ <li><a href="#ObjectMethod <strong>mergeHandler</strong> ()"> ObjectMethod mergeHandler <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *before_AttachmentS"> ObjectMethod beforeAttachmentSaveHandler <tt>($attrHashRef,$topic,$web)</tt></a></li>
+ <li><a href="#ObjectMethod *after_AttachmentSa"> ObjectMethod afterAttachmentSaveHandler <tt>($attachmentAttrHash,$topic,$web,$error)</tt></a></li>
+ <li><a href="#ObjectMethod *write_HeaderHandle"> ObjectMethod writeHeaderHandler <tt>() -> $headers</tt></a></li>
+ <li><a href="#ObjectMethod *modify_HeaderHandl"> ObjectMethod modifyHeaderHandler <tt>(\@headers,$query)</tt></a></li>
+ <li><a href="#ObjectMethod *redirect_CgiQueryH"> ObjectMethod redirectCgiQueryHandler <tt>() -> $result</tt></a></li>
+ <li><a href="#ObjectMethod *render_FormFieldFo"> ObjectMethod renderFormFieldForEditHandler <tt>($name,$type,$size,$value,$attributes,$possibleValues) -> $html</tt></a></li>
+ <li><a href="#ObjectMethod *render_WikiWordHan"> ObjectMethod renderWikiWordHandler <tt>() -> $result</tt></a></li>
</ul>
</li>
</ul>
</div>
-Note that as of version 1.026 of this module, TWiki internal methods are _no longer available_ to plugins. Any calls to TWiki internal methods must be replaced by calls via the $SESSION object in this package, or via the Func package. For example, the call:
+Note that as of version 1.026 of this module, TWiki internal methods are _no longer available_ to plugins. Any calls to TWiki internal methods must be replaced by calls via the `$SESSION` object in this package, or via the Func package. For example, the call:
-my $pref = TWiki::getPreferencesValue('URGH');
+`my $pref = TWiki::getPreferencesValue('URGH');`
should be replaced with
-my $pref = TWiki::Func::getPreferencesValue('URGH');
+`my $pref = TWiki::Func::getPreferencesValue('URGH');`
and the call
-my $t = TWiki::writeWarning($message);
+`my $t = TWiki::writeWarning($message);`
should be replaced with
-my $pref = $TWiki::Plugins::SESSION->writeWarning($message);
+`my $pref = $TWiki::Plugins::SESSION->writeWarning($message);`
Methods in other modules such as Store must be accessed through the relevant TWiki sub-object, for example
-TWiki::Store::saveTopic(...)
+`TWiki::Store::saveTopic(...)`
should be replaced with
-$TWiki::Plugins::SESSION->\{store\}->saveTopic(...)
+`$TWiki::Plugins::SESSION->{store}->saveTopic(...)`
Note that calling TWiki internal methods is very very bad practice, and should be avoided wherever practical.
If allDisabled is set, no plugin handlers will be called.
+## <a name="ObjectMethod <strong>settings</strong> ()"></a> [[ObjectMethod]] **settings** `()`
+
+Push plugin settings onto preference stack
+
## <a name="ObjectMethod <strong>enable</strong> ()"></a> [[ObjectMethod]] **enable** `()`
Initialisation that is done after the user is known.
Called at the end (for cache Plugins only)
-## <a name="ObjectMethd pre_RenderingHandler"></a> [[ObjectMethd]] preRenderingHandler( $text, \\%map )
+## <a name="ObjectMethod <strong>pre_RenderingHandl"></a> [[ObjectMethod]] \*preRenderingHandler `($text,\%map)`
- `$text` - the text, with the head, verbatim and pre blocks replaced with placeholders
- `\%removed` - reference to a hash that maps the placeholders to the removed blocks.
$removed->{'pre1'}{params}: class="slobadob"
</pre>
- Iterating over blocks for a single tag is easy. For example, to prepend a line number to every line of a pre block you might use this code:
+Iterating over blocks for a single tag is easy. For example, to prepend a line number to every line of a pre block you might use this code:
- foreach my $placeholder ( keys %$map ) {
- if( $placeholder =~ /^pre/i ) {
- my $n = 1;
- $map->{$placeholder}{text} =~ s/^/$n++/gem;
- }
- }
+foreach my $placeholder ( keys %$map ) \{ if( $placeholder =~ /^pre/i ) \{ my $n = 1; $map->\{$placeholder\}\{text\} =~ s/^/$n++/gem; \} \}
- ---++ ObjectMethod *postRenderingHandler* <tt>(\$text)</tt>
+## <a name="ObjectMethod <strong>post_RenderingHand"></a> [[ObjectMethod]] \*postRenderingHandler `(\$text)`
- * =\$text= - a reference to the HTML, with the head, verbatim and pre blocks replaced with placeholders
+- `\$text` - a reference to the HTML, with the head, verbatim and pre blocks replaced with placeholders
- ---++ ObjectMethod *startRenderingHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>start_RenderingHan"></a> [[ObjectMethod]] \*startRenderingHandler `()`
- Called just before the line loop
+Called just before the line loop
- *DEPRECATED* Use preRenderingHandler instead. This handler correctly
- handles verbatim and other TWiki ML block types, and exposes them to
- the plugin.
+**DEPRECATED** Use preRenderingHandler instead. This handler correctly handles verbatim and other TWiki ML block types, and exposes them to the plugin.
- ---++ ObjectMethod *outsidePREHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>outsidePREHandler*"></a> [[ObjectMethod]] \*outsidePREHandler `()`
- Called in line loop outside of <PRE> tag
+Called in line loop outside of <PRE> tag
- *DEPRECATED* Use preRenderingHandler instead.
- This handler correctly handles pre and other
- TWiki ML block types, and is called only once
- instead of line-by-line.
+**DEPRECATED** Use preRenderingHandler instead. This handler correctly handles pre and other TWiki ML block types, and is called only once instead of line-by-line.
- ---++ ObjectMethod *insidePREHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>insidePREHandler*"></a><a name="ObjectMethod *insidePREHandler</strong> "></a> [[ObjectMethod]] **insidePREHandler** `()`
- Called in line loop inside of <PRE> tag
+Called in line loop inside of <PRE> tag
- *DEPRECATED* Use preRenderingHandler instead.
- This handler correctly handles pre and other
- TWiki ML block types, and is called only once
- instead of line-by-line.
+**DEPRECATED** Use preRenderingHandler instead. This handler correctly handles pre and other TWiki ML block types, and is called only once instead of line-by-line.
- ---++ ObjectMethod *endRenderingHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>end_RenderingHandl"></a> [[ObjectMethod]] \*endRenderingHandler `()`
- Called just after the line loop
+Called just after the line loop
- *DEPRECATED* Use postRenderingHandler instead.
+**DEPRECATED** Use postRenderingHandler instead.
- ---++ ObjectMethod *beforeEditHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>before_EditHandler"></a> [[ObjectMethod]] \*beforeEditHandler `()`
- Called by edit
+Called by edit
- ---++ ObjectMethod *afterEditHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>after_EditHandler*"></a> [[ObjectMethod]] \*afterEditHandler `()`
- Called by edit
+Called by edit
- ---++ ObjectMethod *beforeSaveHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>before_SaveHandler"></a> [[ObjectMethod]] \*beforeSaveHandler `()`
- Called just before the save action
+Called just before the save action
- ---++ ObjectMethod *afterSaveHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>after_SaveHandler*"></a> [[ObjectMethod]] \*afterSaveHandler `()`
- Called just after the save action
+Called just after the save action
- ---++ ObjectMethod *mergeHandler* <tt>()</tt>
+## <a name="ObjectMethod <strong>after_RenameHandle"></a> [[ObjectMethod]] \*afterRenameHandler `($oldWeb,$oldTopic,$oldAttachment,$newWeb,$newTopic,$newAttachment)`
- Called to handle text merge.
+Called just after the rename/move/delete action of a web, topic or attachment.
- ---++ ObjectMethod *beforeAttachmentSaveHandler* <tt>($attrHashRef,$topic,$web)</tt>
+- `$oldWeb` - name of old web
+- `$oldTopic` - name of old topic (empty string if web rename)
+- `$oldAttachment` - name of old attachment (empty string if web or topic rename)
+- `$newWeb` - name of new web
+- `$newTopic` - name of new topic (empty string if web rename)
+- `$newAttachment` - name of new attachment (empty string if web or topic rename)
- This code provides Plugins with the opportunity to alter an uploaded attachment between the upload and save-to-store processes. It is invoked as per other Plugins.
- * =$attrHashRef= - Hash reference of attachment attributes (keys are indicated below)
- * =$topic= - | Topic name
- * =$web= - | Web name
+## <a name="ObjectMethod <strong>mergeHandler</strong> ()"></a> [[ObjectMethod]] **mergeHandler** `()`
- Keys in $attrHashRef:
- | *Key* | *Value* |
- | attachment | Name of the attachment |
- | tmpFilename | Name of the local file that stores the upload |
- | comment | Comment to be associated with the upload |
- | user | Login name of the person submitting the attachment, e.g. 'jsmith' |
+Called to handle text merge.
- Note: All keys should be used read-only, except for comment which can be modified.
+## <a name="ObjectMethod <strong>before_AttachmentS"></a> [[ObjectMethod]] \*beforeAttachmentSaveHandler `($attrHashRef,$topic,$web)`
- Example usage:
+This code provides Plugins with the opportunity to alter an uploaded attachment between the upload and save-to-store processes. It is invoked as per other Plugins.
+
+- `$attrHashRef` - Hash reference of attachment attributes (keys are indicated below)
+- `$topic` - | Topic name
+- `$web` - | Web name
+
+Keys in $attrHashRef:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Key </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ </tr>
+ <tr>
+ <td> attachment </td>
+ <td> Name of the attachment </td>
+ </tr>
+ <tr>
+ <td> tmpFilename </td>
+ <td> Name of the local file that stores the upload </td>
+ </tr>
+ <tr>
+ <td> comment </td>
+ <td> Comment to be associated with the upload </td>
+ </tr>
+ <tr>
+ <td> user </td>
+ <td> Login name of the person submitting the attachment, e.g. 'jsmith' </td>
+ </tr>
+</table>
+
+Note: All keys should be used read-only, except for comment which can be modified.
+
+Example usage:
- <pre>
my( $attrHashRef, $topic, $web ) = @_;
$$attrHashRef{'comment'} .= " (NOTE: Extracted from blah.tar.gz)";
- </pre>
- ---++ ObjectMethod *afterAttachmentSaveHandler* <tt>($attachmentAttrHash,$topic,$web,$error)</tt>
+## <a name="ObjectMethod <strong>after_AttachmentSa"></a> [[ObjectMethod]] \*afterAttachmentSaveHandler `($attachmentAttrHash,$topic,$web,$error)`
+
+deal with an uploaded attachment between the upload and save-to-store processes. It is invoked as per other plugins.
+
+- `$attrHashRef` - Hash reference of attachment attributes (keys are indicated below)
+- `$topic` - | Topic name
+- `$web` - | Web name
+- `$error` - | Error string of save action, empty if OK
+
+Keys in $attrHashRef:
- deal with an uploaded attachment between the upload and save-to-store processes. It is invoked as per other plugins.
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Key </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ </tr>
+ <tr>
+ <td> attachment </td>
+ <td> Name of the attachment </td>
+ </tr>
+ <tr>
+ <td> tmpFilename </td>
+ <td> Name of the local file that stores the upload </td>
+ </tr>
+ <tr>
+ <td> comment </td>
+ <td> Comment to be associated with the upload </td>
+ </tr>
+ <tr>
+ <td> user </td>
+ <td> Login name of the person submitting the attachment, e.g. 'jsmith' </td>
+ </tr>
+</table>
- * =$attrHashRef= - Hash reference of attachment attributes (keys are indicated below)
- * =$topic= - | Topic name
- * =$web= - | Web name
- * =$error= - | Error string of save action, empty if OK
+Note: The hash is **read-only**
- Keys in $attrHashRef:
- | *Key* | *Value* |
- | attachment | Name of the attachment |
- | tmpFilename | Name of the local file that stores the upload |
- | comment | Comment to be associated with the upload |
- | user | Login name of the person submitting the attachment, e.g. 'jsmith' |
+## <a name="ObjectMethod <strong>write_HeaderHandle"></a> [[ObjectMethod]] \*writeHeaderHandler `() -> $headers`
- Note: The hash is *read-only*
+Called by TWiki::writePageHeader. **DEPRECATED** do not use!
- ---++ ObjectMethod *writeHeaderHandler* <tt>() -> $headers</tt>
+**DEPRECATED** Use modifyHeaderHandler instead. it is a lot more flexible, and allows you to modify existing headers as well as add new ones. It also works correctly when multiple plugins want to modify headers.
- Called by TWiki::writePageHeader. *DEPRECATED* do not use!
+## <a name="ObjectMethod <strong>modify_HeaderHandl"></a> [[ObjectMethod]] \*modifyHeaderHandler `(\@headers,$query)`
- *DEPRECATED* Use modifyHeaderHandler instead. it is a lot
- more flexible, and allows you to modify existing headers
- as well as add new ones. It also works correctly when
- multiple plugins want to modify headers.
+## <a name="ObjectMethod <strong>redirect_CgiQueryH"></a> [[ObjectMethod]] \*redirectCgiQueryHandler `() -> $result`
- ---++ ObjectMethod *modifyHeaderHandler* <tt>(\@headers,$query)</tt>
+Called by TWiki::redirect
- ---++ ObjectMethod *redirectCgiQueryHandler* <tt>() -> $result</tt>
+## <a name="ObjectMethod <strong>render_FormFieldFo"></a> [[ObjectMethod]] \*renderFormFieldForEditHandler `($name,$type,$size,$value,$attributes,$possibleValues) -> $html`
- Called by TWiki::redirect
+This handler is called before built-in types are considered. It generates the HTML text rendering this form field, or false, if the rendering should be done by the built-in type handlers.
- ---++ ObjectMethod *renderFormFieldForEditHandler* <tt>($name,$type,$size,$value,$attributes,$possibleValues) -> $html</tt>
+- `$name` - name of form field
+- `$type` - type of form field
+- `$size` - size of form field
+- `$value` - value held in the form field
+- `$attributes` - attributes of form field
+- `$possibleValues` - the values defined as options for form field, if any. May be a scalar (one legal value) or an array (several legal values)
- This handler is called before built-in types are considered. It generates the HTML text rendering this form field, or false, if the rendering should be done by the built-in type handlers.
- * =$name= - name of form field
- * =$type= - type of form field
- * =$size= - size of form field
- * =$value= - value held in the form field
- * =$attributes= - attributes of form field
- * =$possibleValues= - the values defined as options for form field, if any. May be a scalar (one legal value) or an array (several legal values)
- Return HTML text that renders this field. If false, form rendering continues by considering the built-in types.
+Return HTML text that renders this field. If false, form rendering continues by considering the built-in types.
- Note that a common application would be to generate formatting of the
- field involving generation of javascript. Such usually also requires
- the insertion of some common javascript into the page header. Unfortunately,
- there is currently no mechanism to pass that script to where the header of
- the page is visible. Consequentially, the common javascript may have to
- be emitted as part of the field formatting and might be duplicated many
- times throughout the page.
+Note that a common application would be to generate formatting of the field involving generation of javascript. Such usually also requires the insertion of some common javascript into the page header. Unfortunately, there is currently no mechanism to pass that script to where the header of the page is visible. Consequentially, the common javascript may have to be emitted as part of the field formatting and might be duplicated many times throughout the page.
- ---++ ObjectMethod *renderWikiWordHandler* <tt>() -> $result</tt>
+## <a name="ObjectMethod <strong>render_WikiWordHan"></a> [[ObjectMethod]] \*renderWikiWordHandler `() -> $result`
- Change how a WikiWord is rendered
+Change how a [[WikiWord]] is rendered
- Originated from the TWiki:Plugins.SpacedWikiWordPlugin hack
+Originated from the TWiki:Plugins.SpacedWikiWordPlugin hack
<h1><a name="%WIKITOOLNAME% Site-Level Prefer"></a><a name=" %WIKITOOLNAME% Site-Level Prefe"></a> %WIKITOOLNAME% Site-Level Preferences </h1>
<p> This topic defines <strong><em>site-level</em></strong> settings that apply to all users and webs on this [[Main/TWikiSite]]. </p>
<p><strong><em>%X% Note:</em></strong> This topic should be regarded as read-only, so that upgrades can safely overwrite it without risk to your customizations. </p>
- <p> Preference settings local to your site should be set in [[Main/TWikiPreferences]] (this topic is pointed to by {LocalSitePreferences}, which is set by the admin in the <code>configure</code> interface). Settings in [[Main/TWikiPreferences]] will override settings in this topic, and should be used for defining custom settings and variables. </p>
+ <p> Preference settings local to your site should be set in [[Main/TWikiPreferences]] (this topic is pointed to by {LocalSitePreferences}, which is set by the admin in the <a href="http://www.dementia.org/twiki/configure" target="_top">configure</a> interface). Settings in [[Main/TWikiPreferences]] will override settings in this topic, and should be used for defining custom settings and variables. </p>
<p>[[Main/TWikiVariables#PreferencesVariables]] on how to set Preferences Variables. </p>
<p>
</p><input name="prefsaction" type="submit" value="Edit" /> <em>(Click for form-based editing of existing preferences.)</em><div>
<ul>
<li> Some skins have two editors available; the default editor, and a second editor which is usually a WYSIWYG editor (the second editor is used by hitting the WYSIWYG link in <code>pattern</code> or <code>classic</code> skins). If COMPOSER is not set, the second editor will work the same as the <em>default</em> editor. If the WysiwygPlugin is installed and it is set to 'kupu' (the default), then the <strong>Kupu</strong> WYSIWYG editor will be enabled. You can change the setting to use any editor that is enabled by setting the <code>cover</code> parameter on the edit URL. <ul>
<li> Set COMPOSER = kupu </li>
+ <li> Enable content checks before editing </li>
+ <li> Set WYSWIYGPLUGIN_WYSIWYGSKIN = kupu </li>
+ <li> Disable WYSIWYG on pages that contain complex TML. On pages that have complex TML, WYSIWYG will fall back to the default text editor. </li>
+ <li> Set WYSIWYG_EXCLUDE = calls </li>
</ul>
</li>
</ul>
<ul>
<li> Format of images when the <strong><em>link</em></strong> check box is checked: (can be overwritten by user preferences) <ul>
<li> %H% <strong>NOTE:</strong> Keyword <code><b>$name</b></code> gets expanded to filename; <code><b>$comment</b></code> to comment; <code><b>$size</b></code> to <code><b>width="..." height="..."</b></code> attribute of <code><b>img</b></code> tag; <code><b>\t</b></code> to tab and <code><b>\n</b></code> to linefeed (3 spaces for bullets). </li>
- <li> Set ATTACHEDIMAGEFORMAT = \n * $comment: <br />\n <img $size="$size" alt="$name" src="http://www.dementia.org/twiki//view/$name" /></li>
</ul>
</li>
- </ul>
- <p>
+ </ul><pre>
+ * Set ATTACHEDIMAGEFORMAT = \n * $comment: <br />\n <img src="%ATTACHURLPATH%/$name" alt="$name" $size />
+</pre><p>
</p>
<h2><a name="TWiki Platform Settings"></a> TWiki Platform Settings </h2>
<p>
<p>
</p>
<ul>
- <li> TWiki administrator e-mail address: <ul>
- <li> Set WIKIWEBMASTER = <a href="mailto:webmaster@example.com">webmaster@example.com</a></li>
- </ul>
- </li>
- </ul>
- <p>
- </p>
- <ul>
- <li> TWiki administrator name (first name and last name, e.g. <code>Fred Smith</code>): <ul>
- <li> Set WIKIWEBMASTERNAME = TWiki Administrator </li>
- </ul>
- </li>
- </ul>
- <p>
- </p>
- <ul>
<li> 'Mail this topic' mailto: link - can be included in topics, templates or skins <ul>
<li> Set MAILTHISTOPIC = <a href="mailto:?subject=WebHome&body=%TOPICURL%">%MAILTHISTOPICTEXT%</a></li>
</ul>
### <a name="Legacy support"></a> Legacy support
- Support for legacy "EDITTOPIC", used to be hard-coded, now replaced by TMPL:P conditional instantiation
- - Set EDITURL = <http://www.dementia.org/twiki/edit/%WEB%/%TOPIC%?t=1277827220>
+ - Set EDITURL = <http://www.dementia.org/twiki/edit/%WEB%/%TOPIC%?t=1277827363>
- Set EDITTOPIC = [Edit](%EDITURL% Edit Topic - deprecated usage - please see release notes)
## <a name="Plugins Settings"></a> Plugins Settings
- You can enable/disable Plugins using the [configure](http://www.dementia.org/twiki/configure) interface.
+- You can also disable installed plugins in individual webs/topics by defining the %DISABLEDPLUGINS% TWiki variable to be a list of plugins to disable e.g.
+ - Set DISABLEDPLUGINS = [[SpreadSheetPlugin]],EditTablePlugin
+ - Currently, %DISABLEDPLUGINS% is set to "%DISABLEDPLUGINS%"
- Currently activated Plugins: [[SpreadSheetPlugin]], [[CommentPlugin]], [[EditTablePlugin]], [[InterwikiPlugin]], [[PreferencesPlugin]], [[SlideShowPlugin]], [[SmiliesPlugin]], [[TablePlugin]], [[TwistyPlugin]]
+
- %T% **NOTE:** You can enable/disable Plugins by passing a comma-separated list of Plugin names in the `debugenableplugins` url parameter; for example, [[http://www.dementia.org/twiki/view/%WEB%/%TOPIC%?debugenableplugins=SmiliesPlugin|%WEB%/%TOPIC%?debugenableplugins=SmiliesPlugin]] will display this topic with all Plugins disabled except the [[SmiliesPlugin]].
- Detailed diagnostics can be found in [[InstalledPlugins]]
- Legacy settings:
- - Set DISABLEDPLUGINS = The DISABLEDPLUGINS variable is no longer supported
- Set INSTALLEDPLUGINS = The INSTALLEDPLUGINS variable is no longer supported. You can set the Plugins execution order using the [configure](http://www.dementia.org/twiki/configure) interface.
+<a name="RenderingShortcuts"></a>
+
## <a name="Rendering Shortcuts Settings"></a> Rendering Shortcuts Settings
- Line break:
- Bullet sign:
- Set BULLET = •
+- Vertical bar / pipe symbol:
+ - Set VBAR = |
+
- Line break and bullet with different levels of indentation:
- Set BB = <br />•
- Set BB2 = <br /> •
- Set BB3 = <br /> •
- Set BB4 = <br /> •
+- **_Hint:_** Above shortcuts are useful in TWiki tables where you cannot use newlines
+
+<a name="DocGraphics"></a>
+
+- Graphics used in TWiki documentation - view all images in %ICONTOPIC%. _(There are various ways to set up common icons as text variables. This is simply one quick approach.)_:
+ - Set H = <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="HELP" title="HELP" />
+ - Set I = <img src="http://www.dementia.org/twiki//view/Main/WebHome/tip.gif" width="16" height="16" alt="IDEA!" title="IDEA!" />
+ - Set M = <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowright.gif" width="16" height="16" alt="MOVED TO..." title="MOVED TO..." />
+ - Set N = <img src="http://www.dementia.org/twiki//view/Main/WebHome/new.gif" width="30" height="16" alt="NEW" title="NEW" />
+ - Set P = <img src="http://www.dementia.org/twiki//view/Main/WebHome/pencil.gif" width="16" height="16" alt="REFACTOR" title="REFACTOR" />
+ - Set Q = <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="QUESTION?" title="QUESTION?" />
+ - Set S = <img src="http://www.dementia.org/twiki//view/Main/WebHome/starred.gif" width="16" height="16" alt="PICK" title="PICK" />
+ - Set T = <img src="http://www.dementia.org/twiki//view/Main/WebHome/tip.gif" width="16" height="16" alt="TIP" title="TIP" />
+ - Set U = <img src="http://www.dementia.org/twiki//view/Main/WebHome/updated.gif" width="55" height="16" alt="UPDATED" title="UPDATED" />
+ - Set X = <img src="http://www.dementia.org/twiki//view/Main/WebHome/warning.gif" width="16" height="16" alt="ALERT!" title="ALERT!" />
+ - Set Y = <img src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" height="16" alt="DONE" title="DONE" />
+
- Colored text: (see more [[StandardColors]]) <table border="1" cellpadding="0" cellspacing="0">
<tr>
<td> You type: </td>
* Set WHITE = <font color="#ffffff">
* Set ENDCOLOR = </font>
-<a name="DocGraphics"></a>
-
-- Graphics used in TWiki documentation - view all images in %ICONTOPIC%. _(There are various ways to set up common icons as text variables. This is simply one quick approach.)_:
- - Set H = <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="HELP" title="HELP" />
- - Set I = <img src="http://www.dementia.org/twiki//view/Main/WebHome/tip.gif" width="16" height="16" alt="IDEA!" title="IDEA!" />
- - Set M = <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowright.gif" width="16" height="16" alt="MOVED TO..." title="MOVED TO..." />
- - Set N = <img src="http://www.dementia.org/twiki//view/Main/WebHome/new.gif" width="30" height="16" alt="NEW" title="NEW" />
- - Set P = <img src="http://www.dementia.org/twiki//view/Main/WebHome/pencil.gif" width="16" height="16" alt="REFACTOR" title="REFACTOR" />
- - Set Q = <img src="http://www.dementia.org/twiki//view/Main/WebHome/help.gif" width="16" height="16" alt="QUESTION?" title="QUESTION?" />
- - Set S = <img src="http://www.dementia.org/twiki//view/Main/WebHome/starred.gif" width="16" height="16" alt="PICK" title="PICK" />
- - Set T = <img src="http://www.dementia.org/twiki//view/Main/WebHome/tip.gif" width="16" height="16" alt="TIP" title="TIP" />
- - Set U = <img src="http://www.dementia.org/twiki//view/Main/WebHome/updated.gif" width="55" height="16" alt="UPDATED" title="UPDATED" />
- - Set X = <img src="http://www.dementia.org/twiki//view/Main/WebHome/warning.gif" width="16" height="16" alt="ALERT!" title="ALERT!" />
- - Set Y = <img src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" height="16" alt="DONE" title="DONE" />
-
## <a name="Miscellaneous Settings"></a> Miscellaneous Settings
-- Background color of non existing topic: ( default `cornsilk` or `#FFFFCE` )
- - Set NEWTOPICBGCOLOR = #FFFFCE
-
-- Font color of non existing topic: ( default `#0000FF` )
- - Set NEWTOPICFONTCOLOR = #0000FF
+- Format of a [[NewWikiWord]] link: %BR%
+ - default setting:
+ - Set NEWLINKFORMAT = <span>$text[?](http://www.dementia.org/twiki/edit/$web/$topic?topicparent=%WEB%.%TOPIC% Create this topic)</span>
+ - alternative setting:
+ - #Set NEWLINKFORMAT = [$text](http://www.dementia.org/twiki/edit/$web/$topic?topicparent=%WEB%.%TOPIC% Create this topic)
- [[PreviewBackground]] image:
- Set PREVIEWBGIMAGE = ![preview2bg.gif](http://www.dementia.org/twiki//view/TWiki/PreviewBackground/preview2bg.gif)
+- User-friendly synonyms for MAINWEB and TWIKIWEB
+ - Set USERSWEB = Main
+ - Set SYSTEMWEB = TWiki
+ - Set DOCWEB = TWiki
+
## <a name="Access Control Settings"></a> Access Control Settings
- Users or groups allowed to change or rename this %TOPIC% topic:
- Set ALLOWTOPICCHANGE = [[TWikiAdminGroup]]
- - Set ALLOWTOPICRENAME = [[TWikiAdminGroup]]
+- By default, only admins can create webs in the root
+ - Set ALLOWROOTCHANGE = [[TWikiAdminGroup]]
## <a name="Creating New Preference Variable"></a> Creating New Preference Variables
<li><a href="#Package =TWiki::Prefs="> Package TWiki::Prefs</a><ul>
<li><a href="#ClassMethod <strong>new</strong> ($session[,$ca"> ClassMethod new <tt>($session[,$cache])</tt></a></li>
<li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
- <li><a href="#ObjectMethod *push_GlobalPrefere"> ObjectMethod pushGlobalPreferences <tt>()</tt></a></li>
<li><a href="#ObjectMethod <strong>pushPreferences</strong> ("> ObjectMethod pushPreferences <tt>($web,$topic,$type)</tt></a></li>
<li><a href="#ObjectMethod *push_WebPreference"> ObjectMethod pushWebPreferences <tt>($web)</tt></a></li>
+ <li><a href="#ObjectMethod *push_GlobalPrefere"> ObjectMethod pushGlobalPreferences <tt>()</tt></a></li>
<li><a href="#ObjectMethod *push_PreferencesVa"> ObjectMethod pushPreferencesValues <tt>($type,\%values)</tt></a></li>
<li><a href="#ObjectMethod <strong>mark</strong> ()"> ObjectMethod mark <tt>()</tt></a></li>
<li><a href="#ObjectMethod <strong>resetTo</strong> ($mark)"> ObjectMethod resetTo <tt>($mark)</tt></a></li>
1. breaking circular references to allow garbage collection in persistent environments
-## <a name="ObjectMethod <strong>push_GlobalPrefere"></a> [[ObjectMethod]] \*pushGlobalPreferences `()`
-
-Add global preferences to this preferences stack.
-
## <a name="ObjectMethod <strong>pushPreferences</strong> ("></a> [[ObjectMethod]] **pushPreferences** `($web,$topic,$type)`
- `$web` - web to read from
Pushes web preferences. Web preferences for a particular web depend on the preferences of all containing webs.
+## <a name="ObjectMethod <strong>push_GlobalPrefere"></a> [[ObjectMethod]] \*pushGlobalPreferences `()`
+
+Add global preferences to this preferences stack.
+
## <a name="ObjectMethod <strong>push_PreferencesVa"></a> [[ObjectMethod]] \*pushPreferencesValues `($type,\%values)`
Push a new preference level using type and values given
All manual sections in one big page:
-- [[TWiki Documentation|Main/TWikiDocumentation]] (960k)
+- [[TWiki Documentation|Main/TWikiDocumentation]] (1MB size, 175 printed pages)
Manual sections in separate pages:
11. [[TWiki Templates|Main/TWikiTemplates]]
12. [[TWiki Skins (visual layout)|Main/TWikiSkins]]
13. [[TWiki MetaData|Main/TWikiMetaData]]
-14. [[TWiki Plugins|Main/TWikiPlugins]]
-15. [[TWiki::Func Module|Main/TWikiFuncDotPm]]
-16. [[TWiki CGI and Command Line Scripts|Main/TWikiScripts]]
-17. [[TWiki Site Tools|Main/TWikiSiteTools]]
-18. [[Managing Topics|Main/ManagingTopics]]
-19. [[Managing Webs|Main/ManagingWebs]]
-20. [[Managing Users|Main/ManagingUsers]]
+14. [[TWiki Add-Ons|Main/TWikiAddOns]]
+15. [[TWiki Contribs|Main/TWikiContribs]]
+16. [[TWiki Plugins|Main/TWikiPlugins]]
+17. [[TWiki::Func Module|Main/TWikiFuncDotPm]]
+18. [[TWiki CGI and Command Line Scripts|Main/TWikiScripts]]
+19. [[TWiki Site Tools|Main/TWikiSiteTools]]
+20. [[Managing Topics|Main/ManagingTopics]]
+21. [[Managing Webs|Main/ManagingWebs]]
+22. [[Managing Users|Main/ManagingUsers]]
- **Appendices**
- [[A: TWiki Development Timeline|Main/TWikiHistory]]
- TWiki:TWiki.TWikiAdminCookBook: Some tips that can be applied **before installation**
- [[InstantEnhancements]]: Simple tips (using just browser, no install needed) and quick (max couple of minutes).
- [[AdminToolsCategory]]: Topics an admin typically needs, all in one page
+- [[TWikiDocGraphics]]: Collection of useful icons for TWiki applications
**_Related Topics:_** [[UserDocumentationCategory]], [[AdminDocumentationCategory]], [[DeveloperDocumentationCategory]]
# <a name="Registration"></a> Registration
-To edit pages on this [[TWikiSite]], you must have a registered user name and password.
+**To edit pages on this [[TWikiSite]], you must have a registered user name and password.**
%H% **Note:** Registered users can [[change|TWiki/ChangePassword]] and [[reset|TWiki/ResetPassword]] their passwords.
-To register as a new user, simply fill out this form:
-
**Important:** the information provided in this form will be stored in a database on the TWiki server. This database is accessible to anyone who can access the server through the web (though passwords will be encrypted, and e-mail addresses will be obfusticated to help prevent spamming). Your country, or the country where the server is hosted, may have Data Protection laws governing the maintenance of such databases. If you are in doubt, you should contact [](mailto:?subject=Data%20Protection%20Policy) for details of the Data Protection Policy of this TWiki server before registering.
+<form action="http://www.dementia.org/twiki/register/Main/WebHome" method="post">
+ <div>
+ <div><strong>To register as a new user, simply fill out this form:</strong></div>
+ <div>
+ <table border="0" cellpadding="0" cellspacing="6">
+ <tr>
+ <td>
+ </td>
+ <td>Fields marked <code><font color="red">**</font></code> are required</td>
+ </tr>
+ <tr>
+ <td align="right"> First Name: </td>
+ <td><input name="Twk1FirstName" onblur="this.form.Twk1WikiName.value=capitalise(this.value)+capitalise(this.form.Twk1LastName.value)" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
+ </tr>
+ <tr>
+ <td align="right"> Last Name: </td>
+ <td><input name="Twk1LastName" onblur="this.form.Twk1WikiName.value=capitalise(this.form.Twk1FirstName.value)+capitalise(this.value)" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
+ </tr>
+ <tr>
+ <td align="right"> (identifies you to others) [[Main/WikiName]]: </td>
+ <td><input name="Twk1WikiName" onblur="" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td align="right"> E-mail address: </td>
+ <td><input name="Twk1Email" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
+ </tr>
+ <tr>
+ <td> %BESPOKE_PASSWORD% </td>
+ </tr>
+ <tr>
+ <td align="right"> Organisation name: </td>
+ <td><input name="Twk0OrganisationName" size="40" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td align="right"> Organisation URL: </td>
+ <td><input name="Twk0OrganisationURL" onblur="if(this.value=='http://') { this.value='' }" onfocus="if(this.value=='') { this.value='http://' }" size="40" type="text" /></td>
+ </tr>
+ <tr>
+ <td align="right"> Country: </td>
+ <td><select name="Twk1Country" size="1"><option selected value="">Select...</option>
+ <option>USA</option>
+ <option>Albania</option>
+ <option>Algeria</option>
+ <option>Andorra</option>
+ <option>Angola</option>
+ <option>Argentina</option>
+ <option>Armenia</option>
+ <option>Aruba</option>
+ <option>Australia</option>
+ <option>Austria</option>
+ <option>Azerbaijan</option>
+ <option>Bahrain</option>
+ <option>Bangladesh</option>
+ <option>Belarus</option>
+ <option>Belgium</option>
+ <option>Belize</option>
+ <option>Benin</option>
+ <option>Bhutan</option>
+ <option>Bolivia</option>
+ <option>Bosnia and Hercegovina</option>
+ <option>Brazil</option>
+ <option>Bulgaria</option>
+ <option>Burundi</option>
+ <option>Cambodia</option>
+ <option>Cameroon</option>
+ <option>Canada</option>
+ <option>Central African Republic</option>
+ <option>Chile</option>
+ <option>China</option>
+ <option>Colombia</option>
+ <option>Congo</option>
+ <option>Costa Rica</option>
+ <option>Croatia</option>
+ <option>Cuba</option>
+ <option>Cyprus</option>
+ <option>Czech Republic</option>
+ <option>Denmark</option>
+ <option>Ecuador</option>
+ <option>Egypt</option>
+ <option>El Salvador</option>
+ <option>Estonia</option>
+ <option>Ethiopia</option>
+ <option>Fiji</option>
+ <option>Finland</option>
+ <option>France</option>
+ <option>Georgia</option>
+ <option>Germany</option>
+ <option>Gibraltar</option>
+ <option>Greece</option>
+ <option>Guam</option>
+ <option>Guatemala</option>
+ <option>Haiti</option>
+ <option>Hong Kong</option>
+ <option>Hungary</option>
+ <option>Iceland</option>
+ <option>India</option>
+ <option>Indonesia</option>
+ <option>Iran</option>
+ <option>Iraq</option>
+ <option>Ireland</option>
+ <option>Israel</option>
+ <option>Italy</option>
+ <option>Jamaica</option>
+ <option>Japan</option>
+ <option>Jordan</option>
+ <option>Kazakstan</option>
+ <option>Kenya</option>
+ <option>Korea</option>
+ <option>Kuwait</option>
+ <option>Kyrgyz Rebublic</option>
+ <option>Laos</option>
+ <option>Latvia</option>
+ <option>Lebanon</option>
+ <option>Liberia</option>
+ <option>Liechtenstein</option>
+ <option>Lithuania</option>
+ <option>Luxembourg</option>
+ <option>Libya</option>
+ <option>Macao</option>
+ <option>Macedonia</option>
+ <option>Malaysia</option>
+ <option>Malawi</option>
+ <option>Malta</option>
+ <option>Mauritius</option>
+ <option>Mexico</option>
+ <option>Moldova</option>
+ <option>Monaco</option>
+ <option>Morocco</option>
+ <option>Mozambique</option>
+ <option>Namibia</option>
+ <option>Nepal</option>
+ <option>Netherlands</option>
+ <option>New Zealand</option>
+ <option>Nicaragua</option>
+ <option>Nigeria</option>
+ <option>Norway</option>
+ <option>Oman</option>
+ <option>Pakistan</option>
+ <option>Panama</option>
+ <option>Paraguay</option>
+ <option>Peru</option>
+ <option>Philippines</option>
+ <option>Poland</option>
+ <option>Portugal</option>
+ <option>Romania</option>
+ <option>Russia</option>
+ <option>Saudi Arabia</option>
+ <option>Senegal</option>
+ <option>Singapore</option>
+ <option>Slovakia</option>
+ <option>Slovenia</option>
+ <option>South Africa</option>
+ <option>Spain</option>
+ <option>Sri Lanka</option>
+ <option>Suriname</option>
+ <option>Sweden</option>
+ <option>Switzerland</option>
+ <option>Syria</option>
+ <option>Taiwan</option>
+ <option>Tanzania</option>
+ <option>Thailand</option>
+ <option>Tajikistan</option>
+ <option>Tunisia</option>
+ <option>Turkey</option>
+ <option>Turkmenistan</option>
+ <option>Uganda</option>
+ <option>Ukraine</option>
+ <option>United Arab Emirates</option>
+ <option>United Kingdom</option>
+ <option>Uruguay</option>
+ <option>USA</option>
+ <option>Uzbekistan</option>
+ <option>Vatican City</option>
+ <option>Venezuela</option>
+ <option>Vietnam</option>
+ <option>Yemen</option>
+ <option>Yugoslavia</option>
+ <option>Zaire</option>
+ <option>Zambia</option>
+ <option>Zimbabwe</option>
+ <option value="Other Country">Other Country</option></select> <code><font color="red">**</font></code></td>
+ </tr>
+ <tr>
+ <td align="right" valign="top"> Comments:<br /> (optional) </td>
+ <td>
+ <textarea cols="38" name="Twk0Comment" rows="4" wrap="virtual">
+ </textarea>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div> When %WIKITOOLNAME% receives the form, it will mail an account activation code to the e-mail address you gave above. Enter that activation code in the following screen, or follow the link in the e-mail, to activate your account. Once your account is activated, %WIKITOOLNAME% will: <ul>
+ <li> Finish creating an account for you, so that you can start editing pages using your [[Main/WikiName]]. </li>
+ <li> Create your personal %WIKITOOLNAME% topic using your [[Main/WikiName]] as topic name, and add the data you submitted to the topic. </li>
+ <li> Add your name to the list of users in the [[Main/TWikiUsers]] topic in the Main web. </li>
+ <li> Send you a confirmation of your registration by e-mail. </li>
+ </ul> Once registered you can login using your %LOGIN_METHOD_IN_THIS_SITE% and password. </div>
+ <div><input name="rx" type="hidden" value="%BLACKLISTPLUGIN{ action="magic" }%" /> <input name="topic" type="hidden" value="%TOPIC%" /> <input name="action" type="hidden" value="register" /> <input type="submit" value=" Submit " /></div>
+ </div>
+</form>
+
<div>
- <form action="http://www.dementia.org/twiki/register/Main/WebHome" method="post">
- <table border="1">
- <tr>
- <td align="right"> First Name: </td>
- <td><input name="Twk1FirstName" onblur="this.form.Twk1WikiName.value=capitalise(this.value)+capitalise(this.form.Twk1LastName.value)" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
- </tr>
- <tr>
- <td align="right"> Last Name: </td>
- <td><input name="Twk1LastName" onblur="this.form.Twk1WikiName.value=capitalise(this.form.Twk1FirstName.value)+capitalise(this.value)" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
- </tr>
- <tr>
- <td align="right"> (identifies you to others) [[Main/WikiName]]: </td>
- <td><input name="Twk1WikiName" onblur="" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
- </tr>
- <tr>
- <td>
- <p>
- </p>
- </td>
- </tr>
- <tr>
- <td align="right"> E-mail address: </td>
- <td><input name="Twk1Email" size="40" type="text" value="" /> <code><font color="red">**</font></code></td>
- </tr>
- <tr>
- <td> %BESPOKE_PASSWORD% </td>
- </tr>
- <tr>
- <td align="right"> Organisation name: </td>
- <td><input name="Twk0OrganisationName" size="40" type="text" value="" /></td>
- </tr>
- <tr>
- <td align="right"> Organisation URL: </td>
- <td><input name="Twk0OrganisationURL" onblur="if(this.value=='http://') { this.value='' }" onfocus="if(this.value=='') { this.value='http://' }" size="40" type="text" /></td>
- </tr>
- <tr>
- <td align="right"> Country: </td>
- <td><select name="Twk1Country" size="1"><option selected value="">Select...</option>
- <option>USA</option>
- <option>Albania</option>
- <option>Algeria</option>
- <option>Andorra</option>
- <option>Angola</option>
- <option>Argentina</option>
- <option>Armenia</option>
- <option>Aruba</option>
- <option>Australia</option>
- <option>Austria</option>
- <option>Azerbaijan</option>
- <option>Bahrain</option>
- <option>Bangladesh</option>
- <option>Belarus</option>
- <option>Belgium</option>
- <option>Belize</option>
- <option>Benin</option>
- <option>Bhutan</option>
- <option>Bolivia</option>
- <option>Bosnia and Hercegovina</option>
- <option>Brazil</option>
- <option>Bulgaria</option>
- <option>Burundi</option>
- <option>Cambodia</option>
- <option>Cameroon</option>
- <option>Canada</option>
- <option>Central African Republic</option>
- <option>Chile</option>
- <option>China</option>
- <option>Colombia</option>
- <option>Congo</option>
- <option>Costa Rica</option>
- <option>Croatia</option>
- <option>Cuba</option>
- <option>Cyprus</option>
- <option>Czech Republic</option>
- <option>Denmark</option>
- <option>Ecuador</option>
- <option>Egypt</option>
- <option>El Salvador</option>
- <option>Estonia</option>
- <option>Ethiopia</option>
- <option>Fiji</option>
- <option>Finland</option>
- <option>France</option>
- <option>Georgia</option>
- <option>Germany</option>
- <option>Gibraltar</option>
- <option>Greece</option>
- <option>Guam</option>
- <option>Guatemala</option>
- <option>Haiti</option>
- <option>Hong Kong</option>
- <option>Hungary</option>
- <option>Iceland</option>
- <option>India</option>
- <option>Indonesia</option>
- <option>Iran</option>
- <option>Iraq</option>
- <option>Ireland</option>
- <option>Israel</option>
- <option>Italy</option>
- <option>Japan</option>
- <option>Jordan</option>
- <option>Kazakstan</option>
- <option>Kenya</option>
- <option>Korea</option>
- <option>Kuwait</option>
- <option>Kyrgyz Rebublic</option>
- <option>Laos</option>
- <option>Latvia</option>
- <option>Lebanon</option>
- <option>Liberia</option>
- <option>Liechtenstein</option>
- <option>Lithuania</option>
- <option>Luxembourg</option>
- <option>Libya</option>
- <option>Macao</option>
- <option>Macedonia</option>
- <option>Malaysia</option>
- <option>Malawi</option>
- <option>Malta</option>
- <option>Mexico</option>
- <option>Moldova</option>
- <option>Monaco</option>
- <option>Morocco</option>
- <option>Mozambique</option>
- <option>Namibia</option>
- <option>Nepal</option>
- <option>Netherlands</option>
- <option>New Zealand</option>
- <option>Nicaragua</option>
- <option>Nigeria</option>
- <option>Norway</option>
- <option>Oman</option>
- <option>Pakistan</option>
- <option>Panama</option>
- <option>Paraguay</option>
- <option>Peru</option>
- <option>Philippines</option>
- <option>Poland</option>
- <option>Portugal</option>
- <option>Romania</option>
- <option>Russia</option>
- <option>Saudi Arabia</option>
- <option>Senegal</option>
- <option>Singapore</option>
- <option>Slovakia</option>
- <option>Slovenia</option>
- <option>South Africa</option>
- <option>Spain</option>
- <option>Sri Lanka</option>
- <option>Suriname</option>
- <option>Sweden</option>
- <option>Switzerland</option>
- <option>Syria</option>
- <option>Taiwan</option>
- <option>Tanzania</option>
- <option>Thailand</option>
- <option>Tajikistan</option>
- <option>Tunisia</option>
- <option>Turkey</option>
- <option>Turkmenistan</option>
- <option>Uganda</option>
- <option>Ukraine</option>
- <option>United Arab Emirates</option>
- <option>United Kingdom</option>
- <option>Uruguay</option>
- <option>USA</option>
- <option>Uzbekistan</option>
- <option>Vatican City</option>
- <option>Venezuela</option>
- <option>Vietnam</option>
- <option>Yemen</option>
- <option>Yugoslavia</option>
- <option>Zaire</option>
- <option>Zambia</option>
- <option>Zimbabwe</option>
- <option value="Other Country">Other Country</option></select> <code><font color="red">**</font></code></td>
- </tr>
- <tr>
- <td align="right" valign="top"> Comments:<br /> (optional) </td>
- <td>
- <textarea cols="38" name="Twk0Comment" rows="4" wrap="virtual">
- </textarea>
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td><span>Fields marked <code><font color="red">**</font></code> are required</span></td>
- </tr>
- <tr>
- <td align="right" valign="top"> <input name="rx" type="hidden" value="%BLACKLISTPLUGIN{ action="magic" }%" /><input name="topic" type="hidden" value="%TOPIC%" /><input name="action" type="hidden" value="register" /></td>
- <td><input type="submit" value=" Submit " /></td>
- </tr>
- </table>
- </form>
+ <ul>
+ <li><img align="top" alt="info" border="0" height="16" src="http://www.dementia.org/twiki//view/Main/WebHome/info.gif" width="16" /> If you have any questions about registration, send an e-mail to <a href="mailto:?subject=%TOPIC% Question"></a>. </li>
+ </ul>
</div>
-When %WIKITOOLNAME% receives the form, it will mail an account activation code to the e-mail address you gave above. Enter that activation code in the following screen, or follow the link in the e-mail, to activate your account. Once your account is activated, %WIKITOOLNAME% will:
-
-- Finish creating an account for you, so that you can start editing pages using your [[WikiName]].
-- Create your personal %WIKITOOLNAME% topic using your [[WikiName]] as topic name, and add the data you submitted to the topic.
-- Add your name to the list of users in the [[TWikiUsers]] topic in the Main web.
-- Send you a confirmation of your registration by e-mail.
-
-Once registered you can login using your %LOGIN\_METHOD\_IN\_THIS\_SITE% and password.
-
-If you have any questions about registration, send an e-mail to [](mailto:?subject=%TOPIC% Question).
-
<table bgcolor="yellow">
<tr>
<td><strong><em>Note to administrator:</em></strong> The form fields can be customized to the needs of your organization. See also [[Main/TWikiUserAuthentication]]. In case you are registering users through other means, replace this topic with a note describing how to get registered in TWiki. In any case, remove this note. </td>
E-mail addresses for new users are no longer stored in home topics. Instead, the password manager API has been extended to support storing e-mails.
-The default password manager stores e-mails in the `.htpasswd` file - you can safely edit this file with a text editor to modify the info field that contains the e-mail addresses (the format of each line in this file is <code>username>::</code>, and TWiki expects the info field to be a ;-separated list of e-mail addresses). Password managers for other systems e.g. LDAP can esily be extended to support the new API. If the password manager does not have an e-mail address for a user, then TWiki will still look in the users' personal topic.
+The default password manager stores e-mails in the `.htpasswd` file - you can safely edit this file with a text editor to modify the info field that contains the e-mail addresses (the format of each line in this file is `<username>:<password>:<info>`, and TWiki expects the info field to be a ;-separated list of e-mail addresses). Password managers for other systems e.g. LDAP can esily be extended to support the new API. If the password manager does not have an e-mail address for a user, then TWiki will still look in the users' personal topic.
The script `tools/upgrade_emails.pl` can be used to extract e-mail addresses for existing TWiki users from personal topics, and add them to the password manager.
--- /dev/null
+# <a name="TWiki Release 4.1 (Edinburgh), 1"></a><a name=" TWiki Release 4.1 (Edinburgh), "></a> TWiki Release 4.1 (Edinburgh), 17 Jan 2007
+
+<div>
+ <ul>
+ <li><a href="#Introduction"> Introduction</a></li>
+ <li><a href="#New Features Highlights"> New Features Highlights</a></li>
+ <li><a href="#Deprecation Notice"> Deprecation Notice</a></li>
+ <li><a href="#Bug Fix Highlights"> Bug Fix Highlights</a></li>
+ <li><a href="#TWiki 4.1.0 Minor Release - Deta"> TWiki 4.1.0 Minor Release - Details</a><ul>
+ <li><a href="#TWiki 4.1.0 Fixes"> TWiki 4.1.0 Fixes</a></li>
+ <li><a href="#TWiki 4.1.0 Enhancements"> TWiki 4.1.0 Enhancements</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="Introduction"></a> Introduction
+
+TWiki Release 4.1 is a minor release. TWiki releases are either major (major new features and changes in architecture), minor (enhancements and bug fixes), or patch releases (bug fixes only) which can be installed as upgrades on production installations.
+
+TWiki Release 4.1 introduces some good enhancements and quite many bug fixes since 4.0.5. It requires some manual work to upgrade from TWiki 4.0.5 to 4.1.0. Depending on the tailoring you have made it may take between 10 minutes to two hours to do an upgrade. If you have not made any changes to the skins the upgrade is for sure an effort that takes less than 30 minutes.
+
+The development team has done everything to maintain full compatibility with topics generated in TWiki-4.0 and there are no changes to the topic format.
+
+## <a name="New Features Highlights"></a> New Features Highlights
+
+- **Easier Installation and Upgrade**
+ - Plugins can now be installed from the configure script.
+ - The loading of plugin preferences settings has been moved earlier in the preferences evaluation order so that plugin settings can be redefined in [[Main.TWikiPreferences|Main/TWikiPreferences]], WebPreferences and in topics. To make TWiki upgrades easier, it is recommended to set the plugin settings in Main.TWikiPreferences, and not to customize the settings in the plugin topic. For example, to change the TEMPLATES setting of the [[CommentPlugin]], create a new COMMENTPLUGIN\_TEMPLATES setting in Main.TWikiPreferences.
+ - Plugin settings can now be defined in configure instead of in the plugin topic (requires that the individual plugin has implemented this). TWiki performs slightly better by not looking for preferences settings in plugin topics.
+ - Configure no longer shows many unnecessary errors when run first time.
+ - The webmaster email address is now defined in configure instead of TWikiPreferences.
+ - Default file access rights in the distribution package have been changed to be more universally defined and in line with the default access rights for new topics.
+
+- **Usability Enhancements**
+ - Redesigned result page when typing incomplete topic name into the Jump box, so that it is possible to quickly navigate to a topic, also in a very large TWiki installation. For example, "I know there is a topic about Ajax somewhere in the Eng web. OK, let my type `Eng.ajax` into the Jump box... Here we go, the third link is the AjaxCookbook I was looking for."
+ - Many user documentation improvements.
+ - URL parameters maintained in Table of Contents links so you can stay in a temporary skin (e.g. print) and keep URLPARAM values when you click the TOC links
+ - Attachment tables now sorted alphabetically.
+ - Better printing of tables and verbatim text in [[PatternSkin]].
+
+- **Application Platform Enhancements**
+ - Auto-incremented topic name on save with AUTOINC<n> in topic name; used by TWiki applications to create topic based database records.
+ - The edit and save scripts support a `redirectto` parameter to redirect to a topic or a URL; for security, redirect to URL needs to be enabled with a `{AllowRedirectUrl}` configure flag.
+ - [[CommentPlugin]] supports the `redirectto` parameter to redirect to a URL or link to TWiki topic after submitting comment.
+ - The `topic` URL parameter also respects the `{AllowRedirectUrl}` configure flag so redirects to URLs can be disabled which could be abused for phishing attacks.
+ - The view script supports a `section` URL parameter to view just a named section within a topic. Useful for simple AJAX type applications.
+ - New plugin handler for content move.
+ - Enhancements for Ajax based applications with TWiki:Plugins/YahooUserInterfaceContrib and TWiki:Plugins.TWikiAjaxContrib (available at twiki.org).
+
+- **Search Enhancements**
+ - METASEARCH handles a format parameter like SEARCH.
+ - Topic not found / [[WebTopicViewTemplate]] search now case insensitive.
+ - [[FormattedSearch]] header supporting `$nop`, `$quot`, `$percnt`, `$dollar`.
+ - Add search by createdate option to SEARCH.
+ - New newline option for SEARCH to protect e.g. formfields from being altered during rendering in SEARCH.
+
+- **Skins and Templates Enhancements**
+ - Support for templates to have text rendering affecting aspect outside of textarea.
+ - Pattern skin dependence on [[TwistyPlugin]] instead of [[TwistyContrib]] (performance improvement.)
+ - Don't strip newlines from the front of TMPL:DEFs.
+
+- **Miscellaneous Feature Enhancements**
+ - Change in [[WikiWord]] definition: Numbers are treated as lower case letters, e.g. Y2K is now a WikiWord.
+ - Configurable template load path. Advanced feature for those that work with customized templates.
+ - Added %VBAR% to [[TWikiPreferences]] for vertical bar symbol.
+ - On topic creation, force initial letter of topic name to be upper case.
+ - Allow date format in form fields.
+ - Enhance REVINFO\{\} variable with same date qualifiers as GMTIME\{\}.
+ - [[WebTopicCreator]] - adding ability to select a template from any topic name ending in ...Template
+ - Functionality of DateFieldPlugin merged into core
+
+- **Enhancements of Pre-installed Plugins**
+ - [[CommentPlugin]]: Supports removal of comment prompt after a comment is made.
+ - [[EditTablePlugin]]: Default date format based on [[JSCalendarContrib]] instead of plugin topic.
+ - [[InterwikiPlugin]]: Supports custom link formats.
+ - [[SlideShowPlugin]]: Preserves URL parameters in slideshow
+ - [[SpreadSheetPlugin]]: New functions `$LISTRAND()`, `$LISTSHUFFLE()`, `$LISTTRUNCATE()`.
+ - [[TablePlugin]]: New attribute `cellborder`.
+ - [[TablePlugin]]: Highlight the sorted column with custom colors; includes also a general cosmetic update of default colors.
+ - [[TablePlugin]]: Support for initsort on more than one table. A table with the initsort option is initsorted UNLESS it is sorted by clicking on a column header. If you click on a header of another table all other tables goes back to the default sort defined by initsort or not sorted if no initsort, and the new table is sorted based on the user clicking on a table header.
+
+## <a name="Deprecation Notice"></a> Deprecation Notice
+
+- Usage of [[TWikiForms]] for setting preferences has been deprecated in favor of TWiki:Plugins.PreferencesPlugin. PreferencesPlugin has been included since TWiki 4.0.0 to allow more convenient editing of preferences. This plugin provides input controls, such as menus, radio buttons, and checkboxes to select preference settings.
+
+## <a name="Bug Fix Highlights"></a> Bug Fix Highlights
+
+- **User Topics**
+ - Unused settings on users home topic removed. (no need to update existing user topics - they are still compatible with all features.)
+ - An attribute column has been added to the UserForm used on users home topic. If you tailored this form just continue using your existing form.
+
+- **Security**
+ - The `topic=""` parameter to the view script now respects the `{AllowRedirectUrl}` configure flag so you can disable redirecting to URLs which could be abused for phishing attacks.
+ - More robust authentication denial when redirected after failed authentication (follow up from TWiki:Codev.SecurityAlert-CVE-2006-6071.)
+ - More robust [[TablePlugin]], guarding against a sort with very high non-existing column numbers, which may result in a high server load.
+
+- **User Interface**
+ - Left Bar should not show logout when using ApacheLogin because you cannot in reality log out.
+ - Can't de-select all options in a checkbox.
+ - Duplicate values in checkbox and select when creating a new topic.
+ - Form initialization with defaults not working.
+ - Multiselect for forms does not work.
+ - Size of attachment should only be shown for the most recent version.
+ - [[JSCalendarContrib]] only works with IE in [[PatternSkin]].
+
+- **API, Skins and Templates**
+ - The print view handled is updated to allow custom templates that can be printed. Note that the viewprint template is subject to additional changes in next releases.
+ - The Kupu WYSIWYG editor has been split out of [[WysiwygPlugin]] into [[KupuContrib]] to allow other editors to be integrated with TWiki.
+
+- **Printing**
+ - Verbatim Text not completly printing with IE6.0.
+ - Printable loses URL parameters.
+ - Printing in Firefox truncates tables.
+
+- **Miscellaneous Bug Fixes**
+ - Don't include anything when trying to include a non existing section.
+ - Turn off `{AutoAttachPubFiles}` in default distribution.
+ - The edit url parameters are not properly passed through change form screen and checkpoint save.
+ - Formfield not correctly rendered when type is textarea.
+ - IF cannot check for existence of INCLUDE parameter.
+ - Firefox downloads attachments as the topic name and not the real file name.
+ - Edit and [[FormattedSearch]] expands `$nop`, `$quot`, `$percnt`, `$dollar` in `$formfield()`
+ - Scripts hang in `TWiki::UI:run` at drain STDIN logic (this is now configurable - whether you need it depends on OS and webserver.)
+ - Non-graceful error handling on mail issue during registration.
+ - Include of external doc set wrong url in relative links.
+ - In INCLUDE, warn parameter does not work when including a URL.
+ - `WEBMANAGE` permission no longer required (removed.)
+ - Context not authenticated despite Apache Require valid-user Login.
+ - INCLUDE of URL on subdomain returns wrong pages.
+
+The full list of bug fixes can be seen below
+
+## <a name="TWiki 4.1.0 Minor Release - Deta"></a> TWiki 4.1.0 Minor Release - Details
+
+The 4.1.0 release was built from SVN <http://svn.twiki.org/svn/twiki/tags/TWikiRelease04x01x00> revision 12567.
+
+### <a name="TWiki 4.1.0 Fixes"></a> TWiki 4.1.0 Fixes
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item3442]]</td>
+ <td> PatternSkin: Make file upload input field larger </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3430]]</td>
+ <td> Email addresses not always padded and encoded. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3422]]</td>
+ <td> Bulk registation data fails validation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3418]]</td>
+ <td> Make it more obvious how to enable ASSERTS </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3416]]</td>
+ <td> Bad pod =end causes TWiki::Compatibility to fail hard </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3415]]</td>
+ <td> mailnotify does not send notifications to intranet users </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3412]]</td>
+ <td> Default and classic skins have oops template errors </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3409]]</td>
+ <td> Do not refer to non-default plugins in the documentation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3408]]</td>
+ <td> Sidebar weblist needs wordwrap turned off </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3407]]</td>
+ <td> Usability: Remove PLEASENOSPAM spam padding in registration confirmation screen </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3405]]</td>
+ <td> Minor stylistic improvement in TWiki.TWikiTemplates </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3402]]</td>
+ <td> Form select/checkbox/radio values containing "Name" not displayed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3401]]</td>
+ <td> Base tag refers to topic view, irrespective of what the current base url actually is </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3399]]</td>
+ <td> Template system recursion prevention too agressive, prevents skin specialisation, or mixins </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3397]]</td>
+ <td> Enhance documentation of impact of including text on plugin handlers </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3395]]</td>
+ <td> Typo in TWiki.TWikiEditingShorthand </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3394]]</td>
+ <td> Remove UpgradeTwiki script, or put prominent warning on issues </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3392]]</td>
+ <td> TipsContrib: Performance improvement </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3384]]</td>
+ <td> Search with zeroresults="on" does not search all webs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3383]]</td>
+ <td> Quotes in FormattedSearch not escaped </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3381]]</td>
+ <td> For admins, a SEARCH all webs does not ignore the NOSEARCHALL flag </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3378]]</td>
+ <td> Default templates cause invalid HTML </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3364]]</td>
+ <td> Force-update of Main web statistics updates all webs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3359]]</td>
+ <td> Adding .ico to mime.types file </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3357]]</td>
+ <td> Remove obsolete user settings from TWiki.NewUserTemplate </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3356]]</td>
+ <td> Incorrect color sequence in list of similar topics </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3353]]</td>
+ <td> PatternSkin: updating attachment properties produces an "undefined value in split" warning in TWiki::mapToIconFileName </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3320]]</td>
+ <td> UserForm does not have Attribute column </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3318]]</td>
+ <td> SpreadSheetPlugin: Remove spurious newline appended to result </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3315]]</td>
+ <td> Security: Make topic="" parameter aware of {AllowRedirectUrl} configure flag </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3312]]</td>
+ <td> Attachment table cannot be overridden in view template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3310]]</td>
+ <td> Support web.topics in redirectto parameter </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3309]]</td>
+ <td> CommentPlugin: Crash when invoked with an empty comment_index when used with TemplateLogin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3308]]</td>
+ <td> CommentPlugin: Updating with redirectto using web.topic instead of URL </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3307]]</td>
+ <td> Make display of current TWiki version in configure more prominent </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3304]]</td>
+ <td> EditTablePlugin doc fixes for 4.1 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3302]]</td>
+ <td> PatternSkin: Search result count "Number of topics:" only shows results from last listed web </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3300]]</td>
+ <td> CommentPlugin: Resolve uninitialized values </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3296]]</td>
+ <td> TWikiTip013 has reference to outdated user preferences variables </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3293]]</td>
+ <td> PatternSkin: Double space in pattern breadcrumb </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3290]]</td>
+ <td> The topic creator in Sandbox.WebHome allows to "create" existing topics </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3280]]</td>
+ <td> File permissions should be more universally applicable. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3278]]</td>
+ <td> WebTopicCreator missing in Main web </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3275]]</td>
+ <td> More robust authentication denial when redirected after failed authentication </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3274]]</td>
+ <td> PatternSkin: Left Bar should not show logout when using ApacheLogin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3272]]</td>
+ <td> Template <code>view.*.classic.tmpl</code> not used </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3269]]</td>
+ <td> PatternSkin: Formtable headers not clickable </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3268]]</td>
+ <td> TablePlugin: Sorting non-existing column numbers causes major problems </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3266]]</td>
+ <td> Configure installer should be aware of proxy settings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3264]]</td>
+ <td> PatternSkin: Fixes to view topic action links </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3263]]</td>
+ <td> PatternSkin: oopsleaseconflict.pattern.tmpl out of sync with oopsleaseconflict.tmpl </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3261]]</td>
+ <td> Literal search on all webs does not work </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3260]]</td>
+ <td> PatternSkin: Javascript bug with quote in translation text </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3259]]</td>
+ <td> Logging of saving a topic within the same revision timeout is confusing </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3258]]</td>
+ <td> Add note to TWiki.TWikiSkins that the viewprint template is subject to change in next release </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3240]]</td>
+ <td> Documentation change from "statii" to "statuses" </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3237]]</td>
+ <td> WebTopicCreator Javascript bugs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3224]]</td>
+ <td> Split Kupu editor out of WysiwygPlugin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3214]]</td>
+ <td> space in WikiName in UnprocessedRegistrations results in bad .htpasswd entry </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3210]]</td>
+ <td> mp4 filetype erroneously linked to sound ICON </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3207]]</td>
+ <td> SEARCH on META:TOPICPARENT not documented </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3201]]</td>
+ <td> Remove exclamation mark from welcoming "Hello XXX!" </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3200]]</td>
+ <td> TablePlugin: Support for initsort of multiple tables in same topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3199]]</td>
+ <td> TipsContrib: Maintenance for TWiki 4.1 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3193]]</td>
+ <td> TablePlugin: Table colors shifted by one </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3192]]</td>
+ <td> Document limitations on registered tags </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3187]]</td>
+ <td> Document how to get plugin settings into and from configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3167]]</td>
+ <td> TWiki.TWikiSkins documentation and templates don't match with respect to printing </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3165]]</td>
+ <td> PatternSkin: Using incorrect template names in include </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3163]]</td>
+ <td> I18N: Strip uploaded filenames for 8-bit characters (Allow only US-ASCII) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3161]]</td>
+ <td> Usability: Attachment table default sort order </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3158]]</td>
+ <td> Don't include anything when trying to include a non existing section </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3153]]</td>
+ <td> INSTALL.html need to document new configure features </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3146]]</td>
+ <td> Turn off {AutoAttachPubFiles} in default distribution </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3145]]</td>
+ <td> Rename topic does not find links for a word in all caps </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3143]]</td>
+ <td> MailerContrib: Syntax error in mailnotify template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3142]]</td>
+ <td> Documentation in code for TWiki::Func::getScriptUrl incorrect </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3140]]</td>
+ <td> Cannot turn on or off plugins on a per-web basis </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3130]]</td>
+ <td> edit url parameters not properly passed through change form screen and checkpoint </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3129]]</td>
+ <td> Documentation of pattern parameter to %INCLUDE% incomprehensible </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3123]]</td>
+ <td> New litteral option for %INCLUDE% (was: including external web page creates unwanted list items) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3122]]</td>
+ <td> RcsLite error when saving revision from text </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3119]]</td>
+ <td> Remove edit.iejs.tmpl </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3093]]</td>
+ <td> Spurious ?-xism: in LocalSite.cfg </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3091]]</td>
+ <td> Attachment changes create bad log entries </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3089]]</td>
+ <td> Statistics creates lots of "bad log line... " errors </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3075]]</td>
+ <td> Document deprecation of settings in forms </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3073]]</td>
+ <td> Document local settings in TWiki.TWikiAccessControl </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3072]]</td>
+ <td> Time::parseInterval passes local TZ to Time::parseTime, which expects GMT </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3071]]</td>
+ <td> Typo in Time::parseInterval affects creation of "$now" </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3070]]</td>
+ <td> Formfield not correctly rendered when type is textarea </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3066]]</td>
+ <td> Missing parameter in <code>TWiki::Func::redirectCgiQuery</code></td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3063]]</td>
+ <td> External square bracket type links break if there's another anchor in the link text </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3062]]</td>
+ <td> Css based solution to prevent links to oneself </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3061]]</td>
+ <td> duplicate values in checkbox and select when creating a new topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3060]]</td>
+ <td> oopsleaseconflict does not work right </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3059]]</td>
+ <td> tick_twiki.pl script does not correctly remove leases </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3054]]</td>
+ <td> PatternSkin: Make attachment template more flexible </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3053]]</td>
+ <td> ChangePassword mistakenly says you need to close the browser </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3052]]</td>
+ <td> ResetPassword and ChangePassword should pass login name </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3049]]</td>
+ <td> form elements not fully classified </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3046]]</td>
+ <td> Merge DateFieldPlugin functionality into TWiki core </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3042]]</td>
+ <td> Improvements to visual design for configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3040]]</td>
+ <td> cookie prefs are web-specific </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3039]]</td>
+ <td> Better printing of tables and verbatim text in PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3036]]</td>
+ <td> TablePlugin does not render <code>code</code> text when datacolor is defined </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3033]]</td>
+ <td> TablePlugin does not add the CSS class "twikiFirstCol" when the table is sorted on the first col </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3027]]</td>
+ <td> ClassicSkin: Attachment tables in classic skin broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3026]]</td>
+ <td> Improve error handling in login screen </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3023]]</td>
+ <td> Configure shows unnecessary errors when run first time </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3018]]</td>
+ <td> PatternSkin: Improvements of table cosmetics </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3014]]</td>
+ <td> Unified colors and buttons </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3013]]</td>
+ <td> Uniform style for blockquotes </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3008]]</td>
+ <td> Need clear documentation of the impact of spaces in form definitions </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2998]]</td>
+ <td> can't create a topic of the same name as an already existing subweb </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2985]]</td>
+ <td> SEARCH summary eats escaped [[...]] links </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2981]]</td>
+ <td> Sandbox aggressively filters all but single-character strings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2979]]</td>
+ <td> PatternSkin: Verbatim Text not completly printing with IE6.0 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2967]]</td>
+ <td> %SEARCH does not work with + in topic="" parameter </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2965]]</td>
+ <td> Performance: Eliminate <code>$&</code>, <code>$`</code>, and <code>$'</code> from TWiki sources </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2963]]</td>
+ <td> UTF-8 conversion fails with IE when both webname and topicname contains international characters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2958]]</td>
+ <td> TWikiUpgradeGuide is missing configure instructions </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2957]]</td>
+ <td> RcsLite deep recursion on subroutine errors </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2951]]</td>
+ <td> MailerContrib: Doc Updates </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2948]]</td>
+ <td> Nested anchor tag in TOC with Interwiki link </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2947]]</td>
+ <td> EDIT_TEMPLATE topic preference can't be overriden using url params </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2938]]</td>
+ <td> TwistyPlugin needs to be enabled per default (PatternSkin dependency) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2930]]</td>
+ <td> PatternSkin: Printing in Firefox truncates tables </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2926]]</td>
+ <td> TWikiUpgradeGuide documentation fix for rcs parameters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2923]]</td>
+ <td> includeWarnings broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2922]]</td>
+ <td> missleading topic_not_found warning </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2918]]</td>
+ <td> Default text colors for user black backgrounds fixed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2917]]</td>
+ <td> Main/UserList error in Organization </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2905]]</td>
+ <td> Form initialization with defaults not working. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2900]]</td>
+ <td> Refactor TWiki::UI::Edit::edit </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2896]]</td>
+ <td> More flexible Form creator </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2890]]</td>
+ <td> TwistyPlugin and TwistyContrib: Merge enhancements from DEVELOP to TWIKI4 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2886]]</td>
+ <td> twiki cgi: the name of the config option 'Schedule' is a bit off </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2885]]</td>
+ <td> bin/twiki fails badly if the Scheduler is not configured </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2880]]</td>
+ <td> IF cannot check for existence of INCLUDE parameter </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2879]]</td>
+ <td> Firefox downloads attachments as the topic name and not the real file name </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2873]]</td>
+ <td> VIEW_TEMPLATEs can't be defined in subwebs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2841]]</td>
+ <td> Squabs don't find local topic before web </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2837]]</td>
+ <td> Edit and FormattedSearch expands $nop, $quot, $percnt, $dollar in $formfield() </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2820]]</td>
+ <td> InterwikiPlugin does not link when $page is a single character </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2811]]</td>
+ <td> The viewfile script should use oopsattention instead of oopsaccessdenied </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2788]]</td>
+ <td> Provide generic <code>oopsgeneric.tmpl</code> template for skins </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2781]]</td>
+ <td> $cfg{RCS}{ciDateCmd} statement ends in comma instead of semicolon </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2776]]</td>
+ <td> ICON variable shows eml.gif icon instead of mail.gif </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2774]]</td>
+ <td> MailerContrib: Notification fails if there is whitespace before topic name list </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2771]]</td>
+ <td> PatternSkin: Print view changed in backwards incompatible way </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2759]]</td>
+ <td> Multiselect for forms does not work </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2757]]</td>
+ <td> Precedence of preferences does not allow site, webs or topics to redefine plugin preferences </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2753]]</td>
+ <td> Scripts hang in TWiki::UI:run at drain STDIN logic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2750]]</td>
+ <td> "oops" pages/messages must not rely on NOAUTOLINK </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2745]]</td>
+ <td> Non-graceful error handling on mail issue during registration </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2724]]</td>
+ <td> Include of external doc set wrong url in relative links </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2720]]</td>
+ <td> Old url construction mechanism (SCRIPTSUFFIX etc) still used </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2713]]</td>
+ <td> Documentation for format in META{"parent" format=...} improved </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2712]]</td>
+ <td> In INCLUDE, warn parameter does not work when including a URL </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2698]]</td>
+ <td> MailerContrib: Mail sending errors are ignored and cause misleading output </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2692]]</td>
+ <td> In FormattedSearch, <code>nonoise="on" header="fred"</code> counter-intuitively suppresses the header </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2671]]</td>
+ <td> Don't need to set ALLOWTOPICHANGE in Main.TWikiPreferences and TWiki.TWikiPreferences because it's already done </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2660]]</td>
+ <td> Added %VBAR% to TWikiPreferences for vertical bar symbol </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2659]]</td>
+ <td> Extra CPAN dir needed in setlib.cfg @localPerlLibpath </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2656]]</td>
+ <td> Configure script <strong>still</strong> corrupts {NameFilter} with <code>(?-xism:</code></td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2655]]</td>
+ <td> Better documentation for TWikiRegistrationAgent </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2650]]</td>
+ <td> TWikiForms checkbox values not stored in proper order </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2639]]</td>
+ <td> SpreadSheetPlugin: Fix in SHORTDESCRIPTION </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2628]]</td>
+ <td> USERINFO incorrectly creates nonexistent user </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2624]]</td>
+ <td> InterwikiPlugin: Doc enhancements </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2620]]</td>
+ <td> Doc fix: Change %W% to %X% in TWikiDocGraphics </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2614]]</td>
+ <td> checkTopicEditLock does not work for anything but Edit the main screen </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2613]]</td>
+ <td> Spec for normalizeWebTopicName is inconsistent </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2605]]</td>
+ <td><code>WEBMANAGE</code> permission no longer required (removed) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2601]]</td>
+ <td> EmptyPlugin: Debug flag init is missing </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2596]]</td>
+ <td> Context <strong>not</strong> authenticated despite Apache Require valid-user Login </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2592]]</td>
+ <td> misc. typos in HTML source pages </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2588]]</td>
+ <td> Typo in 'UpgradeTwiki': esiting - existing </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2584]]</td>
+ <td> PatternSkin: Remove blockquotes from templates </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2575]]</td>
+ <td> Need the ability to protect formfields from being altered during rendering in SEARCH (added NL definition option) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2572]]</td>
+ <td> Printable looses URL parameters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2571]]</td>
+ <td> If you press CANCEL the .lease file under data/ won't be deleted </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2544]]</td>
+ <td> %INCLUDE of URL on subdomain returns wrong pages </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2543]]</td>
+ <td> configure shows none twice in the pulldown of Password Manager field </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2537]]</td>
+ <td> Putting in minimal support for separating webs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item252]]</td>
+ <td> topic preferences not inheritted from topic template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2511]]</td>
+ <td> Size of attachment should only be shown for the most recent version. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2496]]</td>
+ <td> FormattedSearch $summary has newlines </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2495]]</td>
+ <td> rdiff expands REVINFO incorrectly </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2490]]</td>
+ <td> oops link broken if scripts reside in top-level directory </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2477]]</td>
+ <td> Move attachment log entry has HASH in extra info </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2460]]</td>
+ <td> REST handler does not set context before initPlugin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2458]]</td>
+ <td> REST handlers have bad security implications </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2453]]</td>
+ <td> TOC does not work correctly when page is generated using url parameters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2410]]</td>
+ <td> Can't de-select all options in a checkbox </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2396]]</td>
+ <td> Need to distinguish between follow-up save and admin repRev </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2363]]</td>
+ <td> perl accelerators closing STDERR will inhibit any further error log </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2295]]</td>
+ <td> TemplateLogin login screen eats POST parameters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2168]]</td>
+ <td> I18N: Allow international characters in form field names </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2156]]</td>
+ <td> PatternSkin: SCRIPTURL{"script"} and SCRIPTURLPATH{"script"} are not implemented everywhere </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2153]]</td>
+ <td> MailerContrib: Mailnotify not running from tools directory & docs need updating </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2054]]</td>
+ <td> JSCalendarContrib only works with IE in PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1992]]</td>
+ <td> MailerContrib: Mailnotify generates bogus links with {IDsInURLs} configure option </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1705]]</td>
+ <td> PatternSkin: Topic action buttons have hard coded access keys </td>
+ </tr>
+</table>
+
+### <a name="TWiki 4.1.0 Enhancements"></a> TWiki 4.1.0 Enhancements
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item3428]]</td>
+ <td> TablePlugin: taking out <nobr> before parsing date fields </nobr></td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3380]]</td>
+ <td> Support Javascript variables for content </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3331]]</td>
+ <td> SpreadSheetPlugin: Add new functions $LISTRAND(), $LISTSHUFFLE(), $LISTTRUNCATE() </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3316]]</td>
+ <td> Support redirectto parameter in edit </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3291]]</td>
+ <td> PatternSkin: Overview documentation of pattern skin elements </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3270]]</td>
+ <td> Prevent creation of all lowercase topic names. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3239]]</td>
+ <td> Putting links to configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3230]]</td>
+ <td> Topic not found / WebTopicViewTemplate search does not search case insensitive </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3228]]</td>
+ <td> CSS classes documentation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3191]]</td>
+ <td> HierarchicalNavigation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3189]]</td>
+ <td> TablePlugin: New attribute <code>cellborder</code></td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3171]]</td>
+ <td> SlideShowPlugin: Preserve URL parameters in slideshow, use T-logo </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3170]]</td>
+ <td> Don't show anything when trying to display a non existing section with section param </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3157]]</td>
+ <td> New plugin handler for content move </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3144]]</td>
+ <td> Make test/unit/InitFormTests more resilient to HTML changes </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3141]]</td>
+ <td> Need to enable plugins on a per-topic basis </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3115]]</td>
+ <td> InterwikiPlugin with link format </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3096]]</td>
+ <td> Enable selecting to view named section given by URL when viewing topic. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3092]]</td>
+ <td> Views of WebRss & WebAtom should be ignored by Statistics </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3064]]</td>
+ <td> Development of twikiLib.js as part of a major Java Script refactoring </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3058]]</td>
+ <td> TwistyPlugin and TwistyContrib: Enhancements version 1.2 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3037]]</td>
+ <td> Customizable style of new WikiWord links </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3034]]</td>
+ <td> TablePlugin: give all TDs in sorted column a "sorted" CSS class </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3017]]</td>
+ <td> Improve Jump Box speed in large webs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item3016]]</td>
+ <td> Make "jump to similar topic" more obvious </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2984]]</td>
+ <td> EditTablePlugin Date Format using JSCalendarContrib defined format instead of hard coded. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2936]]</td>
+ <td> Auto-incremented topic name on save with AUTOINC<n> </n></td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2915]]</td>
+ <td> Allow date format in form fields </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2914]]</td>
+ <td> Support templates to have text rendering affecting aspect outside of textarea </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2908]]</td>
+ <td> Allow Plugin config variables to be set in bin/configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2907]]</td>
+ <td> Configurable template load path </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2902]]</td>
+ <td> RenderListPlugin: Support for image URL and TWiki.TWikiDocGraphics icons (version 22 Sep 2006 - V1.034) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2897]]</td>
+ <td> Enhance REVINFO{} with same date qualifiers as GMTIME{} </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2836]]</td>
+ <td> FormattedSearch header supporting $nop, $quot, $percnt, $dollar </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2805]]</td>
+ <td> CommentPlugin: Support removal of comment prompt after a comment is made </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2802]]</td>
+ <td> Allow plugin prefs to be defined in configure and save time not looking for prefs in plugin topic. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2770]]</td>
+ <td> TablePlugin: Add css support for even/odd row distinction </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2629]]</td>
+ <td> Add search query javascript </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2604]]</td>
+ <td> It's too easy to edit EXPERT options in configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2590]]</td>
+ <td> Configure option to replace WIKIWEBMASTER for user registration </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2582]]</td>
+ <td> Add VarXXX topics for TWiki preferences </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2556]]</td>
+ <td> TWiki's definition of a wikiword now see numbers as lower case letters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2508]]</td>
+ <td> WebTopicCreator - adding ability to select a template from any topic matching .*Template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2362]]</td>
+ <td> REST always tries to return text/html </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2063]]</td>
+ <td> METASEARCH to take a format parameter like SEARCH </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2000]]</td>
+ <td> Add search by createdate option to SEARCH </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1704]]</td>
+ <td> PatternSkin: Dependence on TwistyPlugin instead of TwistyContrib (performance improvement) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1640]]</td>
+ <td> Don't strip newlines from the front of TMPL:DEFs </td>
+ </tr>
+</table>
+
+**_Related Topic:_** [[TWikiHistory]]
Generate a link.
-SMELL: why can topic be spaced out? is this to support auto squishing of [[Spaced Topic Naming|Main/SpacedTopicNaming]]? and [[lowercase Spaced Topic Naming|Main/LowercaseSpacedTopicNaming]]
+Note: Topic names may be spaced out. Spaced out names are converted to WikWords, for example, "spaced topic name" points to "SpacedTopicName".
- `$theWeb` - the web containing the topic
- `$theTopic` - the topic to be lunk
And if you set $newtag to '', we replace the taken out block with the valuse itself
-- which i'm using to stop the rendering process, but then at the end put in the html directly (for tag. ---++ ObjectMethod \*renderRevisionInfo\* `($web,$topic,$meta,$rev,$format) -> $string` Obtain and render revision info for a topic. \* =$web= - the web of the topic \* =$topic= - the topic \* =$meta= if specified, get rev info from here. If not specified, or meta contains rev info for a different version than the one requested, will reload the topic \* =$rev= - the rev number, defaults to latest rev \* =$format= - the render format, defaults to =$rev - $time - $wikiusername= =$format= can contain the following keys for expansion: | =$web= | the web name | | =$topic= | the topic name | | =$rev= | the rev number | | =$date= | the date of the rev (no time) | | =$time= | the full date and time of the rev | | =$comment= | the comment | | =$username= | the login of the saving user | | =$wikiname= | the wikiname of the saving user | | =$wikiusername= | the web.wikiname of the saving user | ---++ ObjectMethod \*summariseChanges\* `($user,$web,$topic,$orev,$nrev,$tml) -> $text` \* =$user= - user (null to ignore permissions) \* =$web= - web \* =$topic= - topic \* =$orev= - older rev \* =$nrev= - later rev \* =$tml= - if true will generate renderable TML (i.e. HTML with NOPs. if false will generate a summary suitable for use in plain text (mail, for example) Generate a (max 3 line) summary of the differences between the revs. If there is only one rev, a topic summary will be returned. If =$tml= is not set, all HTML will be removed. In non-tml, lines are truncated to 70 characters. Differences are shown using + and - to indicate added and removed text. ---++ ObjectMethod \*forEachLine\* `($text,\&fn,\%options) -> $newText` Iterate over each line, calling =\\&fn= on each. \\%options may contain: \* =pre= => true, will call fn for each line in pre blocks \* =verbatim= => true, will call fn for each line in verbatim blocks \* =noautolink= => true, will call fn for each line in =noautolink= blocks The spec of \\&fn is sub fn( \\$line, \\%options ) -> $newLine; the %options hash passed into this function is passed down to the sub, and the keys =in\_pre=, =in\_verbatim= and =in\_noautolink= are set boolean TRUE if the line is from one (or more) of those block types. The return result replaces $line in $newText. ---++ StaticMethod \*replaceTopicReferences\* `($text,\%options) -> $text` Callback designed for use with forEachLine, to replace topic references. \\%options contains: \* =oldWeb= => Web of reference to replace \* =oldTopic= => Topic of reference to replace \* =spacedTopic= => RE matching spaced out oldTopic \* =newWeb= => Web of new reference \* =newTopic= => Topic of new reference \* =inWeb= => the web which the text we are presently processing resides in \* =fullPaths= => optional, if set forces all links to full web.topic form For a usage example see TWiki::UI::Manage.pm ---++ StaticMethod \*replaceWebReferences\* `($text,\%options) -> $text` Callback designed for use with forEachLine, to replace web references. \\%options contains: \* =oldWeb= => Web of reference to replace \* =newWeb= => Web of new reference For a usage example see TWiki::UI::Manage.pm ---++ ObjectMethod \*replaceWebInternalReferences\* `(\$text,\%meta,$oldWeb,$oldTopic)` Change within-web wikiwords in $$text and $meta to full web.topic syntax. \\%options must include topics => list of topics that must have references to them changed to include the web specifier. ---++ StaticMethod \*renderFormFieldArg\* `($meta,$args) -> $text` Parse the arguments to a $formfield specification and extract the relevant formfield from the given meta data. ---++ StaticMethod \*breakName\* `($text,$args) -> $text` \* =$text= - text to "break" \* =$args= - string of format (\\d+)([,\\s\*]\\.\\.\\.)?) Hyphenates $text every $1 characters, or if $2 is "..." then shortens to $1 characters and appends "..." (making the final string $1+3 characters long) \_Moved from Search.pm because it was obviously unhappy there, as it is a rendering function\_
+- which i'm using to stop the rendering process, but then at the end put in the html directly (for tag. ---++ ObjectMethod \*renderRevisionInfo\* `($web,$topic,$meta,$rev,$format) -> $string` Obtain and render revision info for a topic. \* =$web= - the web of the topic \* =$topic= - the topic \* =$meta= if specified, get rev info from here. If not specified, or meta contains rev info for a different version than the one requested, will reload the topic \* =$rev= - the rev number, defaults to latest rev \* =$format= - the render format, defaults to =$rev - $time - $wikiusername= =$format= can contain the following keys for expansion: | =$web= | the web name | | =$topic= | the topic name | | =$rev= | the rev number | | =$comment= | the comment | | =$username= | the login of the saving user | | =$wikiname= | the wikiname of the saving user | | =$wikiusername= | the web.wikiname of the saving user | | =$date= | the date of the rev (no time) | | =$time= | the time of the rev | | =$min=, =$sec=, etc. | Same date format qualifiers as GMTIME | ---++ ObjectMethod \*summariseChanges\* `($user,$web,$topic,$orev,$nrev,$tml) -> $text` \* =$user= - user (null to ignore permissions) \* =$web= - web \* =$topic= - topic \* =$orev= - older rev \* =$nrev= - later rev \* =$tml= - if true will generate renderable TML (i.e. HTML with NOPs. if false will generate a summary suitable for use in plain text (mail, for example) Generate a (max 3 line) summary of the differences between the revs. If there is only one rev, a topic summary will be returned. If =$tml= is not set, all HTML will be removed. In non-tml, lines are truncated to 70 characters. Differences are shown using + and - to indicate added and removed text. ---++ ObjectMethod \*forEachLine\* `($text,\&fn,\%options) -> $newText` Iterate over each line, calling =\\&fn= on each. \\%options may contain: \* =pre= => true, will call fn for each line in pre blocks \* =verbatim= => true, will call fn for each line in verbatim blocks \* =noautolink= => true, will call fn for each line in =noautolink= blocks The spec of \\&fn is sub fn( \\$line, \\%options ) -> $newLine; the %options hash passed into this function is passed down to the sub, and the keys =in\_pre=, =in\_verbatim= and =in\_noautolink= are set boolean TRUE if the line is from one (or more) of those block types. The return result replaces $line in $newText. ---++ StaticMethod \*replaceTopicReferences\* `($text,\%options) -> $text` Callback designed for use with forEachLine, to replace topic references. \\%options contains: \* =oldWeb= => Web of reference to replace \* =oldTopic= => Topic of reference to replace \* =spacedTopic= => RE matching spaced out oldTopic \* =newWeb= => Web of new reference \* =newTopic= => Topic of new reference \* =inWeb= => the web which the text we are presently processing resides in \* =fullPaths= => optional, if set forces all links to full web.topic form For a usage example see TWiki::UI::Manage.pm ---++ StaticMethod \*replaceWebReferences\* `($text,\%options) -> $text` Callback designed for use with forEachLine, to replace web references. \\%options contains: \* =oldWeb= => Web of reference to replace \* =newWeb= => Web of new reference For a usage example see TWiki::UI::Manage.pm ---++ ObjectMethod \*replaceWebInternalReferences\* `(\$text,\%meta,$oldWeb,$oldTopic)` Change within-web wikiwords in $$text and $meta to full web.topic syntax. \\%options must include topics => list of topics that must have references to them changed to include the web specifier. ---++ StaticMethod \*renderFormFieldArg\* `($meta,$args) -> $text` Parse the arguments to a $formfield specification and extract the relevant formfield from the given meta data. ---++ StaticMethod \*breakName\* `($text,$args) -> $text` \* =$text= - text to "break" \* =$args= - string of format (\\d+)([,\\s\*]\\.\\.\\.)?) Hyphenates $text every $1 characters, or if $2 is "..." then shortens to $1 characters and appends "..." (making the final string $1+3 characters long) \_Moved from Search.pm because it was obviously unhappy there, as it is a rendering function\_
--- /dev/null
+# <a name="Rendering Shortcuts"></a> Rendering Shortcuts
+
+_Easy ways to save some typing_
+
+Some TWiki preferences variables are just shortcuts for convenience, to either save typing or to easily allow line breaks in format strings and the like. These variables are not intended to be customized, though it is not forbidden to do so.
+
+**The following variables are classified as rendering shortcuts:**
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+**_See also:_**
+
+- [[TWikiVariables]] - an alphabetical list of all variables
+- [[TWikiPreferences#RenderingShortcuts]] - where rendering shortcuts are defined
+- [[TWikiShorthand]] - summary of the TWiki markup language
#### <a name="Command-line"></a> Command-line
-You **must** be cd'd to the `twiki/bin` directory to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such as `nobody` or `www`.
+You **must** be have the `twiki/bin` directory on the perl path to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such as `nobody` or `www`.
Parameters are passed on the command line using '-name' - for example,
$ cd /usr/local/twiki/bin
$ save -topic MyWeb.MyTopic -user admin -action save -text "New text of the topic"
-All parameters require a value.
+All parameters require a value, even if that is the empty string.
#### <a name="Common parameters"></a> Common parameters
### <a name="=configure="></a> `configure`
-`configure` is the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose except `configure`.
+`configure` is the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose except `configure`. See [configure](http://www.dementia.org/twiki/configure).
### <a name="=edit="></a> `edit`
<td> If set, any lease conflicts will be ignored, and the edit will proceed even if someone is already editing the topic. </td>
<td> </td>
</tr>
+ <tr>
+ <td><code>redirectto</code></td>
+ <td> If the user continues from edit to save, and if the save process is successful, save will redirect to this topic or URL. The parameter value can be a <code>TopicName</code>, a <code>Web.TopicName</code>, or a URL.%BR% <strong><em>Note:</em></strong> Redirect to a URL only works if it is enabled in <code>configure</code> (Miscellaneous <code>{AllowRedirectUrl}</code>). </td>
+ <td> </td>
+ </tr>
</table>
Form field values are passed in parameters named 'field' - for example, if I have a field `Status` the parameter name is `Status`.
### <a name="=rest="></a> `rest`
-This REST ([Representational State Transfer](http://en.wikipedia.org/wiki/REST)) script can be invoked via http in a similar way as the view script (see **Invocation Examples**, below) to execute a function that is associated to a "subject" and a "verb" (see below). It'll print the result directly to the stream unless the `endPoint` parameter is specified, in which case the control is redirected to the given topic.
+This REST ([Representational State Transfer](http://en.wikipedia.org/wiki/REST)) script can be invoked via http in the same way as the other TWiki scripts (see **Invocation Examples**, below) to execute a function that is associated to a "subject" and a "verb" (see below). These functions are usually registered by plugins using the `TWiki::Func::registerRESTHandler` method. The `rest` script will print the result directly to the browser unless the `endPoint` parameter is specified, in which case it will output a redirect to the given topic.
-The `rest` script itself uses one parameter:
+The `rest` script supports the following parameters:
<table border="1" cellpadding="0" cellspacing="0">
<tr>
+ <td><code>username</code></td>
+ <td> If <code>TemplateLogin</code>, or a similar login manager not embedded in the web server, is used, then you need to pass a username and password to the server. The <code>username</code> and <code>password</code> parameters are used for this purpose. </td>
+ </tr>
+ <tr>
+ <td><code>password</code></td>
+ <td> See <code>username</code></td>
+ </tr>
+ <tr>
+ <td><code>topic</code></td>
+ <td> If defined as the full name (including web) of a topic, then when the script starts up plugins will be passed this as the "current" topic. If not defined, then %USERWEB%.WebHome will be passed to plugins. </td>
+ </tr>
+ <tr>
<td><code>endPoint</code></td>
<td> Where to redirect the response once the request is served, in the form "Web.Topic" </td>
</tr>
</table>
-Any additional parameters are passed directly to the function (i.e: The function can get any other parameter using the CGI $query object)
+The function is free to use any other query parameters for its own purposes.
+
+%X% The `rest` script should **always** require authentication in any TWiki that has logins. Otherwise there is a risk of opening up major security holes. So make sure you add it to the list of authenticated scripts if you are using `ApacheLogin`.
#### <a name="Invocation Examples"></a> Invocation Examples
`http://my.host/bin/rest/<subject>/<verb>`
-where `<subject>` must be the [[WikiWord]] name of one of the installed [[TWikiPlugins]], and the `<verb>` is the alias for the function registered using the `registerRESTHandler`. The `<subject>` and `<verb>` are then used to lookup and call the registered function.
-
-Functions outside the Plugins also can be registered, but please consider the security implications of allowing URL access, as functions can sidestep TWiki Authentication & Authorisation settings.
+where `<subject>` must be the [[WikiWord]] name of one of the installed [[TWikiPlugins]], and the `<verb>` is the alias for the function registered using the `TWiki::Func::registerRESTHandler` method. The `<subject>` and `<verb>` are then used to lookup and call the registered function.
`<subject>` and `<verb>` are checked for illegal characters exactly in the same way as the web and topic names.
[Call the Plugin](http://www.dementia.org/twiki/rest/EmptyPlugin/example?debugenableplugin=EmptyPlugin)
-You can also call the function from the command line, but this will be run as the [[TWikiAdminGroup]] (as it is assumed that shell access is secure) - eg:
-
- ./rest EmptyPlugin.example
-
-Note that for calls to Plugins, they must be enabled in `configure`.
+Note that for Plugins to register REST handlers, they must be enabled in `configure`.
### <a name="=save="></a> `save`
</tr>
<tr>
<td><code>action_save=1</code></td>
- <td><strong>default</strong>; save, return to view, dontnotify is OFF </td>
+ <td><strong>default</strong>; save, return to view, dontnotify is <code>off</code></td>
<td> </td>
</tr>
<tr>
<td><code>action_quietsave=1</code></td>
- <td> save, and return to view, <code>dontnotify</code> is ON </td>
+ <td> save, and return to view, <code>dontnotify</code> is <code>on</code></td>
<td> </td>
</tr>
<tr>
<td><code>action_checkpoint</code></td>
- <td> save and redirect to the edit script, <code>dontnotify</code> is ON </td>
+ <td> save and redirect to the edit script, <code>dontnotify</code> is <code>on</code></td>
<td> </td>
</tr>
<tr>
<td> Revision on which the edit started. </td>
<td> </td>
</tr>
+ <tr>
+ <td><code>edit</code></td>
+ <td> The script to use to edit the topic when action is <code>checkpoint</code></td>
+ <td><code>edit</code></td>
+ </tr>
+ <tr>
+ <td><code>editparams</code></td>
+ <td> The parameter string to use to edit the topic </td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>redirectto</code></td>
+ <td> The save process will redirect to this topic or URL if it is successful. (Typically this would be the URL that was being viewed when edit was invoked). The parameter value can be a <code>TopicName</code>, a <code>Web.TopicName</code>, or a URL.%BR% <strong><em>Note:</em></strong> Redirect to a URL only works if it is enabled in <code>configure</code> (Miscellaneous <code>{AllowRedirectUrl}</code>). </td>
+ <td> view topic being edited </td>
+ </tr>
</table>
Any errors will cause a redirect to an `oops` page.
</tr>
</table>
+for example:
+
+1. from browser <http://www.dementia.org/twiki/statistics> updates _all user webs_
+2. from browser <http://www.dementia.org/twiki/statistics?webs=TWiki,Main,Sandbox> updates _TWiki,Main,Sandbox_
+3. from browser <http://www.dementia.org/twiki/statistics/%WEB%> updates %WEB%
+4. from command line twiki/bin/statistics updates _all user webs_
+5. from command line twiki/bin/statistics -webs=TWiki,Main,Sandbox updates _TWiki,Main,Sandbox_
+6. from command line twiki/bin/statistics %WEB%.WebHome updates %WEB%
+
+see [[TWikiSiteTools#WebStatistics_site_statistics]] for updating statistics using cron.
+
### <a name="=twiki="></a> `twiki`
Single-script interface to the functionality of all the other scripts. Experimental, not for production use. Read the code if you want to know more.
<td> </td>
</tr>
<tr>
+ <td><code>section</code></td>
+ <td> Allows to view only a part of the topic delimited by a named section (see [[TWiki/VarSTARTSECTION]]). If the given section is not present, no topic content is displayed. </td>
+ <td> </td>
+ </tr>
+ <tr>
<td><code>contenttype</code></td>
<td> Allows you to specify a different <strong>Content-Type:</strong> (e.g. <code>contenttype=text/plain</code>) </td>
<td> </td>
This is a very simple script to get the content of a web site. It is marked as _deprecated_ and might be removed (or enhanced) in a future TWiki release. Its functions are covered by the standard `wget` and `curl` commands.
-- Usage: `geturl <host> <path> [<port> [<header>]]`
-- Example: `geturl some.domain /some/dir/file.html 80`
+- Usage: `geturl.pl <host> <path> [<port> [<header>]]`
+- Example: `geturl.pl some.domain /some/dir/file.html 80`
- Will get: `http://some.domain:80/some/dir/file.html`
### <a name="=rewriteshebang.pl="></a> `rewriteshebang.pl`
If `inline` is set, then the results are **not** decorated with the search template head and tail blocks.
-SMELL: If `format` is set, `template` will be ignored.
+Note: If `format` is set, `template` will be ignored.
-SMELL: If `regex` is defined, it will force type='regex'
+Note: For legacy, if `regex` is defined, it will force type='regex'
SMELL: If `template` is defined `bookview` will not work
+# <a name="TWiki Shorthand"></a> TWiki Shorthand
This is simply a preset `SEARCH`. The number of topics listed by the `limit` parameter.:
-> %SEARCH{ ".*" web="%INCLUDINGWEB%" regex="on" nosearch="on" order="modified"%BR% reverse="on" limit="50" }%
+> %SEARCH{ ".*" web="%INCLUDINGWEB%" type="regex" nosearch="on" order="modified"%BR% reverse="on"
+> limit="50" }%
<a name="WebIndex"></a>
[[WebIndex]] lists all web topics in alphabetical order, with the first couple of lines of text. This is simply a preset `SEARCH`:
-> %SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" }%
+> %SEARCH{ "\.*" scope="topic" type="regex" nosearch="on" }%
<a name="WebStatistics"></a>
- The [[WebStatistics]] topic must be present in all webs where you want to have statistics. You can use the topic in the Main web as a template.
- Call the `twiki/bin/statistics` script from a cron job, once a day is recommended. This will update the [[WebStatistics]] topics in all webs.
- **_Attention:_** The script must run as the same user as the CGI scripts are running, which is user `nobody` on many systems. Example crontab entry: %BR% `0 0 * * * (cd /path/to/twiki/bin; ./statistics >/dev/null 2>&1)`
- - There is a workaround in case you can't run the script as user `nobody` : Run the utility `twiki/bin/geturl` in your cron job and specify the URL of the `twiki/bin/statistics` script as a parameter. Example: %BR% `0 0 * * * (cd /path/to/twiki/bin; ./geturl mydomain.com /urlpath/to/twiki/bin/statistics >/dev/null 2>&1)`
+ - There is a workaround in case you can't run the script as user `nobody` : Run the utility `twiki/tools/geturl.pl` in your cron job and specify the URL of the `twiki/bin/statistics` script as a parameter. Example: %BR% `0 0 * * * (cd /path/to/twiki/tools; ./geturl.pl mydomain.com /urlpath/to/twiki/bin/statistics >/dev/null 2>&1)`
When running from the command line or a cron job, you can pass parameters to the script like this:
- The file name is `log<year><month>.txt`
- Example path name: `twiki/logs/log201006.txt`
- Each access gets logged as: %BR% `| <time> | <wikiusername> | <action> | <web>.<topic> | <extra info> | <IP address> |`
-- Example log entry: %BR% <code>| 29 Jun 2010 - 12:00 | [[TWikiGuest]] | view | [[WebRss]] | | 66.124.232.02 |</code>
+- Example log entry: %BR% <code>| 29 Jun 2010 - 12:02 | [[TWikiGuest]] | view | [[WebRss]] | | 66.124.232.02 |</code>
- Actions are logged if enabled in [configure](http://www.dementia.org/twiki/configure) by the **\{Log\}\{_action_\}** flags
- Logged actions: <table border="1" cellpadding="0" cellspacing="0">
<tr>
<tr>
<td> save </td>
<td><code>save</code></td>
- <td> when replacing existing revision: <code>repRev 3</code> %BR% when user checks the minor changes box: <code>dontNotify</code></td>
+ <td> when replacing existing revision: <code>repRev 3</code> %BR% when user checks the minor changes box: <code>dontNotify</code> %BR% when user changes attributes to an exising attachment: <code>filename.ext</code></td>
+ </tr>
+ <tr>
+ <td> save </td>
+ <td><code>cmd</code></td>
+ <td> special admin parameter used when saving </td>
</tr>
<tr>
<td> search </td>
<li><a href="#TWiki Skins"> TWiki Skins</a><ul>
<li><a href="#Overview"> Overview</a></li>
<li><a href="#Changing the default TWiki skin"> Changing the default TWiki skin</a></li>
- <li><a href="#Defining Skins"> Defining Skins</a></li>
- <li><a href="#Variables in Skins"> Variables in Skins</a><ul>
- <li><a href="#The "Go" Box and Navigation Box"> The "Go" Box and Navigation Box</a></li>
+ <li><a href="#Defining Skins"> Defining Skins</a><ul>
+ <li><a href="#Partial customisation, or adding"> Partial customisation, or adding in new features to an existing skin</a></li>
</ul>
</li>
+ <li><a href="#Variables in Skins"> Variables in Skins</a></li>
+ <li><a href="#The "Go" Box and Navigation Box"> The "Go" Box and Navigation Box</a></li>
<li><a href="#Using Cascading Style Sheets"> Using Cascading Style Sheets</a></li>
<li><a href="#Attachment Tables"> Attachment Tables</a></li>
<li><a href="#Packaging and Publishing Skins"> Packaging and Publishing Skins</a></li>
Topic text is not affected by the choice of skin, though a skin can be defined to use a CSS (Cascading Style Sheet), which can sometimes give a radically different appearance to the text.
-**_%T% Tip:_** TWiki:TWiki.TWikiSkinsSupplement on TWiki.org has supplemental documentation on TWiki Skins.
+**_Relevant links on TWiki.org:_**
+
+- TWiki:TWiki.TWikiSkinsSupplement - **_%T% tip:_** supplemental documentation on TWiki skins
+- TWiki:Plugins.SkinPackage - list of all contributed skin packages
+- TWiki:Plugins.SkinDevelopment - discussion and feedback on contributed skins
+- TWiki:Plugins.SkinBrainstorming - open forum for new skin ideas
+- TWiki:Plugins.SkinPackageHowTo - template to create a new skin package
+
+**_See other types of extensions:_** [[TWikiAddOns]], [[TWikiContribs]], [[TWikiPlugins]]
## <a name="Changing the default TWiki skin"></a> Changing the default TWiki skin
You may want to define your own skin, for example to comply with corporate web guidelines, or because you have a aesthetic vision that you want to share.
-The [[TWikiTemplates]] files used for skins are located in the `twiki/templates` directory and are named according to the skin: <code>**<scriptname>.<skin>.tmpl**</code>. For example, the template used for pages generated by the `view` script with the `print` skin selected is `view.print.tmpl` (this is how the **Printable** control is implemented). Skin files may also be defined in TWiki topics - see [[TWikiTemplates]] for details.
+The [[TWikiTemplates]] files used for skins are located in the `twiki/templates` directory and are named according to the skin: <code>**<scriptname>.<skin>.tmpl**</code>. Skin files may also be defined in TWiki topics - see [[TWikiTemplates]] for details.
To start creating a new skin, copy the default [[TWikiTemplates]] (like `view.tmpl`), or copy an existing skin to use as a base for your own skin. You should only need to copy the files you intend to customise, as TWiki can be configured to fall back to another skin if a template is not defined in your skin. Name the files as described above (for example `view.myskin.tmpl`.
+For your own TWiki skin you are encouraged to show a small 80x31 pixel [<img src="http://www.dementia.org/twiki//view/TWiki/TWikiLogos/T-logo-80x15.gif" width="80" height="15" alt="This site is powered by the TWiki collaboration platform" title="This site is powered by the TWiki collaboration platform" />](http://twiki.org/) logo at the bottom of your skin:
+
+`<a href="http://twiki.org/"><img src="%PUBURL%/%TWIKIWEB%/TWikiLogos/T-logo-80x15.gif" alt="This site is powered by the TWiki collaboration platform" width="80" height="15" title="This site is powered by the TWiki collaboration platform" border="0" /></a>`
+
+The standard TWiki skins show the logo in the `%WEBCOPYRIGHT%` variable.
+
**_%X% Note:_** Two skin names have _reserved_ meanings; `text` skin, and skin names starting with `rss` have [[hard-coded meanings|Main/WebHome#HardCodedSkins]].
The following template files are used for TWiki screens, and are referenced in the TWiki core code. If a skin doesn't define its own version of a template file, then TWiki will fall back to the next skin in the skin path, or finally, to the default version of the template file.
- `oopsattention` - used to format Attention messages
- `already_exists`, `bad_email`, `bad_ver_code`, `bad_wikiname`, `base_web_missing`, `confirm`, `created_web`, `delete_err`, `invalid_web_color`, `invalid_web_name`, `in_a_group`, `mandatory_field`, `merge_notice`, `missing_action`, `missing_fields`, `move_err`, `missing_action`, `no_form_def`, `no_users_to_reset`, `notwikiuser`, `oversized_upload`, `password_changed`, `password_mismatch`, `problem_adding`, `remove_user_done`, `rename_err`, `rename_not_wikiword`, `rename_topic_exists`, `rename_web_err`, `rename_web_exists`, `rename_web_prerequisites`, `reset_bad`, `reset_ok`, `save_error`, `send_mail_error`, `thanks`, `topic_exists`, `unrecognized_action`, `upload_name_changed`, `web_creation_error`, `web_exists`, `web_missing`, `wrong_password`, `zero_size_upload`
- `oopschangelanguage` - used to prompt for a new language when internationalisation is enabled
+- `oopsgeneric` - a basic dialog for user information; provides "ok" button only
- `oopslanguagechanged` - used to confirm a new language when internationalisation is enabled
- `oopsleaseconflict` - used to format lease Conflict messages
- `lease_active`, `lease_old`
- `search` - used by the `search` CGI script
- `settings`
- `view` - used by the `view` CGI script
+- `viewprint` - used to create the printable view
`twiki.tmpl` is a master template conventionally used by other templates, but not used directly by code.
-**_%X% Note:_** You are strongly recommended **not** to `TMPL:INCLUDE` the default templates, or templates from other skins, when you are defining your own skin. If you do, you run the risk that the included file might change and break your skin.
+**_%X% Note:_** It is best to create these templates for your skin. If you `TMPL:INCLUDE` the default templates, or templates from other skins, when you are defining your own skin, you run the risk that the included file might change and break your skin.
+
+### <a name="Partial customisation, or adding"></a> Partial customisation, or adding in new features to an existing skin
+
+You can use recusion in the TMPL:INCLUDE chain (eg twiki.classic.tmpl contains `%TMPL:INCLUDE{"twiki"}%`, the templating system will include the next twiki.SKIN in the skin path. For example, to create a customisation of pattern skin, where you _only_ want to remove the edit & WYSIWYG buttons from view page, you create only a `view.yourlocal.tmpl`:
+
+ %TMPL:INCLUDE{"view"}%
+ %TMPL:DEF{"edit_topic_link"}%%TMPL:END%
+ %TMPL:DEF{"edit_wysiwyg_link"}%%TMPL:END%
+
+and then set `SKIN=yourlocal,pattern`.
+
+Because [[ClassicSkin]] and the default templates use the same Template definition names, you can over-ride the edit links in them (or any skin derived from them) using the same `view.yourlocal.tmpl` (just set SKIN=yourlocal,classic either in [[TWikiPreferences]] for globally, or a Web's Webname.WebPreferences for a particular web)
## <a name="Variables in Skins"></a> Variables in Skins
<a name="GoBox"></a>
-### <a name="The "Go" Box and Navigation Box"></a> The "Go" Box and Navigation Box
+## <a name="The "Go" Box and Navigation Box"></a> The "Go" Box and Navigation Box
-The default `%WEBTOPICLIST%` includes a "Go" box, also called "Jump" box, to jump to a topic. The box also understands URLs, e.g. you can type <http://www.google.com/> to jump to an external web site. The feature is handy if you build a skin that has a select box of frequently used links, like Intranet home, employee database, sales database and such. A little JavaScript gets into action on the onSelect method of the select tag to fill the selected URL into the "Go" box field, then submits the form.
+The default skins include a [["Go" box|Main/GoBox]], also called "Jump" box, to jump to a topic.
+
+The box also understands URLs, e.g. you can type `http://www.google.com/` to jump to an external web site. The feature is handy if you build a skin that has a select box of frequently used links, like Intranet home, employee database, sales database and such. A little JavaScript gets into action on the `onchange` method of the select tag to fill the selected URL into the "Go" box field, then submits the form.
Here is an example form that has a select box and the "Go" box for illustration purposes. You need to have JavaScript enabled for this to work:
<form action="http://www.dementia.org/twiki/view/%WEB%/%TOPIC%" name="sample">
- <table border="3">
+ <table bgcolor="#DDDDDD" border="0" cellpadding="5">
+ <tr>
+ <td colspan="2"> Bare bones header, for demo only </td>
+ </tr>
<tr>
- <td><select name="sel" onchange="this.form.topic.value=this.options[this.selectedIndex].value; this.form.submit()"><option selected value="">Navigate...</option>
- <option value="http://www.twiki.org/">Intranet home</option>
+ <td> Navigate: </td>
+ <td><select name="sel" onchange="this.form.topic.value=this.options[this.selectedIndex].value; this.form.submit()"><option selected value="">...</option>
+ <option value="http://twiki.org/">Intranet home</option>
<option value="Main.TWikiUsers">Employee index</option>
<option value="Main.WebHome">Main web</option>
<option value="TWiki.WebHome">TWiki web</option>
<option value="http://www.google.com/">Google</option>
- <option value="http://www.yahoo.com/">Yahoo!</option></select> Bare bones header for demo only </td>
+ <option value="http://www.yahoo.com/">Yahoo!</option></select></td>
</tr>
<tr>
- <td> %WEBTOPICLIST% </td>
+ <td> Jump: </td>
+ <td><input name="topic" size="16" type="text" /></td>
</tr>
</table>
</form>
-## <a name="Using Cascading Style Sheets"></a> Using Cascading Style Sheets
+**_Note:_** Redirect to a URL only works if it is enabled in `configure` (Miscellaneous, `{AllowRedirectUrl}`).
-CSS is used by [[PatternSkin]], the TWiki skin that is selected in new installations. See that skin topic for information how CSS is used.
+## <a name="Using Cascading Style Sheets"></a> Using Cascading Style Sheets
-CSS files are gererally attachments to the skin topic that are included in the the skin templates - in the case of [[PatternSkin]] in the template `css.pattern.tmpl`.
+CSS files are gererally attachments to the skin topic that are included in the the skin templates - in the case of [[PatternSkin]] in the template `styles.pattern.tmpl`.
-Write in your main template:
+- To see how CSS is used in the default TWiki skin, see: [[PatternSkin]]
+- If you write a complete new skin, this is the syntax to use in a template file:
<style type='text/css' media='all'>@import url('%PUBURLPATH%/%TWIKIWEB%/MySkin/mystyle.css');</style>
- `Set SKIN = catskin, bearskin`
-You can also add a parameter to the URL, such as `?skin=catskin, bearskin`. Example activation of [[PrintSkin]] that generates a printable page:
+You can also add a parameter to the URL, such as `?skin=catskin,bearskin`:
-- [[http://www.dementia.org/twiki/view/%WEB%/%TOPIC%?skin=print|%WEB%/%TOPIC%?skin=print]]
+- [[http://www.dementia.org/twiki/view/%WEB%/%TOPIC%?skin=catskin,bearskin|%WEB%/%TOPIC%?skin=catskin,bearskin]]
-Setting `SKIN` (or the `?skin` parameter in the URL) replaces the existing skin path setting. You can also _extend_ the existing skin path as well, using _covers_.
+Setting `SKIN` (or the `?skin` parameter in the URL) replaces the existing skin path setting, for the current page only. You can also _extend_ the existing skin path as well, using _covers_.
- `Set COVER = ruskin`
-This pushes a different skin to the front of the skin search path (so for our example above, that final skin path will be `ruskin, catskin, bearskin`). There is also an equivalent `cover` URL parameter.
+This pushes a different skin to the front of the skin search path (so for our example above, that final skin path will be `ruskin, catskin, bearskin`). There is also an equivalent `cover` URL parameter. The difference between setting `SKIN` vs. `COVER` is that if the chosen template is not found (e.g., for included templates), `SKIN` will fall back onto the next skin in line, or the default skin, if only one skin was present, while `COVER` will always fall back onto the current skin.
+
+An example would be invoking the printable mode, which is achieved by applying `?cover=print`. The `view.print.tmpl` simply invokes the `viewprint` template for the current skin which then can appropriately include all other used templates for the current skin. Where the printable mode be applied by using `SKIN`, all skins would have the same printable appearance.
The full skin path is built up as follows: `SKIN` setting (or `?skin` if it is set), then `COVER` setting is added, then `?cover`.
<li><a href="#ObjectMethod <strong>getLease</strong> ($web,$t"> ObjectMethod getLease <tt>($web,$topic) -> $lease</tt></a></li>
<li><a href="#ObjectMethod <strong>setLease</strong> ($web,$t"> ObjectMethod setLease <tt>($web,$topic,$user,$length)</tt></a></li>
<li><a href="#ObjectMethod <strong>clearLease</strong> ($web,"> ObjectMethod clearLease <tt>($web,$topic)</tt></a></li>
+ <li><a href="#ObjectMethod *remove_SpuriousLea"> ObjectMethod removeSpuriousLeases <tt>($web)</tt></a></li>
</ul>
</li>
</ul>
- `$options` - as for saveTopic, with the extra option:
- `timetravel` - if we want to force the deposited revision to look as much like the revision specified in `$rev` as possible.
+ - `operation` - set to the name of the operation performing the save. This is used only in the log, and is normally `cmd` or `save`. It defaults to `save`.
Used to try to avoid the deposition of 'unecessary' revisions, for example where a user quickly goes back and fixes a spelling error.
Cancel the current lease.
See `getLease` for more details about Leases.
+
+## <a name="ObjectMethod <strong>remove_SpuriousLea"></a> [[ObjectMethod]] \*removeSpuriousLeases `($web)`
+
+Remove leases that are not related to a topic. These can get left behind in some store implementations when a topic is created, but never saved.
<li><a href="#ObjectMethod <strong>isLocked</strong> () -> ($"> ObjectMethod isLocked <tt>() -> ($user,$time)</tt></a></li>
<li><a href="#ObjectMethod <strong>setLease</strong> ($lease)"> ObjectMethod setLease <tt>($lease)</tt></a></li>
<li><a href="#ObjectMethod <strong>getLease</strong> () -> $l"> ObjectMethod getLease <tt>() -> $lease</tt></a></li>
+ <li><a href="#ObjectMethod *remove_SpuriousLea"> ObjectMethod removeSpuriousLeases <tt>($web)</tt></a></li>
<li><a href="#ObjectMethod <strong>getStream</strong> () -> \"> ObjectMethod getStream <tt>() -> \*STREAM</tt></a></li>
<li><a href="#ObjectMethod <strong>numRevisions</strong> () -"> ObjectMethod numRevisions <tt>() -> $integer</tt></a></li>
<li><a href="#ObjectMethod <strong>initBinary</strong> ()"> ObjectMethod initBinary <tt>()</tt></a></li>
Get the current lease on the topic.
+## <a name="ObjectMethod <strong>remove_SpuriousLea"></a> [[ObjectMethod]] \*removeSpuriousLeases `($web)`
+
+Remove leases that are not related to a topic. These can get left behind in some store implementations when a topic is created, but never saved.
+
## <a name="ObjectMethod <strong>getStream</strong> () - \*"></a> [[ObjectMethod]] **getStream** `() -> \*STREAM`
Return a text stream that will supply the text stored in the topic.
<td> For upgrades only: GNU <code>patch</code> is required when using the TWiki:Codev.UpgradeTWiki script </td>
</tr>
<tr>
- <td> Other external programs </td>
- <td><code>fgrep, egrep</code></td>
+ <td> GNU <code>fgrep</code>, <code>egrep</code></td>
+ <td> Modify command line parameters in configure if you use non-GNU grep programs </td>
</tr>
<tr>
<td> Cron/scheduler </td>
<li><a href="#The TWiki Template System"> The TWiki Template System</a><ul>
<li><a href="#How Template Directives Work"> How Template Directives Work</a></li>
<li><a href="#Finding Templates"> Finding Templates</a></li>
+ <li><a href="#TMPL:INCLUDE recusion for piecew"> TMPL:INCLUDE recusion for piecewise customisation, or mixing in new features</a></li>
</ul>
</li>
<li><a href="#Master Templates"> Master Templates</a></li>
All three types of template use the TWiki template system.
+**_%T% Tip:_** TWiki:TWiki.TWikiTemplatesSupplement on TWiki.org has supplemental documentation on TWiki templates.
+
## <a name="The TWiki Template System"></a> The TWiki Template System
_Templates_ are plain text with embedded _template directives_ that tell TWiki how to compose blocks of text together to create something new.
- Directives are of the form <code>**%TMPL:<key>%**</code> and <code>**%TMPL:<key>\{"attr"\}%**</code>.
- Directives:
- <code>**%TMPL:INCLUDE\{"file"\}%**</code>: Includes a template file. The file is found as described [[below|Main/WebHome#FindingTemplates]].
- - <code>**%TMPL:DEF\{"block"\}%**</code>: Define a block. Text between this and the `%TMPL:END%` directive is not used in-place, but is saved for later use with `%TMPL:P`. Leading and trailing whitespace is ignored.
+ - <code>**%TMPL:DEF\{"block"\}%**</code>: Define a block. **All** text between this and the next `%TMPL:END%` directive is removed and saved for later use with `%TMPL:P`.
- <code>**%TMPL:END%**</code>: Ends a block definition.
- <code>**%TMPL:P\{"var"\}%**</code>: Includes a previously defined block.
- <code>**%\{...\}%**</code>: is a comment.
> 3. templates/%RED%web%ENDCOLOR%/%RED%script%ENDCOLOR%.tmpl
> - %X% this usage is supported **for compatibility only** and is **deprecated**. Store web-specific templates in TWiki topics instead.
> 4. templates/%RED%script%ENDCOLOR%.tmpl
-> 5. The TWiki topic %RED%web%ENDCOLOR%.%RED%topic%ENDCOLOR% if the template name can be parsed into %RED%web%ENDCOLOR%.%RED%topic%ENDCOLOR%
+> 5. The TWiki topic aweb.atopic if the template name can be parsed into aweb.atopic
> 6. The TWiki topic %RED%web%ENDCOLOR%.%RED%Skin%ENDCOLOR%Skin%RED%Script%ENDCOLOR%Template for each %RED%skin%ENDCOLOR% on the skin path
> 7. The TWiki topic %RED%web%ENDCOLOR%.%RED%Script%ENDCOLOR%Template
-> 8. The TWiki topic TWiki.%RED%Skin%ENDCOLOR%Skin%RED%Script%ENDCOLOR%Template for each %RED%skin%ENDCOLOR% on the skin path
-> 9. The TWiki topic TWiki.%RED%Script%ENDCOLOR%Template
+> 8. The TWiki topic %TWIKIWEB%.%RED%Skin%ENDCOLOR%Skin%RED%Script%ENDCOLOR%Template for each %RED%skin%ENDCOLOR% on the skin path
+> 9. The TWiki topic %TWIKIWEB%.%RED%Script%ENDCOLOR%Template
>
> **Legend:**
>
If these preferences are set locally (using _Local_ instead of _Set_) for a topic, in [[WebPreferences]], in [[Main.TWikiPreferences|Main/TWikiPreferences]], or [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] (using _Set_), the indicated templates will be chosen for `view` and `edit` respectively. The template search order is as specified above.
+### <a name="TMPL:INCLUDE recusion for piecew"></a> TMPL:INCLUDE recusion for piecewise customisation, or mixing in new features
+
+If there is recusion in the TMPL:INCLUDE chain (eg twiki.classic.tmpl contains `%TMPL:INCLUDE{"twiki"}%`, the templating system will include the next twiki.SKIN in the skin path. For example, to create a customisation of pattern skin, where you _only_ want to over-ride the breadcrumbs for the view script, you can create only a view.yourlocal.tmpl:
+
+ %TMPL:INCLUDE{"view"}%
+ %TMPL:DEF{"breadcrumb"}% We don't want any crumbs %TMPL:END%
+
+and then set SKIN=yourlocal,pattern
+
## <a name="Master Templates"></a> Master Templates
Master templates use the block definition directives (`%TMPL:DEF` and `%TMPL:END%`) to define common sections that appear in two or more other templates. <code>**twiki.tmpl**</code> is the default master template.
> </tr>
> <tr>
> <td><code>%NOP%</code></td>
-> <td> A no-operation variable that gets removed. Useful to prevent a SEARCH from hitting an edit template topic; also useful to escape a variable like <code>%URLPARAM%NOP%{...}%</code></td>
+> <td> A no-operation variable that gets removed. Useful to prevent a SEARCH from hitting an edit template topic; also useful to escape a variable, such as <code>%URLPA%NOP%RAM{...}%</code> escaping URLPARAM </td>
> </tr>
> <tr>
> <td><code>%STARTSECTION{type="templateonly"}%%BR%...%BR%%ENDSECTION{type="templateonly"}%</code></td>
### <a name="Automatically Generated Topicnam"></a> Automatically Generated Topicname
-If you want to make a TWiki application where you need automatically generated unique topicnames, you can use 10 X's in the edit / save URL, and they will be replaced on topic save with a count value. For example, BugIDXXXXXXXXXX will result in topics named BugID0, BugID1, BugID2 etc.
+For TWiki application it is useful to automatically generate unique topicnames, such as BugID0001, BugID0002, etc. You can add `AUTOINC<n>` to the topic name in the edit and save scripts, it gets replaced with an auto-incremented number on topic save. `<n>` is a number starting from 0, and may include leading zeros. Leading zeros are used to zero-pad numbers so that auto-incremented topic names can sort properly. Deleted topics are not re-used to ensure uniqueness of topic names. That is, the auto-incremented number is always higher than the existing ones, even if there are gaps in the number sequence.
+
+**Examples:**
+
+- `BugAUTOINC0` - creates topic names `Bug0`, `Bug1`, `Bug2`, ... (does not sort properly)
+- `ItemAUTOINC0000` - creates topic names `Item0000`, `Item0001`, `Item0002`, ... (sorts properly up to 9999)
+- `DocIDAUTOINC10001` - start with `DocID10001`, `DocID10002`, ... (sorts properly up to 99999; auto-links)
Example link to create a new topic:%BR%
- [[%SCRIPTURLPATH{"edit"}%/%WEB%/BugIDXXXXXXXXXX?templatetopic=BugTemplate&topicparent=%TOPIC%&t=%SERVERTIME{"$day$hour$min$sec"}%][Create new item]]=
+ [[%SCRIPTURLPATH{"edit"}%/%WEB%/BugIDAUTOINC00000?templatetopic=BugTemplate&topicparent=%TOPIC%&t=%SERVERTIME{"$day$hour$min$sec"}%][Create new item]]=
## <a name="Master Templates by Example"></a> Master Templates by Example
The first line declares a delimiter variable called "sep", used to separate multiple link items. The variable can be called anywhere by writing `%TMPL:P{"sep"}%`
-> <table bgcolor="#f5f5f5" border="1" cellpadding="1" cellspacing="0">
-> <tr>
-> <td><pre>
> %TMPL:DEF{"sep"}% | %TMPL:END%
-> <html>
-> <head>
-> <title> %WIKITOOLNAME% . %WEB% . %TOPIC% %.TMPL:P{"titleaction"}%</title>
-> <base href="%SCRIPTURLPATH{"view"}%/%WEB%/%TOPIC%">
-> <meta name="robots" content="noindex">
-> </head>
-> <body bgcolor="#FFFFFF">
-> <table width="100%" border="0" cellpadding="3" cellspacing="0">
-> <tr>
-> <td bgcolor="%WEBBGCOLOR%" rowspan="2" valign="top" width="1%">
-> <a href="%WIKIHOMEURL%">
-> <img src="%PUBURLPATH%/wikiHome.gif" border="0"></a>
-> </td>
-> <td>
-> <b>%WIKITOOLNAME% . %WEB% . </b><font size="+2">
-> <B>%TOPIC%</b> %TMPL:P{"titleaction"}%</font>
-> </td>
-> </tr>
-> <tr bgcolor="%WEBBGCOLOR%">
-> <td colspan="2">
-> %TMPL:P{"webaction"}%
-> </td>
-> </tr>
-> </table>
-> --- ++ %TMPL:P{"heading"}%
-> %TMPL:P{"message"}%
-> <table width="100%" border="0" cellpadding="3" cellspacing="0">
-> <tr bgcolor="%WEBBGCOLOR%">
-> <td valign="top">
-> Topic <b>%TOPIC%</b> . {
-> %TMPL:P{"topicaction"}%
-> }
-> </td>
-> </tr>
-> </table>
-> </body>
-> </pre></td>
-> </tr>
-> </table>
+> <html>
+> <head>
+> <title> %WIKITOOLNAME% . %WEB% . %TOPIC% %.TMPL:P{"titleaction"}%</title>
+> <base href="%SCRIPTURLPATH{"view"}%/%WEB%/%TOPIC%">
+> <meta name="robots" content="noindex">
+> </head>
+> <body bgcolor="#FFFFFF">
+> <table width="100%" border="0" cellpadding="3" cellspacing="0">
+> <tr>
+> <td bgcolor="%WEBBGCOLOR%" rowspan="2" valign="top" width="1%">
+> <a href="%WIKIHOMEURL%">
+> <img src="%PUBURLPATH%/wikiHome.gif" border="0"></a>
+> </td>
+> <td>
+> <b>%WIKITOOLNAME% . %WEB% . </b><font size="+2">
+> <B>%TOPIC%</b> %TMPL:P{"titleaction"}%</font>
+> </td>
+> </tr>
+> <tr bgcolor="%WEBBGCOLOR%">
+> <td colspan="2">
+> %TMPL:P{"webaction"}%
+> </td>
+> </tr>
+> </table>
+> --- ++ %TMPL:P{"heading"}%
+> %TMPL:P{"message"}%
+> <table width="100%" border="0" cellpadding="3" cellspacing="0">
+> <tr bgcolor="%WEBBGCOLOR%">
+> <td valign="top">
+> Topic <b>%TOPIC%</b> . {
+> %TMPL:P{"topicaction"}%
+> }
+> </td>
+> </tr>
+> </table>
+> </body>
### <a name="Test template oopstest.tmpl"></a> Test template oopstest.tmpl
Each oops template basically just defines some variables and includes the base template that does the layout work.
-> <table bgcolor="#f5f5f5" border="1" cellpadding="1" cellspacing="0">
-> <tr>
-> <td><pre>
> %TMPL:DEF{"titleaction"}% (test =titleaction=) %TMPL:END%
-> %TMPL:DEF{"webaction"}% test =webaction= %TMPL:END%
-> %TMPL:DEF{"heading"}%
-> Test heading %TMPL:END%
-> %TMPL:DEF{"message"}%
-> Test =message=. Blah blah blah blah blah blah blah blah blah blah blah...
+> %TMPL:DEF{"webaction"}% test =webaction= %TMPL:END%
+> %TMPL:DEF{"heading"}%
+> Test heading %TMPL:END%
+> %TMPL:DEF{"message"}%
+> Test =message=. Blah blah blah blah blah blah blah blah blah blah blah...
>
-> * Some more blah blah blah blah blah blah blah blah blah blah...
-> * Param1: %PARAM1%
-> * Param2: %PARAM2%
-> * Param3: %PARAM3%
-> * Param4: %PARAM4%
-> %TMPL:END%
-> %TMPL:DEF{"topicaction"}%
-> Test =topicaction=:
-> [[%WEB%.%TOPIC%][OK]] %TMPL:P{"sep"}%
-> [[%TWIKIWEB%.TWikiRegistration][Register]] %TMPL:END%
-> %TMPL:INCLUDE{"oopsbase"}%
-> </pre></td>
-> </tr>
-> </table>
+> * Some more blah blah blah blah blah blah blah blah blah blah...
+> * Param1: %PARAM1%
+> * Param2: %PARAM2%
+> * Param3: %PARAM3%
+> * Param4: %PARAM4%
+> %TMPL:END%
+> %TMPL:DEF{"topicaction"}%
+> Test =topicaction=:
+> [[%WEB%.%TOPIC%][OK]] %TMPL:P{"sep"}%
+> [[%TWIKIWEB%.TWikiRegistration][Register]] %TMPL:END%
+> %TMPL:INCLUDE{"oopsbase"}%
### <a name="Sample screen shot of oopstest.t"></a> Sample screen shot of oopstest.tmpl
With URL: <code>**.../bin/oops/Sandbox/TestTopic2?template=oopstest&param1=WebHome&param2=WebNotify**</code>
-> <table border="1" cellpadding="0" cellspacing="0">
-> <tr>
-> <td><img alt="testscreen.gif" height="304" src="http://www.dementia.org/twiki//view/testscreen.gif" width="589" /></td>
-> </tr>
-> </table>
+<img src="http://www.dementia.org/twiki//view/testscreen.gif" width="589" height="304" alt="testscreen.gif" style="border: 1px solid #ddd" />
**_Related Topics:_** [[TWikiSkins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]]
<div>
<ul>
<li><a href="#Package =TWiki::Time="> Package TWiki::Time</a><ul>
- <li><a href="#StaticMethod <strong>parseTime</strong> ($szDat"> StaticMethod parseTime <tt>($szDate) -> $iSecs</tt></a></li>
+ <li><a href="#StaticMethod <strong>parseTime</strong> ($szDat"> StaticMethod parseTime <tt>($szDate,$defaultLocal) -> $iSecs</tt></a></li>
<li><a href="#StaticMethod <strong>formatTime</strong> ($epoc"> StaticMethod formatTime <tt>($epochSeconds,$formatString,$outputTimeZone) -> $value</tt></a></li>
<li><a href="#StaticMethod <strong>formatDelta</strong> ($s)"> StaticMethod formatDelta <tt>($s) -> $string</tt></a></li>
<li><a href="#StaticMethod <strong>parseInterval</strong> ($s"> StaticMethod parseInterval <tt>($szInterval) -> [$iSecs,$iSecs]</tt></a></li>
</ul>
</div>
-## <a name="StaticMethod <strong>parseTime</strong> ($szDat"></a> [[StaticMethod]] **parseTime** `($szDate) -> $iSecs`
+## <a name="StaticMethod <strong>parseTime</strong> ($szDat"></a> [[StaticMethod]] **parseTime** `($szDate,$defaultLocal) -> $iSecs`
-Convert string date/time to seconds since epoch.
+Convert string date/time string to seconds since epoch (1970-01-01T00:00:00Z).
- `$sDate` - date/time string
- 2001.12.31.23.59.59
- 2001/12/31 23:59
- 2001.12.31.23.59
-- 2001-12-31T23:59:59Z
+- 2001-12-31T23:59:59
+
+ISO dates may have a timezone specifier, either Z or a signed difference in hh:mm format. For example:
+
- 2001-12-31T23:59:59+01:00
- 2001-12-31T23:59Z
-- 2001-12-31T23:59+01:00
+
+The default timezone is Z, unless $defaultLocal is true in which case the local timezone will be assumed.
If the date format was not recognised, will return 0.
- 2001-01-01T00:00:00
- 2001-12-31T23:59:59
-timezone is optional and not supported yet.
+timezone is optional. Default is local time.
If the format is not recognised, will return empty interval [0,0].
1. Site-level settings: [[TWikiPreferences]]
- Site name, proxy settings, access control, skin
-2. Web-level settings: located in each Web, e.g. [[WebPreferences]]
+2. Web-level settings: located in each Web, e.g. [[WebPreferences]] topic
- Web specific access control, navigation links, colors
-3. User-level settings: In each user's home page, e.g. Main.admin
- - Edit Box Parameters
- - Horizontal size of text edit box:
- - Set EDITBOXWIDTH = 70
- - Vertical size of text edit box:
- - Set EDITBOXHEIGHT = 15
+3. User-level settings: In each user's home page, e.g. Main.admin topic
+ - Settings that are only in effect when this user is logged in, such as LINKTOOLTIPINFO
4. Topic-level settings: Affecting current topic, for web applications
Preferences can be overridden by the next level down.
This step-by-step, hands-on tutorial gets you up to speed with all the [[TWikiSite]] basics, in _mere minutes_...
-> ## <a name="1. Get set..."></a> 1. Get set...
->
-> Open two browser windows, so that you can follow these steps in one window, while trying things out in the other.
->
-> ## <a name="2. Take a quick tour..."></a> 2. Take a quick tour...
->
-> A
->
-> [[TWikiSite]]
->
-> is divided into webs; each one usually represents one area of collaboration. You can navigate the webs from the upper right corner of each web page.
->
-> - Each web has hyperlinked topics, displayed as pages in your browser.
-> - The home page in each web is the [[WebHome]] topic.
-> - To browse a TWiki web, just click on any highlighted link. These links are called [[WikiWords]] and comprise two or more words with initial capitals, run together.
-> - Follow the [[WikiWord]] link and learn what it is.
-> - If you know the name of a topic, you can jump directly to it by typing its name into the **Go** field on the top of the page. Type `WebSearch` to jump to the search page. **_Hint:_** Do not confuse the **Go** field with search.
-> - You can search each TWiki web. Enter a search string in the [[WebHome]] topic or the [[WebSearch]] topic accessible from the `Search` link on each topic. TWiki searches for an exact match; optionally, you can also use [[RegularExpressions]].
->
-> ## <a name="3. Open a private account..."></a> 3. Open a private account...
->
-> To edit topics, you need to have a TWiki account.
->
-> - Go to the [[TWikiRegistration]] page to create your TWiki account. Fill in a couple of lines and you're set!
->
-> ## <a name="4. Check out TWiki users, groups"></a> 4. Check out TWiki users, groups.
->
-> - Go to the [[TWikiUsers]] topic in the TWiki.Main web; it has a list of all users of TWiki. Your [[WikiName]] will be in this list after you register.
-> - Go to the [[TWikiGroups]] topic in the Main web; it has a list of groups which can be used to define fine grained [[TWikiAccessControl]] in TWiki.
->
-> ## <a name="5. Test the page controls..."></a> 5. Test the page controls...
->
-> The color-coded control strips at the top and/or bottom of the page has a collection of action links. Different skins show different links, but most will have some or all of::
->
-> - <code>**Edit**</code> - add to or edit the topic (discussed later)
-> - <code>**Raw View**</code> - show the source text without editing the topic
-> - <code>**Attach**</code> - attach files to a topic (discussed later)
-> - <code>**Backlinks**</code> - find out what other topics link to this topic (reverse link)
-> - <code>**Printable**</code> - goes to a stripped down version of the page, good for printing
-> - <code>**History**</code> - topics are under revision control - `History` shows you the complete change history of the topic, for example, who changed what and when
-> - <code>**r3 > r2 > r1**</code> - view a previous version of the topic or the difference between two versions
-> - <code>**More**</code> - additional controls, such as rename/move, version control and setting the topic's parent.
->
-> ## <a name="6. Change a page, and create a n"></a> 6. Change a page, and create a new one...
->
-> Go to the
->
-> [[Sandbox|Sandbox/WebHome]]
->
-> . This is the sandbox web, where you can make changes and try it all out at will.
->
-> - Click the <code>**Edit**</code> link. You are now in edit mode and you can see the source of the page. (Go to a different topic like Sandbox.adminSandbox if you see a "Topic is being edited by an other user" warning.)
-> - Look at the text in edit mode and compare it with the rendered page (move back and forth in your browser.)
-> - **_%T% Tip:_** When you only want to see the source code of a topic click the <code>**Raw View**</code> link.
-> - Notice how [[WikiWords]] are linked automatically; there is no link if you look at the text in edit mode.
-> - Now, create a new topic - your own test page:
-> 1. In edit mode, enter a new text with a [[WikiWord]], for example: <br />`This is adminSandbox topic.`
-> 2. Preview and save the topic. The name appears, highlighted, with a linked question mark at the end. This means that the topic doesn't exist yet.
-> 3. Click on the question mark. Now you're in edit mode of the new topic.
-> 4. Type some text, basically, like you write an e-mail.
-> 5. A signature with your name is already entered by default. **_NOTE:_** The `Main.` in front of your name means that you have a link from the current web to your personal topic located in the Main web.
-> 6. Preview and save the topic...
-> - Learn about text formatting. You can enter text in TWikiShorthand, a very simple markup language. Follow the [[TWikiShorthand]] link to see how, then:
-> 1. Go back to your sandbox topic end edit it.
-> 2. Enter some text in [[TWikiShorthand]]: **bold** text, _italic_ text, **_bold italic_** text, a bullet list, tables, paragraphs, etc. **_Hint:_** If you need help, click on the [[TextFormattingRules]] link located below the text box in edit mode.
-> 3. Preview and save the topic.
->
-> ## <a name="7. Use your browser to upload fi"></a> 7. Use your browser to upload files as page attachments...
->
-> You can attach
->
-> _any_
->
-> type of file to a topic - documents, images, programs, whatever - where they can be opened, viewed, or downloaded.
->
-> - Attaching files is just like including a file with an e-mail.
-> 1. Go back to your sandbox topic and click on the <code>**[Attach]**</code> link at the bottom.
-> 2. Click <code>**[Browse]**</code> to find a file on your PC that you'd like to attach; enter an optional comment; leave everything else unchecked.
-> 3. Click <code>**[Upload file]**</code>, then scroll to the end of the page to see the new attachment listing.
-> - Do this again - this time, upload a GIF, JPG or PNG image file.
-> - Check the <code>**[Link:]**</code> box to _Create a link to the attached file at the end of the topic_. The image will show up at the bottom of the topic.
-> - To move the image, edit the topic and place the last line (containing `%ATTACHURL%`) anywhere on the page.
-> - If you have a GIF, JPG or PNG image of yourself, your cat, your sprawling family estate...why not upload it now to personalize your account page Main.admin?
->
-> ## <a name="8. Get e-mail alerts whenever pa"></a> 8. Get e-mail alerts whenever pages are changed...
->
-> [[WebNotify]]
->
-> is a subscription service that automatically notifies you by e-mail when topics change in a TWiki web. This is a convenience service - for many people, checking e-mail is easier than checking the Web.
->
-> - If you're using TWiki to collaborate on a project, it's important to know when anyone on your team posts an update. If you're following a specific discussion, it's convenient to know when there's new input.
-> - Alerts are e-mailed as links to individual topics that've been changed in a set period: each day, every hour, whatever is configured for your system.
-> - It's strongly recommended that you try out the service by subscribing to each TWiki web that's relevant to you. You can subscribe and unsubscribe instantly, on a per web basis using [[WebNotify]].
+## <a name="1. Get set..."></a> 1. Get set...
+
+Open two browser windows, so that you can follow these steps in one window, while trying things out in the other.
+
+## <a name="2. Take a quick tour..."></a> 2. Take a quick tour...
+
+A [[TWikiSite]] is divided into webs; each one usually represents one area of collaboration. You can navigate the webs from the upper right corner of each web page.
+
+- Each web has hyperlinked topics, displayed as pages in your browser.
+- The home page in each web is the [[WebHome]] topic.
+- To browse a TWiki web, just click on any highlighted link. These links are called [[WikiWords]] and comprise two or more words with initial capitals, run together.
+- Follow the [[WikiWord]] link and learn what it is.
+- If you know the name of a topic, you can jump directly to it by typing its name into the **Go** field on the top of the page. Type `WebSearch` to jump to the search page. **_Hint:_** Do not confuse the **Go** field with search.
+- You can search each TWiki web. Enter a search string in the [[WebHome]] topic or the [[WebSearch]] topic accessible from the `Search` link on each topic. TWiki searches for an exact match; optionally, you can also use [[RegularExpressions]].
+
+## <a name="3. Open a private account..."></a> 3. Open a private account...
+
+To edit topics, you need to have a TWiki account.
+
+- Go to the [[TWikiRegistration]] page to create your TWiki account. Fill in a couple of lines and you're set!
+
+## <a name="4. Check out TWiki users, groups"></a> 4. Check out TWiki users, groups.
+
+- Go to the [[TWikiUsers]] topic in the TWiki.Main web; it has a list of all users of TWiki. Your [[WikiName]] will be in this list after you register.
+- Go to the [[TWikiGroups]] topic in the Main web; it has a list of groups which can be used to define fine grained [[TWikiAccessControl]] in TWiki.
+
+## <a name="5. Test the page controls..."></a> 5. Test the page controls...
+
+The color-coded control strips at the top and/or bottom of the page has a collection of action links. Different skins show different links, but most will have some or all of::
+
+- <code>**Edit**</code> - add to or edit the topic (discussed later)
+- <code>**Raw View**</code> - show the source text without editing the topic
+- <code>**Attach**</code> - attach files to a topic (discussed later)
+- <code>**Backlinks**</code> - find out what other topics link to this topic (reverse link)
+- <code>**Printable**</code> - goes to a stripped down version of the page, good for printing
+- <code>**History**</code> - topics are under revision control - `History` shows you the complete change history of the topic, for example, who changed what and when
+- <code>**r3 > r2 > r1**</code> - view a previous version of the topic or the difference between two versions
+- <code>**More**</code> - additional controls, such as rename/move, version control and setting the topic's parent.
+
+## <a name="6. Change a page, and create a n"></a> 6. Change a page, and create a new one...
+
+Go to the [[Sandbox|Sandbox/WebHome]]. This is the sandbox web, where you can make changes and try it all out at will.
+
+- Click the <code>**Edit**</code> link. You are now in edit mode and you can see the source of the page. (Go to a different topic like Sandbox.adminSandbox if you see a "Topic is being edited by an other user" warning.)
+- Look at the text in edit mode and compare it with the rendered page (move back and forth in your browser.)
+- **_%T% Tip:_** When you only want to see the source code of a topic click the <code>**Raw View**</code> link.
+- Notice how [[WikiWords]] are linked automatically; there is no link if you look at the text in edit mode.
+- Now, create a new topic - your own test page:
+ 1. In edit mode, enter a new text with a [[WikiWord]], for example: <br />`This is adminSandbox topic.`
+ 2. Preview and save the topic. The name appears, highlighted, with a linked question mark at the end. This means that the topic doesn't exist yet.
+ 3. Click on the question mark. Now you're in edit mode of the new topic.
+ 4. Type some text, basically, like you write an e-mail.
+ 5. A signature with your name is already entered by default. **_NOTE:_** The `Main.` in front of your name means that you have a link from the current web to your personal topic located in the Main web.
+ 6. Preview and save the topic...
+- Learn about text formatting. You can enter text in TWikiShorthand, a very simple markup language. Follow the [[TWikiShorthand]] link to see how, then:
+ 1. Go back to your sandbox topic end edit it.
+ 2. Enter some text in [[TWikiShorthand]]: **bold** text, _italic_ text, **_bold italic_** text, a bullet list, tables, paragraphs, etc. **_Hint:_** If you need help, click on the [[TextFormattingRules]] link located below the text box in edit mode.
+ 3. Preview and save the topic.
+
+## <a name="7. Use your browser to upload fi"></a> 7. Use your browser to upload files as page attachments...
+
+You can attach _any_ type of file to a topic - documents, images, programs, whatever - where they can be opened, viewed, or downloaded.
+
+- Attaching files is just like including a file with an e-mail.
+ 1. Go back to your sandbox topic and click on the <code>**[Attach]**</code> link at the bottom.
+ 2. Click <code>**[Browse]**</code> to find a file on your PC that you'd like to attach; enter an optional comment; leave everything else unchecked.
+ 3. Click <code>**[Upload file]**</code>, then scroll to the end of the page to see the new attachment listing.
+- Do this again - this time, upload a GIF, JPG or PNG image file.
+ - Check the <code>**[Link:]**</code> box to _Create a link to the attached file at the end of the topic_. The image will show up at the bottom of the topic.
+ - To move the image, edit the topic and place the last line (containing `%ATTACHURL%`) anywhere on the page.
+- If you have a GIF, JPG or PNG image of yourself, your cat, your sprawling family estate...why not upload it now to personalize your account page Main.admin?
+
+## <a name="8. Get e-mail alerts whenever pa"></a> 8. Get e-mail alerts whenever pages are changed...
+
+[[WebNotify]] is a subscription service that automatically notifies you by e-mail when topics change in a TWiki web. This is a convenience service - for many people, checking e-mail is easier than checking the Web.
+
+- If you're using TWiki to collaborate on a project, it's important to know when anyone on your team posts an update. If you're following a specific discussion, it's convenient to know when there's new input.
+- Alerts are e-mailed as links to individual topics that've been changed in a set period: each day, every hour, whatever is configured for your system.
+- It's strongly recommended that you try out the service by subscribing to each TWiki web that's relevant to you. You can subscribe and unsubscribe instantly, on a per web basis using [[WebNotify]].
That's it! You're now equipped with all the TWiki essentials. You are ready to roll.
<div>
<ul>
<li><a href="#Package =TWiki::UI="> Package TWiki::UI</a><ul>
- <li><a href="#StaticMethod <strong>run</strong> (\method)"> StaticMethod run <tt>(\&method)</tt></a></li>
+ <li><a href="#StaticMethod <strong>run</strong> (\method,...)"> StaticMethod run <tt>(\&method,...)</tt></a></li>
<li><a href="#StaticMethod <strong>check_WebExists</strong> ("> StaticMethod checkWebExists <tt>($session,$web,$topic,$op)</tt></a></li>
<li><a href="#StaticMethod <strong>topicExists</strong> ($ses"> StaticMethod topicExists <tt>($session,$web,$topic,$op)=>boolean</tt></a></li>
<li><a href="#StaticMethod <strong>checkMirror</strong> ($ses"> StaticMethod checkMirror <tt>($session,$web,$topic)</tt></a></li>
</ul>
</div>
-## <a name="StaticMethod <strong>run</strong> (\method)"></a> [[StaticMethod]] **run** `(\&method)`
+## <a name="StaticMethod <strong>run</strong> (\method,...)"></a> [[StaticMethod]] **run** `(\&method,...)`
Entry point for execution of a UI function. The parameter is a reference to the method.
+... is a list of name-value pairs that define initial context identifiers that must be set during initPlugin. This set will be extended to include command\_line if the script is detected as being run outside the browser.
+
## <a name="StaticMethod <strong>check_WebExists</strong> ("></a> [[StaticMethod]] **checkWebExists** `($session,$web,$topic,$op)`
Check if the web exists. If it doesn't, will throw an oops exception. $op is the user operation being performed.
<div>
<ul>
<li><a href="#Package =TWiki::UI::View="> Package TWiki::UI::View</a><ul>
- <li><a href="#StaticMethod <strong>view</strong> ($session,$w"> StaticMethod view <tt>($session,$web,$topic,$scruptUrl,$query)</tt></a></li>
+ <li><a href="#StaticMethod <strong>view</strong> ($session)"> StaticMethod view <tt>($session)</tt></a></li>
<li><a href="#StaticMethod <strong>viewfile</strong> ($sessio"> StaticMethod viewfile <tt>($session,$web,$topic,$query)</tt></a></li>
</ul>
</li>
</ul>
</div>
-## <a name="StaticMethod <strong>view</strong> ($session,$w"></a> [[StaticMethod]] **view** `($session,$web,$topic,$scruptUrl,$query)`
+## <a name="StaticMethod <strong>view</strong> ($session)"></a> [[StaticMethod]] **view** `($session)`
`view` command handler. This method is designed to be invoked via the `TWiki::UI::run` method.
<td> topic revision to view </td>
</tr>
<tr>
+ <td><code>section</code></td>
+ <td> restrict view to a named section </td>
+ </tr>
+ <tr>
<td><code>raw</code></td>
<td> no format body text if set </td>
</tr>
<li><a href="#TWiki Upgrade Guide"> TWiki Upgrade Guide</a><ul>
<li><a href="#Overview"> Overview</a></li>
<li><a href="#Upgrade Requirements"> Upgrade Requirements</a></li>
- <li><a href="#Major Changes Compared to TWiki"> Major Changes Compared to TWiki Release 01-Sep-2004</a></li>
- <li><a href="#Automated Upgrade Procedure"> Automated Upgrade Procedure</a></li>
- <li><a href="#Manual Upgrade Procedure"> Manual Upgrade Procedure</a></li>
- <li><a href="#Upgrading a Beta"> Upgrading a Beta</a></li>
+ <li><a href="#Major Changes Compared to TWiki"> Major Changes Compared to TWiki Release 01-Sep-2004 and TWiki Release 4.0.0</a></li>
+ <li><a href="#Upgrade Procedure"> Upgrade Procedure</a><ul>
+ <li><a href="#Installation"> Installation</a></li>
+ <li><a href="#Install Extensions"> Install Extensions</a></li>
+ <li><a href="#Copy your old webs to new TWiki"> Copy your old webs to new TWiki</a></li>
+ <li><a href="#Copy Users And Their Topics From"> Copy Users And Their Topics From Main Web</a></li>
+ <li><a href="#Apply Customizations To The Skin"> Apply Customizations To The Skin</a></li>
+ <li><a href="#Apply Preferences From Old Insta"> Apply Preferences From Old Installation</a></li>
+ </ul>
+ </li>
<li><a href="#Upgrading from Cairo to TWiki4 ("> Upgrading from Cairo to TWiki4 (additional advice)</a><ul>
<li><a href="#Favicon"> Favicon</a></li>
+ <li><a href="#!_TWikiUsers topic in Main web"> TWikiUsers topic in Main web</a></li>
</ul>
</li>
</ul>
# <a name="TWiki Upgrade Guide"></a> TWiki Upgrade Guide
-_Upgrade from the previous TWiki 01-Sep-2004 Prodcution Release to TWiki-4.0.0_
+_Upgrade from the previous TWiki 01-Sep-2004 Production Release to TWiki-4.X_
## <a name="Overview"></a> Overview
-TWiki-4.0.0 is a major new release. You can chose between an automated upgrade using a script or a manual update.
+TWiki-4.0.0 was a major new release. TWiki-4.1.0 is a minor release without dramatic changes since 4.0.0
## <a name="Upgrade Requirements"></a> Upgrade Requirements
- Please review the [[AdminSkillsAssumptions]] before you upgrade TWiki
- Review TWiki:TWiki.TWikiUpgradeTo04x00x00 for latest information and experience notes.
- To upgrade from a release prior to TWiki Release 01-Sep-2004, start with TWiki:TWiki.UpgradingTWiki on TWiki.org
-- To upgrade from a standard TWiki Release 01-Sep-2004 to the latest TWiki-4.0.0 Production Release, follow the instructions below
+- To upgrade from a standard TWiki Release 01-Sep-2004 to the latest TWiki-4.X Production Release, follow the instructions below
- Once the upgrade has been applied, an existing earlier installation will still be able to read all the topics, but should not be used to write. Make sure you take a backup!
-- Not all Plugins written for TWiki Release 01-Sep-2004 are fully supported with Dakar. Make sure the Plugins you use can be upgraded as well!
-
-## <a name="Major Changes Compared to TWiki"></a><a name="Major Changes Compared to TWiki "></a> Major Changes Compared to TWiki Release 01-Sep-2004
-
-See [[TWikiReleaseNotes04x00]].
-
-## <a name="Automated Upgrade Procedure"></a> Automated Upgrade Procedure
-
-If you would prefer to do things manually, **or if you made custom modifications to distributed files** (except topics), then skip to the [[manual upgrade procedure|Main/WebHome#ManualUpgradeProcedure]] below.
-
-The upgrade script is called `"UpgradeTwiki"`, and is found in the root of the distribution. It can be run by any user, though you will need to make sure you correct the permissions so that the webserver user can write all files in the new installation when you have finished. The upgrade script does **not** write to your existing installation.
-
-The upgrade script will upgrade the **TWiki core only**. Plugins will need to be upgraded separately.
-
-Note: To upgrade from a Beta, **do not** use UpgradeTWiki. Instead follow the steps outlined in [[Upgrading a Beta|Main/WebHome#Upgrading_a_Beta]], below.
-
-It will:
+- Not all Plugins written for TWiki Release 01-Sep-2004 are fully supported with 4.X. Make sure the Plugins you use can be upgraded as well!
-- Create a new TWiki installation, placing the files from the distribution there as appropriate
-- Where possible, merge the changes you've made in your existing topics and attachments into the new twiki
-- Where not possible, it will tell you, and you can inspect those differences manually
-- Create new configuration files for the new TWiki based on your existing configuation information
-- Set the permissions in the new TWiki so that it should work straight away
-- Attempt to setup authentication for your new TWiki, if you are using .htaccess in the old one
-- Tell you what else you need to do
+## <a name="Major Changes Compared to TWiki"></a><a name="Major Changes Compared to TWiki "></a> Major Changes Compared to TWiki Release 01-Sep-2004 and TWiki Release 4.0.0
-To perform the upgrade, you need to:
-
-- Check first if there is a newer `UpgradeTwiki` script available, see TWiki:Codev.UpgradeTWiki
-- Create a new directory for your new installation: Let's call this `distro/`
-- Put the distribution zip file in `distro/`
-- Unzip it
-- Choose a directory for the new installation. I will call this `new_twiki`. This directory must not already exist.
-- Change directory to `distro/` and run: %BR% `./UpgradeTwiki <full path to existing_twiki's setlib.cfg> <full path to new_twiki>`
-- confirm your system settings by pointing your browser to the `configure` script
-
-Assuming all goes well, `UpgradeTwiki` will give you the final instructions.
-
-Visit TWiki:Codev.KnownIssuesOfTWiki04x00x00 and fix known issues that apply to you.
-
-There are a few points worth noting:
-
-- `UpgradeTwiki` may not be able to merge all the changes you made in your existing TWiki into the new installation, but it will tell you which ones it couldn't deal with
-- `UpgradeTwiki` creates the new installation in a new directory tree. It makes a complete copy of all your existing data, so:
- - Clearly you need to point it to a location where there is enough space
- - If you have symlinks under your `data/` directory in your existing installation, these are reproduced as actual directories in the new structure. It is up to you to pull these sub-directories out again and re-symlink as needed
-- `UpgradeTwiki` doesn't deal with custom templates or Plugins, you will have to reinstall these in the new installation.
-- If you are using the Htpasswd login manager, then note that email addresses for users have moved out of user topics and into the password database. There is a script that performs this extra upgrade step for you - see `tools/upgrade_emails.pl`.
+See [[TWikiReleaseNotes04x00]] and [[TWikiReleaseNotes04x01]]
<a name="ManualUpgradeProcedure"></a>
-## <a name="Manual Upgrade Procedure"></a> Manual Upgrade Procedure
+## <a name="Upgrade Procedure"></a> Upgrade Procedure
The following steps are a rough guide to upgrading only. It is impossible to give detailed instructions, as what you have to do may depend on whether you can configure the webserver or not, and how much you have changed distributed files in your current TWiki release.
-1. Follow the installation instructions, and install the new release in a new directory.
-2. Copy your local webs over to the data and pub directories of the new install
- - You could also use softlinks to link the web directories in data and pub to the old installation area
-3. Unlock the rcs files in data and pub directories from the old installation using the following shell commands:
- - `find data -name '*,v' -exec rcs -r -u -M '{}' \;`
- - `find pub -name '*,v' -exec rcs -r -u -M '{}' \;`
-4. Examine your old TWiki.cfg, and for each local setting, set the corresponding value in the `configure` interface for the new install.
- - If you can't use `configure`, then copy the **new** `TWiki.cfg` to `LocalSite.cfg`, and edit `LocalSite.cfg`. Remove all the settings that you didn't change in your previous install, and change the remaining settings to the values from your **old** TWiki.cfg.
-5. Transfer any customized and local settings from [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] to the topic pointed at by \{LocalSitePreferences\} ([[Main.TWikiPreferences|Main/TWikiPreferences]]). This avoids having to write over files in the distribution.
-6. If you changed any of the topics in the original TWiki distribution, you will have to transfer your changes to the new install manually. There is no simple way to do this, though the following procedure may help:
- 1. Install a copy of the original TWiki release you were using in a temporary directory
- 2. Use 'diff' to find changed files, and transfer the changes into the new Dakar install.
- 3. Install updated plugins into your new area.
-7. Point your webserver at the new install.
-8. Visit TWiki:Codev.KnownIssuesOfTWiki04x00x00 and fix known issues that apply to you.
-9. If you are using the Htpasswd login manager, then note that email addresses for users have moved out of user topics and into the password database. There is a script that performs this extra upgrade step for you - see `tools/upgrade_emails.pl`.
-
-You are **highly** recommended **not** to change any distributed files if you can avoid it, to simplify future upgrades!
-
-## <a name="Upgrading a Beta"></a> Upgrading a Beta
-
-**If** you followed the recommendations and avoided modifying any distributed files, then this is quite straightforward:
-
-1. Follow the installation instructions, and install the new release in a new directory.
-2. Copy your local webs over to the data and pub directories of the new install
- - Be careful to copy over the user topics and [[TWikiUsers]].txt in the Main web
-3. Copy over your `bin/LocalLib.cfg` and `lib/LocalSite.cfg` files
-4. Copy over any local files you created (such as .htpasswd and .htaccess files)
-5. Point your webserver at the new install.
-
-**If** you changed any of the distributed files, you will have to continue from Step 5 above.
+The main steps are:
+
+1. Install the new TWiki version, configure it, and get it to work similar to the old version
+2. Install additional extensions (Plugins). Make sure to use the latest versions
+3. Copy all the non-default webs from the old installation to the new
+4. Copy the users from old installation to the new incl all their topics from Main
+5. Apply tailorings to your Skin (logos, menu bars etc)
+6. Apply preferences from old installation
+
+### <a name="Installation"></a> Installation
+
+- Follow the installation instructions in INSTALL.html which you find in the root of the new installation. Install the new release in a new directory. Do not install on top of the old release.
+- Use the [configure](http://www.dementia.org/twiki/configure) script to configure TWiki.
+ - If you are upgrading from a 4.0.x release, carry over the configure settings from the old release.
+- Additional resources
+ - TWiki:TWiki.UpgradingTWiki04x00PatchReleases
+ - TWiki:TWiki.InstallingTWiki#OtherPlatforms
+ - TWiki:TWiki.ApacheConfigGenerator
+ - TWiki:TWiki.SettingFileAccessRightsLinuxUnix
+ - Your `lib/TWiki.cfg` from the old TWiki installation is a good resource for some of the settings you will need but you cannot reuse the old TWiki.cfg.
+- Make sure you have a working basic TWiki before you continue
+
+### <a name="Install Extensions"></a> Install Extensions
+
+- Note that not all extensions that worked in Cairo have been updated to work with TWiki4.X. Many Cairo plugins work fine. Some do not. Many plugins have been upgraded to work with TWiki4.0 and later.
+- From TWiki-4.1.0 the [configure](http://www.dementia.org/twiki/configure) script which you ran during installation supports installation of additional plugins.
+- Manual installation is possible. Follow the instruction on the Plugin page at twiki.org.
+- Check the plugin topics from your old TWiki installation. There may be plugin settings that you want to transfer to the new TWiki installation. %BR% **_%H% Hint:_** For an easier upgrade later on, set the plugin preferences settings in the [[Main.TWikiPreferences|Main/TWikiPreferences]] topic, not in the plugin topic. To identify the plugin, prefix the name of the setting with the capitalized name of the plugin. For example, to change the `DEFAULT_TYPE` setting of the [[CommentPlugin]], create a `COMMENTPLUGIN_DEFAULT_TYPE` setting in Main.TWikiPreferences.
+- Typical plugin settings you may have altered.
+ - [[CommentPlugin]] - Set DEFAULT\_TYPE
+ - [[EditTablePlugin]] - Set CHANGEROWS, Set QUIETSAVE, and Set EDITBUTTON
+ - [[InterwikiPlugin]] - Set RULESTOPIC
+ - [[InterWikis]] - If you added your own rules you should save this topic and not overwrite it.
+ - [[SlideShowPlugin]] - Make sure you did not change the embedded 'Default Slide Template' If you did you should save it. It is a bad idea to do. It is better to define your own slide show templates as separate topics that do not get overwritten when you upgrade.
+ - [[SmiliesPlugin]] - Did you add your own smileys? No smileys were added 4.0.0 and 4.0.2 so you can just leave this topic as it is.
+ - [[TablePlugin]] - Set TABLEATTRIBUTES
+- Remember that a plugin must be activated in [configure](http://www.dementia.org/twiki/configure).
+
+### <a name="Copy your old webs to new TWiki"></a> Copy your old webs to new TWiki
+
+- When upgrading from Cairo or earlier it may be necessary to unlock the rcs files in data and pub directories from the old installation using the following shell commands:
+ - `find data -name '*,v' -exec rcs -u -M '{}' \;`
+ - `find pub -name '*,v' -exec rcs -u -M '{}' \;`
+- Copy your local webs over to the data and pub directories of the new install. Do not copy the default webs: TWiki, Main, Trash, Sandbox, \_default, and \_empty.
+
+### <a name="Copy Users And Their Topics From"></a> Copy Users And Their Topics From Main Web
+
+- Copy all the topics from the Main web and corresponding pub/Main directories from the old TWiki to the new TWiki but do not overwrite any of the new topics already inside the new Main directory!
+- Manually merge all the users from the old `TWiki.TWikiUsers` topic to the new TWiki. If you upgrade from Cairo you can simply use the old file and add the missing new system users to the list of users. If you upgrade from TWiki-4.0.X simply use the old topic.
+- If you use `data/.htpasswd` for authentication copy this file from the old TWiki to the new.
+ - If you upgrade from Cairo and you are using the Htpasswd login manager, then note that email addresses for users have moved out of user topics and into the password database. There is a script that performs this extra upgrade step for you - see `tools/upgrade_emails.pl`.
+- The old sandbox web may have a lot of useful topic and users may use it actively for drafts. Manually select the topics (remember the corresponding pub directories) from the old Sandbox web and copy them to the new TWiki. Decide if you want to overwrite the sandbox homepage and left menu bar or keep the new.
+
+### <a name="Apply Customizations To The Skin"></a> Apply Customizations To The Skin
+
+- Not many of the old Cairo skins work well with TWiki4.X.
+- Add Logos, update top bar and left bar as required.
+- Apply any desired changes to style sheets and templates. The default [[PatternSkin]] has been totally rewritten since Cairo and once more in 4.0.2. Since then changes to [[PatternSkin]] have been minor and you may be able to carry over most simpler tailorings directly from 4.0.2-4.0.5.
+- Additional resources:
+ - TWiki:TWiki.UpgradingTWiki04x00PatchReleases
+ - [[PatternSkinCustomization]]
+ - [[PatternSkinCssCookbook]]
+
+### <a name="Apply Preferences From Old Insta"></a> Apply Preferences From Old Installation
+
+- Transfer any customized and local settings from [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] to the topic pointed at by \{LocalSitePreferences\} ([[Main.TWikiPreferences|Main/TWikiPreferences]]). Per default this is `Main.TWikiPreferences`. This avoids having to write over files in the distribution on a later upgrade.
+- If you changed any of the topics in the original TWiki distribution, you will have to transfer your changes to the new install manually. There is no simple way to do this, though a suggestion is to use 'diff' to find changed files in the `data/TWiki` of the old and new TWiki installation, and transfer the changes into the new TWiki install.
+- Compare the `WebPreferences` topics in the old TWiki Installation with the default from the new TWiki installation and add any new Preferences that may be relevant.
+- Compare the `WebLeftBar` topics in the old TWiki Installation with the default from the new TWiki installation and add any new feature that you desire.
## <a name="Upgrading from Cairo to TWiki4 ("></a> Upgrading from Cairo to TWiki4 (additional advice)
In TWiki4 it is assumed that each web has a favicon.ico file attached to the WebPreferences topic. When you upgrade from Cairo to TWiki4 you do not have this file and you will get flooded with errors the error log of your web server. There are two solutions to this.
- Attach a favicon.ico file to WebPreferences in each web.
-- Change the setting of the location of favicon.ico in TWikiPreferences so all webs use the favicon.ico from the TWiki web. This is the fastest and easiest solution.
+- Preferred: Change the setting of the location of favicon.ico in TWikiPreferences so all webs use the favicon.ico from the TWiki web. This is the fastest and easiest solution.
To change the location of favicon.ico in TWikiPreferences to the TWiki web add this line to [[TWikiPreferences]]
* Set FAVICON = %PUBURLPATH%/%TWIKIWEB%/%WEBPREFSTOPIC%/favicon.ico
-**_Related Topics:_** [[AdminDocumentationCategory]], TWiki:TWiki.UpgradingTWiki
+### <a name="TWikiUsers topic in Main web"></a><a name="_TWikiUsers topic in Main web"></a> TWikiUsers topic in Main web
+
+Your Cairo [[Main.TWikiUsers|Main/TWikiUsers]] topic will work in TWiki4 but you will need to ensure that these 4 users from the default TWiki4 version of TWikiUsers are copied to the existing TWikiUsers topic. TWikiGuest is probably already there but the others are new
+
+- **TWikiContributor** - placeholder for a TWiki developer, and is used in TWiki documentation
+- **TWikiGuest** - guest user, used as a fallback if the user can't be identified
+- **TWikiRegistrationAgent** - special user used during the new user registration process
+- **UnknownUser** - used where the author of a previously stored piece of data can't be determined
+
+You additionally need to ensure that TWikiUsers has the `Set ALLOWTOPICCHANGE = TWikiAdminGroup, TWikiRegistrationAgent`. Otherwise people will not be able to register.
+
+**_Related Topics:_** [[AdminDocumentationCategory]], TWiki:TWiki.UpgradingTWiki, TWiki:TWiki.UpgradingTWiki04x00PatchReleases, TWiki:TWiki.InstallingTWiki#OtherPlatforms, TWiki:TWiki.ApacheConfigGenerator, TWiki:TWiki.SettingFileAccessRightsLinuxUnix
<li><a href="#TWiki User Authentication"> TWiki User Authentication</a><ul>
<li><a href="#Overview"> Overview</a></li>
<li><a href="#Password Management"> Password Management</a></li>
- <li><a href="#New User Registration"> New User Registration</a></li>
+ <li><a href="#User Mapping"> User Mapping</a></li>
+ <li><a href="#User Registration"> User Registration</a></li>
<li><a href="#Login Management"> Login Management</a><ul>
<li><a href="#No Login (select <code>none</code> in confi"> No Login (select none in configure)</a></li>
<li><a href="#Template Login (select =TWiki::C"> Template Login (select TWiki::Client::TemplateLogin in configure)</a><ul>
TWiki authentication is very flexible, and can either stand alone or integrate with existing authentication schemes. You can set up TWiki to require authentication for every access, or only for changes. Authentication is also essential for access control.
-**Quick Authentication Test** - Use the %WIKIUSERNAME% variable to return your current identity:
+**Quick Authentication Test** - Use the %USERINFO% variable to return your current identity:
-- You are Main.admin
+- You are admin, Main.admin,
-TWiki user authentication is split into three sections; password management, user registration, and login management. Password management deals with how users are recognised (authenticated). Registration deals with how new users are added to the wiki. Login management deals with how users log in.
+TWiki user authentication is split into four sections; password management, user mapping, user registration, and login management. Password management deals with how users personal data is stored. Registration deals with how new users are added to the wiki. Login management deals with how users log in.
-Once a user is logged on, they are remembered using a "session id" stored in a cookie in the browser (or by other less elegant means if the user has disabled cookies). This avoids them having to log on again and again.
+Once a user is logged on, they can be remembered using a _Client Session_ stored in a cookie in the browser (or by other less elegant means if the user has disabled cookies). This avoids them having to log on again and again.
+
+TWiki user authentication is configured through the Security Settings pane in the [configure](http://www.dementia.org/twiki/configure) interface.
Please note [[FileAttachments]] are not protected by TWiki User Authentication.
## <a name="Password Management"></a> Password Management
-As shipped, TWiki supports the Apache 'htpasswd' password manager. This manager supports the use of `.htpasswd` files on the server. These files can be unique to TWiki, or can be shared with other applications (such as an Apache webserver). A variety of password encodings are supported for flexibility when re-using existing files. See the descriptive comments in the Security Settings section of the [ `configure` ](http://www.dementia.org/twiki/configure) interface for more details.
+As shipped, TWiki supports the Apache 'htpasswd' password manager. This manager supports the use of `.htpasswd` files on the server. These files can be unique to TWiki, or can be shared with other applications (such as an Apache webserver). A variety of password encodings are supported for flexibility when re-using existing files. See the descriptive comments in the Security Settings section of the \[[http://www.dementia.org/twiki/configure]\[configure] interface for more details.
+
+You can easily plug in alternate password management modules to support interfaces to other third-party authentication databases.
+
+## <a name="User Mapping"></a> User Mapping
-## <a name="New User Registration"></a> New User Registration
+Often when you are using an external authentication method, you want to map from an unfriendly "login name" to a more friendly [[WikiName]]. Also, an external authentication database may well have user information you want to import to TWiki, such as user groups.
-New user registration uses the password manager to set and change passwords. It is also responsible for the new user verification process. the registration process supports **single user registration** via the [[TWikiRegistration]] page, and **bulk user registration** via the [[BulkRegistration]] page (for admins only).
+By default, TWiki supports mapping of usernames to wikinames, and supports TWiki groups internal to TWiki. If you want, you can plug in an alternate user mapping module to support import of groups etc.
-The registration process is responsible for creating user topics.
+## <a name="User Registration"></a> User Registration
+
+New user registration uses the password manager to set and change passwords and store email addresses. It is also responsible for the new user verification process. the registration process supports **single user registration** via the [[TWikiRegistration]] page, and **bulk user registration** via the [[BulkRegistration]] page (for admins only).
+
+The registration process is also responsible for creating user topics, and setting up the mapping information used by the User Mapping support.
## <a name="Login Management"></a> Login Management
Login management controls the way users have to log in. There are three basic options; no login, login via a TWiki login page, and login using the webserver authentication support.
-You can select your chosen login through the Security Settings pane in the `configure` interface.
-
### <a name="No Login (select <code>none</code> in confi"></a> No Login (select `none` in configure)
Does exactly what it says on the tin. Forget about authentication to make your site completely public - anyone can browse and edit freely, in classic Wiki style. All visitors are given the [[TWikiGuest]] default identity, so you can't track individual user activity.
-**_%X% Note:_** This setup is not recommended on public websites for security reasons; anyone would be able to change system settings and perform tasks usually restricted to the [[TWikiAdminGroup]].
+**_%X% Note:_** This setup is **not** recommended on public websites for security reasons; anyone would be able to change system settings and perform tasks usually restricted to the [[TWikiAdminGroup]].
### <a name="Template Login (select <code>TWiki::C"></a> Template Login (select =TWiki::Client::TemplateLogin in configure)
-Template Login asks for a username and password in a web page, and processes them using whatever Password Manager you choose. Users can log in and log out.
+Template Login asks for a username and password in a web page, and processes them using whatever Password Manager you choose. Users can log in and log out. Client Sessions are used to remember users.
#### <a name="Enabling Template Login"></a> Enabling Template Login
-1. Use the [ `configure` ](http://www.dementia.org/twiki/configure) interface to
+1. Use the [configure](http://www.dementia.org/twiki/configure) interface to
1. select the `TWiki::Client::TemplateLogin` login manager (on the Security Settings pane).
2. select the appropriate password manager for your system, or provide your own.
2. Register yourself in the [[TWikiRegistration]] topic. <br /> %H% Check that the password manager recognises the new user. If you are using `.htpasswd` files, check that a new line with the username and encrypted password is added to the `.htpasswd` file. If not, you probably got a path wrong, or the permissions may not allow the webserver user to write to that file.
TWiki maps the `REMOTE_USER` that was used to log in to the webserver to a [[WikiName]] using the table in [[TWikiUsers]]. This table is updated whenever a user registers, so users can choose not to register (in which case their webserver login name is used for their signature) or register (in which case that login name is mapped to their [[WikiName]]).
-The same private `.htpasswd` file used in TWiki Template Login can be used to authenticate Apache users, using the Apache Basic Authentication support. This allows the TWiki registration support to maintain usernames and passwords.
+The same private `.htpasswd` file used in TWiki Template Login can be used to authenticate Apache users, using the Apache Basic Authentication support.
**Warning:** Do **not** use the Apache `htpasswd` program with `.htpasswd` files generated by TWiki! `htpasswd` wipes out email addresses that TWiki plants in the info fields of this file.
## <a name="Sessions"></a> Sessions
-TWiki uses the CPAN:CGI::Session and CPAN:CGI::Cookie modules to track sessions using cookies. These modules are de facto standards for session management among Perl programmers. If you can't use Cookies for any reason, CPAN:CGI::Session also supports session tracking using the client IP address. See [[How to choose an authentication method|Main/WebHome#HowTo]] for a discussion of the pros and cons of the various authentication methods.
+TWiki uses the CPAN:CGI::Session and CPAN:CGI::Cookie modules to track sessions. These modules are de facto standards for session management among Perl programmers. If you can't use Cookies for any reason, CPAN:CGI::Session also supports session tracking using the client IP address.
+
+You don't _have_ to enable sessions to support logins in TWiki. However it is **strongly** recommended. TWiki needs some way to remember the fact that you logged in from a particular browser, and it uses sessions to do this. If you don;t enable sessions, TWiki will try hard to remember you, but due to limitations in the browsers it may also forget you (and then suddenly remember you again later!). So for the best user experience, you should enable sessions.
There are a number of [[TWikiVariables]] available that you can use to interrogate your current session. You can even add your own session variables to the TWiki cookie. Session variables are referred to as "sticky" variables.
- **TWiki Username:** Your name in [[WikiNotation]], ex: <code>**PeterThoeny**</code>, is recorded when you register using [[TWikiRegistration]]; doing so also generates a personal home page in the Main web.
-TWiki can automatically map an Intranet (Login) Username to a TWiki Username if the \{AllowLoginName\} is enabled in `configure`. The default is to use your [[WikiName]] as a login name.
+TWiki can automatically map an Intranet (Login) Username to a TWiki Username if the \{AllowLoginName\} is enabled in [configure](http://www.dementia.org/twiki/configure). The default is to use your [[WikiName]] as a login name.
> **_NOTE:_**
>
You may want to add or remove scripts from the list of scripts that require authentication. The method for doing this is different for each of Template Login and Apache Login.
-- For Template Login, update the \{AuthScripts\} list using `configure`
+- For Template Login, update the \{AuthScripts\} list using [configure](http://www.dementia.org/twiki/configure)
- For Apache Login, add/remove the script from `.htaccess`
<a name="HowTo"></a>
This section discusses some of the known risks. You can be sure that any potential hackers have read this section as well!
-Firstly, the **most secure** method is without doubt to use the webserver authentication support, with Sessions turned **off**.
+At one extreme, the most secure method is to use TWiki via SSL (Secure Sockets Layer), with a login manager installed and Client Sessions turned **off**.
-The **second most secure method** is to use TWiki's internal authentication with Sessions turned **off**. This method is less secure than using the webserver because passwords are sent in **plain text** and can therefore be intercepted in transit.
+Using TWiki with sessions turned off is a pain, though, as with all the login managers there are occasions where TWiki will forget who you are. The best user experience is achieved with sessions turned **on**.
As soon as you allow the server to maintain information about a logged-in user, you open a door to potential attacks. There are a variety of ways a malicious user can pervert TWiki to obtain another users session ID, the most common of which is known as a [cross-site scripting](http://www.perl.com/pub/a/2002/02/20/css.html) attack. Once a hacker has an SID they can pretend to be that user.
To help prevent these sorts of attacks, TWiki supports **IP matching**, which ensures that the IP address of the user requesting a specific session is the same as the IP address of the user who created the session. This works well as long as IP addresses are unique to each client, and as long as the IP address of the client can't be faked.
-The **third most secure** method is to use sessions with IP matching (\{UseIPMatching\} switched on). Shorter session expiry times are more secure (\{Sessions\}\{ExpireAfter\}). The default session lifetime is 6 hours, which is quite a long lifetime for a session.
-
Session IDs are usually stored by TWiki in cookies, which are stored in the client browser. Cookies work well, but not all environments or users permit cookies to be stored in browsers. So TWiki also supports two other methods of determining the session ID. The first method uses the client IP address to determine the session ID. The second uses a rewriting method that rewrites local URLs in TWiki pages to include the session ID in the URL.
The first method works well as long as IP addresses are **unique** to each individual client, and client IP addresses can't be faked by a hacker. If IP addresses are unique and can't be faked, it is almost as secure as cookies + IP matching, so it ranks as the **fourth most secure method**.
-If you have to turn IP matching off, and cookies can't be relied on, then you may have to rely on the second method, URL rewriting. This method exposes the session IDs very publicly, so should be regarded as the **least secure method**.
+If you have to turn IP matching off, and cookies can't be relied on, then you may have to rely on the second method, URL rewriting. This method exposes the session IDs very publicly, so should be regarded as "rather dodgy".
+
+Most TWiki sites don't use SSL, so, as is the case with **most** sites that don't use SSL, there is always a possibility that a password could be picked out of the aether. Browsers do not encrypt passwords sent over non-SSL links, so using Apache Login is no more secure than Template Login.
+
+Of the two shipped login managers, Apache Login is probably the most useful. It lets you do this sort of thing: `wget --http-user=RogerRabbit --http-password=i'mnottelling http://www.example.com/bin/save/Sandbox/StuffAUTOINC0?text=hohoho,%20this%20is%20interesting` i.e. pass in a user and password to a request from the command-line. However it doesn't let you log out.
+
+Template Login degrades to url re-writing when you use a client like dillo that does not support cookies. However, you can log out and back in as a different user.
+
+Finally, it would be really neat if someone was to work out how to use certificates to identify users.....
See TWiki:TWiki.SecuringTWikiSite for more information.
--- /dev/null
+### <a name="User Settings -- preference vari"></a> User Settings -- preference variables customizable by users
+
+Some of the [[TWikiPreferences]] are explicitly intended to be customized by TWiki users, though a default is provided in [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]], and a site customisation can take place in [[Main.TWikiPreferences|Main/TWikiPreferences]].
+
+Users can customize these variables by assigning them values. Example:
+
+ * Set LINKTOOLTIPINFO = off
+
+**The following variables are classified as user settings:**
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+**See also:**
+
+- [[TWikiVariables]] - an alphabetical list of all variables
+- [[TWikiPreferences]] and [[Main.TWikiPreferences|Main/TWikiPreferences]] - where user shortcuts are defined
<li><a href="#ClassMethod <strong>new</strong> ($session,$imp"> ClassMethod new <tt>($session,$impl)</tt></a></li>
<li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
<li><a href="#ObjectMethod <strong>findUser</strong> ($name[,"> ObjectMethod findUser <tt>($name[,$wikiname][,$nocreate]) -> $userObject</tt></a></li>
+ <li><a href="#ObjectMethod *find_UserByEmail*"> ObjectMethod findUserByEmail <tt>($email) -> \@users</tt></a></li>
<li><a href="#ObjectMethod <strong>createUser</strong> ($logi"> ObjectMethod createUser <tt>($login,$wikiname) -> $userobject</tt></a></li>
<li><a href="#ObjectMethod *add_UserToMapping*"> ObjectMethod addUserToMapping <tt>($user) -> $topicName</tt></a></li>
- <li><a href="#ObjectMethod *initialize_RemoteU"> ObjectMethod initializeRemoteUser <tt>($remoteUser) -> $loginName</tt></a></li>
</ul>
</li>
</ul>
If nocreate is off, then a default user will be created with their wikiname set the same as their login name. This user/wiki name pair can be overridden by a later createUser call when the correct wikiname is known, if necessary.
+## <a name="ObjectMethod <strong>find_UserByEmail*"></a><a name="ObjectMethod *find_UserByEmail</strong> "></a> [[ObjectMethod]] **findUserByEmail** `($email) -> \@users`
+
+- `$email` - email address to look up
+
+Return a list of user objects for the users that have this email registered with the password manager.
+
## <a name="ObjectMethod <strong>createUser</strong> ($logi"></a> [[ObjectMethod]] **createUser** `($login,$wikiname) -> $userobject`
Create a user, and insert them in the maps (overwriting any current entry). Use this instead of findUser when you want to be sure you are not going to pick up any default user created by findUser. All parameters are required.
## <a name="ObjectMethod <strong>add_UserToMapping*"></a> [[ObjectMethod]] \*addUserToMapping `($user) -> $topicName`
Add a user to the persistant mapping that maps from usernames to wikinames and vice-versa.
-
-## <a name="ObjectMethod <strong>initialize_RemoteU"></a> [[ObjectMethod]] \*initializeRemoteUser `($remoteUser) -> $loginName`
-
-Return value: $remoteUser
-
-Acts as a filter for $remoteUser. If set, $remoteUser is filtered for insecure characters and untainted.
-
-If not user is passed, the remote user defaults to $cfg\{DefaultUserLogin\} (usually 'guest').
-
-If we got here via an authentication status failure, then the remote user is set to blank, effectively signalling an illegal access.
-
-If no remote user name was passed in, the user defaults to $cfg\{DefaultUserLogin\}.
You can set variables in all the following places:
1. local site level in [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]]
-2. local site level in [[Main.TWikiPreferences|Main/TWikiPreferences]]
-3. user level in individual user topics in Main web
-4. web level in [[WebPreferences]] of each web
-5. topic level in topics in webs
-6. plugin topics (see [[TWikiPlugins]])
+2. plugin topics (see [[TWikiPlugins]])
+3. local site level in [[Main.TWikiPreferences|Main/TWikiPreferences]]
+4. user level in individual user topics in Main web
+5. web level in [[WebPreferences]] of each web
+6. topic level in topics in webs
7. session variables (if sessions are enabled)
Settings at higher-numbered levels override settings of the same variable at lower numbered levels, unless the variable was included in the setting of FINALPREFERENCES at a lower-numbered level, in which case it is locked at the value it has at that level.
There are many more variables. To see them all, go to **[[TWikiVariables]]**.
-**Documentation Graphics:** There are many graphics available to use in your topics. Use `%ICON{"help"}%`, `%ICON{"tip"|%`, and `%icon{"warning"}%` to get: %H%, %T%, and %X%. To see all of the graphics available, see [[TWikiDocGraphics]].
+**Documentation Graphics:** There are many graphics available to use in your topics. Use `%ICON{"help"}%`, `%ICON{"tip"}%`, and `%ICON{"warning"}%` to get: %H%, %T%, and %X%, respectively. [[TWikiDocGraphics]] lists them all.
<img src="http://www.dementia.org/twiki//view/Main/WebHome/tip.gif" width="16" height="16" alt="tip" /> To "escape" a variable, prefix it with an exclamation mark. Write: `!%SOMEVARIABLE%` to get: %SOMEVARIABLE%.
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 YYY - hh:mm
- - dd-MMM-YY or dd-MMM-YYYY (can be / or space in place of -)
- - MMM is Jan, Feb, etc
+ - 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
- Set SORT = all
- Default table attributes:
- - Set TABLEATTRIBUTES = tableborder="0" cellpadding="1" cellspacing="1" headerbg="#dadada" headercolor="#000000" databg="#eaeaea, #ffffff"
+ - Set TABLEATTRIBUTES = tableborder="1" cellpadding="0" cellspacing="0" valign="top" headeralign="center" headercolor="#ffffff" headerbg="#6b7f93" headerbgsorted="#334455" headercolor="#ffffff" databg="#ffffff,#edf4f9" databgsorted="#f5f5f5,#dce7ee"
- Classic skin table attributes:
- - #Set TABLEATTRIBUTES = tableborder="1" cellpadding="0" cellspacing="1" headerbg="#99CCCC" databg="#FFFFCC, #FFFFFF"
+ - #Set TABLEATTRIBUTES = tableborder="1" cellpadding="0" cellspacing="1" headerbg="#99cccc" databg="#ffffff,#ffffcc"
## <a name="Table Attributes"></a> Table Attributes
<tr>
<th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=0;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Argument</font></a></th>
<th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=1;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Comment</font></a></th>
- <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=2;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Example</font></a></th>
+ <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=2;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Default value</font></a></th>
+ <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=3;table=2;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Example</font></a></th>
</tr>
<tr>
<td bgcolor="#ecf2f8" style=""><code>sort</code></td>
- <td bgcolor="#ecf2f8" style=""> Set table sorting <code>"on"</code> or <code>"off"</code></td>
+ <td bgcolor="#ecf2f8" style=""> Set table sorting <code>"on"</code> or <code>"off"</code>. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
<td bgcolor="#ecf2f8" style=""><code>sort="on"</code></td>
</tr>
<tr>
<td bgcolor="#ffffff" style=""><code>initsort</code></td>
- <td bgcolor="#ffffff" style=""> Column to sort initially (<code>"1"</code> to number of columns) </td>
+ <td bgcolor="#ffffff" style=""> Column to sort initially (<code>"1"</code> to number of columns). </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
<td bgcolor="#ffffff" style=""><code>initsort="2"</code></td>
</tr>
<tr>
<td bgcolor="#ecf2f8" style=""><code>initdirection</code></td>
- <td bgcolor="#ecf2f8" style=""> Initial sorting direction for <code>initsort</code>, set to <code>"up"</code> or <code>"down"</code></td>
+ <td bgcolor="#ecf2f8" style=""> Initial sorting direction for <code>initsort</code>, set to <code>"up"</code> (descending) or <code>"down"</code> (ascending). </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
<td bgcolor="#ecf2f8" style=""><code>initdirection="up"</code></td>
</tr>
<tr>
<td bgcolor="#ffffff" style=""><code>headerbg</code></td>
- <td bgcolor="#ffffff" style=""> Header cell background colour. Choose one of the [[TWiki/StandardColors]]</td>
- <td bgcolor="#ffffff" style=""><code>headerbg="#99CCCC"</code></td>
+ <td bgcolor="#ffffff" style=""> Header cell background colour. </td>
+ <td bgcolor="#ffffff" style=""><code>"#6b7f93"</code></td>
+ <td bgcolor="#ffffff" style=""><code>headerbg="#999999"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>headercolor</code></td>
- <td bgcolor="#ecf2f8" style=""> Header cell text colour </td>
- <td bgcolor="#ecf2f8" style=""><code>headercolor="#0000CC"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headerbgsorted</code></td>
+ <td bgcolor="#ecf2f8" style=""> Header cell background colour of a sorted column. </td>
+ <td bgcolor="#ecf2f8" style=""> the value of <code>headerbg</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headerbgsorted="#32596c"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>databg</code></td>
- <td bgcolor="#ffffff" style=""> Data cell background colour, a comma separated list. Specify <code>"none"</code> for no colour, that is to use the colour/background of the page the table is on. </td>
- <td bgcolor="#ffffff" style=""><code>databg="#C8CB8F, #DBDDB5"</code></td>
+ <td bgcolor="#ffffff" style=""><code>headercolor</code></td>
+ <td bgcolor="#ffffff" style=""> Header cell text colour. </td>
+ <td bgcolor="#ffffff" style=""><code>"#ffffff"</code></td>
+ <td bgcolor="#ffffff" style=""><code>headercolor="#0000cc"</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""><code>databg</code></td>
+ <td bgcolor="#ecf2f8" style=""> Data cell background colour, a comma separated list. Specify <code>"none"</code> for no colour, that is to use the colour/background of the page the table is on. </td>
+ <td bgcolor="#ecf2f8" style=""><code>"#edf4f9,#ffffff"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>databg="#f2f2f2,#ffffff"</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><code>databgsorted</code></td>
+ <td bgcolor="#ffffff" style=""> Data cell background colour of a sorted column; see <code>databg</code>. </td>
+ <td bgcolor="#ffffff" style=""> the values of <code>databg</code></td>
+ <td bgcolor="#ffffff" style=""><code>databgsorted="#d4e8e4,#e5f5ea"</code></td>
</tr>
<tr>
<td bgcolor="#ecf2f8" style=""><code>datacolor</code></td>
- <td bgcolor="#ecf2f8" style=""> Data cell text colour, a comma separated list </td>
+ <td bgcolor="#ecf2f8" style=""> Data cell text colour, a comma separated list. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
<td bgcolor="#ecf2f8" style=""><code>datacolor="#0000CC, #000000"</code></td>
</tr>
<tr>
<td bgcolor="#ffffff" style=""><code>tableborder</code></td>
- <td bgcolor="#ffffff" style=""> Table border width (pixels) </td>
+ <td bgcolor="#ffffff" style=""> Table border width (pixels). </td>
+ <td bgcolor="#ffffff" style=""><code>"1"</code></td>
<td bgcolor="#ffffff" style=""><code>tableborder="2"</code></td>
</tr>
<tr>
<td bgcolor="#ecf2f8" style=""><code>tableframe</code></td>
- <td bgcolor="#ecf2f8" style=""> Table frame, set to <code>"void"</code> (no sides), <code>"above"</code> (the top side only), <code>"below"</code> (the bottom side only), <code>"hsides"</code> (the top and bottom sides only), <code>"lhs"</code> (the left-hand side only), <code>"rhs"</code> (the right-hand side only), <code>"vsides"</code> (the right and left sides only), <code>"box"</code> (all four sides), <code>"border"</code> (all four sides); default <code>"void"</code></td>
+ <td bgcolor="#ecf2f8" style=""> Table frame, set to <code>"void"</code> (no sides), <code>"above"</code> (the top side only), <code>"below"</code> (the bottom side only), <code>"hsides"</code> (the top and bottom sides only), <code>"lhs"</code> (the left-hand side only), <code>"rhs"</code> (the right-hand side only), <code>"vsides"</code> (the right and left sides only), <code>"box"</code> (all four sides), <code>"border"</code> (all four sides). </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
<td bgcolor="#ecf2f8" style=""><code>tableframe="hsides"</code></td>
</tr>
<tr>
<td bgcolor="#ffffff" style=""><code>tablerules</code></td>
- <td bgcolor="#ffffff" style=""> Table rules, set to <code>"none"</code> (no rules), <code>"groups"</code> (rules will appear between row groups and column groups only), <code>"rows"</code> (rules will appear between rows only), <code>"cols"</code> (rules will appear between columns only), <code>"all"</code> (rules will appear between all rows and columns); default <code>"none"</code></td>
+ <td bgcolor="#ffffff" style=""> Table rules, set to <code>"none"</code> (no rules), <code>"groups"</code> (rules will appear between row groups and column groups only), <code>"rows"</code> (rules will appear between rows only), <code>"cols"</code> (rules will appear between columns only), <code>"all"</code> (rules will appear between all rows and columns). </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
<td bgcolor="#ffffff" style=""><code>tablerules="rows"</code></td>
</tr>
<tr>
<td bgcolor="#ecf2f8" style=""><code>cellpadding</code></td>
- <td bgcolor="#ecf2f8" style=""> Cell padding (pixels) </td>
+ <td bgcolor="#ecf2f8" style=""> Cell padding (pixels). </td>
+ <td bgcolor="#ecf2f8" style=""><code>"0"</code></td>
<td bgcolor="#ecf2f8" style=""><code>cellpadding="0"</code></td>
</tr>
<tr>
<td bgcolor="#ffffff" style=""><code>cellspacing</code></td>
- <td bgcolor="#ffffff" style=""> Cell spacing (pixels) </td>
+ <td bgcolor="#ffffff" style=""> Cell spacing (pixels). </td>
+ <td bgcolor="#ffffff" style=""><code>"0"</code></td>
<td bgcolor="#ffffff" style=""><code>cellspacing="3"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>valign</code></td>
- <td bgcolor="#ecf2f8" style=""> Vertical alignment of cells, set to <code>"top"</code>, <code>"middle"</code>, <code>"bottom"</code> or <code>"baseline"</code></td>
- <td bgcolor="#ecf2f8" style=""><code>valign="top"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>cellborder</code></td>
+ <td bgcolor="#ecf2f8" style=""> Cell border width (pixels). </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>cellborder="0"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>headeralign</code></td>
- <td bgcolor="#ffffff" style=""> Header cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to <code>"left"</code>, <code>"center"</code>, <code>"right"</code> or <code>"justify"</code>. Overrides individual cell settings </td>
- <td bgcolor="#ffffff" style=""><code>headeralign="left, right"</code></td>
+ <td bgcolor="#ffffff" style=""><code>valign</code></td>
+ <td bgcolor="#ffffff" style=""> Vertical alignment of cells and headers, set to <code>"top"</code>, <code>"middle"</code>, <code>"bottom"</code> or <code>"baseline"</code>. </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
+ <td bgcolor="#ffffff" style=""><code>valign="top"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>dataalign</code></td>
- <td bgcolor="#ecf2f8" style=""> Data cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to <code>"left"</code>, <code>"center"</code>, <code>"right"</code> or <code>"justify"</code>. Overrides individual cell settings </td>
- <td bgcolor="#ecf2f8" style=""><code>dataalign="center"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headervalign</code></td>
+ <td bgcolor="#ecf2f8" style=""> Vertical alignment of header cells; overrides <code>valign</code>. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>headervalign="top"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>tablewidth</code></td>
- <td bgcolor="#ffffff" style=""> Table width: Percentage of window width, or absolute pixel value. Default is unspecified. </td>
- <td bgcolor="#ffffff" style=""><code>tablewidth="100%"</code></td>
+ <td bgcolor="#ffffff" style=""><code>datavalign</code></td>
+ <td bgcolor="#ffffff" style=""> Vertical alignment of data cells; overrides <code>valign</code>. </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
+ <td bgcolor="#ffffff" style=""><code>datavalign="top"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>columnwidths</code></td>
- <td bgcolor="#ecf2f8" style=""> Column widths: Comma delimited list of column widths, percentage or absolute pixel value. Default is unspecified. </td>
- <td bgcolor="#ecf2f8" style=""><code>columnwidths="80%, 20%"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headeralign</code></td>
+ <td bgcolor="#ecf2f8" style=""> Header cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to <code>"left"</code>, <code>"center"</code>, <code>"right"</code> or <code>"justify"</code>. Overrides individual cell settings. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>headeralign="left,right"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>headerrows</code></td>
- <td bgcolor="#ffffff" style=""> Number of header rows to exclude from sort; default <code>"1"</code></td>
- <td bgcolor="#ffffff" style=""><code>headerrows="1"</code></td>
+ <td bgcolor="#ffffff" style=""><code>dataalign</code></td>
+ <td bgcolor="#ffffff" style=""> Data cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to <code>"left"</code>, <code>"center"</code>, <code>"right"</code> or <code>"justify"</code>. Overrides individual cell settings. </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
+ <td bgcolor="#ffffff" style=""><code>dataalign="center"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>footerrows</code></td>
- <td bgcolor="#ecf2f8" style=""> Number of footer rows to exclude from sort; default <code>"0"</code></td>
- <td bgcolor="#ecf2f8" style=""><code>footerrows="1"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>tablewidth</code></td>
+ <td bgcolor="#ecf2f8" style=""> Table width: Percentage of window width, or absolute pixel value. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>tablewidth="100%"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>id</code></td>
- <td bgcolor="#ffffff" style=""> Table identifier string. Default is unspecified. </td>
- <td bgcolor="#ffffff" style=""><code>id="userTable"</code></td>
+ <td bgcolor="#ffffff" style=""><code>columnwidths</code></td>
+ <td bgcolor="#ffffff" style=""> Column widths: Comma delimited list of column widths, percentage or absolute pixel value. </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
+ <td bgcolor="#ffffff" style=""><code>columnwidths="80%,20%"</code></td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""><code>summary</code></td>
- <td bgcolor="#ecf2f8" style=""> Table summary used by screenreaders: A summary of what the table presents. It should provide an orientation for someone who listens to the table. Default is unspecified. </td>
- <td bgcolor="#ecf2f8" style=""><code>summary="List of subscribed users"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headerrows</code></td>
+ <td bgcolor="#ecf2f8" style=""> Number of header rows to exclude from sort. </td>
+ <td bgcolor="#ecf2f8" style=""><code>"1"</code></td>
+ <td bgcolor="#ecf2f8" style=""><code>headerrows="1"</code></td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""><code>caption</code></td>
- <td bgcolor="#ffffff" style=""> Table caption: A title that will be displayed just above the table. Default is unspecified. </td>
- <td bgcolor="#ffffff" style=""><code>caption="Users"</code></td>
+ <td bgcolor="#ffffff" style=""><code>footerrows</code></td>
+ <td bgcolor="#ffffff" style=""> Number of footer rows to exclude from sort. </td>
+ <td bgcolor="#ffffff" style=""><code>"0"</code></td>
+ <td bgcolor="#ffffff" style=""><code>footerrows="1"</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""><code>id</code></td>
+ <td bgcolor="#ecf2f8" style=""> Table identifier string. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>id="userTable"</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""><code>summary</code></td>
+ <td bgcolor="#ffffff" style=""> Table summary used by screenreaders: A summary of what the table presents. It should provide an orientation for someone who listens to the table. </td>
+ <td bgcolor="#ffffff" style=""><span>unspecified</span></td>
+ <td bgcolor="#ffffff" style=""><code>summary="List of subscribed users"</code></td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""><code>caption</code></td>
+ <td bgcolor="#ecf2f8" style=""> Table caption: A title that will be displayed just above the table. </td>
+ <td bgcolor="#ecf2f8" style=""><span>unspecified</span></td>
+ <td bgcolor="#ecf2f8" style=""><code>caption="Users"</code></td>
</tr>
</table>
### <a name="Use of %TABLE{...}%"></a> Use of %TABLE\{...\}%
-Line before table: `%TABLE{ sort="on" tableborder="0" cellpadding="1" cellspacing="3" headerbg="#D5CCB1" headercolor="#666666" databg="#FAF0D4, #F3DFA8" headerrows="2" footerrows="1" }%`
+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 border="0" cellpadding="1" cellspacing="3" style="border-width: 0px">
+<table border="0" cellpadding="4" cellspacing="3" style="border-width: 0px">
<tr>
- <th bgcolor="#D5CCB1" colspan="6" maxcols="0" style=""><span><font color="#666666"> <strong> Table with two Header Rows and Footer Row </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" colspan="6" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Table with two Header Rows and Footer Row </strong> </font></span></th>
</tr>
<tr>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=0;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Num</font></a></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=1;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Status</font></a></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=2;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Action</font></a></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=3;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Who</font></a></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=4;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">When</font></a></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><a href="http://localhost?sortcol=5;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Progress</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=0;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Num</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=1;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Status</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=2;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Action</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=3;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Who</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=4;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">When</font></a></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><a href="http://localhost?sortcol=5;table=3;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#666666">Progress</font></a></th>
</tr>
<tr>
- <td bgcolor="#FAF0D4" style=""> 1 </td>
- <td bgcolor="#FAF0D4" style=""> C </td>
- <td bgcolor="#FAF0D4" style=""> Chose new colours </td>
- <td bgcolor="#FAF0D4" style=""> John </td>
- <td bgcolor="#FAF0D4" style=""> 1-Dec-02 </td>
- <td bgcolor="#FAF0D4" style=""> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> 1 </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> C </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> Chose new colours </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> John </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> 1-Dec-02 </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
</tr>
<tr>
- <td bgcolor="#F3DFA8" style=""> 2 </td>
- <td bgcolor="#F3DFA8" style=""> X </td>
- <td bgcolor="#F3DFA8" style=""> Release </td>
- <td bgcolor="#F3DFA8" style=""> John </td>
- <td bgcolor="#F3DFA8" style=""> 1-Apr-02 </td>
- <td bgcolor="#F3DFA8" style=""> </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> 2 </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> X </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> Release </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> John </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> 1-Apr-02 </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> </td>
</tr>
<tr>
- <td bgcolor="#FAF0D4" style=""> 3 </td>
- <td bgcolor="#FAF0D4" style=""> </td>
- <td bgcolor="#FAF0D4" style=""> Get feedback </td>
- <td bgcolor="#FAF0D4" style=""> Anne </td>
- <td bgcolor="#FAF0D4" style=""> 1-Feb-02 </td>
- <td bgcolor="#FAF0D4" style=""> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> 3 </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> Get feedback </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> Anne </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> 1-Feb-02 </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
</tr>
<tr>
- <td bgcolor="#F3DFA8" style=""> 12 </td>
- <td bgcolor="#F3DFA8" style=""> C </td>
- <td bgcolor="#F3DFA8" style=""> Spec error handling </td>
- <td bgcolor="#F3DFA8" style=""> Jack </td>
- <td bgcolor="#F3DFA8" style=""> 1-Dec-02 </td>
- <td bgcolor="#F3DFA8" style=""> </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> 12 </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> C </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> Spec error handling </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> Jack </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> 1-Dec-02 </td>
+ <td bgcolor="#F3DFA8" style="border-width: 0px"> </td>
</tr>
<tr>
- <td bgcolor="#FAF0D4" style=""> 5 </td>
- <td bgcolor="#FAF0D4" style=""> </td>
- <td bgcolor="#FAF0D4" style=""> Abc </td>
- <td bgcolor="#FAF0D4" style=""> John </td>
- <td bgcolor="#FAF0D4" style=""> </td>
- <td bgcolor="#FAF0D4" style=""> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> 5 </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> Abc </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> John </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
+ <td bgcolor="#FAF0D4" style="border-width: 0px"> </td>
</tr>
<tr>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> Num </strong> </font></span></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> Status </strong> </font></span></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> Action </strong> </font></span></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> Who </strong> </font></span></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> When </strong> </font></span></th>
- <th bgcolor="#D5CCB1" maxcols="0" style=""><span><font color="#666666"> <strong> Progress </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Num </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Status </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Action </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Who </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> When </strong> </font></span></th>
+ <th bgcolor="#D5CCB1" maxcols="0" style="border-width: 0px"><span><font color="#666666"> <strong> Progress </strong> </font></span></th>
</tr>
</table>
</tr>
<tr>
<td align="right" bgcolor="#ffffff" style=""> Plugin Version: </td>
- <td bgcolor="#ffffff" style=""> 1.014 </td>
+ <td bgcolor="#ffffff" style=""> 1.020 </td>
</tr>
<tr>
<td align="right" bgcolor="#ecf2f8" style=""> Change History: </td>
<td bgcolor="#ecf2f8" style=""> </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 13 Dec 2005 </td>
- <td bgcolor="#ffffff" style=""> AC: Added support for id, summary and caption </td>
+ <td align="right" bgcolor="#ffffff" style=""> 27 Dec 2006 </td>
+ <td bgcolor="#ffffff" style=""> 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. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 5 Mar 2005 </td>
- <td bgcolor="#ecf2f8" style=""> 1.014: Crawford Currie eliminated deprecated handlers for Dakar </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 13 Dec 2006 </td>
+ <td bgcolor="#ecf2f8" style=""> 1.019: Arthur Clemens: Prevent sorting of columns that do no exist. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 01 Aug 2004: </td>
- <td bgcolor="#ffffff" style=""> AC: Added CSS support for first column and ascending/descending table headers </td>
+ <td align="right" bgcolor="#ffffff" style=""> 02 Dec 2006 </td>
+ <td bgcolor="#ffffff" style=""> 1.018: Arthur Clemens: Data rows now start with first <code>datacolor</code> and <code>databgcolor</code>. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 21 Mar 2004: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Internal change: Fixed reference to unofficial variable </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 26 Nov 2006 </td>
+ <td bgcolor="#ecf2f8" style=""> 1.017: Arthur Clemens: Better support for <code>tablerules</code>. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 01 Jan 2004: </td>
- <td bgcolor="#ffffff" style=""> PTh: Alternating data row colors restart again after each header row </td>
+ <td align="right" bgcolor="#ffffff" style=""> 24 Nov 2006 </td>
+ <td bgcolor="#ffffff" style=""> 1.016: Arthur Clemens: Added new attribute <code>cellborder</code>. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 01 Dec 2003: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Fixed error when footerrows was specified on an empty table, contributed by TWiki:Main/PaulineCheung </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 25 Oct 2006 </td>
+ <td bgcolor="#ecf2f8" style=""> 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 <code>headervalign</code> and <code>datavalign</code>. </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 24 May 2003: </td>
- <td bgcolor="#ffffff" style=""> PTh: New <code>|^|</code> 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 </td>
+ <td align="right" bgcolor="#ffffff" style=""> 16 Aug 2006 </td>
+ <td bgcolor="#ffffff" style=""> Michael Daum: Added CSS support for even/odd table rows </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 17 Dec 2002: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Removed individual table Plugin settings; added TABLEATTRIBUTES Plugins setting and TABLEATTRIBUTES preferences setting </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 13 Dec 2005 </td>
+ <td bgcolor="#ecf2f8" style=""> Arthur Clemens: Added support for <code>id</code>, <code>summary</code> and <code>caption</code></td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 15 Dec 2002: </td>
- <td bgcolor="#ffffff" style=""> PTh: Added headerrows and footerrows params (TWiki:Main/DarrylGreen, TWiki:Main/WoutMertens); added tablewidth and columnwidths params (TWiki:Main/ThorstenSommermann) </td>
+ <td align="right" bgcolor="#ffffff" style=""> 05 Mar 2005 </td>
+ <td bgcolor="#ffffff" style=""> 1.014: Crawford Currie eliminated deprecated handlers for Dakar </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 09 Dec 2002: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Added headercolor and datacolor parameters </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 01 Aug 2004 </td>
+ <td bgcolor="#ecf2f8" style=""> Arthur Clemens: Added CSS support for first column and ascending/descending table headers </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 05 Jun 2002: </td>
- <td bgcolor="#ffffff" style=""> 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) </td>
+ <td align="right" bgcolor="#ffffff" style=""> 21 Mar 2004 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Internal change: Fixed reference to unofficial variable </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 13 Mar 2002: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Added TWiki:Main/ShawnBradford 's initsort and initdirection </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 01 Jan 2004 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: Alternating data row colors restart again after each header row </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 12 Mar 2002: </td>
- <td bgcolor="#ffffff" style=""> PTh: Added valign, headeralign and dataalign; fixed bug of swapped cellpadding/cellspacing; fixed warning of uninitialized value </td>
+ <td align="right" bgcolor="#ffffff" style=""> 01 Dec 2003 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Fixed error when footerrows was specified on an empty table, contributed by TWiki:Main/PaulineCheung </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 05 Jan 2002: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Fixed sorting bug of cells with leading white space </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 24 May 2003 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: New <code>|^|</code> 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 </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 06 Dec 2001: </td>
- <td bgcolor="#ffffff" style=""> PTh: Fixed date sorting bug <br /> 03 Dec 2001 PTh: Fixed sort="off" bug and more </td>
+ <td align="right" bgcolor="#ffffff" style=""> 17 Dec 2002 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Removed individual table Plugin settings; added TABLEATTRIBUTES Plugins setting and TABLEATTRIBUTES preferences setting </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 29 Nov 2001: </td>
- <td bgcolor="#ecf2f8" style=""> PTh: Fixed Perl warnings </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 15 Dec 2002 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: Added headerrows and footerrows params (TWiki:Main/DarrylGreen, TWiki:Main/WoutMertens); added tablewidth and columnwidths params (TWiki:Main/ThorstenSommermann) </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> 16 Nov 2001: </td>
- <td bgcolor="#ffffff" style=""> PTh: Added table border, cell spacing, cell padding, gif files </td>
+ <td align="right" bgcolor="#ffffff" style=""> 09 Dec 2002 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Added headercolor and datacolor parameters </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> 07 Oct 2001: </td>
- <td bgcolor="#ecf2f8" style=""> JT: Initial version </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> 05 Jun 2002 </td>
+ <td bgcolor="#ecf2f8" style=""> 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) </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> CPAN Dependencies: </td>
- <td bgcolor="#ffffff" style=""> none </td>
+ <td align="right" bgcolor="#ffffff" style=""> 13 Mar 2002 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Added TWiki:Main/ShawnBradford 's initsort and initdirection </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ecf2f8" style=""> 12 Mar 2002 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: Added valign, headeralign and dataalign; fixed bug of swapped cellpadding/cellspacing; fixed warning of uninitialized value </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> Other Dependencies: </td>
+ <td align="right" bgcolor="#ffffff" style=""> 05 Jan 2002 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Fixed sorting bug of cells with leading white space </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ecf2f8" style=""> 06 Dec 2001 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: Fixed date sorting bug <br /> 03 Dec 2001 PTh: Fixed sort="off" bug and more </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ffffff" style=""> 29 Nov 2001 </td>
+ <td bgcolor="#ffffff" style=""> PTh: Fixed Perl warnings </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ecf2f8" style=""> 16 Nov 2001 </td>
+ <td bgcolor="#ecf2f8" style=""> PTh: Added table border, cell spacing, cell padding, gif files </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ffffff" style=""> 07 Oct 2001 </td>
+ <td bgcolor="#ffffff" style=""> JT: Initial version </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ecf2f8" style=""> CPAN Dependencies: </td>
<td bgcolor="#ecf2f8" style=""> none </td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> Perl Version: </td>
- <td bgcolor="#ffffff" style=""> 5.0 </td>
+ <td align="right" bgcolor="#ffffff" style=""> Other Dependencies: </td>
+ <td bgcolor="#ffffff" style=""> none </td>
+ </tr>
+ <tr>
+ <td align="right" bgcolor="#ecf2f8" style=""> Perl Version: </td>
+ <td bgcolor="#ecf2f8" style=""> 5.0 </td>
</tr>
<tr>
- <td align="right" bgcolor="#ecf2f8" style=""> Plugin Home: </td>
- <td bgcolor="#ecf2f8" style=""><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
+ <td align="right" bgcolor="#ffffff" style=""> Plugin Home: </td>
+ <td bgcolor="#ffffff" style=""><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
</tr>
<tr>
- <td align="right" bgcolor="#ffffff" style=""> Feedback: </td>
- <td bgcolor="#ffffff" style=""><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
+ <td align="right" bgcolor="#ecf2f8" style=""> Feedback: </td>
+ <td bgcolor="#ecf2f8" style=""><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="right"> Author: </td>
- <td> TWiki:Main.PeterThoeny </td>
+ <td> TWiki:Main.PeterThoeny, TWiki:Main.PaulineCheung </td>
</tr>
<tr>
<td align="right"> Copyright ©: </td>
- <td> Copyright 2005 Peter Thoeny. All Rights Reserved. </td>
+ <td> 2005-2007 <a href="http://www.structuredwikis.com/peter.html" target="_top">Peter Thoeny</a>, All Rights Reserved. </td>
</tr>
<tr>
<td align="right"> License: </td>
</tr>
<tr>
<td align="right"> Dependencies: </td>
- <td> none </td>
+ <td> TWiki:Plugins.SpreadSheetPlugin 18 Dec 2006 (r12315) </td>
</tr>
<tr>
<td align="right"> Version: </td>
- <td> 10613 </td>
+ <td> 2007-01-04 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 2007-01-04: </td>
+ <td> Performance improvement </td>
+ </tr>
+ <tr>
<td align="right"> 10 Oct 2005: </td>
<td> Initial version - Packaging by TWiki:Main.LynnwoodBrown </td>
</tr>
**_Related Topics:_** [[TWikiPreferences]]
--- TWiki:Main.LynnwoodBrown - 02:16:11 25 October 2006
+-- TWiki:Main.PeterThoeny - 2007-01-04
# <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
-<div>
- <ul>
- <li><a href="#Summary"> Summary</a></li>
- <li><a href="#Customization"> Customization</a></li>
+**This contrib packages in a convenient way the JavaScript library and the CSS file needed to implement Twisty sections.**
+
+TwistyContrib is installed by default in TWiki 4 and used by [[Twisty Plugin|TWiki:Plugins/TwistyPlugin]].
+
+It is recommended to use the TwistyPlugin as it eases the deployment and use of this contrib.
+
+This Contrib should work in all versions of TWiki. It has been tested against [[TWiki 3|TWiki:Codev/CairoRelease]] and [[TWiki 4|TWiki:Codev/DakarRelease]].
+
+<div><span>On this page:</span><ul>
+ <li><a href="#Usage examples"> Usage examples</a><ul>
+ <li><a href="#Basic Twisty"> Basic Twisty</a></li>
+ <li><a href="#Twisty with placeholder text"> Twisty with placeholder text</a></li>
+ </ul>
+ </li>
+ <li><a href="#Twisty made easy"> Twisty made easy</a><ul>
+ <li><a href="#You Write"> You Write </a></li>
+ <li><a href="#Your Users Write"> Your Users Write</a></li>
+ <li><a href="#You See"> You See</a></li>
+ <li><a href="#All on, all off"> All on, all off</a></li>
+ </ul>
+ </li>
<li><a href="#Settings"> Settings</a></li>
<li><a href="#Installation Instructions"> Installation Instructions</a></li>
- <li><a href="#Demo Text"> Demo & Text</a></li>
<li><a href="#Contrib Info"> Contrib Info</a></li>
</ul>
</div>
-## <a name="Summary"></a> Summary
+## <a name="Usage examples"></a> Usage examples
-This contrib packages in a convenient way the Javascript library and the CSS file needed to implement TWisty Sections.
+If the contrib is properly installed (and JavaScript is enabled in your browser) you should see two folding sections below.
-See the [attached file](http://www.dementia.org/twiki//view/toggle-optm-jsoff-sep.html) for a demo and an example of usage.
+### <a name="Basic Twisty"></a> Basic Twisty
-To use the libraries, you must place the following scriplet either in the head section of the page (by modifying the [[TWikiSkins]]) or putting it somewhere in the topic:
+ <span id="demo1show" class="twistyTrigger twistyMakeVisible"><button class="twikiButton"> Unfold </button></span>
+ <span id="demo1hide" class="twistyTrigger twistyHidden"><button class="twikiButton"> Fold </button></span>
+ <span id="demo1toggle" class="twistyContent twistyMakeHidden">
+ my twisty content
+ </span>
- <style type="text/css" media="all">
- @import url("%PUBURLPATH%/TWiki/TwistyContrib/twist.css");
- </style>
+Generates:
- <script type="text/javascript" src="%PUBURLPATH%/TWiki/TwistyContrib/twist.js"></script>
+<span></span>
-It's recommended to use the TWiki:Plugins.TwistyPlugin, as it eases the deployment and use of this contrib.
+<button> Unfold </button>
+
+<span></span>
+
+<button> Fold </button>
-%RED%Caution: If the previous scriplet is put in the HEAD section of the page or the TWiki:Plugins.TwistyPlugin is used, it won't work if the `<body onload="">` manager is set by the skin. Check the [twist.js](http://www.dementia.org/twiki//view/twist.js) file for an idea on how to register an eventmanager for the onload event without overwriting the previous one.%ENDCOLOR%
+<span> my twisty content </span>
-This Contrib should work in all versions of TWiki. It has been tested against TWiki:Codev.CairoRelease and TWiki:Codev.DakarRelease.
+### <a name="Twisty with placeholder text"></a> Twisty with placeholder text
-## <a name="Customization"></a> Customization
+ <span id="demo2show" class="twistyTrigger twistyMakeVisible"><a href="#">Expand...</a> <span class="twistyPlaceholder">Hamlet is without question the most famous play in the English language...</span></span>
+ <span id="demo2hide" class="twistyTrigger twistyHidden"><a href="#">Collapse...</a></span>
+ <span id="demo2toggle" class="twistyContent twistyMakeHidden">
+ Hamlet is without question the most famous play in the English language. Probably written in 1601 or 1602, the tragedy is a milestone in Shakespeare's dramatic development.
+ </span>
+
+Generates:
+
+<span>[Expand...](#) <span>Hamlet is without question the most famous play in the English language...</span></span> <span>[Collapse...](#)</span> <span> Hamlet is without question the most famous play in the English language. Probably written in 1601 or 1602, the tragedy is a milestone in Shakespeare's dramatic development. </span>
Skins can customize the color of the twisty placeholder by modifiying the `.twistyPlaceholder` style.
+## <a name="Twisty made easy"></a> Twisty made easy
+
+Manual written by [[Harald Joerg|TWiki:Main/HaraldJoerg]]. Examples require [[Spreadsheet Plugin|TWiki:Plugins/SpreadsheetPlugin]] to work (installed by default).
+
+> Some of my TWiki users are impressed by the optical effect of what can be done with TWiki:Plugins.TwistyPlugin - and they keep asking me: "How do I do that? I don't understand the documentation, and I don't understand the raw text of your topics!"
+>
+> They indeed have a point here. The docs aren't easily understood. It isn't easy to pick all the variables needed from a single example, and just copypasting sometimes fails in embarrassing ways if non-unique `id` attributes are present in a topic. Maybe it is easy for a power user, but it surely isn't easy _enough_. There _ought_ to be a way to make it easier.
+>
+> Well, here you are.
+>
+> Just set a couple of site preferences, and your users will immediately understand your examples and start writing their own twisties. And what's more: They'll do so in a _consistent_ way, across all your topics in all webs.
+
+### <a name="You Write"></a> You Write
+
+In your Main.TWikiPreferences write:
+
+ * Set FLIP = <span id="twid_%CALC{$SETM(twisty_id, + 1)$GET(twisty_id)}%show" class="twistyTrigger twistyMakeVisible">
+ <a href="#">more...</a>
+ </span>
+ <span id="twid_%CALC{$GET(twisty_id)}%hide" class="twistyTrigger twistyHidden">
+ <a href="#">close</a>
+ </span>
+ <div id="twid_%CALC{$GET(twisty_id)}%toggle" class="twistyContent twistyMakeHidden">
+ * Set FLOP = </div>
+
+%T% You can include the text in a verbatim block if you want (like I have done here). Additionally I've added plenty of newlines and spaces to make it readable. This works, and you don't have to care for invalid HTML!
+
+### <a name="Your Users Write"></a> Your Users Write
+
+In any topic, your users can now write things like this:
+
+ * *Brace and parenthesize in K&R style*
+ %FLIP%
+ When setting out a code block, use the K&R style of bracketing.
+ That is, place the opening brace at the end of the construct that controls the block. ...
+ %FLOP%
+ * *Separate your control keywords from the following opening bracket*
+ %FLIP%
+ Control structures regulate the dynamic behaviour of a program, so the keywords
+ of control structures are the most critical components of a program. ...
+ %FLOP%
+
+### <a name="You See"></a> You See
+
+- **Brace and parenthesize in K&R style** %FLIP% When setting out a code block, use the K&R style of bracketing. That is, place the opening brace at the end of the construct that controls the block. ... %FLOP%
+- **Separate your control keywords from the following opening bracket** %FLIP% Control structures regulate the dynamic behaviour of a program, so the keywords of control structures are the most critical components of a program. ... %FLOP%
+
+### <a name="All on, all off"></a> All on, all off
+
+You can toggle all Twisties on or off at once by putting a link or button on the page with class `twistyExpandAll` or `twistyCollapseAll`.
+
+ <button class="twistyExpandAll twikiButton">Expand all</button>
+ <button class="twistyCollapseAll twikiButton">Collapse all</button>
+
+Creates these controls:
+
+<button>Expand all</button>
+<button>Collapse all</button>
+
+When you want to use links, write:
+
+ #VarTOGGLE
+
+ <a href="#TOGGLE" class="twistyExpandAll">Expand all</a>
+ <a href="#TOGGLE" class="twistyCollapseAll">Collapse all</a>
+
+<a name="VarTOGGLE"></a>
+
+[Expand all](#TOGGLE) [Collapse all](#TOGGLE)
+
## <a name="Settings"></a> Settings
- Set SHORTDESCRIPTION = Twisty section javascript library to open/close content dynamically
<td> </td>
</tr>
<tr>
- <td><code><b>pub/TWiki/TwistyContrib/toggle-optm-jsoff-sep.html</b></code></td>
+ <td><code><b>pub/TWiki/TwistyContrib/twist.css</b></code></td>
<td> </td>
</tr>
<tr>
- <td><code><b>pub/TWiki/TwistyContrib/twist.css</b></code></td>
+ <td><code><b>pub/TWiki/TwistyContrib/twist.js</b></code></td>
<td> </td>
</tr>
<tr>
- <td><code><b>pub/TWiki/TwistyContrib/twist.js</b></code></td>
+ <td><code><b>pub/TWiki/TwistyContrib/twist.compressed.js</b></code></td>
<td> </td>
</tr>
</table>
- Optionally, run <code>**%TOPIC%\_installer**</code> to automatically check and install other TWiki modules that this module depends on. You can also do this step manually.
-- Alternatively, manually make sure the dependencies listed in the table below are resolved. None
-
-## <a name="Demo Text"></a> Demo & Text
-
-If the contrib is properly installed (and Javascript is enabled in your browser!), then you should see some folding sections below. Look at [[http://www.dementia.org/twiki/view/%WEB%.%TOPIC%?raw=on|%WEB%.%TOPIC%?raw=on]] to see how it's done.
-
-<span> </span>
-
-<button> Unfold </button>
-
-<span> </span>
-
-<button> Fold </button>
-<div id="demotoggle">
- <hr /> Click on the button above to fold this section. <hr />
-</div>
-
-<span> [Expand...](#) <span>Hamlet is without question the most famous play in the English language...</span> </span> <span> [Collapse...](#) </span>
-
-<div id="no_1toggle"> Hamlet is without question the most famous play in the English language. Probably written in 1601 or 1602, the tragedy is a milestone in Shakespeare's dramatic development; the playwright achieved artistic maturity in this work through his brilliant depiction of the hero's struggle with two opposing forces: moral integrity and the need to avenge his father's murder. <p><span id="no_2show"> <a href="#">More...</a> </span> <span id="no_2hide"> <a href="#">Hide more</a> </span></p>
- <p>
- </p>
-</div>
-
-<div id="no_2toggle"> For more Shakespeare plays, see Wikipedia:WilliamShakespeare </div>
+- Alternatively, manually make sure the dependencies listed in the table below are resolved. <table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td align="left">TWiki::Plugins::BehaviourContrib</td>
+ <td align="left">>=1.000</td>
+ <td align="left">Required</td>
+ </tr>
+</table>
## <a name="Contrib Info"></a> Contrib Info
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td> Authors: </td>
- <td> Javascript created by TWiki:Main.SamHasler, Contrib packaged by TWiki:Main.RafaelAlvarez </td>
+ <td> JavaScript created by TWiki:Main.SamHasler, Contrib packaged by TWiki:Main.RafaelAlvarez </td>
</tr>
<tr>
<td> Copyright ©: </td>
- <td> 2005 Sam Hasler and Rafael Alvarez </td>
+ <td> 2005 Sam Hasler and Rafael Alvarez, 2006 Arthur Clemens </td>
</tr>
<tr>
<td> License: </td>
</tr>
<tr>
<td> Dependencies: </td>
- <td> None </td>
+ <td>
+ <table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td align="left">TWiki::Plugins::BehaviourContrib</td>
+ <td align="left">>=1.000</td>
+ <td align="left">Required</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td> 25 Oct 2006 </td>
+ <td> 1.2 Arthur Clemens - Updated JavaScript to support TwistyPlugin version 1.2 </td>
</tr>
<tr>
- <td align="right"> 12 Sep 2005 </td>
+ <td> 26 Sep 2006 </td>
+ <td> 1.010 Arthur Clemens - Complete JavaScript rewrite </td>
+ </tr>
+ <tr>
+ <td> 12 Sep 2005 </td>
<td> 1.000 First Version </td>
</tr>
<tr>
- <td align="right"> Home: </td>
+ <td> Home: </td>
<td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
</tr>
<tr>
- <td align="right"> Feedback: </td>
+ <td> Feedback: </td>
<td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
</tr>
<tr>
- <td align="right"> Appraisal: </td>
+ <td> Appraisal: </td>
<td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
</tr>
</table>
**_Related Topics:_** [[TWikiPreferences]]
-
--- TWiki:Main.SamHasler - 12 Sep 2005
--- /dev/null
+# <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
+
+**A "twisty" is an interface toggle control to show and hide content.**
+
+TwistyPlugin gives you several options to control the appearance of a twisty:
+
+- use link text or buttons
+- position an icon left or right
+- remember the state at the next visit of the page
+- start the Twisty open or closed
+- start the Twisty open or closed for the first visit
+- use a span or div for the content
+- set a class for the content span or div
+
+Twisty has a fallback mechanism in case JavaScript is not available: all content is displayed and the control buttons are hidden. Unless parameter `noscript="hide"` is used to specifically set the content to hide.
+
+<div><strong>What's new in version 1.2:</strong><ul>
+ <li> New variables to set default values: <code>TWISTYSHOWLINK</code>, <code>TWISTYHIDELINK</code>, <code>TWISTYMODE</code>, <code>TWISTYREMEMBER</code></li>
+ <li> Property <code>id</code> is no longer required as this is automatically set (still recommended in some cases with <code>remember="on"</code>) </li>
+ <li> Property value <code>remember="off"</code> will clear a previously stored setting </li>
+ <li> New properties <code>prefix</code> and <code>suffix</code></li>
+ <li> JavaScript to collapse or expand all Twisties on the page </li>
+ </ul>
+</div>
+
+<div><span>On this page:</span><ul>
+ <li><a href="#Usage examples"> Usage examples</a><ul>
+ <li><a href="#Triad"> Triad</a></li>
+ <li><a href="#Working Twisty"> Working Twisty</a></li>
+ <li><a href="#Twisty with icons"> Twisty with icons</a></li>
+ <li><a href="#Make it remember"> Make it remember</a></li>
+ <li><a href="#Make it obey"> Make it obey</a></li>
+ <li><a href="#Make it obey only the first time"> Make it obey only the first time</a></li>
+ <li><a href="#Other use: hide interface parts"> Other use: hide interface parts in case of no JavaScript</a></li>
+ <li><a href="#Styling the Twisty"> Styling the Twisty</a></li>
+ <li><a href="#Twisty headers"> Twisty headers</a></li>
+ <li><a href="#All on, all off"> All on, all off</a></li>
+ </ul>
+ </li>
+ <li><a href="#Syntax"> Syntax</a><ul>
+ <li><a href="#TWISTY"> TWISTY</a></li>
+ <li><a href="#ENDTWISTY"> ENDTWISTY</a></li>
+ </ul>
+ </li>
+ <li><a href="#Twisty components syntax"> Twisty components syntax</a><ul>
+ <li><a href="#TWISTYBUTTON"> TWISTYBUTTON</a></li>
+ <li><a href="#TWISTYSHOW"> TWISTYSHOW</a></li>
+ <li><a href="#TWISTYHIDE"> TWISTYHIDE</a></li>
+ <li><a href="#TWISTYTOGGLE"> TWISTYTOGGLE</a></li>
+ <li><a href="#ENDTWISTYTOGGLE"> ENDTWISTYTOGGLE</a></li>
+ </ul>
+ </li>
+ <li><a href="#The Fine Print"> The Fine Print</a></li>
+ <li><a href="#Plugin Settings"> Plugin Settings</a></li>
+ <li><a href="#Plugin Installation Instructions"> Plugin Installation Instructions</a></li>
+ <li><a href="#Plugin Info"> Plugin Info</a></li>
+ </ul>
+</div>
+
+## <a name="Usage examples"></a> Usage examples
+
+### <a name="Triad"></a> Triad
+
+A Twisty consists of 3 elements:
+
+1. Show button
+2. Hide button
+3. Collapsing content ('Toggle')
+
+The typical TwistyPlugin triad will look like this (pseudo code):
+
+ %TWISTYSHOW{}% %TWISTYHIDE{}%
+ (there may be other things between buttons and content)
+ %TWISTYTOGGLE{}% my content %ENDTWISTYTOGGLE%
+
+### <a name="Working Twisty"></a> Working Twisty
+
+The Twisty triad is conveniently packed into shorthand `%TWISTY{some parameters}% Collapsing content %ENDTWISTY%`:
+
+ %TWISTY{showlink="Show..." hidelink="Hide"}%
+ my twisty content
+ %ENDTWISTY%
+
+It will look like this:
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId1toggle"> my twisty content </span></div>
+
+### <a name="Twisty with icons"></a> Twisty with icons
+
+We will use `mode="div"` to put the collapsing content below the button.
+
+ %TWISTY{mode="div" showlink="Show..." hidelink="Hide"
+ showimgleft="%ICONURLPATH{toggleopen-small}%"
+ hideimgleft="%ICONURLPATH{toggleclose-small}%"}%
+ my twisty content
+ %ENDTWISTY%
+
+It will look like this:
+
+<span><span>[![](http://www.dementia.org/twiki//view/Main/WebHome/toggleopen-small.gif)<span>Show...</span>](#)</span><span>[![](http://www.dementia.org/twiki//view/Main/WebHome/toggleclose-small.gif)<span>Hide</span>](#)</span></span>
+
+<div style="display: inline">
+ <div id="twistyId2toggle"> my twisty content </div>
+</div>
+
+To put icons at the right side, write
+
+ %TWISTY{mode="div" showlink="Show " hidelink="Hide "
+ showimgright="%ICONURLPATH{toggleopen-small}%"
+ hideimgright="%ICONURLPATH{toggleclose-small}%"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show </span>![](http://www.dementia.org/twiki//view/Main/WebHome/toggleopen-small.gif)](#)</span><span>[<span>Hide </span>![](http://www.dementia.org/twiki//view/Main/WebHome/toggleclose-small.gif)](#)</span></span>
+
+<div style="display: inline">
+ <div id="twistyId3toggle"> my twisty content </div>
+</div>
+
+### <a name="Make it remember"></a> Make it remember
+
+To store the last state in a TWIKIPREF cookie, add the parameter `remember="on"`.%BR% To test this, reload the page after toggling.
+
+ %TWISTY{showlink="Show..." hidelink="Hide" remember="on"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId4toggle"> my twisty content </span></div>
+
+If a Twisty state has been stored in a TWIKIPREF cookie before, it can be cleared by using `remember="off"`:
+
+ %TWISTY{showlink="Show..." hidelink="Hide" remember="off"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId5toggle"> my twisty content </span></div>
+
+**NOTE:** Twisty ids are generated automatically. If you need control over exactly _which_ Twisty should be remembered, add the parameter `id`:
+
+ %TWISTY{id="currentCustomerList" showlink="Show..." hidelink="Hide" remember="on"}%
+ my customer list
+ %ENDTWISTY%
+
+### <a name="Make it obey"></a> Make it obey
+
+To let the Twisty start with its content folded open, add parameter `start="show"`.
+
+ %TWISTY{showlink="Show..." hidelink="Hide" start="show"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId6toggle"> my twisty content </span></div>
+
+Likewise use `start="hide"` to start with hidden content.
+
+ %TWISTY{showlink="Show..." hidelink="Hide" start="hide"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId7toggle"> my twisty content </span></div>
+
+### <a name="Make it obey only the first time"></a> Make it obey only the first time
+
+To let the Twisty start with its content folded open the first time the visitor sees the Twisty, add the parameter `firststart="show"`. If `remember="on"` is used, subsequential visits to the page will display the Twisty according the cookie setting.
+
+ %TWISTY{showlink="Show..." hidelink="Hide" firststart="show"}%
+ my twisty content
+ %ENDTWISTY%
+
+<span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId8toggle"> my twisty content </span></div>
+
+### <a name="Other use: hide interface parts"></a><a name="Other use: hide interface parts "></a> Other use: hide interface parts in case of no JavaScript
+
+You can use Twisty to show interface elements that should only be visible with JavaScript enabled. For instance the textbox control buttons in the edit screen need JavaScript to work. If a visitor does not have JavaScript on it would not make sense to show these buttons.
+
+Put the "JavaScript content" in an almost bare bones Twisty. Write `showlink="" hidelink=""` to not display any default link texts.
+
+ %TWISTY{link="" noscript="hide" start="show"}%
+ <input type="submit" class="twikiButton" value="You surely have !JavaScript" />
+ %ENDTWISTY%
+
+<span><span>[<span></span>](#)</span><span>[<span></span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId9toggle"><input type="submit" value="You surely have JavaScript" /> </span></div>
+
+Do not forget to set `start="show"` to show the Twisty content at all.
+
+When JavaScript is off, the button should be invisible.
+
+This code will show the button when JavaScript is off:
+
+ %TWISTY{link="" start="show"}%
+ <input type="submit" class="twikiButton" value="You surely have !JavaScript" />
+ %ENDTWISTY%
+
+<span><span>[<span></span>](#)</span><span>[<span></span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId10toggle"><input type="submit" value="You surely have JavaScript" /> </span></div>
+
+### <a name="Styling the Twisty"></a> Styling the Twisty
+
+Use parameter `class` to style the content div or class:
+
+ %TWISTY{mode="div" showlink="Show..." hidelink="Hide" class="twikiHelp"}%
+ my twisty content
+ %ENDTWISTY%
+
+Generates: %BR% <span><span>[<span>Show...</span>](#)</span><span>[<span>Hide</span>](#)</span></span>
+
+<div style="display: inline">
+ <div id="twistyId11toggle"> my twisty content </div>
+</div>
+
+### <a name="Twisty headers"></a> Twisty headers
+
+To be able to use header tags like `<h2>`, use the properties `prefix` and `suffix`. Because we have identical show and hide links we can use the shorthand property `link`.
+
+ %TWISTY{prefix="<h4>!!" link="Header"
+ showimgleft="%ICONURLPATH{toggleopen}%"
+ hideimgleft="%ICONURLPATH{toggleclose}%" suffix="</h4>"}%
+ my twisty content
+ %ENDTWISTY%
+
+Will create:
+
+#### <a name="Header%_TWISTYSCRIPT{"TWiki._Twi"></a> <span><span>[![](http://www.dementia.org/twiki//view/Main/WebHome/toggleopen.gif)<span>Header</span>](#)</span><span>[![](http://www.dementia.org/twiki//view/Main/WebHome/toggleclose.gif)<span>Header</span>](#)</span></span>
+
+<div style="display: inline"><span id="twistyId12toggle"> my twisty content </span></div>
+
+### <a name="All on, all off"></a> All on, all off
+
+You can toggle all Twisties on or off at once by putting a link or button on the page with class `twistyExpandAll` or `twistyCollapseAll`.
+
+ <button class="twistyExpandAll twikiButton">Expand all</button>
+ <button class="twistyCollapseAll twikiButton">Collapse all</button>
+
+Creates these controls:
+
+<button>Expand all</button>
+<button>Collapse all</button>
+
+When you want to use links, write:
+
+ #VarTOGGLE
+
+ <a href="#TOGGLE" class="twistyExpandAll">Expand all</a>
+ <a href="#TOGGLE" class="twistyCollapseAll">Collapse all</a>
+
+<a name="VarTOGGLE"></a>
+
+[Expand all](#TOGGLE) [Collapse all](#TOGGLE)
+
+## <a name="Syntax"></a> Syntax
+
+<a name="VarTWISTY"></a>
+
+### <a name="TWISTY"></a> TWISTY
+
+This renders the button as well as the toggled content section contained within this and the closing ENDTWISTY tag. %BR% Usage: `%TWISTY{ ... }% Toggable contents %ENDTWISTY%`
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Remark </strong></th>
+ </tr>
+ <tr>
+ <td><code>id</code></td>
+ <td> Unique identifier </td>
+ <td> Used to link [[Main/WebHome#VarTWISTYBUTTON]] and [[Main/WebHome#VarTWISTYTOGGLE]]</td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>link</code></td>
+ <td> Link label </td>
+ <td> Link label for both show and hide links </td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>hidelink</code></td>
+ <td> Link label </td>
+ <td> Hide link label </td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>showlink</code></td>
+ <td> Link label </td>
+ <td> Show link label </td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>mode</code></td>
+ <td><code>"div"</code> or <code>"span"</code></td>
+ <td> Specify if the Twisty Toggle section will use a <code><div></code> or a <code><span></code> tag. </td>
+ <td> optional, defaults to <code><span></code></td>
+ </tr>
+ <tr>
+ <td><code>showimgleft</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed with the show link at the left side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>hideimgleft</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed with the hide link at the left side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>showimgright</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed with the show link at the right side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>hideimgright</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed with the hide link at the right side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>remember</code></td>
+ <td><code>"on"</code>, <code>"off"</code></td>
+ <td> If <code>"on"</code>, the Twisty state is remembered the next time the page is shown. If <code>"off"</code>, the stored setting will be cleared.<br /><strong>Note:</strong> when used, think carefully about a unique name (id) for the Twisty, otherwise the cookie that is set might affect other Twisties with the same name. Also note that only interaction is stored, not the state of the Twisty when left unclicked. </td>
+ <td> optional, no default </td>
+ </tr>
+ <tr>
+ <td><code>start</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty; this will override any setting stored in a cookie (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>firststart</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty the first time the visitor gets to see the Twisty; this will NOT override cookie settings (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>noscript</code></td>
+ <td><code>"hide"</code></td>
+ <td> Make content hidden in case use does not have JavaScript on </td>
+ <td> optional, default content is shown in case JavaScript if off </td>
+ </tr>
+ <tr>
+ <td><code>class</code></td>
+ <td> CSS class name </td>
+ <td> Class for Twisty div or span </td>
+ <td> optional, default none </td>
+ </tr>
+ <tr>
+ <td><code>prefix</code></td>
+ <td> Text </td>
+ <td> Text to display before the show/hide links </td>
+ <td> optional, default none </td>
+ </tr>
+ <tr>
+ <td><code>suffix</code></td>
+ <td> Text </td>
+ <td> Text to display after the show/hide links </td>
+ <td> optional, default none </td>
+ </tr>
+ <tr>
+ <td><code>img</code></td>
+ <td> Image url </td>
+ <td> %RED%Deprecated, use showimgleft, hideimgleft, showimgright or hideimgright.%ENDCOLOR% </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>imgleft</code></td>
+ <td> Image url </td>
+ <td> %RED%Deprecated, use showimgleft, hideimgleft, showimgright or hideimgright.%ENDCOLOR% </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>imgright</code></td>
+ <td> Image url </td>
+ <td> %RED%Deprecated, use showimgleft, hideimgleft, showimgright or hideimgright.%ENDCOLOR% </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>hideimg</code></td>
+ <td> Image url </td>
+ <td> %RED%Deprecated, use showimgleft, hideimgleft, showimgright or hideimgright.%ENDCOLOR% </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>showimg</code></td>
+ <td> Image url </td>
+ <td> %RED%Deprecated, use showimgleft, hideimgleft, showimgright or hideimgright.%ENDCOLOR% </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+</table>
+
+- Related [[TWISTYBUTTON|Main/WebHome#VarTWISTYSHOW]] and [[TWISTYTOGGLE|Main/WebHome#VarTWISTYTOGGLE]]
+
+<a name="VarENDTWISTY"></a>
+
+### <a name="ENDTWISTY"></a> ENDTWISTY
+
+**Twisty closure, complements the opening TWISTY tag.**
+
+- Syntax: `%ENDTWISTY%`
+
+See [[ENDTWISTYTOGGLE|Main/WebHome#VarENDTWISTYTOGGLE]].
+
+## <a name="Twisty components syntax"></a> Twisty components syntax
+
+<div style="background-color: #eee; padding: .5em; margin: -.5em">
+ <p> Ocassionally you might need to create a custom set of individual Twisty components: </p>
+ <p><a name="VarTWISTYBUTTON"></a></p>
+ <h3><a name="TWISTYBUTTON"></a> TWISTYBUTTON </h3><strong>Shorthand version for TWISTYSHOW & TWISTYHIDE</strong> This is useful if both the show and the hide button take the same arguments. <ul>
+ <li> Supported parameters: all parameters supported by [[Main/WebHome#VarTWISTYSHOW]], except for <code>noscript</code> and <code>class</code> (only used for 'toggle' content) </li>
+ <li> Parameter differences: <ul>
+ <li><code>mode</code>: button mode defaults to span </li>
+ </ul>
+ </li>
+ <li> Syntax: <code>%TWISTYBUTTON{id="myid" ... }%</code></li>
+ <li> Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Remark </strong></th>
+ </tr>
+ <tr>
+ <td><code>mode</code></td>
+ <td><code>"div"</code> or <code>"span"</code></td>
+ <td> Specify if the <strong>Twisty button</strong> will use a <code><div></code> or a <code><span></code> tag </td>
+ <td> optional, defaults to <code><span></code></td>
+ </tr>
+ </table>
+ </li>
+ <li> Related: [[Main/WebHome#VarTWISTYSHOW]] and [[Main/WebHome#VarTWISTYHIDE]]</li>
+ </ul>
+ <p><a name="VarTWISTYSHOW"></a></p>
+ <h3><a name="TWISTYSHOW"></a> TWISTYSHOW </h3><strong>Show/open link</strong><ul>
+ <li> Syntax: <code>%TWISTYSHOW{id="myid" ... }%</code></li>
+ <li> Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Remark </strong></th>
+ </tr>
+ <tr>
+ <td><code>id</code></td>
+ <td> Unique identifier </td>
+ <td> Used to link [[Main/WebHome#VarTWISTYSHOW]], [[Main/WebHome#VarTWISTYHIDE]] and [[Main/WebHome#VarTWISTYTOGGLE]]</td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>link</code></td>
+ <td> Link label </td>
+ <td> Show link label </td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>mode</code></td>
+ <td><code>"div"</code> or <code>"span"</code></td>
+ <td> Specify if the Twisty Show link will use a <code><div></code> or a <code><span></code> tag </td>
+ <td> optional, defaults to <code><span></code></td>
+ </tr>
+ <tr>
+ <td><code>img</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed at the <strong>right side</strong> of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>imgleft</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed at the left side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>imgright</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed at the right side of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>remember</code></td>
+ <td><code>"on"</code>, <code>"off"</code></td>
+ <td> If <code>"on"</code>, the Twisty state is remembered the next time the page is shown. If <code>"off"</code>, the stored setting will be cleared.<br /><strong>Note:</strong> when used, think carefully about a unique name (id) for the Twisty, otherwise the cookie that is set might affect other Twisties with the same name. Also note that only interaction is stored, not the state of the Twisty when left unclicked. </td>
+ <td> optional, no default </td>
+ </tr>
+ <tr>
+ <td><code>start</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty; this will override any setting stored in a cookie (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>firststart</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty the first time the visitor gets to see the Twisty; this will NOT override cookie settings (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ </table>
+ </li>
+ <li> Example: <code>%TWISTYSHOW{id="demo" link=" Click to Unfold " imgleft="%ICONURLPATH{toggleopen}%"}%</code></li>
+ <li> Related: [[Main/WebHome#VarTWISTYHIDE]] and [[Main/WebHome#VarTWISTYTOGGLE]]</li>
+ </ul>
+ <p><a name="VarTWISTYHIDE"></a></p>
+ <h3><a name="TWISTYHIDE"></a> TWISTYHIDE </h3><strong>Hide/close link</strong><ul>
+ <li> Syntax: <code>%TWISTYHIDE{id="myid" ... }%</code></li>
+ <li> Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Remark </strong></th>
+ </tr>
+ <tr>
+ <td><code>id</code></td>
+ <td> Unique identifier </td>
+ <td> Used to link [[Main/WebHome#VarTWISTYSHOW]], [[Main/WebHome#VarTWISTYHIDE]] and [[Main/WebHome#VarTWISTYTOGGLE]]</td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>link</code></td>
+ <td> Link label </td>
+ <td> Hide link label </td>
+ <td> optional </td>
+ </tr>
+ <tr>
+ <td><code>mode</code></td>
+ <td><code>"div"</code> or <code>"span"</code></td>
+ <td> Specify if the Twisty Hide link will use a <code><div></code> or a <code><span></code> tag </td>
+ <td> optional, defaults to <code><span></code></td>
+ </tr>
+ <tr>
+ <td><code>img</code></td>
+ <td> Image url </td>
+ <td> Specify the url of an image that will be displayed at the <strong>right side</strong> of the link. <br />You may use [[TWiki/TWikiVariables#VarICONURLPATH]] to display one of the [[TWiki/TWikiDocGraphics]] icons. Alternatively use an image attached to the topic. </td>
+ <td> optional, defaults to no image </td>
+ </tr>
+ <tr>
+ <td><code>remember</code></td>
+ <td><code>"on"</code>, <code>"off"</code></td>
+ <td> If <code>"on"</code>, the Twisty state is remembered the next time the page is shown. If <code>"off"</code>, the stored setting will be cleared.<br /><strong>Note:</strong> when used, think carefully about a unique name (id) for the Twisty, otherwise the cookie that is set might affect other Twisties with the same name. Also note that only interaction is stored, not the state of the Twisty when left unclicked. </td>
+ <td> optional, no default </td>
+ </tr>
+ <tr>
+ <td><code>start</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty; this will override any setting stored in a cookie (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>firststart</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty the first time the visitor gets to see the Twisty; this will NOT override cookie settings (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ </table>
+ </li>
+ <li> Example: <code>%TWISTYHIDE{id="demo" link=" Click to Fold " imgleft="%ICONURLPATH{toggleclose}%"}%</code></li>
+ <li> Related: [[Main/WebHome#VarTWISTYSHOW]] and [[Main/WebHome#VarTWISTYTOGGLE]]</li>
+ </ul>
+ <p><a name="VarTWISTYTOGGLE"></a></p>
+ <h3><a name="TWISTYTOGGLE"></a> TWISTYTOGGLE </h3><strong>Twisty Toggle contents section</strong><ul>
+ <li> Syntax: <code>%TWISTYTOGGLE{id="myid"}%</code></li>
+ <li> Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Value </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Remark </strong></th>
+ </tr>
+ <tr>
+ <td><code>id</code></td>
+ <td> Unique identifier </td>
+ <td> Used to link [[Main/WebHome#VarTWISTYSHOW]], [[Main/WebHome#VarTWISTYHIDE]] and [[Main/WebHome#VarTWISTYTOGGLE]]. </td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>mode</code></td>
+ <td><code>"div"</code> or <code>"span"</code></td>
+ <td> Specify if the Twisty Toggle section will use a <code><div></code> or a <code><span></code> tag. </td>
+ <td> optional, defaults to <code><span></code></td>
+ </tr>
+ <tr>
+ <td><code>class</code></td>
+ <td> CSS class name </td>
+ <td> Class for content div or span </td>
+ <td> optional, default none </td>
+ </tr>
+ <tr>
+ <td><code>remember</code></td>
+ <td><code>"on"</code>, <code>"off"</code></td>
+ <td> If <code>"on"</code>, the Twisty state is remembered the next time the page is shown. If <code>"off"</code>, the stored setting will be cleared.<br /><strong>Note:</strong> when used, think carefully about a unique name (id) for the Twisty, otherwise the cookie that is set might affect other Twisties with the same name. Also note that only interaction is stored, not the state of the Twisty when left unclicked. </td>
+ <td> optional, no default </td>
+ </tr>
+ <tr>
+ <td><code>start</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty; this will override any setting stored in a cookie (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>firststart</code></td>
+ <td><code>"hide"</code> or <code>"show"</code></td>
+ <td> Initial state of the Twisty the first time the visitor gets to see the Twisty; this will NOT override cookie settings (see <code>remember</code>). </td>
+ <td> optional, default no initial state </td>
+ </tr>
+ <tr>
+ <td><code>noscript</code></td>
+ <td><code>"hide"</code></td>
+ <td> Make content hidden in case use does not have JavaScript on </td>
+ <td> optional, default content is shown with no JavaScript </td>
+ </tr>
+ </table>
+ </li>
+ <li> Example: <code>%TWISTYTOGGLE{id="demo" mode="div" remember="on"}%My content%ENDTWISTYTOGGLE%</code></li>
+ <li> Related: [[Main/WebHome#VarTWISTYHIDE]], [[Main/WebHome#VarTWISTYHIDE]] an [[Main/WebHome#VarENDTWISTYTOGGLE]]</li>
+ </ul>
+ <p><a name="VarENDTWISTYTOGGLE"></a></p>
+ <h3><a name="ENDTWISTYTOGGLE"></a> ENDTWISTYTOGGLE </h3><strong>The Twisty closure</strong><ul>
+ <li> Syntax: <code>%ENDTWISTYTOGGLE%</code><ul>
+ <li> Will end the most inner unclosed Twisty Toggle section, using the proper tag </li>
+ </ul>
+ </li>
+ <li> Example: <code>%ENDTWISTYTOGGLE%</code></li>
+ <li> Related: [[Main/WebHome#VarTWISTYTOGGLE]]</li>
+ </ul>
+</div>
+
+## <a name="The Fine Print"></a> The Fine Print
+
+TwistyPlugin is a convenience plugin for TWiki:Plugins.TwistyContrib.
+
+Major features are:
+
+- When active, the Twisty JavaScript library is included in every topic
+- Provides a convenience syntax to define Twisty areas
+- Automatically generates ids
+- Automatically fills in default values
+- Global preference settings can be set in this topic or locally in individual topics
+
+## <a name="Plugin Settings"></a> Plugin Settings
+
+Plugin settings are stored as preferences variables. To reference a plugin setting write <code>**%<plugin>\_<setting>%**</code>, i.e. <code>**%TWISTYPLUGIN\_SHORTDESCRIPTION%**</code>
+
+- Set TWISTYSHOWLINK = More...
+ - For example: `More...`
+- Set TWISTYHIDELINK = Close
+ - For example: `Close`
+- Set TWISTYMODE =
+ - Either `div` or `span`; `span` if nothing set
+- Set TWISTYREMEMBER =
+ - Either `on` or `off`; default is not specified. If set to `on` all Twisty states will be stored in a TWIKIPREF cookie; if set to `off` the TWIKIPREF cookie will be cleared
+
+- Set SHORTDESCRIPTION = Twisty section JavaScript library to open/close content dynamically
+- Set DEBUG = 0
+
+## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
+
+- Download the ZIP file from the Plugin web (see below)
+- Unzip <code>**%TOPIC%.zip**</code> in your root ($TWIKI\_ROOT) directory. Content: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> File: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ </tr>
+ <tr>
+ <td><code><b>data/TWiki/TwistyPlugin.txt</b></code></td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code><b>lib/TWiki/Plugins/TwistyPlugin.pm</b></code></td>
+ <td> </td>
+ </tr>
+</table>
+
+- Optionally, if it exists, run <code>**%TOPIC%\_installer**</code> to automatically check and install other TWiki modules that this module depends on. You can also do this step manually.
+- Alternatively, manually make sure the dependencies listed in the table below are resolved. <table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td align="left">TWiki::Contrib::TwistyContrib</td>
+ <td align="left">>=1.200</td>
+ <td align="left">Required. Twisty javascript library</td>
+ </tr>
+</table>
+- Visit `configure` in your TWiki installation, and enable the plugin in the \{Plugins\} section.
+
+## <a name="Plugin Info"></a> Plugin Info
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> Authors: </td>
+ <td> TWiki:Main.RafaelAlvarez, TWiki:Main.ArthurClemens </td>
+ </tr>
+ <tr>
+ <td> Copyright ©: </td>
+ <td> 2005 Rafael Alvarez, 2006 Arthur Clemens </td>
+ </tr>
+ <tr>
+ <td> License: </td>
+ <td><a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GPL</a></td>
+ </tr>
+ <tr>
+ <td> Dependencies: </td>
+ <td>
+ <table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td align="left">TWiki::Contrib::TwistyContrib</td>
+ <td align="left">>=1.200</td>
+ <td align="left">Required. Twisty javascript library</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td> 25 Oct 2006 </td>
+ <td> 1.2 New variables to set default values: <code>TWISTYSHOWLINK</code>, <code>TWISTYHIDELINK</code>, <code>TWISTYMODE</code>, <code>TWISTYREMEMBER</code>; property <code>id</code> is no longer required as this is automatically set (still recommended in some cases with <code>remember="on"</code>); property value <code>remember="off"</code> will clear a previously stored cookie; new properties <code>prefix</code> and <code>suffix</code>; JavaScript to collapse or expand all Twisties on the page. </td>
+ </tr>
+ <tr>
+ <td> 27 Sep 2006 </td>
+ <td> 1.101 Fixes JavaScript handling when AllowInlineScript in configure is not set </td>
+ </tr>
+ <tr>
+ <td> 11 June 2006 </td>
+ <td> 1.100 Added parameters <code>start</code>, <code>firststart</code>, <code>noscript</code> and <code>class</code>; complete JavaScript rewrite for speed </td>
+ </tr>
+ <tr>
+ <td> 12 Sep 2005 </td>
+ <td> 1.000 First Version </td>
+ </tr>
+ <tr>
+ <td> Home: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
+ </tr>
+ <tr>
+ <td> Feedback: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
+ </tr>
+ <tr>
+ <td> Appraisal: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
+ </tr>
+</table>
--- /dev/null
+<a name="VarAQUA"></a>
+
+### <a name="AQUA -- start aqua colored text"></a> AQUA -- start aqua colored text
+
+- `AQUA` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%AQUA% aqua text %ENDCOLOR%`
+- Expands to: %AQUA% aqua text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
- Syntax: `%ATTACHURL%`
- Expands to: `http://www.dementia.org/twiki//view`
- Example: If you attach a file you can refer to it as `%ATTACHURL%/image.gif`
-- Related: [[ATTACHURLPATH|Main/WebHome#VarATTACHURLPATH]], [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
+- Related: [[ATTACHURLPATH|Main/WebHome#VarATTACHURLPATH]], [[PUBURL|Main/WebHome#VarPUBURL]], [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
- Syntax: `%ATTACHURLPATH%`
- Expands to: `http://www.dementia.org/twiki//view`
-- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[PUBURL|Main/WebHome#VarPUBURL]], [[FileAttachments]]
+- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[PUBURL|Main/WebHome#VarPUBURL]], [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
### <a name="AUTHREALM -- authentication real"></a> AUTHREALM -- authentication realm
-- String defined as \{AuthRealm\} in `configure`. This is used in certain password encodings, and in login templates as part of the login prompt.
+- String defined as \{AuthRealm\} in [configure](http://www.dementia.org/twiki/configure). This is used in certain password encodings, and in login templates as part of the login prompt.
- Syntax: `%AUTHREALM%`
- Expands to: Enter your [[LoginName]]. (Typically First name and last name, no space, no dots, capitalized, e.g. JohnSmith, unless you chose otherwise). Visit [[TWikiRegistration]] if you do not have one.
- Related: [[TWikiUserAuthentication]], [[SESSIONID|Main/WebHome#VarSESSIONID]], [[SESSIONVAR|Main/WebHome#VarSESSIONVAR]], [[LOGIN|Main/WebHome#VarLOGIN]], [[LOGOUT|Main/WebHome#VarLOGOUT]], [[SESSION_VARIABLE|Main/WebHome#VarSESSION_VARIABLE]]
--- /dev/null
+<a name="VarBB"></a>
+
+### <a name="BB -- bullet with line break"></a> BB -- bullet with line break
+
+- Line break and bullet without indentation.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BB = %BB%
+- Related: [[BR|Main/WebHome#VarBR]], [[BULLET|Main/WebHome#VarBULLET]], [[BB2|Main/WebHome#VarBB2]], [[BB3|Main/WebHome#VarBB3]], [[BB4|Main/WebHome#VarBB4]], [[VBAR|Main/WebHome#VarVBAR]]
--- /dev/null
+<a name="VarBB2"></a>
+
+### <a name="BB2 -- level 2 bullet with line"></a><a name="BB2 -- level 2 bullet with line "></a> BB2 -- level 2 bullet with line break
+
+- Line break and bullet, level 2.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BB2 = %BB2%
+- Related: [[BR|Main/WebHome#VarBR]], [[BULLET|Main/WebHome#VarBULLET]], [[BB|Main/WebHome#VarBB]], [[BB3|Main/WebHome#VarBB3]], [[BB4|Main/WebHome#VarBB4]], [[VBAR|Main/WebHome#VarVBAR]]
--- /dev/null
+<a name="VarBB3"></a>
+
+### <a name="BB3 -- level 3 bullet with line"></a><a name="BB3 -- level 3 bullet with line "></a> BB3 -- level 3 bullet with line break
+
+- Line break and bullet, level 3.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BB3 = %BB3%
+- Related: [[BR|Main/WebHome#VarBR]], [[BULLET|Main/WebHome#VarBULLET]], [[BB|Main/WebHome#VarBB]], [[BB2|Main/WebHome#VarBB2]], [[BB4|Main/WebHome#VarBB4]], [[VBAR|Main/WebHome#VarVBAR]]
--- /dev/null
+<a name="VarBB4"></a>
+
+### <a name="BB4 -- level 4 bullet with line"></a><a name="BB4 -- level 4 bullet with line "></a> BB4 -- level 4 bullet with line break
+
+- Line break and bullet, level 4.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BB4 = %BB4%
+- Related: [[BR|Main/WebHome#VarBR]], [[BULLET|Main/WebHome#VarBULLET]], [[BB|Main/WebHome#VarBB]], [[BB2|Main/WebHome#VarBB2]], [[BB3|Main/WebHome#VarBB3]], [[VBAR|Main/WebHome#VarVBAR]]
--- /dev/null
+<a name="VarBLACK"></a>
+
+### <a name="BLACK -- start black colored tex"></a> BLACK -- start black colored text
+
+- `BLACK` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%BLACK% black text %ENDCOLOR%`
+- Expands to: %BLACK% black text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarBLUE"></a>
+
+### <a name="BLUE -- start blue colored text"></a> BLUE -- start blue colored text
+
+- `BLUE` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%BLUE% blue text %ENDCOLOR%`
+- Expands to: %BLUE% blue text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarBR"></a>
+
+### <a name="BR -- line break"></a> BR -- line break
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BR = %BR%
+- Related: [[BULLET|Main/WebHome#VarBULLET]], [[BB|Main/WebHome#VarBB]], [[BB2|Main/WebHome#VarBB2]], [[BB3|Main/WebHome#VarBB3]], [[BB4|Main/WebHome#VarBB4]], [[VBAR|Main/WebHome#VarVBAR]]
--- /dev/null
+<a name="VarBROWN"></a>
+
+### <a name="BROWN -- start brown colored tex"></a> BROWN -- start brown colored text
+
+- `BROWN` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%BROWN% brown text %ENDCOLOR%`
+- Expands to: %BROWN% brown text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarBULLET"></a>
+
+### <a name="BULLET -- bullet character"></a> BULLET -- bullet character
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: BULLET = %BULLET%
+- Related: [[BR|Main/WebHome#VarBR]], [[BB|Main/WebHome#VarBB]], [[BB2|Main/WebHome#VarBB2]], [[BB3|Main/WebHome#VarBB3]], [[BB4|Main/WebHome#VarBB4]], [[VBAR|Main/WebHome#VarVBAR]]
</tr>
<tr>
<td><code>type="entity"</code></td>
- <td> Encode special characters into HTML entities, like a double quote into <code>&#034;</code></td>
- <td> URL encoding </td>
+ <td> Encode special characters into HTML entities, like a double quote into <code>&#034;</code>. Does <strong>not</strong> encode <code>\n</code> or <code>\r</code>. </td>
+ <td><code>type="url"</code></td>
+ </tr>
+ <tr>
+ <td><code>type="html"</code></td>
+ <td> As <code>type="entity"</code> except it also encodes <code>\n</code> and <code>\r</code></td>
+ <td><code>type="url"</code></td>
+ </tr>
+ <tr>
+ <td><code>type="quote"</code></td>
+ <td> Escape double quotes with backslashes (<code>\"</code>), does not change other characters </td>
+ <td><code>type="url"</code></td>
</tr>
<tr>
<td><code>type="url"</code></td>
</tr>
</table>
- Example: `%ENCODE{"spaced name"}%` expands to `spaced%20name`
-- **_%X% Note:_** Values of HTML input fields must be entity encoded, for example:%BR% `<input type="text" name="address" value="%ENCODE{ "any text" type="entity" }%" />`
+- **_%X% Note:_** Values of HTML input fields must be entity encoded.%BR% Example: `<input type="text" name="address" value="%ENCODE{ "any text" type="entity" }%" />`
+- **_%X% Note:_** Double quotes in strings must be escaped when passed into other TWiki variables.%BR% Example: `%SEARCH{ "%ENCODE{ "string with "quotes"" type="quotes" }%" noheader="on" }%`
+
- Related: [[URLPARAM|Main/WebHome#VarURLPARAM]]
--- /dev/null
+<a name="VarENDCOLOR"></a>
+
+### <a name="ENDCOLOR -- end colored text"></a> ENDCOLOR -- end colored text
+
+- `ENDCOLOR` is a rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%RED% red text %ENDCOLOR%`
+- Expands to: %RED% red text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[VarAQUA|Main/TWikiVariables#VarAQUA]], [[VarBLACK|Main/TWikiVariables#VarBLACK]], [[VarBLUE|Main/TWikiVariables#VarBLUE]], [[VarBROWN|Main/TWikiVariables#VarBROWN]], [[VarGRAY|Main/TWikiVariables#VarGRAY]], [[VarGREEN|Main/TWikiVariables#VarGREEN]], [[VarLIME|Main/TWikiVariables#VarLIME]], [[VarMAROON|Main/TWikiVariables#VarMAROON]], [[VarNAVY|Main/TWikiVariables#VarNAVY]], [[VarOLIVE|Main/TWikiVariables#VarOLIVE]], [[VarORANGE|Main/TWikiVariables#VarORANGE]], [[VarPINK|Main/TWikiVariables#VarPINK]], [[VarPURPLE|Main/TWikiVariables#VarPURPLE]], [[VarRED|Main/TWikiVariables#VarRED]], [[VarSILVER|Main/TWikiVariables#VarSILVER]], [[VarTEAL|Main/TWikiVariables#VarTEAL]], [[VarWHITE|Main/TWikiVariables#VarWHITE]], [[VarYELLOW|Main/TWikiVariables#VarYELLOW]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
<tr>
<td><code>$iso</code></td>
<td> ISO format timestamp </td>
- <td> 2010-06-29T16:00:39Z </td>
+ <td> 2010-06-29T16:03:15Z </td>
</tr>
<tr>
<td><code>$rcs</code></td>
<td> RCS format timestamp </td>
- <td> 2010/06/29 16:00:39 </td>
+ <td> 2010/06/29 16:03:15 </td>
</tr>
<tr>
<td><code>$http</code></td>
<td> E-mail & http format timestamp </td>
- <td> Tue, 29 Jun 2010 16:00:39 GMT </td>
+ <td> Tue, 29 Jun 2010 16:03:15 GMT </td>
</tr>
<tr>
<td><code>$epoch</code></td>
<td> Number of seconds since 00:00 on 1st January, 1970 </td>
- <td> 1277827239 </td>
+ <td> 1277827395 </td>
</tr>
</table>
- Variables can be shortened to 3 characters
-- Example: `%GMTIME{"$day $month, $year - $hour:$min:$sec"}%` expands to `29 Jun, 2010 - 16:00:39`
+- Example: `%GMTIME{"$day $month, $year - $hour:$min:$sec"}%` expands to `29 Jun, 2010 - 16:03:15`
- **_%X% Note:_** When used in a template topic, this variable will be expanded when the template is used to create a new topic. See [[TWikiTemplates#TemplateTopicsVars]] for details.
-- Related: [[DISPLAYTIME|Main/WebHome#VarDISPLAYTIME]], [[GMTIME|Main/WebHome#VarGMTIME]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
+- Related: [[DISPLAYTIME|Main/WebHome#VarDISPLAYTIME]], [[GMTIME|Main/WebHome#VarGMTIME]], [[REVINFO|Main/WebHome#VarREVINFO2]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
--- /dev/null
+<a name="VarGRAY"></a>
+
+### <a name="GRAY -- start gray colored text"></a> GRAY -- start gray colored text
+
+- `GRAY` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%GRAY% gray text %ENDCOLOR%`
+- Expands to: %GRAY% gray text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarGREEN"></a>
+
+### <a name="GREEN -- start green colored tex"></a> GREEN -- start green colored text
+
+- `GREEN` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%GREEN% green text %ENDCOLOR%`
+- Expands to: %GREEN% green text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarH"></a>
+
+### <a name="H -- help icon"></a> H -- help icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: H = %H%
+- Related: [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarI"></a>
+
+### <a name="I -- idea icon"></a> I -- idea icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: I = %I%
+- Related: [[H|Main/WebHome#VarH]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
</tr>
<tr>
<td><code>pattern="..."</code></td>
- <td> A [[Main/RegularExpression]] pattern to include a subset of a topic or page </td>
+ <td> Include a subset of a topic or a web page. Specify a [[Main/RegularExpression]] that scans from start (<code>'^'</code>) to end and contains the text you want to keep in parenthesis, e.g., <code>pattern="^.*?(from here.*?to here).*"</code>. [[Main/IncludeTopicsAndWebPages]] has more. </td>
<td> none </td>
</tr>
<tr>
</tr>
<tr>
<td><code>raw="on"</code></td>
- <td> When a page is included, normally %WIKITOOLNAME% will process it, doing the following: 1) Alter relative links to point back to originating host, 2) Remove some basic HTML tags (html, head, body, script) and finally 3) Remove newlines from tags spanning multiple lines. If you prefer to include <em>exactly</em> what is in the source of the originating page set this to <code>on</code>. </td>
+ <td> When a page is included, normally %WIKITOOLNAME% will process it, doing the following: 1) Alter relative links to point back to originating host, 2) Remove some basic HTML tags (html, head, body, script) and finally 3) Remove newlines from HTML tags spanning multiple lines. If you prefer to include <em>exactly</em> what is in the source of the originating page set this to <code>on</code>. %BR% <code>raw="on"</code> is short for <code>disableremoveheaders="on"</code>, <code>disableremovescript="on"</code>, <code>disableremovebody="on"</code>, <code>disablecompresstags="on"</code> and <code>disablerewriteurls="on"</code>. </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>literal="on"</code></td>
+ <td> While using the <code>raw</code> option will indeed include the raw content, the included content will still be processed and rendered like regular topic content. To disable parsing of the included content, set the <code>literal</code> option to <code>"on"</code>. </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>disableremoveheaders="on"</code></td>
+ <td> Bypass stripping headers from included HTML (everything until first <code></head></code> tag) </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>disableremovescript="on"</code></td>
+ <td> Bypass stripping all <code><script></code> tags from included HTML </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>disableremovebody="on"</code></td>
+ <td> Bypass stripping the <code></body></code> tag and everything around over and below it </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>disablecompresstags="on"</code></td>
+ <td> Bypass replacing newlines in HTML tags with spaces. This compression step rewrites unmatched <'s into <code>&lt;</code> entities unless bypassed </td>
+ <td> disabled </td>
+ </tr>
+ <tr>
+ <td><code>disablerewriteurls="on"</code></td>
+ <td> Bypass rewriting relative URLs into absolute ones </td>
<td> disabled </td>
</tr>
<tr>
</tr>
<tr>
<td><code>section="name"</code></td>
- <td> Includes only the specified named section, as defined in the included topic by the [[Main/WebHome#VarSTARTSECTION]] and [[Main/WebHome#VarENDSECTION]] variables </td>
+ <td> Includes only the specified named section, as defined in the included topic by the [[Main/WebHome#VarSTARTSECTION]] and [[Main/WebHome#VarENDSECTION]] variables. Nothing is shown if the named section does not exists. </td>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
</table>
-- **_Note:_** JavaScript in included webpages is filtered out as a security precaution per default (disable filter with `raw` parameter)
+- **_Note:_** JavaScript in included webpages is filtered out as a security precaution per default (disable filter with `disableremovescript` parameter)
- Examples: See [[IncludeTopicsAndWebPages]]
- Related: [[BASETOPIC|Main/WebHome#VarBASETOPIC]], [[BASEWEB|Main/WebHome#VarBASEWEB]], [[INCLUDINGTOPIC|Main/WebHome#VarINCLUDINGTOPIC]], [[INCLUDINGWEB|Main/WebHome#VarINCLUDINGWEB]], [[STARTINCLUDE|Main/WebHome#VarSTARTINCLUDE]], [[STOPINCLUDE|Main/WebHome#VarSTOPINCLUDE]], [[STARTSECTION|Main/WebHome#VarSTARTSECTION]], [[ENDSECTION|Main/WebHome#VarENDSECTION]]
--- /dev/null
+<a name="VarLIME"></a>
+
+### <a name="LIME -- start lime colored text"></a> LIME -- start lime colored text
+
+- `LIME` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%LIME% lime text %ENDCOLOR%`
+- Expands to: %LIME% lime text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarM"></a>
+
+### <a name="M -- moved to... icon"></a> M -- moved to... icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: M = %M%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
<a name="VarMAKETEXT"></a>
-### <a name="MAKETEXT -- creates text using T"></a> MAKETEXT -- creates text using TWiki's [[I18N]] infrastructure
+### <a name="MAKETEXT -- creates text using T"></a> MAKETEXT -- creates text using TWiki's I18N infrastructure
- Syntax: `%MAKETEXT{"string" args="..."}`
- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
--- /dev/null
+<a name="VarMAROON"></a>
+
+### <a name="MAROON -- start maroon colored t"></a> MAROON -- start maroon colored text
+
+- `MAROON` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%MAROON% maroon text %ENDCOLOR%`
+- Expands to: %MAROON% maroon text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
</tr>
<tr>
<td><code>"formfield"</code></td>
- <td><code>name="..."</code> - name of the field. The field value can be shortened as described in [[TWiki/FormattedSearch]] for <code>$formfield</code></td>
+ <td><code>name="..."</code>: name of the field. The field value can be shortened as described in [[TWiki/FormattedSearch]] for <code>$formfield</code> %BR% <code>newline="..."</code>: by default, each newline character will be rewritten to <code><br /></code> to allow metadata that contains newlines to be used in tables, etc. <code>$n</code> indicates a newline character. %BR% <code>bar="..."</code>: by default, each vertical bar is rewritten to an HTML entity so as to not be mistaken for a table separator. </td>
<td> Show a single form field </td>
</tr>
<tr>
</tr>
<tr>
<td><code>"attachments"</code></td>
- <td><code>all="on"</code> to show hidden attachments </td>
- <td> Generates the table showing the attachments </td>
+ <td><code>all="on"</code> to show hidden attachments. %BR% <code>title="..."</code> to show a title - only if attachments are displayed. %BR% <code>template="..."</code> to use a custom template for the rendering of attachments; default <code>attachtables</code> is used. </td>
+ <td> Generates the list of attachments </td>
</tr>
<tr>
<td><code>"moved"</code></td>
</tr>
<tr>
<td><code>"parent"</code></td>
- <td><code><b>dontrecurse="on"</b></code>: By default recurses up tree, this has some cost. %BR% <code><b>nowebhome="on"</b></code>: Suppress WebHome. %BR% <code><b>prefix="..."</b></code>: Prefix that goes before parents, but only if there are parents, default <code>""</code>. %BR% <code><b>format="..."</b></code>: format string used to display each partent topic, default <code>"[[$web.$topic][$topic]]"</code> %BR% <code><b>suffix="..."</b></code>: Suffix, only appears if there are parents, default <code>""</code>. %BR% <code><b>separator="..."</b></code>: Separator between parents, default <code>" > "</code>. </td>
+ <td><code>dontrecurse="on"</code>: By default recurses up tree, this has some cost. %BR% <code>nowebhome="on"</code>: Suppress WebHome. %BR% <code>prefix="..."</code>: Prefix that goes before parents, but only if there are parents, default <code>""</code>. %BR% <code>format="..."</code>: Format string used to display each parent topic where <code>$web</code> expands to the web name, and <code>$topic</code> expands to the topic name; default: <code>"[[$web.$topic][$topic]]"</code> %BR% <code>suffix="..."</code>: Suffix, only appears if there are parents; default <code>""</code>. %BR% <code>separator="..."</code>: Separator between parents; default <code>" > "</code>. </td>
<td> Generates the parent link </td>
</tr>
</table>
--- /dev/null
+<a name="VarN"></a>
+
+### <a name="N -- "new" icon"></a> N -- "new" icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: N = %N%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarNAVY"></a>
+
+### <a name="NAVY -- start navy blue colored"></a><a name="NAVY -- start navy blue colored "></a> NAVY -- start navy blue colored text
+
+- `NAVY` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%NAVY% navy text %ENDCOLOR%`
+- Expands to: %NAVY% navy text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarOLIVE"></a>
+
+### <a name="OLIVE -- start olive green color"></a> OLIVE -- start olive green colored text
+
+- `OLIVE` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%OLIVE% olive text %ENDCOLOR%`
+- Expands to: %OLIVE% olive text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarORANGE"></a>
+
+### <a name="ORANGE -- start orange colored t"></a> ORANGE -- start orange colored text
+
+- `ORANGE` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%ORANGE% orange text %ENDCOLOR%`
+- Expands to: %ORANGE% orange text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarP"></a>
+
+### <a name="P -- pencil icon"></a> P -- pencil icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: P = %P%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarPINK"></a>
+
+### <a name="PINK -- start pink colored text"></a> PINK -- start pink colored text
+
+- `PINK` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%PINK% pink text %ENDCOLOR%`
+- Expands to: %PINK% pink text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
- Syntax: `%PUBURL%`
- Expands to: `http://www.dementia.org/twiki//view`
- Example: You can refer to a file attached to another topic with `%PUBURL%/%WEB%/OtherTopic/image.gif`
-- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
+- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[ATTACHURLPATH|Main/WebHome#VarATTACHURLPATH]], [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
- Syntax: `%PUBURLPATH%`
- Expands to: `http://www.dementia.org/twiki//view`
-- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[PUBURL|Main/WebHome#VarPUBURL]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
+- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[ATTACHURLPATH|Main/WebHome#VarATTACHURLPATH]], [[PUBURL|Main/WebHome#VarPUBURL]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURL]], [[FileAttachments]]
--- /dev/null
+<a name="VarPURPLE"></a>
+
+### <a name="PURPLE -- start purple colored t"></a> PURPLE -- start purple colored text
+
+- `PURPLE` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%PURPLE% purple text %ENDCOLOR%`
+- Expands to: %PURPLE% purple text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarQ"></a>
+
+### <a name="Q -- question icon"></a> Q -- question icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: Q = %Q%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarINCLUDE"></a>
+
+### <a name="QUERYPARAMS -- show paramaters t"></a> QUERYPARAMS -- show paramaters to the query
+
+- Expands the parameters to the query that was used to display the page.
+- Syntax: `%QUERYPARAMS{...}%`
+- Parameters:
+ - `format="..."` format string for each entry, default `$name=$value`
+ - `separator="..."` separator string, default `separator="$n"` (newline)
+- The following escape sequences are expanded in the format string: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Sequence: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Expands To: </strong></th>
+ </tr>
+ <tr>
+ <td><code>$name</code></td>
+ <td> Name of the parameter </td>
+ </tr>
+ <tr>
+ <td><code>$value</code></td>
+ <td> String value of the parameter. Multi-valued parameters will have a "row" for each value. </td>
+ </tr>
+ <tr>
+ <td><code>$n</code> or <code>$n()</code></td>
+ <td> New line. Use <code>$n()</code> if followed by alphanumeric character, e.g. write <code>Foo$n()Bar</code> instead of <code>Foo$nBar</code></td>
+ </tr>
+ <tr>
+ <td><code>$nop</code> or <code>$nop()</code></td>
+ <td> Is a "no operation". </td>
+ </tr>
+ <tr>
+ <td><code>$quot</code></td>
+ <td> Double quote (<code>"</code>) </td>
+ </tr>
+ <tr>
+ <td><code>$percnt</code></td>
+ <td> Percent sign (<code>%</code>) </td>
+ </tr>
+ <tr>
+ <td><code>$dollar</code></td>
+ <td> Dollar sign (<code>$</code>) </td>
+ </tr>
+</table>
+- Example:
+ - `%QUERYPARAMS{format="<input type='hidden' name='$name' value='$percntENCODE{$quot()$value$quot type=$quot()html$quot}$percnt' />"}%`
+- See also [[QUERYSTRING|Main/VarQUERYSTRING]], [[URLPARAM|Main/WebHome#VarURLPARAM]]
### <a name="QUERYSTRING -- full, unprocessed"></a> QUERYSTRING -- full, unprocessed string of parameters to this URL
- String of all the URL parameters that were on the URL used to get to the current page. For example, if you add [[?name=Samantha;age=24;eyes=blue|%WEB%/%INCLUDINGTOPIC%?name=Samantha;age=24;eyes=blue#VarQUERYSTRING]] to this URL you can see this in action. This string can be appended to a URL to pass parameter values on to another page.
-- **_%X% Note:_** URLs built this way are typically restricted in length, typically to 2048 characters. If you need more space than this, you will need to use an HTML form and `%URLPARAM{}%`.
+- **_%X% Note:_** URLs built this way are typically restricted in length, typically to 2048 characters. If you need more space than this, you will need to use an HTML form and `%QUERYPARAMS%`.
- Syntax: `%QUERYSTRING%`
- Expands to: ` `
-- Related: [[URLPARAM|Main/WebHome#VarURLPARAM]]
+- Related: [[QUERYPARAMS|Main/WebHome#VarQUERYPARAMS]], [[URLPARAM|Main/WebHome#VarURLPARAM]]
--- /dev/null
+<a name="VarRED"></a>
+
+### <a name="RED -- start red colored text"></a> RED -- start red colored text
+
+- `RED` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%RED% red text %ENDCOLOR%`
+- Expands to: %RED% red text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
<td><code>5</code></td>
</tr>
<tr>
- <td><code>$date</code></td>
- <td> Revision date </td>
- <td><code>11 Jul 2004</code></td>
- </tr>
- <tr>
- <td><code>$time</code></td>
- <td> Revision time </td>
- <td><code>23:24:25</code></td>
- </tr>
- <tr>
<td><code>$username</code></td>
<td> Login username of revision </td>
<td><code>jsmith</code></td>
<td> WikiName with Main web prefix </td>
<td><code>Main.JohnSmith</code></td>
</tr>
+ <tr>
+ <td><code>$date</code></td>
+ <td> Revision date </td>
+ <td><code>21 Sep 2006</code></td>
+ </tr>
+ <tr>
+ <td><code>$time</code></td>
+ <td> Revision time </td>
+ <td><code>23:24:25</code></td>
+ </tr>
+ <tr>
+ <td><code>$iso</code></td>
+ <td> Revision date in ISO date format </td>
+ <td><code>2006-09-22T06:24:25Z</code></td>
+ </tr>
+ <tr>
+ <td><code>$min</code>, <code>$sec</code>, etc. </td>
+ <td> Same date format qualifiers as [[Main/WebHome#VarGMTIME2]]</td>
+ <td> </td>
+ </tr>
</table>
- Example: `%REVINFO{"$date - $wikiusername" rev="1.1"}%` returns revision info of first revision
-- Related: [[REVINFO|Main/WebHome#VarREVINFO]]
+- Related: [[GMTIME{"format"}|Main/WebHome#VarGMTIME2]], [[REVINFO|Main/WebHome#VarREVINFO]]
--- /dev/null
+<a name="VarS"></a>
+
+### <a name="S -- red star icon"></a> S -- red star icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: S = %S%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
</tr>
<tr>
<td><code>noheader="on"</code></td>
- <td> Suppress search header <br /><span style="background: #FFB0B0"> <strong>Topics: Changed: By:</strong> </span></td>
- <td> Show search header, unless seach is inline and a format is specified (Cairo compatibility) </td>
+ <td> Suppress default search header <br /><span style="background: #FFB0B0"> <strong>Topics: Changed: By:</strong> </span>, unless a <code>header</code> is explicitly specified </td>
+ <td> Show default search header, unless search is inline and a format is specified (Cairo compatibility) </td>
</tr>
<tr>
<td><code>nototal="on"</code></td>
- Example: `%SEARCH{"wiki" web="Main" scope="topic"}%`
- Example with format: `%SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"%` _(displays results in a table with header - [[details|Main/FormattedSearch]])_
- %H% Hint: If the TWiki:Plugins.TablePlugin is installed, you may set a `%TABLE{}%` variable just before the `%SEARCH{}%` to alter the output of a search. Example: `%TABLE{ tablewidth="90%" }%`
-- Related: [[METASEARCH|Main/WebHome#VarMETASEARCH]], [[TOPICLIST|Main/WebHome#VarTOPICLIST]], [[WEBLIST|Main/WebHome#VarWEBLIST]], [[FormattedSearch]]
+- Related: [[METASEARCH|Main/WebHome#VarMETASEARCH]], [[TOPICLIST|Main/WebHome#VarTOPICLIST]], [[WEBLIST|Main/WebHome#VarWEBLIST]], [[FormattedSearch]], [[SearchHelp]], [[SearchPatternCookbook]], [[RegularExpression]]
--- /dev/null
+<a name="VarSILVER"></a>
+
+### <a name="SILVER -- start silver colored t"></a> SILVER -- start silver colored text
+
+- `SILVER` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%SILVER% silver text %ENDCOLOR%`
+- Expands to: %SILVER% silver text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarT"></a>
+
+### <a name="T -- tip icon"></a> T -- tip icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: T = %T%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarTEAL"></a>
+
+### <a name="TEAL -- start teal colored text"></a> TEAL -- start teal colored text
+
+- `TEAL` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%TEAL% teal text %ENDCOLOR%`
+- Expands to: %TEAL% teal text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
--- /dev/null
+<a name="VarTOPICURL"></a>
+
+### <a name="TOPICURL -- shortcut to viewing"></a><a name="TOPICURL -- shortcut to viewing "></a> TOPICURL -- shortcut to viewing the current topic
+
+- This variable always expands to an url pointing to the current base topic.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: TOPICURL = %TOPICURL%
--- /dev/null
+<a name="VarU"></a>
+
+### <a name="U -- "updated" icon"></a> U -- "updated" icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: U = %U%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[X|Main/WebHome#VarX]], [[Y|Main/WebHome#VarY]]
<td> no encoding </td>
</tr>
<tr>
+ <td><code>encode="quote"</code></td>
+ <td> Escape double quotes with backslashes (<code>\"</code>), does not change other characters; required when feeding URL parameters into other TWiki variables </td>
+ <td> no encoding </td>
+ </tr>
+ <tr>
<td><code>multiple="on"</code> %BR% <code>multiple="[[$item]]"</code></td>
<td> If set, gets all selected elements of a <code><select multiple="multiple"></code> tag. A format can be specified, with <code>$item</code> indicating the element, e.g. <code>multiple="Option: $item"</code></td>
<td> first element </td>
</tr>
</table>
- Example: `%URLPARAM{"skin"}%` returns `print` for a `.../view/%WEB%/%INCLUDINGTOPIC%?skin=print` URL
-- **_%X% Note:_** URL parameters passed into HTML form fields must be entity [[ENCODEd|Main/WebHome#VarENCODE]]
+- **_%X% Note:_** URL parameters passed into HTML form fields must be entity [[ENCODEd|Main/WebHome#VarENCODE]].
+- **_%X% Note:_** Double quotes in URL parameters must be escaped when passed into other TWiki variables.%BR% Example: `%SEARCH{ "%URLPARAM{ "search" encode="quotes" }%" noheader="on" }%`
- **_%X% Note:_** When used in a template topic, this variable will be expanded when the template is used to create a new topic. See [[TWikiTemplates#TemplateTopicsVars]] for details.
- **_%X% Note:_** There is a risk that this variable could be misused for cross-site scripting.
- Related: [[ENCODE|Main/WebHome#VarENCODE]], [[SEARCH|Main/WebHome#VarSEARCH]], [[FormattedSearch]], [[QUERYSTRING|Main/WebHome#VarQUERYSTRING]]
--- /dev/null
+<a name="VarVBAR"></a>
+
+### <a name="VBAR -- vertical bar"></a> VBAR -- vertical bar
+
+- The vertical bar variable can be used in TWiki tables.
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: VBAR = %VBAR%
+- Related: [[BR|Main/WebHome#VarBR]], [[BULLET|Main/WebHome#VarBULLET]], [[BB|Main/WebHome#VarBB]], [[BB2|Main/WebHome#VarBB2]], [[BB3|Main/WebHome#VarBB3]], [[BB4|Main/WebHome#VarBB4]]
</tr>
<tr>
<td><code>separator=", "</code></td>
- <td> line separator </td>
+ <td> Line separator </td>
<td><code>"$n"</code> (new line) </td>
</tr>
<tr>
<td><code>webs="public"</code></td>
- <td> comma separated list of webs, <code>public</code> expands to all non-hidden </td>
+ <td> Comma separated list of webs, <code>public</code> expands to all non-hidden.%BR% <strong><em>NOTE:</em></strong> Administrators will see all webs, not just the public ones </td>
<td><code>"public"</code></td>
</tr>
<tr>
--- /dev/null
+<a name="VarWHITE"></a>
+
+### <a name="WHITE -- start white colored tex"></a> WHITE -- start white colored text
+
+- `WHITE` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%WHITE% white text %ENDCOLOR%`
+- Expands to: <span>%WHITE% white text %ENDCOLOR%</span> (shown with a gray background here)
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
<a name="VarWIKIHOMEURL"></a>
-### <a name="WIKIHOMEURL -- site home URL <strong>de"></a> WIKIHOMEURL -- site home URL \*deprecated
+### <a name="WIKIHOMEURL -- site home URL"></a> WIKIHOMEURL -- site home URL
-- **_%X% Note:_** use `%WIKILOGOURL%` defined in [[WebPreferences]] instead.
+- Syntax `%WIKIHOMEURL%`
+- Expands to `%WIKIHOMEURL%`
+- Defined in [[TWikiPreferences]] and normally per default set to `%SCRIPTURLPATH{"view"}%`
+- **_%X% Note:_** For the top bar logo URL use `%WIKILOGOURL%` defined in [[WebPreferences]] instead.
+- Related: [[WIKITOOLNAME|Main/VarWIKITOOLNAME]]
--- /dev/null
+<a name="VarX"></a>
+
+### <a name="X -- warning icon"></a> X -- warning icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: X = %X%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[Y|Main/WebHome#VarY]]
--- /dev/null
+<a name="VarY"></a>
+
+### <a name="Y -- "yes" icon"></a> Y -- "yes" icon
+
+- Type: Preference variable - [[TWikiRenderingShortcut]].
+- Current value: Y = %Y%
+- Related: [[H|Main/WebHome#VarH]], [[I|Main/WebHome#VarI]], [[ICON|Main/WebHome#VarICON]], [[M|Main/WebHome#VarM]], [[N|Main/WebHome#VarN]], [[P|Main/WebHome#VarP]], [[Q|Main/WebHome#VarQ]], [[S|Main/WebHome#VarS]], [[T|Main/WebHome#VarT]], [[U|Main/WebHome#VarU]], [[X|Main/WebHome#VarX]]
--- /dev/null
+<a name="VarYELLOW"></a>
+
+### <a name="YELLOW -- start yellow colored t"></a> YELLOW -- start yellow colored text
+
+- `YELLOW` is one of the rendering shortcut settings predefined in [[TWikiPreferences]]. See the section [[rendering shortcut settings|Main/TWikiPreferences#RenderingShortcuts]] in that topic for a complete list of colors.
+- Syntax: `%YELLOW% yellow text %ENDCOLOR%`
+- Expands to: %YELLOW% yellow text %ENDCOLOR%
+- **_Note:_** `%<color>%` text must end with `%ENDCOLOR%`. If you want to switch from one color to another one you first need to end the active color with `%ENDCOLOR%`, e.g. write `%RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%`.
+- Related: [[ENDCOLOR|Main/TWikiVariables#VarENDCOLOR]], [[TWikiPreferences|Main/TWikiPreferences#RenderingShortcuts]], [[StandardColors]]
- The URL for an RSS feed is `http://www.dementia.org/twiki/view/<web>/WebAtom`
- For this %WEB% web it is [[http://www.dementia.org/twiki/view/%WEB%/WebAtom|%WEB%/WebAtom]]
-- You can also create a custom feed based on a search. Add a `search=value` parameter to the URL, e.g. <http://www.dementia.org/twiki//view/%WEB%/WebAtom?search=plugin> is a what's new feed about Plugins.
+- You can also create a custom feed based on a search. Add a `search=value` parameter to the URL, e.g. [[http://www.dementia.org/twiki/view/%WEB%/WebAtom?search=plugin|%WEB%/WebAtom?search=plugin]] is a what's new feed about Plugins.
## <a name="ATOM Feed Internals"></a> ATOM Feed Internals
----
- %STARTINCLUDE%<link rel="self" type="application/atom+xml" href="%SCRIPTURL%/view%SCRIPTSUFFIX%/%INCLUDINGWEB%/%HOMETOPIC%"/>
- <id>%SCRIPTURL%/view%SCRIPTSUFFIX%/%INCLUDINGWEB%</id>
+ %STARTINCLUDE%<link rel="self" type="application/atom+xml" href="%SCRIPTURL{"view"}%/%INCLUDINGWEB%/%BASETOPIC%"/>
+ <id>%SCRIPTURL{"view"}%/%INCLUDINGWEB%</id>
<rights>%WEBRSSCOPYRIGHT%</rights>%CALC{$SET(c,0)}%
- %SEARCH{"%URLPARAM{"search" default=".*" }%" web="%INCLUDINGWEB%" regex="on" nosearch="on" order="modified" reverse="on" nototal="on" limit="16" format="$percntCALC{$IF($GET(c)>0, , <updated>$isodate</updated>$CHAR(10))$SETM(c, +1)}$percnt<entry>$n <title>$topic</title>$n <link rel=\"alternate\" type=\"text/html\" href=\"%SCRIPTURL%/view%SCRIPTSUFFIX%/$web/$topic?t=$isodate\"/>$n <id>%SCRIPTURL%/view%SCRIPTSUFFIX%/$web/$topic</id>$n <updated>$isodate</updated>$n <summary>$summary (last changed by <nop>$wikiname)</summary>$n <author>$n <name><nop>$wikiname</name></author>$n</entry>"}%
+ %SEARCH{"%URLPARAM{"search" default=".*" }%" web="%INCLUDINGWEB%" type="regex" nosearch="on" order="modified" reverse="on" nototal="on" limit="16" format="$percntCALC{$IF($GET(c)>0, , <updated>$isodate</updated>$CHAR(10))$SETM(c, +1)}$percnt<entry>$n <title>$topic</title>$n <link rel=\"alternate\" type=\"text/html\" href=\"%SCRIPTURL{"view"}%/$web/$topic?t=$isodate\"/>$n <id>%SCRIPTURL{"view"}%/$web/$topic</id>$n <updated>$isodate</updated>$n <summary>$summary (last changed by <nop>$wikiname)</summary>$n <author>$n <name><nop>$wikiname</name></author>$n</entry>"}%
%STOPINCLUDE%
----
+# <a name="50 Recent Changes in %WEB% Web r"></a> 50 Recent Changes in %WEB% Web <span><font>retrieved at 16:03 (GMT)</font></span>
+
# <a name="TWiki Installation Error"></a> TWiki Installation Error
Incorrect format of search template (missing sections? There should be 4 %SPLIT% tags)
-- See [100](http://www.dementia.org/twiki/search/%INCLUDINGWEB%/?search=%5C.*;scope=topic;order=modified;reverse=on;regex=on;nosearch=on;limit=100), [200](http://www.dementia.org/twiki/search/%INCLUDINGWEB%/?search=%5C.*;scope=topic;order=modified;reverse=on;regex=on;nosearch=on;limit=200), [400](http://www.dementia.org/twiki/search/%INCLUDINGWEB%/?search=%5C.*;scope=topic;order=modified;reverse=on;regex=on;nosearch=on;limit=400), [800](http://www.dementia.org/twiki/search/%INCLUDINGWEB%/?search=%5C.*;scope=topic;order=modified;reverse=on;regex=on;nosearch=on;limit=800) most recent changes
-- See [all](http://www.dementia.org/twiki/search/%INCLUDINGWEB%/SearchResult?search=%5C.*;scope=topic;order=modified;reverse=on;regex=on;nosearch=on) changes
+**_See also:_** <img src="http://www.dementia.org/twiki//view/Main/WebHome/rss-small.gif" width="16" height="16" alt="rss-small" /> [[RSS feed|%INCLUDINGWEB%/WebRss]], recent changes with [[50|%INCLUDINGWEB%/%INCLUDINGTOPIC%]], [[100|%INCLUDINGWEB%/%INCLUDINGTOPIC%?limit=100]], [[200|%INCLUDINGWEB%/%INCLUDINGTOPIC%?limit=200]], [[500|%INCLUDINGWEB%/%INCLUDINGTOPIC%?limit=500]], [[1000|%INCLUDINGWEB%/%INCLUDINGTOPIC%?limit=1000]] topics, [[all changes|%INCLUDINGWEB%/%INCLUDINGTOPIC%?limit=All]]
- [[ Statistics|Main/WebStatistics]]
- [[ Preferences|Main/WebPreferences]]
-----
-
- **User Reference**
- [[ATasteOfTWiki]]
- [[TextFormattingRules]]
- [[TWikiSkinBrowser]]
- [[InstalledPlugins]]
-----
-
- **Admin Maintenance**
- [[Reference Manual|Main/TWikiReferenceManual]]
- [[AdminToolsCategory]]
- [[TWikiPreferences]]
- [[WebPreferences]]
-----
-
- **Categories**
- [[Admin Documentation|Main/AdminDocumentationCategory]]
- [[Admin Tools|Main/AdminToolsCategory]]
- [[Developer Doc|Main/DeveloperDocumentationCategory]]
- [[User Documentation|Main/UserDocumentationCategory]]
- [[User Tools|Main/UserToolsCategory]]
-
-----
-<div> Hello [[Main/Admin]]!%BR%[[Main/WebHome?logout=1]]<div><a href="http://www.dementia.org/twiki/edit/Main/adminLeftBar?templatetopic=TWiki.WebLeftBarPersonalTemplate&topicparent=admin">Create personal sidebar</a></div>
+<div> Hello [[Main/Admin]]!%BR%<ul>
+ <li>[[Main/WebHome?logout=1]]</li>
+ </ul>
+ <div>
+ <ul>
+ <li><a href="http://www.dementia.org/twiki/edit/Main/adminLeftBar?templatetopic=TWiki.WebLeftBarPersonalTemplate&topicparent=admin">Create personal sidebar</a></li>
+ </ul>
+ </div>
</div>
# <a name="%WEB% Web Preferences"></a><a name=" %WEB% Web Preferences"></a> %WEB% Web Preferences
-The following settings are **_web preferences_** of the [[%WEB%|WEB/WebHome]] web. These preferences overwrite the **_site-level preferences_** in [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] and [[Main.TWikiPreferences|Main/TWikiPreferences]], and can be overwritten by **_user preferences_** (your personal topic, eg: [[TWikiGuest]] in the [[Main|Main/WebHome]] web).
+The following settings are **_web preferences_** of the [[%WEB%|WEB/WebHome]] web. These preferences overwrite the **_site-level preferences_** in [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] and [[Main.TWikiPreferences|Main/TWikiPreferences]], and can be overwritten by **_user preferences_** (your personal topic, eg: Main.admin in the [[Main|Main/WebHome]] web).
<div>
<ul>
- #Set ALLOWWEBVIEW =
- #Set DENYWEBCHANGE =
- Set ALLOWWEBCHANGE = [[TWikiAdminGroup]]
- - #Set DENYWEBRENAME =
- - Set ALLOWWEBRENAME = [[TWikiAdminGroup]]
- Users or groups allowed to change or rename this %TOPIC% topic: (e.g., [[TWikiAdminGroup]])
- Set ALLOWTOPICCHANGE = [[TWikiAdminGroup]]
- - Set ALLOWTOPICRENAME = [[TWikiAdminGroup]]
- Web preferences that are **not** allowed to be overridden by user or topic preferences:
- - Set FINALPREFERENCES = NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME, ALLOWWEBMANAGE, DENYWEBMANAGE
+ - Set FINALPREFERENCES = NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, ALLOWWEBMANAGE, DENYWEBMANAGE
--- /dev/null
+# <a name="Web template topics"></a><a name=" Web template topics"></a> Web template topics
+
+**Template topics define the default text for new topics.**
+
+Available templates in %WEB% Web:
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
# <a name="Create New Topic in Main Web"></a> Create New Topic in Main Web
-<form action="http://www.dementia.org/twiki/edit/Main/" id="newtopic" name="newtopic" onsubmit="return canSubmit(this,true);">
- <div>
+<form action="http://www.dementia.org/twiki/edit/Main/" id="newtopic" name="newtopic" onsubmit="return canSubmit(this,true);"><input name="onlywikiname" type="hidden" /><input name="onlynewtopic" type="hidden" value="on" /><div>
<div>
<h3><a name="Topic name:"></a> Topic name: </h3>
<p>
- </p><input id="topic" name="topic" onblur="canSubmit(this.form,true);" onchange="canSubmit(this.form,false);" onkeyup="canSubmit(this.form,false);" size="40" tabindex="10" type="text" value="" /> <span id="webTopicCreatorFeedback"></span><p>
+ </p><input id="topic" name="topic" onblur="canSubmit(this.form,true);" onchange="canSubmit(this.form,false);" onkeyup="canSubmit(this.form,false);" size="40" tabindex="10" type="text" /> <span id="webTopicCreatorFeedback"></span><p>
</p><input id="nonwikiword" name="nonwikiword" onchange="canSubmit(this.form,false);" onmouseup="canSubmit(this.form,false);" tabindex="11" type="checkbox" /><label for="nonwikiword">Allow non WikiWord for the new topic name</label>
<br /><span>It's usually best to choose a <a href="TWiki" onclick="return launchWindow('TWiki','WikiWord')" rel="nofollow" target="WikiWord">WikiWord</a> for the new topic name, otherwise automatic linking may not work. Characters not allowed in topic names, such as spaces will automatically be removed.</span></div>
<div>
</p>
<option value="">(no parent, orphaned topic)</option></select></div>
<div>
+ <h3><a name="Use template:"></a> Use template: </h3>
+ <p>
+ </p><select name="templatetopic"><option value="TWiki.WebTopicEditTemplate">Default template</option>
+ <h1>TWiki Installation Error</h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)</select> [[TWiki/WebTemplateTopics?web=Main]]</div>
+ <div>
<p>
</p><input id="submit" tabindex="13" type="submit" value="Create this topic" /></div>
- </div><input name="onlywikiname" type="hidden" /> <input name="onlynewtopic" type="hidden" value="on" /></form>
+ </div>
+ <p>
+ </p>
+</form>
%BR%
-> %X% %RED%
->
-> **WARNING:**
->
-> %ENDCOLOR% This topic name is not recommended because it will not be linked automatically. See
->
-> [[WikiWord]]
->
-> for details
+%RED% **WARNING:** %ENDCOLOR% This topic name is not recommended because it will not be linked automatically. See [[WikiWord]] for details
-## <a name="NOTE: This Wiki topic does not e"></a> NOTE: This Wiki topic does not exist yet
+# <a name="Note: This topic does not exist"></a> Note: This topic does not exist
-### <a name="If you used the "Jump" feature t"></a><a name=" If you used the "Jump" feature "></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowright.gif" width="16" height="16" alt="arrowright" /> If you used the "Jump" feature to jump to this page:
+**The topic 'WebHome' you are trying to access does not exist, yet.**
-- Make sure you spelled the [[WikiWord]] correctly and try again. Remember, a WikiWord is case sensitive
-- Similar topics in this web (if any):
-# TWiki Installation Error
-Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) [...](http://www.dementia.org/twiki/search/Main/?scope=topic&nosummary=on¬otal=on&search=WebHome)
-- [Search for similar topics in all public webs](http://www.dementia.org/twiki/search/Main/?web=all&scope=topic&nosummary=on¬otal=on&search=WebHome)
+<div>
+ <table border="0" cellpadding="0" cellspacing="0" id="twikiSearchTable">
+ <tr>
+ <td>
+ <form action="http://www.dementia.org/twiki/view/Main/WebHome" name="jumpAgain"><strong>Did you spell the [[TWiki/WikiWord]] correctly?</strong> Remember, a WikiWord is case sensitive. %BR% <input name="topic" size="36" type="text" value="WebHome" /> <input type="submit" value="Jump to topic" /></form>
+ </td>
+ </tr>
+ </table>
+</div>
-# <a name="TWiki Installation Error"></a> TWiki Installation Error
+### <a name="Do you wish to navigate quickly"></a><a name="Do you wish to navigate quickly "></a> Do you wish to navigate quickly to a similar topic?
-Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+Similar topics in this web (if any):%BR% <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowbright.gif" width="16" height="16" alt="arrowbright" /> [[List more similar topic in this web|Main/WebSearch?scope=topic;search=WebHome]] %BR% <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowbright.gif" width="16" height="16" alt="arrowbright" /> [[Search similar topics in all public webs|Main/WebSearch?scope=topic;web=all;search=WebHome]]
-### <a name="If you intend to do a full text"></a><a name=" If you intend to do a full text"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/searchtopic.gif" width="16" height="16" alt="searchtopic" /> If you intend to do a full text search:
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
-<form action="http://www.dementia.org/twiki/search/Main/" name="search">
- <ul>
- <li> Use the [[Main/WebSearch]] link on top of this page, or do a simple </li>
- <li><input name="search" size="32" type="text" value="WebHome" /> <input type="submit" value="Search" /> <input name="scope" type="hidden" value="text" /> <input name="ignorecase" type="hidden" value="on" /> (More options in [[Main/WebSearch]]) </li>
- </ul>
-</form>
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-### <a name="If you would like to create this"></a><a name=" If you would like to create thi"></a> <img src="http://www.dementia.org/twiki//view/Main/WebHome/newtopic.gif" width="16" height="16" alt="newtopic" /> If you would like to create this page:
+### <a name="Do you wish to create the topic"></a><a name="Do you wish to create the topic "></a> Do you wish to create the topic 'WebHome'?
-> **Topic name:**<br />
->
-> **Topic parent:**<br />
+<img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowbright.gif" width="16" height="16" alt="arrowbright" /> [[Create 'WebHome'|Main/WebTopicCreator?newtopic=WebHome]]
## <a name="Answer:"></a> Answer:
-TWiki is short for TakeFive Wiki, the name of the company where its founder [[Peter Thoeny|TWiki:Main/PeterThoeny]] worked. Peter first named the platform [[T5Wiki]], then shortened it to TWiki (pronounced _twee-kee_).
+TWiki is short for TakeFive Wiki, the name of the company where its founder [[Peter Thoeny|TWiki:Main/PeterThoeny]] worked. Peter first named the platform T5Wiki, then shortened it to TWiki (pronounced _twee-kee_).
It was later discovered that Twiki is also the name of an AI robot that co-starred in the [Buck Rogers](http://www.buck-rogers.com/) movie and TV series from 1979.
- Book: The Wiki Way, Quick Collaboration on the Web; by Bo Leuf and Ward Cunningham; Addison-Wesley Pub Co; ISBN:020171499X
-- Book: Wiki Tools: Web Collaboration; by Anja Ebersbach, Markus Glaser, Richard Heigl; Springer; ISBN:3540259953 (the book is about TWiki and MediaWiki; German version is ["WikiTools: Kooperation im Web"](http://www.wiki-tools.de/))
+- Book: Wiki: Web Collaboration; by Anja Ebersbach, Markus Glaser, Richard Heigl; Springer; ISBN:3540259953. The book is about TWiki and MediaWiki; [Free eBook](http://www.springerlink.com/content/978-3-540-29267-8/) is available; German version is "[WikiTools: Kooperation im Web](http://www.wiki-tools.de/)".
- Presentation: Wiki Collaboration and Wiki Applications for the Enterprise; by Peter Thoeny; LinuxWorld; 11 Aug 2005; <http://TWiki.org/cgi-bin/view/Codev/TWikiPresentation11Aug2005>
- Use <code>**<verbatim>**</code> to enclose code excerpts, filenames, and other unformatted text:%BR% <code>**<verbatim>**</code> %BR% `unformatted text!` %BR% <code>**</verbatim>**</code> %BR%%BR% **_%X% NOTE:_** VARIABLES can be set within verbatim tags, that is, they are not disabled
-- Three (or more) consecutive **hyphens** expand into a horizontal rule:%BR% `---`
+- Use <code>**<literal>**</code> to enclose anything that TWiki must not touch under any circumstances, such as in-line HTML code.
- Follow [[GoodStyle]] recommendations when editing topics.
## <a name="Syntax of a _WikiWord"></a> Syntax of a WikiWord
- Uppercase letter(s)
-- Lowercase letter(s)
+- Lowercase letter(s) or numbers(s)
- Uppercase letter(s)
- Optional lowercase or uppercase letter(s) or number(s)
- [[ReleaseVersion5dot3]]
- [[AVeryLongWikiTopicNameIsAlsoPossible]]: wherever an uppercase or lowercase letter is allowed, a group of letters of the same case is allowed
- [[YearTwoThousand]]
+- [[Nine2Five]]: Note that numbers are considered to be lowercase letters in WikiWords
## <a name="Bad examples of _WikiWords:"></a> Bad examples of WikiWords:
- Web: Name without the uppercase letter(s), lowercase letter(s), uppercase letter(s) sequence
-- [[T5Wiki]]: Name with number before the uppercase, lowercase, uppercase sequence
-- [[Md5sumsAfterBurning]]: Name with number before the uppercase, lowercase, uppercase sequence
+- 5TWiki: Name beginning with a number
- Know-How: Name with dashes in between
## <a name="Variations in linking"></a> Variations in linking
- To link to a topic in **another web**, write: `Sandbox.WebSearch` - this becomes: [[WebSearch]]
- To show the web name in the link use bracket notation: `[[Sandbox.WebHome]]` - this becomes: [[Sandbox.WebHome|Sandbox/WebHome]]
- To link to a topic on **another Wiki site**, use: `TWiki:Main/WebHome` - this becomes: TWiki:Main/WebHome (sites are defined in the [[InterwikiPlugin]])
-- To link to a part on the **same page**, write a dash and the name of the header, with spaces replaced by underscores (and `!` removed): `[[#Good_examples_of_WikiWords]]` becomes: [[#Good_examples_of_WikiWords|Main/WebHome#Good_examples_of_WikiWords]]. You can also link to a part on another page: `TWiki.WebHome#Disclaimer` becomes: [[WebHome#Disclaimer]].
+- To link to a part on the **same page**, write a "#" followed by the name of an anchor. The anchor is a "#" followed by a name which must be a WikiName. Example `#MyAnchor`. You can also link to an anchor on another page: `TWiki.WebHome#MyAnchor`.
+- To link to a header on the **same page**, write a "#" followed by the header text, with spaces replaced by underscores (and `!` removed): `[[#Good_examples_of_WikiWords]]` becomes: [[#Good_examples_of_WikiWords|Main/WebHome#Good_examples_of_WikiWords]]. You can also link to a header on another page: `TWiki.WebHome#Disclaimer` becomes: [[WebHome#Disclaimer]].
## <a name="Hints"></a> Hints
- Insert WikiWords wherever you can. Rich linking helps to make a Wiki successful.
- Be specific. All topics in a web share one name space. For example, instead of `FunctionalSpec` write `BreadSlicerFunctionalSpec` because other projects might also have a functional spec topic.
- To stop a WikiWord from being turned into a hyperlink, insert an exclamation point immediately before the WikiWord. For example, write `!SunOS` to get SunOS.
-- Create topics with singular names. Plural WikiWords are automatically linked to the singular topic, i.e. the link [[WikiWords]] links to the topic [[WikiWord]].
+- Create topics with singular names. Plural WikiWords are automatically linked to the singular topic, i.e. the link [[WikiWords]] links to the topic [[WikiWord]] (works only in English).
- Sometimes you have to be creative to find a good WikiName. Examples:
- To create a topic about the the **Bread Slicer 1.2** product, use `BreadSlicer1dot2` or `BreadSlicer1pt2`, but not `BreadSlicer1.2`.
- - To create a topic about **year 2000**, you could go for `YearTwoK` or `YearTwoThousand`, but not `Year2K` or `Y2K` or `Y2000`.
+ - Numbers are considered lowercase which makes `Year2K` and `Y2K` WikiWords but not `Y2000` and `Y2k`.
- Turn acronyms into WikiWords, i.e. take `FaqIndex` for a "FAQ index" topic.
- It is possible to turn off the auto-linking of WikiWords and to rely only on the bracket notation. See NOAUTOLINK setting in [[TWikiPreferences#Default_Web_Preferences]].
- %X% When linking to a WebHome topic _in another web_, the link will be rendered as the name of the web, e.g. `Sandbox.WebHome` becomes [[Sandbox|Sandbox/WebHome]].
# <a name="Wysiwyg Plugin"></a><a name=" Wysiwyg Plugin"></a> Wysiwyg Plugin
-Support for the integration of WYSIWYG (What-You-See-Is-What-You-Get) editors. Comes bundled with a complete integration of the feature-rich [Kupu](http://kupu.oscom.org) editor.
+%SHORTDESCRIPTION%
-![Screenshot](http://www.dementia.org/twiki//view/screenshot.jpg)
+Support for the integration of WYSIWYG (What-You-See-Is-What-You-Get) editors. On its own, the only thing this plugin gives you is a stand-alone HTML to TWiki translator script. For WYSIWYG editing in TWiki, you will also need to install a specific editor package such as TWiki:Plugins.KupuEditorContrib or TWiki:Plugins.WikiwygContrib.
-The plugin is a generic framework that supports editing of TWiki topics using any browser-based HTML editor. It works by transforming TML (TWiki Meta Language) into HTML for the editor and then transforming HTML back into TML on save. These steps can be separated to support the import of HTML from external sources such as existing web pages.
+This plugin provides a generic framework that supports editing of TWiki topics using any browser-based HTML editor. It works by transforming TML (TWiki Meta Language) into HTML for the editor, and then transforming HTML back into TML on save.
-The plugin should operate with TWiki20040904 as well as TWiki-4.0.0 and later.
-
-**Caveat**: [[WysiwygPlugin]] is designed for editing TWiki topics, not as a general purpose HTML editor. It will work fine on topics that contain text, TML formatting, and most HTML. However, because of the complexity of transforming TML into HTML and back, complex TML, and mixing HTML and TML may not give the results you expect. You are recommended to use the standard browser textarea editor for editing existing topics that contain mixed HTML and TML, or complex %TML%-type variables.
-
-<div>
- <ul>
- <li><a href="#Features"> Features</a></li>
- <li><a href="#Details"> Details</a><ul>
- <li><a href="#What's in the package"> What's in the package</a></li>
- <li><a href="#How to use the editor"> How to use the editor</a><ul>
- <li><a href="#Kupu Notes"> Kupu Notes</a></li>
- </ul>
- </li>
- <li><a href="#How it works"> How it works</a></li>
- <li><a href="#Using the translators from Perl"> Using the translators from Perl scripts</a></li>
- </ul>
- </li>
- <li><a href="#Plugin Installation Instructions"> Plugin Installation Instructions</a></li>
- <li><a href="#Plugin Configuration Settings"> Plugin Configuration Settings</a></li>
- <li><a href="#Other Settings"> Other Settings</a><ul>
- <li><a href="#TWiki._WysiwygPluginIcons"> TWiki.WysiwygPluginIcons</a></li>
- <li><a href="#TWiki._WysiwygPluginStrings"> TWiki.WysiwygPluginStrings</a></li>
- <li><a href="#TWiki._WysiwygPluginLocalHelp"> TWiki.WysiwygPluginLocalHelp</a></li>
- <li><a href="#Editor control"> Editor control</a></li>
- </ul>
- </li>
- <li><a href="#Known Issues"> Known Issues</a><ul>
- <li><a href="#Incompatible with "non-standard""> Incompatible with "non-standard" syntax</a></li>
- <li><a href="#Can't <strong>undo</strong> all functions (Kupu"> Can't undo all functions (Kupu + browser)</a></li>
- <li><a href="#Overlapping styles (_WysiwygPlug"> Overlapping styles (WysiwygPlugin)</a></li>
- <li><a href="#Support for PRE"> Support for PRE</a></li>
- </ul>
- </li>
- <li><a href="#Plugin Info"> Plugin Info</a></li>
- </ul>
-</div>
-
-## <a name="Features"></a> Features
-
-- Supports the input of malformed HTML
-- Full round-trip (TML -> XHTML -> TWiki syntax)
-- Framework is editor agnostic
-- Customised [Kupu](http://kupu.oscom.org) editor included
-
-## <a name="Details"></a> Details
-
-### <a name="What's in the package"></a> What's in the package
-
-The package includes the following pieces:
-
-- TML (TWiki syntax) to HTML translator
-- HTML to TML translator (with stand-alone script)
-- Generic TWiki plugin for automating the translation during editing
-- [Kupu](http://kupu.oscom.org) editor integration, implemented as a TWiki skin
-
-### <a name="How to use the editor"></a> How to use the editor
-
-Basic help for most of the functions in the toolbar is available by "hovering" the mouse over the button. Some functions require a bit more explanation:
-
-- "Insert No-Op" inserts a <nop> region. Any TWiki syntax such as wikiwords or variables inside the region will be disabled in the rgeion. $lt;nop> regions may not extend over line breaks.
-- The rightmost drop-down will give you a menu of TWiki variables that can be inserted. Any of these variables can be edited after they have been placed in the text, for example to add parameters.
-- "Insert a [[WikiWord]]" will give you a menu of topics in the _current web_ that can be inserted. Topics are inserted as links, though typing wikiwords in plain text will work just as well.
-- Watch out for the <> button on the right of the toolbar. It lets you switch into an HTML view, which can be very useful when you can't get your formatting right.
-- In TWiki, a totally empty table cell causes the cell to be merged with the cell immediately to the left. To make this effect more transparent in the editor, these empty cells are shown with the text "%SPAN%" in them. In Kupu, if you add %SPAN% to a table cell, then all the rest of the content will be thrown away and the cell will be converted to an empty table cell. Note that this only applies to tables that are converted to TWiki syntax.
-
-#### <a name="Kupu Notes"></a> Kupu Notes
-
-The version of Kupu shipped with this plugin is an uncustomised basic Kupu release. All the TWiki customisation is done as plugins and extensions to Kupu - the basic kupu code is shipped completely intact.
-
-### <a name="How it works"></a> How it works
-
-The plugin works by translating the topic text into HTML, which is then fed to the editor. The edited HTML is then run through the reverse translation before saving to the topic. TWiki syntax is used in preference to HTML in the stored topic wherever possible, though HTML may be used if the translator can't find a suitable TML equivalent..
-
-The default rendering that TWiki uses to generate HTML for browsers is 'lossy' - information in the TWiki syntax is lost in the HTML output, and a round-trip (recovering the original TWiki syntax from the HTML) is impossible. To solve this problem the plugin instead uses its own translation of TWiki syntax to pure XHTML. The generated XHTML is annotated with CSS classes that support the accurate recovery of the original TWiki syntax.
-
-_(before you ask the obvious question, yes, the translator **could** be used to replace the TWiki rendering pipeline for generating HTML pages. In fact, the translator is taken almost directly from the implementation of the rendering pipeline for the TWiki 'Dakar' release)_
-
-Translation of the HTML back to TWiki syntax uses the CPAN:HTML::Parser. This parser is used in preference to a more modern XML parser, because the HTML may not generate fully compliant XHTML. A strict parser would risk losing content. CPAN:HTML::Parser is better at handling malformed syntax.
-
-There is also the advantage that the translator can be used to import HTML from other sources - for example, existing web pages. Due to the simple nature of TWiki syntax and the complexity of HTML, this translation is lossy - i.e there will be HTML features that can be entered by editors that will be lost in this translation step. This is especially noticeable with HTML tables.
-
-### <a name="Using the translators from Perl"></a><a name="Using the translators from Perl "></a> Using the translators from Perl scripts
-
-Both translators can be used directly from Perl scripts, for example to build your own stand-alone translators.
-
-An example stand-alone convertor script for HTML to TWiki is included in the installation. It can be found in the top-level `tools` directory and is called `html2tml.pl`.
-
-## <a name="Plugin Installation Instructions"></a> Plugin Installation Instructions
-
-- Download the ZIP file from the Plugin web (see below)
-- Unzip <code>**%TOPIC%.zip**</code> in your twiki installation directory. Content: <table border="1" cellpadding="0" cellspacing="0">
- <tr>
- <th bgcolor="#99CCCC"><strong> File: </strong></th>
- <th bgcolor="#99CCCC"><strong> Description: </strong></th>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/WC.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Leaf.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Node.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin/HTML2TML.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>lib/TWiki/Plugins/WysiwygPlugin/TML2HTML.pm</b></code></td>
- <td> Perl module </td>
- </tr>
- <tr>
- <td><code><b>data/TWiki/WysiwygPlugin.txt</b></code></td>
- <td> Documentation and settings </td>
- </tr>
- <tr>
- <td><code><b>data/TWiki/WysiwygPluginTopicLister.txt</b></code></td>
- <td> Special AJAX topic </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/kuputwiki.css</b></code></td>
- <td> Kupu customisation </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/twikitools.js</b></code></td>
- <td> Kupu customisation </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/kupuinit.js</b></code></td>
- <td> Kupu customisation </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/kupustart.js</b></code></td>
- <td> Kupu customisation </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/bold.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/cancel.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/code.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/definition-list.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/exthyperlink.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/help.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/indent.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/inthyperlink.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/italic.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/new-attachment.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/new-image.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/nop.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/ordered-list.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/outdent.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/redo.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/remove.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/save.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/separator.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/smiley.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/strings.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/table.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/text-color.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/undo.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/unordered-list.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/vars.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/verbatim.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/verbatim-watermark.png</b></code></td>
- <td> Watermark </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/screenshot.jpg</b></code></td>
- <td> Screen shot </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/view-source.png</b></code></td>
- <td> Button image </td>
- </tr>
- <tr>
- <td><code><b>templates/edit.kupu.tmpl</b></code></td>
- <td> Template for an edit using kupu </td>
- </tr>
- <tr>
- <td><code><b>templates/view.kupuxml.tmpl</b></code></td>
- <td> Template for AJAX data </td>
- </tr>
- <tr>
- <td><code><b>templates/attachtables.kupu.tmpl</b></code></td>
- <td> Attachment table rendering for editor </td>
- </tr>
- <tr>
- <td><code><b>templates/view.kupu.tmpl</b></code></td>
- <td> Template for a kupu skin view, used by the editor </td>
- </tr>
- <tr>
- <td><code><b>tools/html2tml.pl</b></code></td>
- <td> Stand-alone convertor script </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/Extensions/Install.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/Makefile</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/README.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/exit.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/kupudrawerstyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/kupumacros.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/kupustyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/lenya.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/lenya.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/toolbar.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/toolboxes.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/kupu/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/content2edit.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/imagedrawer.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/imagelibraries.xml.jx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/kupudrawerstyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/libraries.xml.jx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/linkdrawer.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/linklibraries.xml.jx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/publication_image_library.xml.jx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/drawers/sitetree_link_library.xml.jx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/i18n.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/emblem-generic.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/exit.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/page-image.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/pub-image.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/right_arrow.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/images/sitetree-link.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/kupumacros.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/kupusave.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/page2kupu.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/pageassets2kupulibrary.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/apache-lenya/lenya/sitetree2kupulibrary.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/cnf/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/cnf/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/cnf/toolboxes.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/cnf/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/cnf/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/fulldoc.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupu-pox.cgi</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupu.cgi</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupu.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupu.pox</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupu.pox.jspx</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupubasetools.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupubeforeunload.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupublank.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucleanupexpressions.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucnf.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucnftable.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucontentfilters.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucontentstyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupucontextmenu.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/allimages.xml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/drawer.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/drawer.xsl.metadata</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/imagelibrary.xml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/kupubuttons.xml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/linklibrary.xml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos.xml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/bitflux_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/bitflux_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/bubnbros.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/bubnbros_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/codespeak_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/codespeak_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/diver_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/diver_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/eth_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/eth_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/infrae_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/infrae_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/kupu_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/kupu_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/lenya_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/lenya_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/opensource.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/opensource_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/oscom4_banner.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/oscom4_banner_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/oscom_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/oscom_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/plone_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/plone_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/pypy_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/pypy_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/silva_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/silva_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/twiki_logo.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/twiki_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/zea_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/zea_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/zope_logo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawers/logos/zope_logo_preview.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupudrawerstyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupueditor.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuform.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuhelpers.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/background-color.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/bold.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/bold.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/buttons.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/caret.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/closed.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/copy.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/create-new.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/cut.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/definitionlist.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/document.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/exit.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/exthyperlink.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/folder.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/fonts.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/format.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/hr.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/image.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/indent.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/indent.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/inthyperlink.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/italic.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/italic.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/justify-center.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/justify-full.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/justify-left.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/justify-right.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/kupu_icon.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/kupulibrary.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/kupusearch_icon.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/larger-text.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/link.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/opened.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/ordered-list.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/outdent.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/paste.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/redo-disabled.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/redo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/remove.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/save.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/size.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/smaller-text.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/space.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/strikethrough.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/subscript.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/superscript.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/table.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/text-check.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/text-color.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/toolbarbg_blue.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/toolbarbg_green.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/toolbarbg_purple.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/toolbarbg_wood.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/underline.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/underline.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/undo-disabled.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/undo.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/unlink.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/unordered-list.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/view-source.png</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/zoom-in.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuimages/zoom-out.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinit_experimental.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinit_form.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinit_genericelements.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinit_multi.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuinspector.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuloggers.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupumacros.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupumulti.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupumultieditor.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupunoi18n.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupupopups/image.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupupopups/link.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupusaveonpart.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupusourceedit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupuspellchecker.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupustart.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupustart_form.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupustart_multi.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kupustyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/kuputoolcollapser.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/sarissa.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/sarissa_ieemu_xpath.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/common/spellcheck.cgi</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/config.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/configure.zcml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/colorchooser.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/contextmenu.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/drawers.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/form.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/html.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/save.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/saveonpart.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/sourceedit.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/spellchecker.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/toolbar.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/toolboxes.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/default/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-apache-lenya.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-cnf.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-form.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-multi.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-plone.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-silva.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist-zope2.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/dist.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/BEFOREUNLOAD.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/CHANGES.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/CONTRIBUTING.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/CREDITS.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/CUSTOMIZING.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/EXTENDING.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/FAQ.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/IMAGEUPLOADER.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/INSTALL.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/JSAPI.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/LIBRARIES.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/LICENSE.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/OLDBROWSERS.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/PLONE2.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/README.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/STYLEGUIDE.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/TEMPLATE-SYSTEM.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/TODO.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/ZOPE2.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/default.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/docutils.conf</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/doc/file-template</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/form/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/form/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/form/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/form/save.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-cs.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-da.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-de.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-el.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-eo.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-fi.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-fr.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-he.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-ja.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-nl.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-pt-br.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-pt.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-sr-Latn.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-sr.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-zh-cn.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu-zh.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupu.pot</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupuconfig-da.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupuconfig-fr.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupuconfig-ja.po</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/i18n/kupuconfig.pot</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/kupu-i18nextract-sa-diff.patch</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/kupu_icon.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/make-jspx.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/make.bat</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/make.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/multi/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/multi/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/multi/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/multi/save.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/multi/toolboxes.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/ReftextField.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/TODO.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/beforeunload.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/drawers.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/html2captioned.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/interfaces.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu2html.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_config.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/contentUsesKupu.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/convertContentForKupu.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/emptypage.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuGetResourceTypes.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuInfoForBrains.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuMyItems.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuRecentItems.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuSearch.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuUploadImage.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuUploadImage.py.metadata</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupublank.html.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupucollection.xml.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupucollection.xml.pt.metadata</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupulibraries.xml.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupumyitems.xml.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuplone.css.dtml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuploneeditor.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuploneinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupuploneui.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupurecentitems.xml.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupusaveonpart.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/kupusearch.xml.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/anchor.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/bgcolor.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/bold.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/center.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/definitionlist.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/delete_icon.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/hr.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/hyperlink.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/indent.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/italic.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/left_just.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/list.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/numbered_list.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/outdent.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/redo.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/right_just.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/space.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/strikethrough.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/subscript.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/superscript.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/table.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/textcolor.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/tools.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/underline.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/undo.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/unformat.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/plonekupuimages/view-source.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/resolveuid.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/kupu_plone_layer/wysiwyg_support.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/libraries.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/librarytool.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/permissions.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/plonelibrarytool.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/resource_types.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/scanner.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/sourceedit.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/framework.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/baduid.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/linked.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/minimal.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/notcaptioned.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/notquoted.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/input/simple.in</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/baduid.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/linked.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/minimal.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/notcaptioned.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/notquoted.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/output/simple.out</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/runalltests.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/runme.cmd</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/test_browserSupportsKupu.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/test_html2captioned.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/test_librarymanager.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/tests/test_resourcetypemapper.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/toolbar.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/wysiwyg_support.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/plone/zmi_docs.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/python/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/python/nationalizer.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/python/spellcheck.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/refresh.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/roundup/kupuinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/roundup/kupustyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/closed_arrow.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/contextmenu.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/drawers.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/imagedrawer.xsl.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/kupudrawerstyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/kupumacros.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/kupusilvainit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/kupusilvatools.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/librarydrawer.xsl</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/opened_arrow.gif</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/saveonpart.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/toolbar.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/toolboxes.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/silva/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/run_tests.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_beforeunload.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupubasetools.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupueditor.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupuhelpers.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupuinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_plone.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_xhtml.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tools/compress.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tools/convert_to_utf-8.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tools/makepox.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/version.txt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/Makefile</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/browser.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/dist.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/empty.html</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/kupuinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/kupustart.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/kupustyles.css</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/make.bat</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/widgeteer/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/addKupuEditor.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/body.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/contextmenu.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/drawers.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/example.pt</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/head.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/html.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/include.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/saveonpart.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/sourceedit.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/wire.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope2/xmlconfig.kupu</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/browser/__init__.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/browser/configure.zcml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/configure.zcml</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/field.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/zope3/interfaces.py</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupubasetools.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupueditor.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupuhelpers.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
- <tr>
- <td><code><b>pub/TWiki/WysiwygPlugin/_kupu/tests/test_kupuinit.js</b></code></td>
- <td> Kupu 1.3.2 </td>
- </tr>
-</table>
+<div>
+ <ul>
+ <li><a href="#Features"> Features</a></li>
+ <li><a href="#Details"> Details</a><ul>
+ <li><a href="#What's in the package"> What's in the package</a></li>
+ <li><a href="#How it works"> How it works</a></li>
+ <li><a href="#Using the translators from Perl"> Using the translators from Perl scripts</a></li>
+ <li><a href="#Integrating a Wysiwyg Editor"> Integrating a Wysiwyg Editor</a><ul>
+ <li><a href="#Getting content in the edit temp"> Getting content in the edit template</a></li>
+ <li><a href="#Fetching content from a URL"> Fetching content from a URL</a></li>
+ </ul>
+ </li>
+ <li><a href="#Handling Saves"> Handling Saves</a><ul>
+ <li><a href="#Handling Attachments"> Handling Attachments</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#Plugin Installation Instructions"> Plugin Installation Instructions</a></li>
+ <li><a href="#Plugin Configuration Settings"> Plugin Configuration Settings</a><ul>
+ <li><a href="#Translator control"> Translator control</a></li>
+ </ul>
+ </li>
+ <li><a href="#Known issues"> Known issues</a><ul>
+ <li><a href="#Incompatible with "non-standard""> Incompatible with "non-standard" syntax</a></li>
+ <li><a href="#Overlapping styles"> Overlapping styles</a></li>
+ </ul>
+ </li>
+ <li><a href="#Plugin Info"> Plugin Info</a></li>
+ </ul>
+</div>
-- Run <code>**%TOPIC%\_installer**</code> to automatically check and install other modules that this module depends on. You can also do this step manually. Dependencies: <table border="1">
- <tr>
- <th>Name</th>
- <th>Version</th>
- <th>Description</th>
- </tr>
- <tr>
- <td align="left">HTML::Parser</td>
- <td align="left">>=3.28</td>
- <td align="left">Required. Available from <a href="http://cpan.uwinnipeg.ca/search?query=HTML%3A%3AParser&mode=dist" target="_top">CPAN</a>.</td>
- </tr>
- <tr>
- <td align="left">HTML::Entities</td>
- <td align="left">>=1.25</td>
- <td align="left">Required. Available from <a href="http://cpan.uwinnipeg.ca/search?query=HTML%3A%3AEntities&mode=dist" target="_top">CPAN</a>.</td>
- </tr>
-</table>
-- (Dakar) Visit `configure` in your TWiki installation, and enable the plugin in the \{Plugins\} section.
-- To enable the editor in one of your skins, add the following link to the skin alongside or in place of the existing 'edit' link:<br />`<a href="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%WEB%/%TOPIC%?skin=kupu">Kupu</a>`<br />As you can see this is just a standard edit link with the 'kupu' skin in place of the usual edit skin. Here it is for this topic: [Kupu](http://www.dementia.org/twiki//edit/%WEB%/%TOPIC%?skin=kupu). Try clicking on it, but _do not save_!
+## <a name="Features"></a> Features
-## <a name="Plugin Configuration Settings"></a> Plugin Configuration Settings
+- Supports the input of malformed HTML
+- Full round-trip (TML -> XHTML -> TWiki syntax)
+- Framework is editor-agnostic
+
+## <a name="Details"></a> Details
+
+### <a name="What's in the package"></a> What's in the package
+
+The package includes the following pieces:
+
+- TML (TWiki syntax) to HTML translator
+- HTML to TML translator (with stand-alone script)
+- Generic TWiki plugin for automating the translation during editing
+
+### <a name="How it works"></a> How it works
+
+The plugin works by translating the topic text into HTML when someone edits a topic. The HTML is then fed to the WYSIWYG editor. On save, the edited HTML is run through the reverse translation before saving to the topic. TWiki syntax is used in preference to HTML in the stored topic wherever possible, though HTML may be used if the translator can't find a suitable TML equivalent..
+
+The default rendering that TWiki uses to generate HTML for display in browsers is 'lossy' - information in the TWiki syntax is lost in the HTML output, and a round-trip (recovering the original TWiki syntax from the HTML) is impossible. To solve this problem the plugin instead uses its own translation of TWiki syntax to pure XHTML. The generated XHTML is annotated with CSS classes that support the accurate recovery of the original TWiki syntax.
+
+_Before you ask the obvious question, yes, the translator **could** be used to replace the TWiki rendering pipeline for generating HTML pages. In fact, the translator is taken almost directly from the implementation of the rendering pipeline for the TWiki-4 release_
+
+Translation of the HTML back to TWiki syntax uses the CPAN:HTML::Parser. This parser is used in preference to a more modern XML parser, because the HTML may not generate fully compliant XHTML. A strict parser would risk losing content. CPAN:HTML::Parser is better at handling malformed HTML.
+
+There is also the advantage that the translator can be used to import HTML from other sources - for example, existing web pages. Due to the simple nature of TWiki syntax and the potential complexity of web pages, this translation is often lossy - i.e there will be HTML features that can be entered by editors that will be lost in this translation step. This is especially noticeable with HTML tables.
+
+### <a name="Using the translators from Perl"></a><a name="Using the translators from Perl "></a> Using the translators from Perl scripts
+
+Both translators can be used directly from Perl scripts, for example to build your own stand-alone translators.
+
+A stand-alone convertor script for HTML to TWiki is included in the installation. It can be found in the top-level `tools` directory and is called `html2tml.pl`.
+
+### <a name="Integrating a Wysiwyg Editor"></a> Integrating a Wysiwyg Editor
+
+The plugin can be used to generate HTML for an editor in two ways; first, by generating the HTML for the content-to-be-edited directly in the edit template, and second, through a URL that can be used to fetch the content-to-be-edited from the server.
-- Set SHORTDESCRIPTION = Translator framework and WYSIWYG editor for TWiki topics
-- The name of the skin used to invoke a Wysiwyg editor.
- - Set WYSIWYGSKIN = kupu
-- Web/Topic name of a help page. Change this to point to your local version of the help page, which is brought up when the .
- - Set HELPPAGE = TWiki/WysiwygPlugin
+#### <a name="Getting content in the edit temp"></a> Getting content in the edit template
-## <a name="Other Settings"></a> Other Settings
+This is the scenario used by the standard TWiki text editor, except that the text is pre-converted to HTML before inclusion in the template.
-The editor template includes a number of files that can be used for other settings. These files are **not** defined in the distribution, so that you can create your own local content.
+The flow of control is as follows:
-### <a name="TWiki._WysiwygPluginIcons"></a> TWiki.WysiwygPluginIcons
+1. User hits "edit".
+2. The `beforeEditHandler` filters the edit, blocking any attempt to edit restricted content
+3. The `edit` template containing the JS editor is instantiated. The following variables are available for expansion in the template:
+ - `%WYSIWYG_TEXT%` expands to the HTML of the content-to-be-edited. This is suitable for use in a `textarea`.
+ - `%JAVASCRIPT_TEXT%` expands to the HTML of the content-to-be-edited in a javascript constant.
-You can define a list of icons that will be available in the Kupu editor when the ![smiley.png](http://www.dementia.org/twiki//view/smiley.png) toolbar button is pressed. This topic has to contain a list of <IMG> tags. If present, the 'alt' text will be used in place of the <IMG> tag when translating from HTML to TML. Example:
+`WYSIWYGPLUGIN_WYSIWYGSKIN` **must** be set for this to work.
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/tip.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/warning.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/pencil.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/choice-yes.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/updated.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/help.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/new.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/starred.gif" />
- <img src="%PUBURL%/TWiki/TWikiDocGraphics/arrowright.gif" />
+#### <a name="Fetching content from a URL"></a> Fetching content from a URL
-### <a name="TWiki._WysiwygPluginStrings"></a> TWiki.WysiwygPluginStrings
+In this scenario, the edit template is generated **without** the content-to-be-edited. The content is retrieved from the server using a URL e.g. from an `IFRAME` or using a `XmlHttpRequest`.
-You can also define a list of strings that will be available for insertion in topics using the ![strings.png](http://www.dementia.org/twiki//view/strings.png) toolbar button. This topic has to contain a list of HTML 'option' tags. Example:
+The flow of control is as follows:
- <option value='-- <nop>%WIKIUSERNAME% - %DATE%'>Signature</option>
- <option value="%<nop>WIKINAME%">Wiki name (variable)</option>
- <option value='%<nop>SEARCH{"search for"}%'>Inline search (variable)</option>
- <option value='%<nop>INCLUDE{"topic or url"}%'>Include (variable)</option>
- <option value="%<nop>TOC%"> Table of Contents (variable)</option>
- <option value="%<nop>TOPIC%">Topic (variable)</option>
- <option value="%<nop>WEB%">Web (variable)</option>
- <option value="%<nop>DATE%"> Date (variable)</option>
+1. User hits "edit".
+2. If the current skin = `WYWIWYGPLUGIN_WYWIWYGSKIN`, the `beforeEditHandler` filters the edit, blocking any attempt to edit restricted content.
+3. The `edit` template containing the JS editor is instantiated.
+4. JS editor invokes content URL to obtain the HTML document to be edited
+ - The content URL is just a TWiki `view` URL with the `wysiwyg_edit` parameter set.
+ - The plugin recognises the `wysiwyg_edit` parameter and uses the [[TML2HTML]] translator to prepare the text, which is then returned as `text/plain` to the browser.
+ - Two TWiki variables, `%OWEB%` and %OTOPIC%=, should be used in the content URL to refer to the source topic for the content.
-The bit between the > < `value` defines text in the drop-down box in the editor, and the `value` defines the actual string inserted in the topic.
+### <a name="Handling Saves"></a> Handling Saves
-### <a name="TWiki._WysiwygPluginLocalHelp"></a> TWiki.WysiwygPluginLocalHelp
+Saves are invoked by the editor POSTing to the TWiki `save` script with the `wysiwyg_edit` parameter set to `1`. This parameter tells the `beforeSaveHandler` in the plugin to convert the HTML back to TML. See [[TWikiScripts]] for details of the other parameters to the `save` script.
-If it exists, the contents of this topic will be included and shown on the edit screen below the status bar. It is intended to be used for site-specific quick help information.
+Once the save script has completed it responds with a redirect, either to an Oops page if the save failed, or to the appropriate post-save URL (usually a `view`). The editor must be ready to handle this redirect.
-### <a name="Editor control"></a> Editor control
+#### <a name="Handling Attachments"></a> Handling Attachments
-The global TWiki Variable `WYSIWYG_EXCLUDE` can be set to make the plugin sensitive to what is in a topic before allowing it to be edited. You can set it up to refuse to edit if
+Attachment uploads can be handled by URL requests from the editor to the TWiki `upload` script. The `upload` script normally redirects to the containing topic; a behaviour that you usually don't want in an editor! There are two ways to handle this:
+
+- If the uploads are done in an `IFRAME` or via `XmlHttpRequest`, then the 302 redirect at the end of the upload can simply be ignored.
+- You can pass `noredirect` to the `upload` script to suppress the redirect. In this case you will get a `text/plain` response of `OK` followed by a message if everything went well, or an error message if it did not.
+
+## <a name="Plugin Installation Instructions"></a> 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 where TWiki is running.
+
+Like many other TWiki extensions, this module is shipped with a fully automatic installer script written using the BuildContrib.
+
+- If you have TWiki 4.1 or later, and Perl 5.8, you can install from the `configure` interface (Go to Plugins->Find More Extensions)
+ - The webserver user has to have permission to write to all areas of your installation for this to work.
+- If you have a permanent connection to the internet (and Perl 5.8), you are recommended to use the automatic installer script
+ - Just download the `WysiwygPlugin_installer` perl script and run it.
+- **Notes:**
+ - The installer script will:
+ - Automatically resolve dependencies,
+ - Copy files into the right places in your local install (even if you have renamed data directories),
+ - check in new versions of any installed files that have existing RCS histories files in your existing install (such as topics).
+ - If the $TWIKI\_PACKAGES environment variable is set to point to a directory, the installer will try to get archives from there. Otherwise it will try to download from twiki.org or cpan.org, as appropriate.
+ - (Developers only: the script will look for twikiplugins/WysiwygPlugin/WysiwygPlugin.tgz before downloading from TWiki.org)
+ - If you don't have a permanent connection, you can still use the automatic installer, by downloading all required TWiki archives to a local directory.
+ - Point the environment variable `$TWIKI_PACKAGES` to this directory, and the installer script will look there first for required TWiki packages.
+ - `$TWIKI_PACKAGES` is actually a path; you can list several directories separated by :
+ - If you are behind a firewall that blocks access to CPAN, you can build a local CPAN mini-mirror, as described at [http://twiki.org/cgi-bin/view/Codev/BuildingDakar#CPAN\_local\_minimirror](http://twiki.org/cgi-bin/view/Codev/BuildingDakar#CPAN_local_minimirror)
+- If you don't want to use the installer script, or have problems on your platform (e.g. you don't have Perl 5.8), then you can still install manually:
+ 1. Download and unpack one of the `.zip` or `.tgz` archives to a temporary directory.
+ 2. Manually copy the contents across to the relevant places in your TWiki installation.
+ 3. Check in any installed files that have existing `,v` files in your existing install (take care **not** to lock the files when you check in)
+ 4. Manually edit LocalSite.cfg to set any configuration variables.
+ 5. Run `configure` and enable the module, if it is a plugin.
+ 6. Repeat from step 1 for any missing dependencies.
+
+## <a name="Plugin Configuration Settings"></a> Plugin Configuration Settings
+
+### <a name="Translator control"></a> Translator control
+
+For any of the following controls to work, you must tell %TOPIC% the name of the skin being used to invoke the Wysiwyg editor, for example `kupu` or `wikiwyg`.
+
+- Set WYSIWYGSKIN =
+
+Note that is can be set differently in different areas by defining `WYSWIYGPLUGIN_WYSIWYGSKIN` locally (e.g. in WebPreferences).
+
+The **global** TWiki Variable `WYSIWYG_EXCLUDE` can be set to make the plugin sensitive to what is in a topic before allowing it to be edited. You can set it up to refuse to edit if
- some or all of HTML tags (e.g. `<br />` or `<div>`), or
- simple variables (e.g. `%VAR%`) or
are used in the topic. If the plugin detects an excluded construct in the topic, it will redirect to the default editor. Comma-separated list of one or more of `html`, `variables`, `calls`, `pre` or `comments` e.g.
-- `Set WYSIWYG_EXCLUDE = variables,calls` (inactive; you need to remove monospacing from this setting to enable it)
+- Set WYSIWYG\_EXCLUDE = calls,html
+
+Set `WYSIWYG_EXCLUDE` in [[TWikiPreferences]], or in [[WebPreferences]] for each web.
-If you are using this plugin with TWiki-4.0.0 or later with `pattern` skin, the `%COMPOSER%` global TWiki variable is used to control the skin used for the WYSIWYG editor link. You can define this variable to the empty string to disable WYSIWYG editing on a site, per-web, per-user or per-topic basis.
+If you excluded `calls` in `WYSIWYG_EXCLUDE`, you can still define a subset of TWiki variables that do **not** block edits. this is done in the **global** preference variable `WYSIWYG_EDITABLE_CALLS`, which should be a list of TWiki variable names separated by vertical bars, with no spaces, e.g:
-## <a name="Known Issues"></a> Known Issues
+- Set WYSIWYG\_EDITABLE\_CALLS = COMMENT|CALENDAR|INCLUDE
-Most of the known problems with the plugin are actually problems with the Kupu editor or the browser rather than the plugin.
+## <a name="Known issues"></a> Known issues
### <a name="Incompatible with "non-standard""></a> Incompatible with "non-standard" syntax
-[[WysiwygPlugin]] is Incompatible with plugins that expand non-standard syntax e.g. TWiki:Plugins.MathModePlugin ([[WysiwygPlugin]])
+[[WysiwygPlugin]] is incompatible with plugins that expand non-standard syntax e.g. TWiki:Plugins.MathModePlugin ([[WysiwygPlugin]])
Plugins that extend the syntax using TWiki variables, such as `%MYVARIABLE%`, should work fine.
-### <a name="Can't <strong>undo</strong> all functions (Kupu"></a> Can't **undo** all functions (Kupu + browser)
+### <a name="Overlapping styles"></a> Overlapping styles
-Due to limitations in the browser support for editing, not all functions can be undone. Also, the undo buffer can be cleared unexpectedly during editing, especially when using Internet Explorer.
-
-### <a name="Overlapping styles (_WysiwygPlug"></a> Overlapping styles ([[WysiwygPlugin]])
-
-Because TWiki uses a "best guess" approach to some formatting, it allows overlapping of tags in a way forbidden by HTML, it is impossible to guarantee 100% that formating in the original TWiki document will still be there when the same document is loaded and then saved through the [[WysiwygPlugin]]. The most obvious case of this is to do with styles. For example, the sentence
+Because TWiki uses a "best guess" approach to some formatting, it allows overlapping of tags in a way forbidden by HTML, and it is impossible to guarantee 100% that formating in the original TWiki document will still be there when the same document is loaded and then saved through the [[WysiwygPlugin]]. The most obvious case of this is to do with styles. For example, the sentence
*bold _bold-italic* italic_
which is correct by construction, but does not render correctly in TWiki. This problem is unfortunately unavoidable due to the way TWiki syntax works.
-### <a name="Support for PRE"></a> Support for PRE
-
-Because of limitations in the browsers, the editor does not support PRE blocks. All PRE blocks will be converted to TWiki verbatim blocks on save. This can cause some confusion, especially when editor formatting controls (such as "bold") have been used to format text in a PRE block. Users are advised to use only plain text in PRE (verbatim) blocks.
-
## <a name="Plugin Info"></a> Plugin Info
-This plugin is heavily based on the TWiki::Plugins.KupuEditorAddOn, and the authors of that add-on are therefore also credited as authors of this plugin.
-
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="right"> Plugin Authors: </td>
- <td> TWiki:Main.CrawfordCurrie <a href="http://www.c-dot.co.uk" target="_top">http://www.c-dot.co.uk</a> (from original work by TWiki:Main.RomainRaugi, TWiki:Main.DamienMandrioli, TWiki:Main.FredericLuddeni, and TWiki:Main.ColasNahaboo) </td>
+ <td> TWiki:Main.CrawfordCurrie <a href="http://www.c-dot.co.uk" target="_top">http://www.c-dot.co.uk</a></td>
</tr>
<tr>
- <td> Copyright </td>
+ <td align="right"> Copyright </td>
<td> © ILOG 2005 <a href="http://www.ilog.fr" target="_top">http://www.ilog.fr</a></td>
</tr>
<tr>
+ <td align="right"> License </td>
+ <td><a href="http://www.gnu.org/licenses/gpl.html" target="_top">GPL (Gnu General Public License)</a></td>
+ </tr>
+ <tr>
<td align="right"> Plugin Version: </td>
- <td> 10613 </td>
+ <td> 12422 </td>
</tr>
<tr>
- <td> Change History: </td>
+ <td align="right"> Change History: </td>
<td> </td>
</tr>
<tr>
+ <td align="right"> 12422 </td>
+ <td> Added JAVASCRIPT_TEXT to support editors that require topic text in a JS var </td>
+ </tr>
+ <tr>
+ <td align="right"> 12161 </td>
+ <td> Added support for embedded editable HTML in the edit template </td>
+ </tr>
+ <tr>
+ <td align="right"> 12119 </td>
+ <td> Split into [[Main/WysiwygPlugin]] and [[Main/KupuContrib]]</td>
+ </tr>
+ <tr>
+ <td align="right"> 11538 </td>
+ <td> Minor doc updates, minor fixes to spacing in lists, integrated Koen Marten's template topic patch </td>
+ </tr>
+ <tr>
<td align="right"> 9671 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item2025" rel="nofollow">Item2025</a> corrected handling of SPAN and FONT tags used for colour changes </td>
</tr>
<td> Initial commit; doesn't do much except run tests </td>
</tr>
<tr>
+ <td align="right"> Dependencies: </td>
+ <td>
+ <table border="1">
+ <tr>
+ <th>Name</th>
+ <th>Version</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td align="left">HTML::Parser</td>
+ <td align="left">>=3.28</td>
+ <td align="left">Required. Available from <a href="http://cpan.uwinnipeg.ca/search?query=HTML%3A%3AParser&mode=dist" target="_top">CPAN</a>.</td>
+ </tr>
+ <tr>
+ <td align="left">HTML::Entities</td>
+ <td align="left">>=1.25</td>
+ <td align="left">Required. Available from <a href="http://cpan.uwinnipeg.ca/search?query=HTML%3A%3AEntities&mode=dist" target="_top">CPAN</a>.</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td align="right"> Plugin Home: </td>
+ <td><a href="http://twiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://twiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
+ </tr>
+ <tr>
<td align="right"> Feedback: </td>
<td> TWiki:Plugins/%TOPIC%Dev </td>
</tr>
+ <tr>
+ <td align="right"> Appraisal: </td>
+ <td><a href="http://twiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://twiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
+ </tr>
</table>
**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
-
--- TWiki:Main/CrawfordCurrie - 02:16:12 25 October 2006