--- /dev/null
+# <a name="Header of User Homepages"></a> Header of User Homepages
+
+**_Note:_** This is a maintenance topic, used by the TWiki administrator.
+
+The part between the horizontal rules gets included at the top of every [[TWikiUsers]] homepage. The header can be customized to the needs of your organization. For example, show all frequently used fields from the [[UserForm]] on top, followed by a personalized portal. The portal can pull content from other places, such as headline news by department, a list of current projects, etc. The TWiki:TWiki.UserHomepageSupplement has some additional documentation and ideas on customizing the homepages.
+
+----
+
+# <a name="TWiki Installation Error"></a> TWiki Installation Error
+
+Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
+
+<div>
+ <ul>
+ <li><a href="#Header of User Homepages"> Header of User Homepages</a></li>
+ <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
+ </ul>
+</div>
+
+----
+
+**_Related topics:_** [[TWikiUsers]], [[UserForm]], [[UserViewTemplate]], [[NewUserTemplate]], [[TWikiRegistration]], [[TWikiForms]]
> <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"><font size="-1">This table is updated automatically based on WebPreferences settings of the individual webs. </font></td>
+> <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"><font size="-1"> Legend: </font></td>
+> <td valign="top"> Legend: </td>
> <td valign="top"> Â </td>
-> <td valign="top"><font size="-1"> <img alt="Home of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/home.gif" width="16" /> WebHome </font></td>
-> <td valign="top"><font size="-1"> <img alt="Search web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/searchtopic.gif" width="16" /> WebSearch </font></td>
-> <td valign="top"><font size="-1"> <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 </font></td>
-> <td valign="top"><font size="-1"> <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 </font></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"><font size="-1"> <img alt="Preferences of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/wrench.gif" width="16" /> WebPreferences </font></td>
-> <td valign="top"><font size="-1"> <img alt="Statistics of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/statistics.gif" width="16" /> WebStatistics </font></td>
-> <td valign="top"><font size="-1"> <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 </font></td>
-> <td valign="top"><font size="-1"> <img alt="Index of all topics" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/index.gif" width="16" /> WebIndex </font></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="Answer:"></a> Answer:
-1. Create a [[TWiki Form|Main/TWikiForms]] and define fields ([[TWikiForms]])
+1. Create a TWiki Form and define fields (see [[TWikiForms]] for details)
2. Add the form in the list of Web Forms. Set the variable WEBFORMS in [[WebPreferences]]
-3. Create a Template Topic and in Edit mode
-4. In edit mode add the [[TWiki Form|Main/TWikiForms]] you defined to the Template Topic
+3. Create a Template Topic
+4. In edit mode add the [[TWiki Form|Main/TWikiForms]] you defined to the Template Topic using the "Add Form" button
5. Create a HTML Form with necessary fields
-6. Define `SEARCH` function for listing items. See [[VarSEARCH]]
+6. Define `SEARCH` function for listing items (see [[VarSEARCH]] for details)
For more information follow the links...
**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
--- TWiki:Main/CrawfordCurrie - 21:44:41 31 March 2006
+-- TWiki:Main/CrawfordCurrie - 02:19:11 26 June 2006
--- /dev/null
+Templates for [[CommentPlugin]] - See [[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**
+
+Put your local templates into [[UserCommentsTemplate]]. **LOCAL TEMPLATES WILL OVERRIDE TEMPLATES DEFINED IN THIS FILE**
+
+<div>
+ <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="#threadmode"> threadmode</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="#after: Add before the comment bo"> after: Add before the comment box, after the last comment</a></li>
+ <li><a href="#action"> action</a></li>
+ <li><a href="#table"> table</a></li>
+ <li><a href="#toctalk"> toctalk</a></li>
+ <li><a href="#bookmark"> bookmark</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#Include _UserCommentsTemplate"> Include UserCommentsTemplate</a></li>
+ </ul>
+</div>
+
+# <a name="Template definitions"></a> Template definitions
+
+## <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%
+
+Short comment, signed and dated
+
+ %TMPL:DEF{outputoneliner}%<span class="commentPlugin commentPluginOutputOneliner"> * %URLPARAM{"comment"}% -- %WIKIUSERNAME% - %SERVERTIME%</span></span><!--/commentPlugin-->%TMPL:END%
+
+----
+
+## <a name="User templates"></a> User templates
+
+### <a name="top"></a> top
+
+Comments, signed and dated, added at top of file
+
+ %TMPL:DEF{PROMPT:top}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:top}%%TMPL:P{outputoneliner}%%POS:TOP%
+ %TMPL:END%
+
+----
+
+### <a name="bottom"></a> bottom
+
+Comments, signed and dated, added at end of file
+
+ %TMPL:DEF{PROMPT:bottom}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:bottom}%%POS:BOTTOM%%TMPL:P{outputoneliner}%%TMPL:END%
+
+----
+
+### <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:END%
+
+----
+
+### <a name="threadmode"></a> threadmode
+
+Wiki thread mode comment, signed and dated
+
+ %TMPL:DEF{PROMPT:threadmode}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:threadmode}%%POS:BEFORE%
+
+ %URLPARAM{"comment"}%
+
+ -- %WIKIUSERNAME% - %DATE%
+ %TMPL:END%
+
+----
+
+### <a name="below"></a> below
+
+Comments, signed and dated, added immediately below anchor
+
+ %TMPL:DEF{PROMPT:below}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:below}%%POS:AFTER%%TMPL:P{outputoneliner}%
+ %TMPL:END%
+
+----
+
+### <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:END%
+
+----
+
+### <a name="tableappend"></a> tableappend
+
+Comments, signed and dated, added at end of table above the anchor/location/COMMENT
+
+ %TMPL:DEF{PROMPT:tableappend}%%TMPL:P{promptbox}%%TMPL:END%
+
+ %TMPL:DEF{OUTPUT:tableappend}%%POS:BEFORE%| %URLPARAM{"comment" newline="<br />"}% | %WIKIUSERNAME% | %SERVERTIME% |
+ %TMPL:END%
+
+----
+
+### <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%
+
+----
+
+### <a name="action"></a> action
+
+Action added to action table directly above comment box
+
+ %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
+
+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%" />
+ %TMPL:END%
+
+ %TMPL:DEF{OUTPUT:table}%
+ %POS:BEFORE%| %URLPARAM{"comment_date"}% | %WIKIUSERNAME% | %URLPARAM{"comment_city" }% |
+ %TMPL:END%
+
+----
+
+### <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%" />
+ %TMPL:END%
+
+ %TMPL:DEF{OUTPUT:toctalk}%
+ %POS:BEFORE%---+++ %SERVERTIME% %WIKIUSERNAME%: %URLPARAM{"comment_summary"}%
+ %POS:BEFORE%%URLPARAM{"comment_text" }%
+ %POS:BEFORE%
+ %TMPL:END%
+
+----
+
+### <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%" />
+ %TMPL:END%
+
+ %TMPL:DEF{OUTPUT:bookmark}%
+ %POS:BEFORE% * [[%URLPARAM{"comment_url"}%][%URLPARAM{"comment_link"}%]] - %URLPARAM{"comment_text" }%
+ %TMPL:END%
+
+# <a name="Include _UserCommentsTemplate"></a> Include UserCommentsTemplate
+
+Including [[UserCommentsTemplate]]:
+
+%TMPL:INCLUDE\{"UserComments"\}%
- OR, by all means, insert your comment where it seems to fit best:
- you may want to inset it with a bullet and/or _set it in italics_ so it's clear (always sign and date)
- if you'd like to use an initial, use a link with label. Example:%BR% `-- [[Main.admin][ZXQ]] - 29 Jun 2010`
- - To automate that, add a bullet like `* Initials: ZXQ` to your [[home page|Main/Admin]].
- A good format for a **new topic** is "dissertation followed by discussion":
- start with a brief, factual introduction, followed by double horizontal rules
# <a name="Hide/Unhide Attachments"></a> Hide/Unhide Attachments
-You can hide/unhide file attachments.
+You can hide/unhide file attachments in normal topic view.
- In the [[FileAttachment]] table, click on an **action** link,
- enable the **Hide file** checkbox,
- then click **Change properties**
+**_Note:_** All attachments are listed in the attach screen, regardless of the hide file flag.
+
**_Related Topics:_** [[UserDocumentationCategory]]
In the example above, if CONDITION evaluates to TRUE, then THEN will be included in the topic; otherwise ELSE will be included.
-What can be included in the THEN and ELSE parameters is obviously limited by standard TWiki syntax for parameters. The best way to use this feature is to define two [[TWikiVariables]], one for the THEN case and the other for the ELSE case. For example:
-
- <!--
- * Set LI = Fred is here!
- * Set LO = Fred is there!
- -->
- %IF{"context authenticated and defined WIKINAME and $ WIKINAME='FredBloggs'" then="%LI%" else="%LO%"}%
+What can be included in the THEN and ELSE parameters is obviously limited by standard TWiki syntax for parameters.
The basic syntax of a condition is as follows:
basexpr ::= atom | uop atom | atom bop basexpr ;
uop ::= 'context' | 'defined' | '$' ;
bop ::= '=' | '!=' | '>' | '<' | '>=' | '<=' ;
- atom ::= context identifier, TWiki variable name, single-quoted string
+ atom ::= context identifier, TWiki variable name, single-quoted string, or configuration item
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th bgcolor="#99CCCC" colspan="2"><strong> Operators </strong></th>
</tr>
<tr>
<td> $ </td>
- <td> expands a URL parameter or [[Main/TWikiVariables]]. Plugin handlers <strong>are not called</strong>. Built-in variables and user-defined preferences are supported. You can pass a limited subset of parameters to TWiki variables by enclosing the variable name in single quotes; for example, <code>$ 'VARIABLE{value}'</code>. The quoted string may <strong>not</strong> contain quotes (' or "). </td>
+ <td> expands a URL parameter or [[Main/TWikiVariables]]. Plugin handlers <strong>are not called</strong>. Built-in variables and user-defined preferences are supported. You can pass a limited subset of parameters to TWiki variables by enclosing the variable name in single quotes; for example, <code>$ 'VARIABLE{value}'</code>. The <code>'VARIABLE{value}'</code> string may <strong>not</strong> contain quotes (' or "). </td>
</tr>
</table>
examples:
+ TWiki variable defined or not
%IF{"defined WIKINAME" then="WIKINAME is defined" else="WIKINAME is not defined"}%
You are %IF{ "$ WIKINAME='TWikiGuest' and not defined OPEN_DAY" then="not" }% allowed to
%IF{ "context view" then="view" else="edit"}% this TWiki today.
+ URL parameter
%IF{ "defined search" then="Search: %URLPARAM{search}%" else="No search passed in"}%
+ Configuration item set or not
+ %IF{ "{AntiSpam}{HideUserDetails}" then="User details are hidden" }%
+
url param t is %IF{ "0 < $ t and $ t < 1000" then="in" else="out of"}% range.
+ Text comparison
%IF{ "$'URLPARAM{scope}'='text'" then="Plain text search" }%
-Given
-
-- Set OPEN\_DAY = yes
-
-this expands to:
-
-You are allowed to edit this TWiki today.
+**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.
-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:
+**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:
<table border="1" cellpadding="0" cellspacing="0">
<tr>
</tr>
</table>
-In addition there is an identifier for each enabled plugin; for example, if `GallousBreeksPlugin` is installed **and enabled**, then the context ID `GallousBreeksPluginEnabled` will be set.
+In addition there is a context identifier for each enabled plugin; for example, if `GallousBreeksPlugin` is installed **and enabled**, then the context ID `GallousBreeksPluginEnabled` will be set. Other extensions may set additional context identifiers.
The `%IF%` statement is deliberately kept simple. In particular, note that there is no way to conditionally execute a Set statement. If you need more sophisticated control over formatting, then consider using the [[SpreadSheetPlugin]].
+# <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
+
[Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl), packaged for use by plugins, skins and add-ons.
-# <a name="Summary of Contents"></a> Summary of Contents
+<div>
+ <ul>
+ <li><a href="#Summary of Contents"> Summary of Contents</a></li>
+ <li><a href="#Detailed Documentation"> Detailed Documentation</a><ul>
+ <li><a href="#Settings"> Settings</a></li>
+ <li><a href="#Installation Instructions"> Installation Instructions</a></li>
+ <li><a href="#Contrib Info"> Contrib Info</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="Summary of Contents"></a> Summary of Contents
This module packages the [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl) Javascript in a form suitable for use with TWiki.
-# <a name="Detailed Documentation"></a> Detailed Documentation
+## <a name="Detailed Documentation"></a> Detailed Documentation
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).
`addHEAD` can be called from `commonTagsHandler` for adding the header to all pages, or to `beforeEditHandler` just for edit pages etc.
-## <a name="Settings"></a> Settings
+### <a name="Settings"></a> Settings
- Name of the perl package
- Set STUB = TWiki::Contrib::JSCalendarContrib
+- What do I do
+ - Set SHORTDESCRIPTION = [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl), packaged for use by plugins, skins and add-ons.
-## <a name="Installation Instructions"></a> Installation Instructions
+### <a name="Installation Instructions"></a> 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">
+- Download the archive from the Plugins web (see below)
+- Unpack it 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>
<td> Â </td>
</tr>
<tr>
- <td><code><b>lib/TWiki/Contrib/JSCalendarContrib/build.pl</b></code></td>
- <td> Â </td>
- </tr>
- <tr>
<td><code><b>lib/TWiki/Contrib/JSCalendarContrib.pm</b></code></td>
<td> Â </td>
</tr>
<td> Â </td>
</tr>
<tr>
+ <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/transparent-bg.png</b></code></td>
+ <td> Â </td>
+ </tr>
+ <tr>
<td><code><b>pub/TWiki/JSCalendarContrib/menuarrow.gif</b></code></td>
<td> Â </td>
</tr>
- Make sure that all files are readable by the web server user
-## <a name="Contrib Info"></a> Contrib Info
+### <a name="Contrib Info"></a> Contrib Info
<table border="1" cellpadding="0" cellspacing="0">
<tr>
</tr>
<tr>
<td align="right"> Version: </td>
- <td> 9105 of the Mishoo calendar </td>
+ <td> 10613 of the Mishoo calendar </td>
</tr>
<tr>
<td align="right"> Copyright ©: </td>
</tr>
<tr>
<td align="right"> License: </td>
- <td> GNU LGPL </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> 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>
+ <tr>
<td> 6634 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item453" rel="nofollow">Item453</a> removed [[Main/EditTablePlugins]] private copy of the Mishoo JS calendar, and made sure it works with [[Main/JSCalendarContrib]]. Improved the documentation of the JSCalendar while I was there. </td>
</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]]
-
--- TWiki:Main/CrawfordCurrie - 21:44:48 31 March 2006
--- /dev/null
+# <a name="Language selection dropdown"></a><a name=" Language selection dropdown"></a> Language selection dropdown
+
+**To be included where a language selection is needed, for instance in the top bar or left bar.**
+
+Note: this dropdown is only shown if localization is enabled.%BR% Test: <span>**<font>localization is not enabled</font>**</span> %BR%
+
+Usage:
+
+ %INCLUDE{%TWIKIWEB%.LanguageSelector}%
+
+Result:
-This module is an add-on to the TWiki kernel that supports e-mail notification of changes.
+# <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
+
+Add-on to the TWiki kernel that supports e-mail notification of changes.
**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)**
</ul>
</div>
-# <a name="Summary of Contents"></a> Summary of Contents
+## <a name="Summary of Contents"></a> Summary of Contents
-## <a name="tools/mailnotify"></a> `tools/mailnotify`
+### <a name="tools/mailnotify"></a> `tools/mailnotify`
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.
%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%
-## <a name="TWiki/Contrib/_MailerContrib cod"></a> `TWiki/Contrib/MailerContrib` code library
+### <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 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.
-# <a name="Installation Instructions"></a> Installation Instructions
+## <a name="Installation Instructions"></a> Installation Instructions
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.
- 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"></a> Setting up your cron job
You need to set up a `cron` (or equivalent) job to run `mailnotify`.
-<code>Usage: perl -I tools/mailnotify [-q] [ _web1 web2 ... webN_ ]</code> is the path to the TWiki bin directory, so that the script can find the rest of TWiki.
+<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.
<table border="1" cellpadding="0" cellspacing="0">
<tr>
For example, `perl -I /usr/local/twiki/bin mailnotify -q Public Private` will generate notifications for the Public and Private webs.
-# <a name="Settings"></a> Settings
+## <a name="Settings"></a> Settings
-- Name of the perl package
- - Set STUB = TWiki::Contrib::Mailer
+- Set STUB = TWiki::Contrib::Mailer
+- Set SHORTDESCRIPTION = Supports e-mail notification of changes.
-# <a name="Contrib Info"></a> Contrib Info
+## <a name="Contrib Info"></a> Contrib Info
<table border="1" cellpadding="0" cellspacing="0">
<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]]
-
--- TWiki:Main/CrawfordCurrie
To remove a user account (FredQuimby, who logs in as "fred"):
1. If you are using a `.htpasswd` file, edit the `.htpasswd` file to delete the line starting `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.
There are two methods used to create a new web. First you can use a specially designed [[TemplateWeb]]. This is an invisible web that begins with an underscore "\_" character (for example `_default`). All topics in the template web will be copied into your new web.
-The second method is to use an existing web as a template web. This may be useful if you already have a web that you like to use as a starting point. Only topics that have names beginning with **Web...** (like "WebHome", "WebNotify", etc.) are copied.
+The second method is to use an existing web as a template web. This may be useful if you already have a web that you would like to use as a starting point. Only topics that have names beginning with **Web...** (like "WebHome", "WebNotify", etc.) are copied.
In either case you will want to be sure to verify that your new web has all the custom modifications that you desire.
- 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
+<a name="RenameWeb"></a>
+
## <a name="Renaming or Deleting a Web"></a> Renaming or Deleting a Web
Rename a web via the Tools section in each web's [[WebPreferences]] topic. You may delete a web by moving it into a Trash web.
### <a name="Renaming the webs in the distrib"></a> Renaming the webs in the distribution
-If you plan to rename the Main web, remember that TWiki stores user and group topics in `%MAINWEB%`, which by default is `Main` (this is assigned in the site configuration). 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 with the renameweb function mentioned above, in the [[Main.WebPreferences|Main/WebPreferences]] topic.
+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.
-If you want to rename the TWiki web, remember it is referred to by `%TWIKIWEB%` which is also defined by a configuration setting.
+%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.
## <a name="Hierarchical Webs"></a> Hierarchical Webs
-
-
-## <a name="Personal Preferences"></a> Personal Preferences
+## <a name="My Personal Data"></a> My Personal Data
+
+Note: if personal data is being stored using a secret database, then it is only visible to the user and to administrators.
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td> E-mail </td>
+ <td> %USERINFO{"%TOPIC%" format="$emails"}% </td>
+ </tr>
+</table>
+
+## <a name="My Personal Preferences"></a> My Personal Preferences
Uncomment preferences variables to activate them (remove the #-sign). Help and details on preferences variables are available in [[TWikiPreferences]].
- .patternTopBarOverlay - striped white image background
- .patternTopic - TWiki topic text
- .patternTop - area at top of topic text, with patternHomePath, revision and action buttons
+ - .patternTopicActions - container for multiple .patternTopicAction rows
- .patternTopicAction - container for .patternActionButtons
- .patternActionButtons - action buttons at bottom of page
- .patternMoved - topic moved info (only visible when the topic has changed name or web)
- .patternSig - signature copy box
- .patternSaveOptions - holder for .patternSaveOptionsContents
- .patternSaveOptionsContents - checkboxes that change the state of a topic save; for instance "Force revision" checkbox
- - .patternAccessKeyInfo - info block with access key information
+ - .patternSaveHelp - info block with help on save options (access keys and potentially other info)
- Preview page
- .patternPreviewArea - container around preview of .patternTopic
* Set TWIKILAYOUTURL = %PUBURLPATH%/%TWIKIWEB%/YourNewTopic/layout.css
* Set TWIKISTYLEURL = %PUBURLPATH%/%TWIKIWEB%/YourNewTopic/style.css
- * Set TWIKICOLORURL = %PUBURLPATH%/%TWIKIWEB%/YourNewTopic/colors.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
--- /dev/null
+%IMAGEGALLERY%
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]]
+- Set ALLOWTOPICVIEW = [[TWikiAdminGroup]]
+- Set ALLOWTOPICRENAME = [[TWikiAdminGroup]]
+- Set ALLOWTOPICCHANGE = [[TWikiAdminGroup]]
**_Related Topics:_** [[AdminToolsCategory]]
- Increase indentation only one level at a time
- `Like this`
- Decreasing indentation many levels at a time is OK
-- Wrap long text with continuation lines, the Plugin does not do that for you%BR% `Align continuation lines with leading spaces linke this`
+- 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`
</tr>
<tr>
<td align="right"> Plugin Version: </td>
- <td> 21 Nov 2004 (V1.032) </td>
+ <td> 25 Apr 2006 (V1.033) </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td>Â </td>
</tr>
<tr>
+ <td align="right"> 25 Apr 2006: </td>
+ <td> SVN sync, Cairo + Dakar compatibility </td>
+ </tr>
+ <tr>
+ <td align="right"> 14 Apr 2006: </td>
+ <td><a href="http://TWiki.org/cgi-bin/view/Codev/TWikiRelease04x00" target="_top">TWikiRelease04x00</a> compatibility update </td>
+ </tr>
+ <tr>
<td align="right"> 21 Nov 2004: </td>
<td> Added benchmarks (no code changes) </td>
</tr>
<li><a href="#Solution"> Solution</a></li>
</ul>
</li>
- <li><a href="#Pattern 3a: listbox with all use"> Pattern 3a: listbox with all user names</a><ul>
+ <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"> Solution</a></li>
+ <li><a href="#Solution 1: Appropriate for Sep"> Solution 1: Appropriate for Sep 2004 TWiki (Cairo)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
- <li><a href="#Pattern 3b: listbox with all use"> Pattern 3b: listbox with all user names - select multiple names</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>
+ <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>
</ul>
</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>
This will create similar functionality as TWiki:Plugins.TopicClassificationAddOn %BR%
-## <a name="Pattern 3a: listbox with all use"></a> Pattern 3a: listbox with all user names
+## <a name="Pattern 3: Creating lists of TWi"></a> Pattern 3: Creating lists of TWiki usernames
### <a name="Problem"></a> Problem
How to populate a list box with all usernames of registered TWiki users
-### <a name="Solution"></a> Solution
+### <a name="Solution 1: Appropriate for Sep"></a><a name="Solution 1: Appropriate for Sep "></a> Solution 1: Appropriate for Sep 2004 TWiki (Cairo)
<form name="testing" action="%SCRIPTURLPATH{"view"}%/%MAINWEB%" method="get">
<select name="topic">
This searches all topics in the Main web that contain "Name", "Email" and "Country" bullets. Alternatively, do a [[FormattedSearch]] with `multiple="on"` on the [[Main.TWikiUsers|Main/TWikiUsers]] topic.
-## <a name="Pattern 3b: listbox with all use"></a> Pattern 3b: listbox with all user names - select multiple names
+### <a name="Solution 2: As Solution 1, but w"></a> Solution 2: As Solution 1, but with possibility for multi-selecting usernames
-### <a name="Problem"></a> Problem
+The example of Solution 1 produces the list box. Add a MULTIPLE to the _select_ statement, i.e.:
-Suppose you want to send mail from a form on topic page to a selected list of **_multiple_** [[TWikiUsers]]
+ <select name="topic" size="2" MULTIPLE>
-### <a name="Solution"></a> Solution
+Please note that the Search pattern is unchanged compared to Solution 1. The change is in the HTML form element.
-The example of Pattern 3a produces the list box. Add a MULTIPLE to the _select_ statement, i.e.:
+The abovementioned modification is, in effect:
- <select name="topic" size="2" MULTIPLE>
+<form action="http://www.dementia.org/twiki/view/Main" method="get" name="testing"><select multiple="MULTIPLE" name="topic" size="2"><option>Select user...</option>
+ <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> <input type="submit" value="Go" /></form>
-Please note that the Search pattern is unchanged compared to Pattern 3a. The change is in the HTML form element.
+### <a name="Solution 3: Appropriate for TWik"></a> Solution 3: Appropriate for TWiki 4 (Dakar)
-### <a name="Test case"></a> Test case
+When the User information is stored in a [[UserForm]] (as is default in Dakar) then this list can be generated as follows:
-The Search pattern 3a with the abovementioned modification is, in effect:
+ <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*"}%
+ </select>
+ <input type="submit" value="Go" />
+ </form>
-<form action="http://www.dementia.org/twiki/view/Main" method="get" name="testing"><select multiple="MULTIPLE" name="topic" size="2"><option>Select user...</option>
- <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> <input type="submit" value="Go" /></form>
+In the above example:
+
+- <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="Pattern 4: Extract the parent of"></a> Pattern 4: Extract the parent of a given topic
<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"><font size="-1">You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact if you need a separate collaboration web for your team. See also [[Main/AdminToolsCategory]]. </font></td>
+ <td colspan="3">You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact if you need a separate collaboration web for your team. See also [[Main/AdminToolsCategory]].</td>
</tr>
</table>
<table border="0" cellpadding="3" cellspacing="2">
<tr bgcolor="#ffffff">
- <td valign="top"><font size="-1"> Legend of icons: </font></td>
+ <td valign="top"> Legend of icons: </td>
<td valign="top"> Â </td>
- <td valign="top"><font size="-1"> <img alt="Home of web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/home.gif" width="16" /> = Go to the home of the web%BR% <img alt="Search web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/searchtopic.gif" width="16" /> = Search the web </font></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" /> = Go to the home of the web%BR% <img alt="Search web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/searchtopic.gif" width="16" /> = Search the web </td>
<td valign="top"> Â </td>
- <td valign="top"><font size="-1"> <img alt="Recent changes in the web" border="0" height="16" src="http://www.dementia.org/twiki//view/TWiki/TWikiDocGraphics/recentchanges.gif" width="16" /> = See recent changes in the web%BR% <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" /> = Subscribe to get notified of changes by e-mail </font></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" /> = See recent changes in the web%BR% <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" /> = Subscribe to get notified of changes by e-mail </td>
</tr>
</table>
<li><a href="#TWiki::Attrs"> TWiki::Attrs </a></li>
<li><a href="#TWiki::Client::_ApacheLogin"> TWiki::Client::ApacheLogin </a></li>
<li><a href="#TWiki::Client"> TWiki::Client </a></li>
+ <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"> TWiki </a></li>
<li><a href="#TWiki::Users::_ApacheHtpasswdUse"> TWiki::Users::ApacheHtpasswdUser </a></li>
<li><a href="#TWiki::Users"> TWiki::Users </a></li>
<li><a href="#TWiki::Users::Password"> TWiki::Users::Password </a></li>
+ <li><a href="#TWiki::Users::_TWikiUserMapping"> TWiki::Users::TWikiUserMapping </a></li>
</ul>
</div>
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.
+
+## <a name="ObjectData <code>twiki="></a> [[ObjectData]] =twiki
+
+The TWiki object this login manager is attached to.
+
This package has smell factor of **3**
## <a name="TWiki::Client::_TemplateLogin"></a> [[TWiki::Client::TemplateLogin|Main/TWikiClientTemplateLoginDotPm]]
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 **30**
## <a name="TWiki::Form"></a> [[TWiki::Form|Main/TWikiFormDotPm]]
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 **1**
+This package has smell factor of **2**
## <a name="TWiki::Prefs::_PrefsCache"></a> [[TWiki::Prefs::PrefsCache|Main/TWikiPrefsPrefsCacheDotPm]]
This module provides most of the actual HTML rendering code in TWiki.
-This package has smell factor of **23**
+This package has smell factor of **22**
## <a name="TWiki::Sandbox"></a> [[TWiki::Sandbox|Main/TWikiSandboxDotPm]]
User registration handling.
-This package has smell factor of **28**
+This package has smell factor of **20**
## <a name="TWiki::UI::Rest"></a> [[TWiki::UI::Rest|Main/TWikiUIRestDotPm]]
UI delegate for save function
-This package has smell factor of **1**
+This package doesn't smell
## <a name="TWiki::UI::Search"></a> [[TWiki::UI::Search|Main/TWikiUISearchDotPm]]
UI delegate for attachment management functions
-This package has smell factor of **5**
+This package has smell factor of **6**
## <a name="TWiki::UI::View"></a> [[TWiki::UI::View|Main/TWikiUIViewDotPm]]
A User object is an internal representation of a user in the real world. The object knows about users having login names, wiki names, personal topics, and email addresses.
-This package has smell factor of **5**
+This package has smell factor of **4**
## <a name="TWiki::Users::_ApacheHtpasswdUse"></a> [[TWiki::Users::ApacheHtpasswdUser|Main/TWikiUsersApacheHtpasswdUserDotPm]]
Singleton object that handles mapping of users to wikinames and vice versa, and user authentication checking.
-This package has smell factor of **4**
+This package has smell factor of **2**
## <a name="TWiki::Users::Password"></a> [[TWiki::Users::Password|Main/TWikiUsersPasswordDotPm]]
The methods of this class should be overridded by subclasses that want to implement other password handling methods.
-This package doesn't smell
+This package has smell factor of **1**
+
+## <a name="TWiki::Users::_TWikiUserMapping"></a> [[TWiki::Users::TWikiUserMapping|Main/TWikiUsersTWikiUserMappingDotPm]]
+
+User mapping is the process by which TWiki maps from a username (a login name) to a wikiname and back. It is also where groups are maintained.
+
+By default TWiki maintains user topics and group topics in the Main that define users and group. These topics are
+
+- TWikiUsers - stores a mapping from usernames to TWiki names
+- WikiName - for each user, stores info about the user
+- GroupNameGroup - for each group, a topic ending with "Group" stores a list of users who are part of that group.
+
+Many sites will want to override this behaviour, for example to get users and groups from a corporate database.
+
+This class implements the basic TWiki behaviour using topics to store users, but is also designed to be subclassed so that other services can be used.
+
+Subclasses should be named 'XxxxUserMapping' so that configure can find them.
+
+**All** methods in this class should be implemented by subclasses.
+
+This package has smell factor of **4**
-There were a total of **232** smells
+There were a total of **227** smells
<li><a href="#Built-in Functions"> Built-in Functions</a><ul>
<li><a href="#ABOVE( ) -- address range of cel"> ABOVE( ) -- address range of cells above the current cell</a></li>
<li><a href="#ABS( num ) -- absolute value of"> ABS( num ) -- absolute value of a number</a></li>
- <li><a href="#AND( list ) -- logcial AND of a"> AND( list ) -- logcial AND of a list</a></li>
+ <li><a href="#AND( list ) -- logical AND of a"> AND( list ) -- logical AND of a list</a></li>
<li><a href="#AVERAGE( list ) -- average of a"> AVERAGE( list ) -- average of a list or a range of cells</a></li>
<li><a href="#CHAR( number ) -- ASCII characte"> CHAR( number ) -- ASCII character represented by number</a></li>
<li><a href="#CODE( text ) -- ASCII numeric va"> CODE( text ) -- ASCII numeric value of character</a></li>
<li><a href="#NOP( text ) -- no-operation"> NOP( text ) -- no-operation</a></li>
<li><a href="#NOT( num ) -- reverse logic of a"> NOT( num ) -- reverse logic of a number</a></li>
<li><a href="#ODD( num ) -- test for odd numbe"> ODD( num ) -- test for odd number</a></li>
- <li><a href="#OR( list ) -- logcial OR of a li"> OR( list ) -- logcial OR of a list</a></li>
+ <li><a href="#OR( list ) -- logical OR of a li"> OR( list ) -- logical OR of a list</a></li>
<li><a href="#PERCENTILE( num, list ) -- perce"> PERCENTILE( num, list ) -- percentile of a list or range of cells</a></li>
<li><a href="#PRODUCT( list ) -- product of a"> PRODUCT( list ) -- product 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="#ROW( offset ) -- current row num"> ROW( offset ) -- current row number</a></li>
<li><a href="#SEARCH( string, text, start ) --"> SEARCH( string, text, start ) -- search a string within a text</a></li>
<li><a href="#SET( name, value ) -- set a vari"> SET( name, value ) -- set a variable for later use</a></li>
+ <li><a href="#SETIFEMPTY( name, value ) -- set"> SETIFEMPTY( name, value ) -- set a variable only if empty</a></li>
<li><a href="#SETM( name, formula ) -- update"> SETM( name, formula ) -- update an existing variable based on a formula</a></li>
<li><a href="#SIGN( num ) -- sign of a number"> SIGN( num ) -- sign of a number</a></li>
<li><a href="#SUBSTITUTE( text, old, new, inst"> SUBSTITUTE( text, old, new, instance, option ) -- substitute text</a></li>
<a name="FuncAND"></a>
-### <a name="AND( list ) -- logcial AND of a"></a><a name="AND( list ) -- logcial AND of a "></a> AND( list ) -- logcial AND of a list
+### <a name="AND( list ) -- logical AND of a"></a><a name="AND( list ) -- logical AND of a "></a> AND( list ) -- logical AND of a list
- Syntax: <code>**$AND( list )**</code>
- Example: <code>**%CALC\{"$AND(1, 0, 1)"\}%**</code> returns <code>****</code>
- Specify the variable name (alphanumeric characters and underscores). An empty string is returned if the variable does not exist. Use `$SET()` to set a variable first. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables.
- Syntax: <code>**$GET( name )**</code>
- Example: <code>**%CALC\{"$GET(my\_total)"\}%**</code> returns the value of the `my_total` variable
-- Related: <code>[[$EXEC()|Main/WebHome#FuncEXEC]]</code>, <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code>, <code>[[$SET()|Main/WebHome#FuncSET]]</code>, <code>[[$SETM()|Main/WebHome#FuncSETM]]</code>
+- Related: <code>[[$EXEC()|Main/WebHome#FuncEXEC]]</code>, <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code>, <code>[[$SET()|Main/WebHome#FuncSET]]</code>, <code>[[$SETIFEMPTY()|Main/WebHome#FuncSETIFEMPTY]]</code>, <code>[[$SETM()|Main/WebHome#FuncSETM]]</code>
<a name="FuncIF"></a>
<a name="FuncOR"></a>
-### <a name="OR( list ) -- logcial OR of a li"></a> OR( list ) -- logcial OR of a list
+### <a name="OR( list ) -- logical OR of a li"></a> OR( list ) -- logical OR of a list
- Syntax: <code>**$OR( list )**</code>
- Example: <code>**%CALC\{"$OR(1, 0, 1)"\}%**</code> returns <code>**1**</code>
- Properly spaces out [[WikiWords]] preceeded by white space, parenthesis, or <code>**]\[**</code>. Words listed in the DONTSPACE [[TWikiPreferences]] variable or DONTSPACE Plugins setting are excluded
- Syntax: <code>**$PROPERSPACE( text )**</code>
-- Example: Assuming DONTSPACE contains MacDonald: <code>**%CALC\{"$PROPERSPACE(Old MacDonald had a ServerFarm, EeEyeEeEyeOh"\}%**</code> returns <code>**Old MacDonald had a Server Farm, Ee Eye Ee Eye Oh**</code>
+- Example: Assuming DONTSPACE contains MacDonald: <code>**%CALC\{"$PROPERSPACE(Old MacDonald had a ServerFarm, EeEyeEeEyeOh)"\}%**</code> returns <code>**Old MacDonald had a Server Farm, Ee Eye Ee Eye Oh**</code>
- Related: <code>[[$LOWER()|Main/WebHome#FuncLOWER]]</code>, <code>[[$PROPER()|Main/WebHome#FuncPROPER]]</code>, <code>[[$TRIM()|Main/WebHome#FuncTRIM]]</code>, <code>[[$UPPER()|Main/WebHome#FuncUPPER]]</code>
<a name="FuncRAND"></a>
### <a name="SET( name, value ) -- set a vari"></a> SET( name, value ) -- set a variable for later use
-- Specify the variable name (alphanumeric characters and underscores) and the value. The value may contain a formula; formulae are evaluated before the variable assignment; see <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code> if you want to prevent that. This function returns no output. Use `$GET()` to retrieve variables. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables and also included topics
+- Specify the variable name (alphanumeric characters and underscores) and the value. The value may contain a formula; formulae are evaluated before the variable assignment; see <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code> if you want to prevent that. This function returns no output. Use `$GET()` to retrieve variables. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables and also across included topics
- Syntax: <code>**$SET( name, value )**</code>
- Example: <code>**%CALC\{"$SET(my\_total, $SUM($ABOVE()))"\}%**</code> sets the `my_total` variable to the sum of all table cells located above the current cell and returns an empty string
-- Related: <code>[[$EXEC()|Main/WebHome#FuncEXEC]]</code>, <code>[[$GET()|Main/WebHome#FuncGET]]</code>, <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code>, <code>[[SETM()|Main/WebHome#FuncSETM]]</code>
+- Related: <code>[[$EXEC()|Main/WebHome#FuncEXEC]]</code>, <code>[[$GET()|Main/WebHome#FuncGET]]</code>, <code>[[$NOEXEC()|Main/WebHome#FuncNOEXEC]]</code>, <code>[[$SETIFEMPTY()|Main/WebHome#FuncSETIFEMPTY]]</code>, <code>[[SETM()|Main/WebHome#FuncSETM]]</code>
+
+<a name="FuncSETIFEMPTY"></a>
+
+### <a name="SETIFEMPTY( name, value ) -- set"></a> SETIFEMPTY( name, value ) -- set a variable only if empty
+
+- Specify the variable name (alphanumeric characters and underscores) and the value.
+- Syntax: <code>**$SETIFEMPTY( name, value )**</code>
+- Example: <code>**%CALC\{"$SETIFEMPTY(result, default)"\}%**</code> sets the `result` variable to `default` if the variable is empty or 0; in any case an empty string is returned
+- Related: <code>[[$GET()|Main/WebHome#FuncGET]]</code>, <code>[[$SET()|Main/WebHome#FuncSET]]</code>
<a name="FuncSETM"></a>
- Specify the variable name (alphanumeric characters and underscores) and the formula. The formula must start with an operator to <code>**+**</code> (add), <code>**-**</code> (subtract), <code>**\***</code> (multiply), or <code>**/**</code> (divide) something to the variable. This function returns no output. Use `$GET()` to retrieve variables
- Syntax: <code>**$SETM( name, formula )**</code>
- Example: <code>**%CALC\{"$SETM(total, + $SUM($LEFT()))"\}%**</code> adds the sum of all table cells on the left to the `total` variable, and returns an empty string
-- Related: <code>[[$GET()|Main/WebHome#FuncGET]]</code>, <code>[[$SET()|Main/WebHome#FuncSET]]</code>
+- Related: <code>[[$GET()|Main/WebHome#FuncGET]]</code>, <code>[[$SET()|Main/WebHome#FuncSET]]</code>, <code>[[$SETIFEMPTY()|Main/WebHome#FuncSETIFEMPTY]]</code>
<a name="FuncSIGN"></a>
<td> Plugin Perl module </td>
</tr>
</table>
-- (Dakar) Visit `configure` in your TWiki installation, and enable the plugin in the \{Plugins\} section.
+- TWiki 4 and up: Visit `configure` in your TWiki installation, and enable the Plugin in the \{Plugins\} section.
- Test if the "Total" in the first table in this topic is correct.
## <a name="Plugin Info"></a> Plugin Info
<td> TWiki:Main/PeterThoeny </td>
</tr>
<tr>
+ <td align="right"> Copyright: </td>
+ <td> © 2001-2006, <a href="mailto:Peter@Thoeny.org">Peter@Thoeny.org</a>, <a href="http://www.structuredwikis.com/" target="_top">StructuredWikis LLC</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> 17 Jun 2005 (1.018) </td>
+ <td> 13 May 2006 (10197) </td>
</tr>
<tr>
<td align="right"> Change History: </td>
<td>Â </td>
</tr>
<tr>
+ <td align="right"> 13 May 2006: </td>
+ <td> Added $SETIFEMPTY(); fixes in documentation </td>
+ </tr>
+ <tr>
<td align="right"> 17 Jun 2005: </td>
<td> Added $NOEXEC(), $EXEC() </td>
</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]], [[TWikiPlugins]]
--- TWiki:Main/PeterThoeny - 17 Jun 2005
+-- TWiki:Main/PeterThoeny - 13 May 2006
<td> Â </td>
</tr>
<tr>
+ <td> .twikiSubmitDisabled </td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td> .twikiInputField </td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td> .twikiInputFieldDisabled </td>
+ <td> Â </td>
+ </tr>
+ <tr>
<td> .twikiButton </td>
<td> Â </td>
</tr>
## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
-Complete processing after the client's HTTP request has been responded to. Right now this only entails one activity: calling TWiki::Client to flushing the user's session (if any) to disk.
+Complete processing after the client's HTTP request has been responded to. Right now this does two things:
+
+1. calling TWiki::Client to flushing the user's session (if any) to disk,
+2. breaking circular references to allow garbage collection in persistent environments
## <a name="ObjectMethod <strong>writeLog</strong> ($action"></a> [[ObjectMethod]] **writeLog** `($action,$webTopic,$extra,$user)`
--- /dev/null
+## <a name="TWiki Editing Shorthand'"></a> TWiki Editing Shorthand'
+
+<table bgcolor="#ffffff" border="1" cellpadding="3">
+ <tr bgcolor="#ffffff">
+ <th width="50%"> Formatting Command: </th>
+ <th width="25%"> You write: </th>
+ <th width="25%"> You get: </th>
+ </tr>
+ <tr valign="top">
+ <td><strong>Paragraphs:</strong> %BR% Blank lines will create new paragraphs. </td>
+ <td><pre>
+1st paragraph
+
+2nd paragraph
+</pre></td>
+ <td> 1st paragraph <p> 2nd paragraph </p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Headings:</strong> %BR% Three or more dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a top level heading, two pluses a second level heading, etc. The maximum heading depth is 6. <p> You can create a table of contents with the [[Main/VarTOC]] variable. If you want to <strong>exclude</strong> a heading from the TOC, put <code>!!</code> after the <code>---+</code>. </p>
+ <p> %X% Empty headings are allowed, but won't appear in the table of contents. </p>
+ </td>
+ <td><pre>
+---++ Sushi
+---+++ Maguro
+---+++!! Not in TOC
+</pre></td>
+ <td>
+ <h2>Sushi</h2>
+ <h3>Maguro</h3>
+ <h3>Not in TOC</h3>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Bold Text:</strong> %BR% Words get shown in <strong>bold</strong> by enclosing them in <code>*</code> asterisks. </td>
+ <td><pre>
+*Bold*
+</pre></td>
+ <td><strong>Bold</strong></td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Italic Text:</strong> %BR% Words get shown in <em>italic</em> by enclosing them in <code>_</code> underscores. </td>
+ <td><pre>
+_Italic_
+</pre></td>
+ <td><em>Italic</em></td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Bold Italic:</strong> %BR% Words get shown in <strong><em>bold italic</em></strong> by enclosing them in <code>__</code> double-underscores. </td>
+ <td><pre>
+__Bold italic__
+</pre></td>
+ <td><strong><em>Bold italic</em></strong></td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Fixed Font:</strong> %BR% Words get shown in <code>fixed font</code> by enclosing them in <code>=</code> equal signs. </td>
+ <td><pre>
+=Fixed font=
+</pre></td>
+ <td><code>Fixed font</code><p>
+ </p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Bold Fixed Font:</strong> %BR% Words get shown in <code><b>bold fixed font</b></code> by enclosing them in <code><b></b></code> double equal signs. </td>
+ <td><pre>
+==Bold fixed==
+</pre></td>
+ <td><code><b>Bold fixed</b></code></td>
+ </tr>
+ <tr valign="top">
+ <td> %T% You can follow the closing bold, italic, or other (<code>* _ __ = ==</code>) indicator with normal punctuation, such as commas and full stops. <p> %X% Make sure there is no space between the text and the indicators. </p>
+ </td>
+ <td><pre>
+_This works_,
+_this does not _
+</pre></td>
+ <td><em>This works</em>,%BR% _this does not _ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Verbatim (Literal) Text:</strong> %BR% Surround code excerpts and other formatted text with <code><verbatim></code> and <code></verbatim></code> tags.%BR% %T% <code>verbatim</code> tags disable HTML code. Use <code><pre></code> and <code></pre></code> tags instead if you want the HTML code within the tags to be interpreted.%BR% <strong><em>%X% NOTE:</em></strong> Preferences variables (* Set NAME = value) are set within verbatim tags. </td>
+ <td><pre>
+<verbatim>
+class CatAnimal {
+ void purr() {
+ <code here>
+ }
+}
+</verbatim>
+</pre></td>
+ <td><pre>
+class CatAnimal {
+ void purr() {
+ <code here>
+ }
+}
+</pre></td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Separator (Horizontal Rule):</strong> %BR% Three or more three dashes at the beginning of a line.. </td>
+ <td><pre>
+-------
+</pre></td>
+ <td>
+ <hr />
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Bulleted List:</strong> %BR% Multiple of three spaces, an asterisk, and another space.%BR% %H% For all the list types, you can break a list item over several lines by indenting lines after the first one by <strong>at least 3 spaces</strong>. </td>
+ <td><pre>
+ * level 1
+ * level 2
+ * back on 1
+ * A bullet
+ broken over
+ three lines
+ * last bullet
+</pre></td>
+ <td>
+ <ul>
+ <li> level 1 <ul>
+ <li> level 2 </li>
+ </ul>
+ </li>
+ <li> back on 1 </li>
+ <li> A bullet broken over three lines </li>
+ <li> last bullet </li>
+ </ul>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Numbered List:</strong> %BR% Multiple of three spaces, a type character, a dot, and another space. Several types are available besides a number: <table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <tr>
+ <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=0;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Type</font></a></th>
+ <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=1;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Generated Style</font></a></th>
+ <th bgcolor="#6b7f93" maxcols="0" style=""><a href="http://localhost?sortcol=2;table=1;up=0#sorted_table" rel="nofollow" title="Sort by this column"><font color="#ffffff">Sample Sequence</font></a></th>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> 1. </td>
+ <td bgcolor="#ecf2f8" style=""> Arabic numerals </td>
+ <td bgcolor="#ecf2f8" style=""> 1, 2, 3, 4... </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> A. </td>
+ <td bgcolor="#ffffff" style=""> Uppercase letters </td>
+ <td bgcolor="#ffffff" style=""> A, B, C, D... </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> a. </td>
+ <td bgcolor="#ecf2f8" style=""> Lowercase letters </td>
+ <td bgcolor="#ecf2f8" style=""> a, b, c, d... </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> I. </td>
+ <td bgcolor="#ffffff" style=""> Uppercase Roman Numerals </td>
+ <td bgcolor="#ffffff" style=""> I, II, III, IV... </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> i. </td>
+ <td bgcolor="#ecf2f8" style=""> Lowercase Roman Numerals </td>
+ <td bgcolor="#ecf2f8" style=""> i, ii, iii, iv... </td>
+ </tr>
+ </table>
+ </td>
+ <td><pre>
+ 1. Sushi
+ 1. Dim Sum
+ 1. Fondue
+
+ A. Sushi
+ A. Dim Sum
+ A. Fondue
+
+ i. Sushi
+ i. Dim Sum
+ i. Fondue
+</pre></td>
+ <td>
+ <ol>
+ <li> Sushi </li>
+ <li> Dim Sum </li>
+ <li> Fondue </li>
+ </ol>
+ <p>
+ </p>
+ <ol>
+ <li type="A"> Sushi </li>
+ <li type="A"> Dim Sum </li>
+ <li type="A"> Fondue </li>
+ </ol>
+ <p>
+ </p>
+ <ol>
+ <li type="i"> Sushi </li>
+ <li type="i"> Dim Sum </li>
+ <li type="i"> Fondue </li>
+ </ol>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Definition List:</strong> %BR% Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. </td>
+ <td><pre>
+ $ Sushi: Japan
+ $ Dim Sum: S.F.
+</pre></td>
+ <td>
+ <dl>
+ <dt> Sushi </dt>
+ <dd> Japan </dd>
+ <dt> Dim Sum </dt>
+ <dd> S.F. </dd>
+ </dl>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Table:</strong> %BR% Each row of the table is a line containing of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored. <ul>
+ <li><code>| *bold* |</code> header cell with text in asterisks </li>
+ <li><code>|  center-aligned  |</code> cell with at least two, and equal number of spaces on either side </li>
+ <li><code>|Â Â Â right-aligned |</code> cell with more spaces on the left </li>
+ <li><code>| 2 colspan ||</code> and multi-span columns with multiple <tt>|</tt>'s right next to each other </li>
+ <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>
+ </ul> %T% The [[TWiki/TablePlugin]] provides the <code>|^|</code> multiple-span row functionality and additional rendering features </td>
+ <td><pre>
+| *L* | *C* | *R* |
+| A2 | B2 | C2 |
+| A3 | B3 | C3 |
+| multi span |||
+| A5-7 | 5 | 5 |
+|^| six | six |
+|^| seven | seven |
+| split\
+ | over\
+ | 3 lines |
+| A9 | B9 | C9 |
+</pre></td>
+ <td>
+ <table border="1" cellpadding="0" cellspacing="0" style="border-width: 1px">
+ <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">L</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">C</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">R</font></a></th>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> A2 </td>
+ <td align="center" bgcolor="#ecf2f8" style=""> B2 </td>
+ <td align="right" bgcolor="#ecf2f8" style=""> C2 </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> A3 </td>
+ <td align="center" bgcolor="#ffffff" style=""> B3 </td>
+ <td align="right" bgcolor="#ffffff" style=""> C3 </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" colspan="3" style=""> multi span </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" rowspan="3" style=""> A5-7 </td>
+ <td align="center" bgcolor="#ffffff" style=""> 5 </td>
+ <td align="right" bgcolor="#ffffff" style=""> 5 </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> six </td>
+ <td bgcolor="#ecf2f8" style=""> six </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> seven </td>
+ <td bgcolor="#ffffff" style=""> seven </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> split </td>
+ <td bgcolor="#ecf2f8" style=""> over </td>
+ <td bgcolor="#ecf2f8" style=""> 3 lines </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> A9 </td>
+ <td align="center" bgcolor="#ffffff" style=""> B9 </td>
+ <td align="right" bgcolor="#ffffff" style=""> C9 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>WikiWord Links:</strong> %BR% CapitalizedWordsStuckTogether (or [[Main/WikiWords]]) will produce a link automatically if preceded by whitespace or parenthesis. %BR% %T% If you want to link to a topic in a different web write <code>Otherweb.TopicName</code>. %BR% %H% The link label excludes the name of the web, e.g. only the topic name is shown. As an exception, the name of the web is shown for the WebHome topic. <p> It's generally a good idea to use the [[Main/TWikiVariables]] %TWIKIWEB% and %MAINWEB% instead of TWiki and Main. </p>
+ </td>
+ <td><pre>
+WebStatistics
+
+Sandbox.WebNotify
+
+Sandbox.WebHome
+</pre></td>
+ <td>[[Main/WebStatistics]]<p>[[Sandbox/WebNotify]]</p>
+ <p>[[Sandbox/WebHome]]</p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Anchors:</strong> %BR% You can define a reference inside a TWiki topic (called an anchor name) and link to that. To <strong><em>define</em></strong> an anchor write <code>#AnchorName</code> at the beginning of a line. The anchor name must be a [[Main/WikiWord]]. To <strong><em>link to</em></strong> an anchor name use the <code>[[MyTopic#MyAnchor]]</code> syntax. You can omit the topic name if you want to link within the same topic. </td>
+ <td><pre>
+[[WikiWord#NotThere]]
+
+[[#MyAnchor][Jump]]
+
+#MyAnchor To here
+</pre></td>
+ <td>[[Main/WikiWord#NotThere]]<p>[[Main/WebHome#MyAnchor]]</p>
+ <p><a name="MyAnchor"></a> To here </p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><a name="HeRe"></a> <strong>Forced Links:</strong> %BR% You can create a forced internal link by enclosing words in double square brackets. %BR% Text within the brackets may contain optional spaces; the topic name is formed by capitalizing the initial letter and by removing the spaces; for example, <code>[[text formatting FAQ]]</code> links to topic [[Main/TextFormattingFAQ]]. You can also refer to a different web and use anchors. %BR% %T% To "escape" double square brackets that would otherwise make a link, prefix the leading left square bracket with an exclamation point. </td>
+ <td><pre>
+[[wiki syntax]]
+
+[[Main.TWiki users]]
+
+escaped:
+![[wiki syntax]]
+</pre></td>
+ <td>[[Main/WikiSyntax]]<p>[[Main/TWikiUsers]]</p>
+ <p> escaped: [[wiki syntax]] </p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Specific Links:</strong> %BR% You can create a link where you specify the link text and the URL separately using nested square brackets <code>[[reference][text]]</code>. Internal link references (e.g. [[Main/WikiSyntax]]) and URLs (e.g. <a href="http://TWiki.org/" target="_top">http://TWiki.org/</a>) are both supported. The rules described under <strong><em>Forced Links</em></strong> apply for internal link references. %BR% %T% Anchor names can be added as well, to create a link to a specific place in a topic. </td>
+ <td><pre>
+[[WikiSyntax][wiki syntax]]
+
+[[http://gnu.org][GNU]]
+</pre></td>
+ <td>[[Main/WikiSyntax]]<p><a href="http://gnu.org" target="_top">GNU</a></p>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Prevent a Link:</strong> %BR% Prevent a [[Main/WikiWord]] from being linked by prepending it with an exclamation point. </td>
+ <td><pre>
+!SunOS
+</pre></td>
+ <td> SunOS </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Disable Links:</strong> %BR% You can disable automatic linking of [[Main/WikiWords]] by surrounding text with <code><noautolink></code> and <code></noautolink></code> tags.%BR% %H% It is possible to turn off all auto-linking with a NOAUTOLINK preferences setting. </td>
+ <td><pre>
+ <noautolink>
+ RedHat &
+ SuSE
+ </noautolink>
+</pre></td>
+ <td> RedHat & SuSE </td>
+ </tr>
+ <tr valign="top">
+ <td><strong>Mailto Links:</strong> %BR% E-mail addresses are linked automatically. To create e-mail links that have more descriptive link text, specify subject lines or message bodies, or omit the e-mail address, you can write <code>[[mailto:user@domain][descriptive text]]</code>. </td>
+ <td><pre>
+a@b.com
+
+[[mailto:a@b.com]\
+[Mail]]
+
+[[mailto:?subject=\
+Hi][Hi]]
+</pre></td>
+ <td><a href="mailto:a@b.com">a@b.com</a><p><a href="mailto:a@b.com">Mail</a></p>
+ <p><a href="mailto:?subject=Hi">Hi</a></p>
+ </td>
+ </tr>
+</table>
-# <a name="Frequently Asked Questions About"></a> Frequently Asked Questions About %WIKITOOLNAME%
+# <a name="Frequently Asked Questions About"></a> Frequently Asked Questions About TWiki
-This is a real FAQ, and also a demo of one easily implemented knowledge base solution. See how it's done, click <code>**[Edit]**</code>.
+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).
# <a name="TWiki Installation Error"></a> TWiki Installation Error
## <a name="Submit a new FAQ"></a> Submit a new FAQ
-**_%RED%NOTE:%ENDCOLOR%_** The FAQs here are for frequently asked questions **_including_** answers; please ask support questions in the TWiki:Support web. New FAQ topics are based on the [[TWikiFaqTemplate]].
+%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 [[TWiki/WikiNotation]]) <br /><input name="topic" size="32" type="text" />Â <input type="submit" value="Create Topic" /> <input name="onlywikiname" type="hidden" value="on" /> <input name="templatetopic" type="hidden" value="TWikiFaqTemplate" /> <input name="topicparent" type="hidden" value="%TOPIC%" /><br />
-</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...
Other places where you can find answers to your questions:
-- [[TWikiDocumentation]]: All you need to know to install and configure %WIKITOOLNAME%
+- [[TWikiDocumentation]]: All you need to know to install and configure TWiki
- [[TWikiTutorial]]: Get a jump start on using TWiki
- [[GoodStyle]]: Things to consider when changing text
- [[WikiSyntax]], [[TextFormattingRules]]: A quick one-two guide to TWiki shorthand basics
- [[TextFormattingFAQ]]: Answers to frequently asked questions about text styling in TWiki
- If you can't find an answer, ask a question - post it in the TWiki:Support web
+
+-- **_Contributors:_** TWiki:Main.PeterThoeny, TWiki:Main.MikeMannix, TWiki:Main.CrawfordCurrie
<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="#ObjectMethod <strong>render_ForEdit</strong> ($"> ObjectMethod renderForEdit <tt>($web,$topic,$meta,$useDefaults) -> $html</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,$useDefaults) -> $html</tt></a></li>
+ <li><a href="#ObjectMethod <strong>renderHidden</strong> ($me"> ObjectMethod renderHidden <tt>($meta) -> $html</tt></a></li>
<li><a href="#ObjectMethod <strong>cgiName</strong> ($field)"> ObjectMethod cgiName <tt>($field) -> $string</tt></a></li>
- <li><a href="#ObjectMethod *get_FieldValuesFro"> ObjectMethod getFieldValuesFromQuery <tt>($query,$metaObject,$initialiseMissing) -> ($seen,\@missing)</tt></a></li>
+ <li><a href="#ObjectMethod *get_FieldValuesFro"> ObjectMethod getFieldValuesFromQuery <tt>($query,$metaObject) -> ($seen,\@missing)</tt></a></li>
<li><a href="#ObjectMethod *is_TextMergeable*"> ObjectMethod isTextMergeable <tt>($name) -> $boolean</tt></a></li>
<li><a href="#ObjectMethod <strong>getField</strong> ($name)"> ObjectMethod getField <tt>($name) -> \%row</tt></a></li>
+ <li><a href="#ObjectMethod <strong>getFields</strong> () -> \"> ObjectMethod getFields <tt>() -> \@fields</tt></a></li>
<li><a href="#StaticMethod *render_ForDisplay*"> StaticMethod renderForDisplay <tt>($templates,$meta)</tt></a></li>
</ul>
</li>
May throw TWiki::OopsException
-## <a name="ObjectMethod <strong>render_ForEdit</strong> ($"></a> [[ObjectMethod]] **renderForEdit** `($web,$topic,$meta,$useDefaults) -> $html`
+## <a name="ObjectMethod <strong>render_ForEdit</strong> ($"></a> [[ObjectMethod]] **renderForEdit** `($web,$topic,$meta) -> $html`
- `$web` the web of the topic being rendered
- `$topic` the topic being rendered
- `$meta` the meta data for the form
-- `$useDefaults` if true, will use default values from the form definition if no other value is given
Render the form fields for entry during an edit session, using data values from $meta
SMELL: this should be a method on a field class SMELL: [[JSCalendarContrib]] ought to provide a 'date' handler.
-## <a name="ObjectMethod <strong>renderHidden</strong> ($me"></a> [[ObjectMethod]] **renderHidden** `($meta,$useDefaults) -> $html`
-
-- `$useDefaults` if true, will use default values from the form definition if no other value is given
+## <a name="ObjectMethod <strong>renderHidden</strong> ($me"></a> [[ObjectMethod]] **renderHidden** `($meta) -> $html`
Render form fields found in the meta as hidden inputs, so they pass through edits untouched.
Generate the 'name' of the CGI parameter used to represent a field.
-## <a name="ObjectMethod <strong>get_FieldValuesFro"></a> [[ObjectMethod]] \*getFieldValuesFromQuery `($query,$metaObject,$initialiseMissing) -> ($seen,\@missing)`
+## <a name="ObjectMethod <strong>get_FieldValuesFro"></a> [[ObjectMethod]] \*getFieldValuesFromQuery `($query,$metaObject) -> ($seen,\@missing)`
Extract new values for form fields from a query.
- `$query` - the query
- `$metaObject` - the meta object that is storing the form values
-- `$initialiseMissing` - if true, will cause fields that are in the form but have no value in the query or in the meta to be initialised to ''.
For each field, if there is a value in the query, use it. Otherwise if there is already entry for the field in the meta, keep it.
Returns the field, or undef if the form does not define the field.
+## <a name="ObjectMethod <strong>getFields</strong> () - \@"></a> [[ObjectMethod]] **getFields** `() -> \@fields`
+
+Return a list containing references to field name/value pairs. Each entry in the list has a \{name\} field and a \{value\} field. It may have other fields as well, which caller should ignore. The returned list should be treated as **read only** (must not be written to).
+
## <a name="StaticMethod <strong>render_ForDisplay*"></a> [[StaticMethod]] \*renderForDisplay `($templates,$meta)`
- `$templates` ref to templates singleton
Return: `$name` Name of tool, e.g. `'TWiki'`
-Synonymous with TWiki::Func::getPreferencesValue('WIKITOOLNAME');
-
**Since:** TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
### <a name="get_MainWebname( ) - $name"></a> getMainWebname( ) -> $name
Return: `$name` Name, e.g. `'Main'`
-Synonymous with TWiki::Func::getPreferencesValue('MAINWEB');
-
**Since:** TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
### <a name="get_TwikiWebname( ) - $name"></a> getTwikiWebname( ) -> $name
Return: `$name` Name, e.g. `'TWiki'`
-Synonymous with TWiki::Func::getPreferencesValue('TWIKIWEB');
-
**Since:** TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
## <a name="User Handling and Access Control"></a> User Handling and Access Control
- `$name` - attachment name
- `$rev` - revision to read (default latest)
-Read an attachment from the store for a topic, and return it as a string. The names of attachments on a topic can be recovered from the meta-data returned by `readTopic`. If the attachment does not exist, or cannot be read, undef will be returned.
+Read an attachment from the store for a topic, and return it as a string. The names of attachments on a topic can be recovered from the meta-data returned by `readTopic`. If the attachment does not exist, or cannot be read, undef will be returned. If the revision is not specified, the latest version will be returned.
-View permission on the topic is required for the read to be successful. Access control violations are flagged by a TWiki::AccessControlException. Permissions are checked for the user passed in.
+View permission on the topic is required for the read to be successful. Access control violations are flagged by a TWiki::AccessControlException. Permissions are checked for the current user.
my( $meta, $text ) = TWiki::Func::readTopic( $web, $topic );
my @attachments = $meta->find( 'FILEATTACHMENT' );
foreach my $a ( @attachments ) {
try {
- my $data = TWiki::Func::readAttachment( $meta, $a->{name} );
+ my $data = TWiki::Func::readAttachment( $web, $topic, $a->{name} );
...
} catch TWiki::AccessControlException with {
};
<td bgcolor="#ecf2f8" style="">[[TWiki:Main/MassimoMancini]]</td>
</tr>
<tr>
- <td bgcolor="#ffffff" style=""> Portuguese translation </td>
- <td bgcolor="#ffffff" style="">[[TWiki:Main/AntonioTerceiro]], [[TWiki:Main/CarlinhosCecconi]]</td>
+ <td bgcolor="#ffffff" style=""> Polish translation </td>
+ <td bgcolor="#ffffff" style="">[[TWiki:Main/ZbigniewKulesza]]</td>
</tr>
<tr>
- <td bgcolor="#ecf2f8" style=""> Spanish translation </td>
- <td bgcolor="#ecf2f8" style="">[[TWiki:Main/WillNorris]], [[TWiki:Main/MiguelABayona]]</td>
+ <td bgcolor="#ecf2f8" style=""> Portuguese translation </td>
+ <td bgcolor="#ecf2f8" style="">[[TWiki:Main/AntonioTerceiro]], [[TWiki:Main/CarlinhosCecconi]]</td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffffff" style=""> Spanish translation </td>
+ <td bgcolor="#ffffff" style="">[[TWiki:Main/WillNorris]], [[TWiki:Main/MiguelABayona]]</td>
+ </tr>
+ <tr>
+ <td bgcolor="#ecf2f8" style=""> Swedish translation </td>
+ <td bgcolor="#ecf2f8" style="">[[TWiki:Main/ErikAman]]</td>
</tr>
<tr>
<th align="left" bgcolor="#6b7f93" colspan="2" maxcols="0" style="text-align: left"><span><font color="#ffffff"> <strong> New features for users </strong> </font></span></th>
</tr>
</table>
-See more details at [[TWikiReleaseNotes04x00x00]]
+See more details at [[TWikiReleaseNotes04x00]]
<a name="CairoRelease"></a>
_Installation instructions for the TWiki 4.0 production release._
+If you are upgrading from a previous version of TWiki, you probably want to read [[TWikiUpgradeGuide]] instead.
+
TWiki should be fine with any web server and OS that meet the [[system requirements|Main/TWikiSystemRequirements]]. The following installation instructions are written for experienced system administrators; please review the [[AdminSkillsAssumptions]] before you install TWiki. If you need help, ask a question in the TWiki:Support web or on TWiki:Codev.TWikiIRC (irc.freenode.net, channel #twiki)
**_%H% Hint:_** TWiki:TWiki.InstallingTWiki on TWiki.org has supplemental documentation that help you install TWiki on different platforms, environments and web hosting sites.
<li><a href="#Plugins Settings"> Plugins Settings</a></li>
<li><a href="#Rendering Shortcuts Settings"> Rendering Shortcuts Settings</a></li>
<li><a href="#Miscellaneous Settings"> Miscellaneous Settings</a></li>
+ <li><a href="#Access Control Settings"> Access Control Settings</a></li>
<li><a href="#Creating New Preference Variable"> Creating New Preference Variables</a></li>
<li><a href="#Related Topics"> Related Topics</a></li>
</ul>
</ul>
<p>
</p>
- <p>
- </p>
<h2><a name="Default User Settings"></a> Default User Settings </h2>
<p> %X% <strong>NOTE:</strong> They are typically redefined in topics of individual [[Main/TWikiUsers]]</p>
<p>
<ul>
<li> Format of file link 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>\t</b></code> to tab (3 spaces for bullets). </li>
- <li> Set ATTACHEDFILELINKFORMAT = \n * <a href="http://www.dementia.org/twiki//view/$name" target="_top">$name</a>: $comment </li>
</ul>
</li>
- </ul>
- <p>
+ </ul><pre>
+ * Set ATTACHEDFILELINKFORMAT = \n * [[%ATTACHURL%/$name][$name]]: $comment
+</pre><p>
</p>
<ul>
<li> Format of images when the <strong><em>link</em></strong> check box is checked: (can be overwritten by user preferences) <ul>
<li> Set BROADCASTMESSAGE = </li>
<li> #Set BROADCASTMESSAGE = <table border="0" cellpadding="3" cellspacing="0" width="100%">
<tr>
- <td bgcolor="yellow"><font color="red"><strong>NOTE:</strong></font><font size="-1"> 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 %WIKITOOLNAME% maintenance. </font></td>
+ <td bgcolor="yellow"><font color="red"><strong>NOTE:</strong></font> 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 %WIKITOOLNAME% maintenance. </td>
</tr>
</table>
</li>
### <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=1277827148>
+ - Set EDITURL = <http://www.dementia.org/twiki/edit/%WEB%/%TOPIC%?t=1277827220>
- Set EDITTOPIC = [Edit](%EDITURL% Edit Topic - deprecated usage - please see release notes)
## <a name="Plugins Settings"></a> Plugins Settings
- [[PreviewBackground]] image:
- Set PREVIEWBGIMAGE = ![preview2bg.gif](http://www.dementia.org/twiki//view/TWiki/PreviewBackground/preview2bg.gif)
+## <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]]
+
## <a name="Creating New Preference Variable"></a> Creating New Preference Variables
You can introduce new VARIABLES and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).
<ul>
<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>
Creates a new Prefs object. If $cache is defined, it will be pushed onto the stack.
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+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.
--- /dev/null
+# <a name="TWiki Release 4.0 (Dakar)"></a><a name=" TWiki Release 4.0 (Dakar)"></a> TWiki Release 4.0 (Dakar)
+
+'Dakar' is the first major release of the TWiki Enterprise Collaboration Platform in over a year. The focus of this release has been on refactoring the code in the interests of **security**, **efficiency** and **maintainability**, though a range of powerful new features are also included. The refactoring work has included tightening up the specification of certain key TWiki behaviours, which has resulted in some specification changes. The impact on end users has been minimised as far as possible.
+
+**_Major New Features_**
+
+- Much simpler install and configuration
+- Integrated session support
+- Webserver-independent login/logout
+- Security sandbox blocks all possible routes for remote command execution on the server
+- New editing model allows freer collaboration, without fear of overwriting other people's changes
+- Multilingual UI
+- E-mail confirmations for registration
+- WYSIWYG editor
+- Hierarchical sub-webs
+
+%M% See feature list at [[TWikiHistory#DakarRelease]]. TWiki 4.0 patch release details are at the end of this release notes document.
+
+**_Note:_** In what follows, \{This\} (words in curly braces) refers to settings in the new 'configure' interface.
+
+<div>
+ <ul>
+ <li><a href="#Notes for end users"> Notes for end users</a><ul>
+ <li><a href="#Editing at the same time as othe"> Editing at the same time as other people</a></li>
+ <li><a href="#User Interface Internationalisat"> User Interface Internationalisation</a></li>
+ <li><a href="#New options on the editing scree"> New options on the editing screen</a></li>
+ <li><a href="#Change notification"> Change notification</a></li>
+ <li><a href="#E-mail addresses"> E-mail addresses</a></li>
+ <li><a href="#Parameterised Includes"> Parameterised Includes</a></li>
+ <li><a href="#Named Section Include"> Named Section Include</a></li>
+ <li><a href="#RSS Feeds"> RSS Feeds</a></li>
+ </ul>
+ </li>
+ <li><a href="#Notes for _TWikiAdmins and _Wi"> Notes for TWikiAdmins and WikiMasters</a><ul>
+ <li><a href="#Upgrading"> Upgrading</a></li>
+ <li><a href="#Security"> Security</a></li>
+ <li><a href="#CPAN Requirements"> CPAN Requirements</a></li>
+ <li><a href="#Installation and configuration"> Installation and configuration</a><ul>
+ <li><a href="#setlib.cfg"> setlib.cfg</a></li>
+ <li><a href="#TWiki.cfg"> TWiki.cfg</a></li>
+ <li><a href="#=testenv= / =configure="> testenv / configure</a></li>
+ <li><a href="#=configure= optional features"> configure optional features</a></li>
+ <li><a href="#Improved support for shorter URL"> Improved support for shorter URLs</a></li>
+ </ul>
+ </li>
+ <li><a href="#Preferences"> Preferences</a><ul>
+ <li><a href="#Changes to the evaluation order"> Changes to the evaluation order</a></li>
+ <li><a href="#Preferences Plugin"> Preferences Plugin</a></li>
+ <li><a href="#{_LocalSitePreferences} (was Mai"> {LocalSitePreferences} (was Main.TWikiPreferences)</a></li>
+ <li><a href="#=FAVICON="> FAVICON</a></li>
+ <li><a href="#=FORCENEWREVISIONCHECKBOX="> FORCENEWREVISIONCHECKBOX</a></li>
+ <li><a href="#=WEBLOGONAME=, <code>WEBLOGOIMG</code>, =WE"> WEBLOGONAME, WEBLOGOIMG, WEBLOGOURL, WEBLOGOALT</a></li>
+ <li><a href="#=WIKILOGOIMG=, <code>WIKILOGOURL</code>, =W"> WIKILOGOIMG, WIKILOGOURL, WIKILOGOALT</a></li>
+ </ul>
+ </li>
+ <li><a href="#Final Preferences"> Final Preferences</a></li>
+ <li><a href="#=mod_perl= support improvements"> mod_perl support improvements</a></li>
+ <li><a href="#Plugins"> Plugins</a></li>
+ <li><a href="#Logins, Logouts, Sessions and Pa"> Logins, Logouts, Sessions and Passwords</a></li>
+ <li><a href="#Protections"> Protections</a><ul>
+ <li><a href="#Site Permissions Overview"> Site Permissions Overview</a></li>
+ </ul>
+ </li>
+ <li><a href="#Frustrating Robots and Spammers"> Frustrating Robots and Spammers</a></li>
+ <li><a href="#New User Registration"> New User Registration </a></li>
+ <li><a href="#E-mail addresses"> E-mail addresses</a></li>
+ <li><a href="#Change notification support"> Change notification support</a></li>
+ <li><a href="#Site Changes Summary"> Site Changes Summary</a></li>
+ <li><a href="#What's a Web"> What's a Web</a></li>
+ <li><a href="#Disable script tags"> Disable <script> tags</a></li>
+ </ul>
+ </li>
+ <li><a href="#Notes for _TWikiApplication Dev"> Notes for TWikiApplication Developers</a><ul>
+ <li><a href="#Space/Tab conversion"> Space/Tab conversion</a></li>
+ <li><a href="#Evaluation order of _TWikiVaria"> Evaluation order of TWikiVariables</a></li>
+ <li><a href="#Encoding of form-field values"> Encoding of form-field values</a></li>
+ <li><a href="#script tags in topics"> <script> tags in topics</a></li>
+ <li><a href="#verbatim tags in topics"> <verbatim> tags in topics</a></li>
+ <li><a href="#=ALLVARIABLES="> ALLVARIABLES</a></li>
+ <li><a href="#=IF="> IF</a></li>
+ <li><a href="#New <code>$count(reg-exp)</code> variable i"> New $count(reg-exp) variable in Formatted Search</a></li>
+ </ul>
+ </li>
+ <li><a href="#Notes for Skin Developers"> Notes for Skin Developers</a><ul>
+ <li><a href="#Skin search path"> Skin search path</a></li>
+ <li><a href="#Supporting web names that are !"> Supporting web names that are WikiWords</a></li>
+ <li><a href="#Deprecation of %EDITTOPIC%"> Deprecation of %EDITTOPIC%</a></li>
+ <li><a href="#Template Parameters"> Template Parameters</a></li>
+ <li><a href="#HTTP and HTTPS"> HTTP and HTTPS</a></li>
+ <li><a href="#QUERYSTRING"> QUERYSTRING</a></li>
+ </ul>
+ </li>
+ <li><a href="#Notes for Plugin Developers"> Notes for Plugin Developers</a><ul>
+ <li><a href="#Changes to variable parsing"> Changes to variable parsing</a></li>
+ <li><a href="#Internals"> Internals</a></li>
+ <li><a href="#Extensions to the Func API"> Extensions to the Func API</a></li>
+ </ul>
+ </li>
+ <li><a href="#TWiki 4.0.1 Patch Release Detail"> TWiki 4.0.1 Patch Release Details</a><ul>
+ <li><a href="#TWiki 4.0.1 Fixes"> TWiki 4.0.1 Fixes</a></li>
+ </ul>
+ </li>
+ <li><a href="#TWiki 4.0.2 Patch Release Detail"> TWiki 4.0.2 Patch Release Details</a><ul>
+ <li><a href="#TWiki 4.0.2 Fixes"> TWiki 4.0.2 Fixes</a></li>
+ <li><a href="#TWiki 4.0.2 Enhancements"> TWiki 4.0.2 Enhancements</a></li>
+ </ul>
+ </li>
+ <li><a href="#TWiki 4.0.3 Patch Release Detail"> TWiki 4.0.3 Patch Release Details</a><ul>
+ <li><a href="#TWiki 4.0.3 Fixes"> TWiki 4.0.3 Fixes</a></li>
+ <li><a href="#TWiki 4.0.3 Enhancements"> TWiki 4.0.3 Enhancements</a></li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+## <a name="Notes for end users"></a> Notes for end users
+
+### <a name="Editing at the same time as othe"></a> Editing at the same time as other people
+
+Dakar release introduces a brand-new strategy for handling simultaneous changes to a topic by several people. Instead of one person locking the topic, and other having to wait until they are finished, Dakar allows multiple simultaneous edits of the same topic, and then _merges_ the different changes.
+
+You probably won't even notice this happening unless you are changing existing text in the file at the same time as someone else. In this case, you may see TWiki inserting "change marks" into the text to highlight conflicts between your edits and another persons. These change marks are only used if you edit the same part of a topic as someone else, and they indicate what the text used to look like, what the other person's edits were, and what your edits were. For example, let's say you have a topic that contains this text:
+
+<table>
+ <tr bgcolor="lightgrey">
+ <th>You edit</th>
+ <th>You see</th>
+ </tr>
+ <tr bgcolor="lightgrey">
+ <td><pre>
+Casablanca is
+Humphrey Bogart's finest film.
+Of all the gin joints in all the world,
+you had to walk into mine.
+</pre></td>
+ <td> Casablanca is Humphrey Bogart's finest film. Of all the gin joints in all the world, you had to walk into mine. </td>
+ </tr>
+ <tr>
+ <td colspan="2">and you start editing this text before going for coffee. Meanwhile, a colleague also starts editng the same topic and changes the text to:</td>
+ </tr>
+ <tr bgcolor="lightgrey">
+ <td><pre>
+<b>The Maltese Falcon</b> is
+Humphrey Bogart's finest film.
+Of all the gin joints in all the world,
+you had to walk into mine.
+</pre></td>
+ <td> The Maltese Falcon is Humphrey Bogart's finest film. Of all the gin joints in all the world, you had to walk into mine. </td>
+ </tr>
+ <tr>
+ <td colspan="2">When you get back from coffee, you finish your edit, changing the text to</td>
+ </tr>
+ <tr bgcolor="lightgrey">
+ <td><pre>
+<b>To Have or Have Not</b> is
+Humphrey Bogart's finest film.
+<b>You know how to whistle, don't you Steve?
+You just put your lips together and blow.</b>
+</pre></td>
+ <td> To Have or Have Not is Humphrey Bogart's finest film. You know how to whistle, don't you Steve? You just put your lips together and blow. </td>
+ </tr>
+ <tr>
+ <td colspan="2">and saving it. The topic will now look like this when you display it:</td>
+ </tr>
+ <tr bgcolor="lightgrey">
+ <td><pre>
+<div ><b>CONFLICT</b> original 5:</div>
+Casablanca is
+<div ><b>CONFLICT</b> version 6:</div>
+The Maltese Falcon is
+<div ><b>CONFLICT</b> version 7:</div>
+To Have or Have Not is
+<div ><b>CONFLICT</b> end</div>
+Humphrey Bogart's finest film.
+You know how to whistle, don't you Steve?
+You just put your lips together and blow.
+</pre></td>
+ <td>
+ <div><b>CONFLICT</b> original 5:</div> Casablanca is <div><b>CONFLICT</b> version 6:</div> The Maltese Falcon is <div><b>CONFLICT</b> version 7:</div> To Have or Have Not is <div><b>CONFLICT</b> end</div> Humphrey Bogart's finest film. You know how to whistle, don't you Steve? You just put your lips together and blow. </td>
+ </tr>
+</table>
+
+As you can see, your changes have been merged with your colleagues. The merge is done on a line-by-line basis, and if your changes do not overlap, then change marks will not be used (as is the case for the last line of the example).
+
+Merging only applies to text fields. When there are conflicts in field data in forms such as checkboxes, radio buttons and selects, the most recent change (usually your change) always wins, even if someone else has changed the form since you started editing. Of course, all changes are available from the topic history.
+
+Because there are cases where you actually want to avoid overlapping edits altogether (e.g. if you are changing forms data) TWiki will **warn** if you attempt to edit a topic that someone else is editing. It will also warn if a merge was required during a save.
+
+### <a name="User Interface Internationalisat"></a> User Interface Internationalisation
+
+TWiki will now pick up the language you are using in your browser, and try to present system messages in that language, if it is available. If your preferred language is not available, TWiki will revert to English. You'll also have an option to choose a language different from that used in your browser.
+
+User Interface Internationalisation support is optional and enabled by the \{UserInterfaceInternationalisation\} setting.
+
+The translation is performed by the Perl standard internationalization framework. If you want to contribute a new language, it would be most welcome: see TWiki:Codev.UserInterfaceLocalisation for instructions on how to help.
+
+### <a name="New options on the editing scree"></a> New options on the editing screen
+
+You will notice a couple of changes to the editing screen: first, there is no switch for releasing the edit lock any more (if locks are enabled, they are always released when an edit finishes). You will also notice a new "force new revision" checkbox. TWiki normally doesn't add a new revision if the same user re-edits a topic within a certain time period; this checkbox allows you to _force_ TWiki to add a revision for every change, regardless of how small it is.
+
+### <a name="Change notification"></a> Change notification
+
+You now have much more control over _which_ topics in a web you are interested in changes to. You can choose to receive notifications about topics selected by name, or by their parent relationship. See [[MailerContrib]] for more details. Note that the `mailnotify` cron script has moved out of the `bin` directory and into the `tools` directory - active crontab entries needs to be updated accordingly.
+
+### <a name="E-mail addresses"></a> E-mail addresses
+
+Because of the security risks inherent in publishing e-mail addresses in personal topics, the storage of user's emails has been moved to the password manager. For sites that use the `.htpasswd` password manager, e-mail addresses that new users provide during registration are stored in the `.htpasswd` file. To aid in migration, if TWiki can't find a registered e-mail address in `.htpasswd`, it will still look in the personal topic. All users should register a valid e-mail address at [[ChangeEmailAddress]].
+
+If a different password manager is in use (e.g. LDAP, or 'none'), user e-mails will still be stored in personal topics. Sites that use other password systems (such as LDAP) should consider implementing a TWiki password manager, so that TWiki can look up email addresses, rather than storing them in personal topics.
+
+### <a name="Parameterised Includes"></a> Parameterised Includes
+
+`%INCLUDE{}%` variables have a predefined set of parameters. In the past, any parameters not in this set were simply ignored. With Dakar, these parameters are now defined as [[TWikiVariables]] within the included topic - for example,
+
+ %INCLUDE{ "BugList" FAVOURITE="Damsel Flies" }%
+
+will define `%FAVOURITE%` as `Damsel Flies` in the included topic, so if `BugList` contained the line
+
+ My favourite bugs are %FAVOURITE%
+
+it will be expanded to
+
+ My favourite bugs are Damsel Flies
+
+### <a name="Named Section Include"></a> Named Section Include
+
+The `%INCLUDE{}%` variable allows to include only a named section of the included topic. These sections are defined in the included topic using the `%STARTSECTION%` and `%ENDSECTION%` variables. For example, if the included topic has:
+
+ ---+ News
+
+ ---++ IT News
+ All news related to IT.
+ %STARTSECTION{"itnews"}%
+ * 2005-10-02 Final deployment of Dakar
+ * 2005-10-01 Moving platform to Dakar
+ %ENDSECTION{"itnews"}%
+
+Using `%INCLUDE{ "AllNews" section="itnews" }%` will produce:
+
+ * 2005-10-02 Final deployment of Dakar
+ * 2005-10-01 Moving platform to Dakar
+
+This syntax also allows for nested sections. For example, given the following topic:
+
+ %STARTSECTION{"outer"}%
+ * Top Outer Text
+ %STARTSECTION{"inner"}%
+ * Inner Text
+ %ENDSECTION{"inner"}%
+ * Top Outer Text
+ %ENDSECTION{"outer"}%
+
+Using `%INCLUDE{"SampleTopic" section="outer"}%` will produce:
+
+ * Top Outer Text
+ * Inner Text
+ * Top Outer Text
+
+And `%INCLUDE{"SampleTopic" section="inner"}%` will produce:
+
+ * Inner Text
+
+Overlapped sections are also allowed.
+
+### <a name="RSS Feeds"></a> RSS Feeds
+
+RSS feeds have been enhanced to display links as links to make the feeds more useful. They also now use the web-specific logos.
+
+## <a name="Notes for _TWikiAdmins and _Wiki"></a> Notes for TWikiAdmins and WikiMasters
+
+### <a name="Upgrading"></a> Upgrading
+
+See [[TWikiUpgradeGuide]] for help in upgrading an existing Cairo (Sep 2004) installation.
+
+### <a name="Security"></a> Security
+
+Dakar Release introduces the use of 'safe pipes' to prevent any malicious request from executing code on the server. This strategy stops any of the known attacks dead in its tracks. The Dakar codebase has not been impacted by any of the recent security advisories in any way. Several public sites have been running Dakar code for some months now, and to the best of our knowledge none has been hacked.
+
+### <a name="CPAN Requirements"></a> CPAN Requirements
+
+CPAN:Text::Diff is a prerequisite for the UpgradeTWiki script only. CPAN:URI is a prerequisite for `configure`. Other new prerequisites are CPAN:CGI::Session and CPAN:CGI::Cookie, if you want to take advantage of the new session support.
+
+If you want user interface internationalization support, CPAN:Locale::Maketext::Lexicon and CPAN:Encode (in perl 5.8's core) are required, as well as perl 5.8 or higher. See TWiki:Codev.UserInterfaceLocalisation for details on TWiki internationalization support.
+
+### <a name="Installation and configuration"></a> Installation and configuration
+
+The installation and configuration processes have been simplified.
+
+#### <a name="setlib.cfg"></a> setlib.cfg
+
+The installer should now provide a file called `LocalLib.cfg` that contains local path settings. `setlib.cfg` contains documentation of what has to be done. Old `setlib.cfg` files **will not work** with Dakar.
+
+#### <a name="TWiki.cfg"></a> TWiki.cfg
+
+`TWiki.cfg` now contains all the default configuration settings, and the installer should provide a file called `LocalSite.cfg` that contains just those settings that are different than the defaults. The syntax of the settings in the file has also changed. Old `TWiki.cfg` files **will not work** with Dakar. The UpgradeTWiki script can be used to automate most of the necessary changes.
+
+#### <a name="=testenv= / <code>configure="></a> =testenv / `configure`
+
+`testenv` has been removed, and replaced with the new `configure` interface. This interface performs all the checking functions of the old `testenv`, adds several new ones (including permissions checks) and also acts as a browser interface allowing you to do **all** TWiki configuration from the browser. `configure` is now the main installation interface for TWiki.
+
+The `configure` script can be used like the old `testenv` for public review of the configuration of the site. Saving from the interface is password-protected, using a password set in the configuration files, so to ordinary users `configure` just looks like a posh version of `testenv`. If you want to hide your configuration from public view, you can restrict access to the script using webserver access controls (Apache users see the Apache documentation on the 'require' directive for more infomation on how to do this).
+
+#### <a name="=configure= optional features"></a> `configure` optional features
+
+New optional features include \{AutoAttachPubFiles\} and \{EnableHierarchicalWebs\}. Both are switched off by default but can be enabled in `configure`.
+
+#### <a name="Improved support for shorter URL"></a> Improved support for shorter URLs
+
+See TWiki:TWiki.ShorterUrlCookbook
+
+### <a name="Preferences"></a> Preferences
+
+There have been some significant changes to the handling of preferences, aimed at making them more logical, consistent and easy to use.
+
+#### <a name="Changes to the evaluation order"></a> Changes to the evaluation order
+
+The rules for preference evaluation (whether the user setting overrides the topic setting etc) have always been a bit confusing and difficult to use. For example, a topic setting would override a user setting, but a user setting would override a web setting, making per-web settings awkward to use. Mainly due to the introduction of hierarchical webs, preferences are now evaluated in the following order:
+
+1. Topic
+2. Web
+3. Parent Web(s) (if appropriate. All parent webs are evaluated in bottom-up order)
+4. Session
+5. User
+6. Local Site (as set in \{LocalSitePreferences\}, typically =%MAINWEB%.TWikiPreferences))
+7. Default (as set in \{SitePrefsTopic\}, typically =%TWIKIWEB%.TWikiPreferences))
+
+This is a change from previous versions, where the User preferences were evaluated between the topic and the web.
+
+Note that a user can still dictate preference values that can't be overridden by the topic or the web level settings, but they will now need to set those preferences as FINALPREFERENCES. You can use `%ALLVARIABLES%` in a topic to get a dump of all preferences set in that context.
+
+Permissions controls are not affected by this change.
+
+#### <a name="Preferences Plugin"></a> Preferences Plugin
+
+TWiki:Plugins.PreferencesPlugin has been included to allow more convenient editing of preferences. This plugin provides input controls, such as menus, radio buttons, and checkboxes to select preference settings.
+
+The following standard preferences have been removed: [MAILTHISTOPIC](http://www.dementia.org/twiki/search?scope=text&web=all&order=topic&search=%25MAILTHISTOPIC%25&casesensitive=on&limit=all), [MAILTHISTOPICTEXT](http://www.dementia.org/twiki/search?scope=text&web=all&order=topic&search=%25MAILTHISTOPICTEXT%25&casesensitive=on&limit=all), [TOPICURL](http://www.dementia.org/twiki/search?scope=text&web=all&order=topic&search=%25TOPICURL%25&casesensitive=on&limit=all), [READTOPICPREFS](http://www.dementia.org/twiki/search?scope=text&web=all&order=topic&search=%25READTOPICPREFS%25&casesensitive=on&limit=all), [TOPICOVERRIDESUSER](http://www.dementia.org/twiki/search?scope=text&web=all&order=topic&search=%25TOPICOVERRIDESUSER%25&casesensitive=on&limit=all) (click on the name to search for occurrences on this site). If they are in use on your site, you can restore them to their Cairo settings by simply cutting and pasting the old definitions.
+
+#### <a name="{_LocalSitePreferences} (was Mai"></a> \{LocalSitePreferences\} (was Main.TWikiPreferences)
+
+Customized site preferences can now be saved in the \{LocalSitePreferences\} topic which will override settings in \{SitePrefsTopicName\}. This simplifies upgrades as you can overwrite the \{SitePrefsTopicName\} topic and gain any new or updated preference settings without losing your local customizations.
+
+#### <a name="=FAVICON="></a> `FAVICON`
+
+`favicon.ico` is a small graphic that _can_ appear in a variety of places in the browser: the titlebar, the taskbar, the address bar, bookmarks/favourites, and page tabs. Each web browser has a unique user interface, and as a result uses the Favicon in different ways. _Most_ browsers display it in _most_ of the locations listed.
+
+Out of the box, TWiki is configured to easily customise the `favicon.ico` for each web. To switch to a new `favicon.ico`, upload it to the desired web's WebPreferences.
+
+- - Set FAVICON = <http://www.dementia.org/twiki//view/%WEB%/WebPreferences/favicon.ico>
+
+To provide a single, site-wide `favicon.ico`, hardcode a specific web, for example:
+
+- - Set FAVICON = <http://www.dementia.org/twiki//view/TWiki/WebPreferences/favicon.ico>
+
+#### <a name="=FORCENEWREVISIONCHECKBOX="></a> `FORCENEWREVISIONCHECKBOX`
+
+Normally, if you make another edit within a one hour period (was `$editLockTime` in `lib/TWiki.cfg`, now `{ReplaceIfEditedAgainWithin}`), TWiki will fold together your changes. This is often the "right thing to do", as it can reduce the visual clutter of diffs.
+
+The "Force New Revision" checkbox is a way to force it to create a separate revision each time you save.
+
+The [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] variable `FORCENEWREVISIONCHECKBOX` controls whether this is checked by default or not.
+
+On a related note, you can force **_every_** save to be a new revision number by editing `lib/TWiki.cfg` and setting <code>**\{ReplaceIfEditedAgainWithin\}**</code> to 0.
+
+NOTE: Although this feature is being introduced in this release, it is also being deprecated at the same time. TWiki:Codev.EdinburghRelease is planned to provide the ability to elide revisions at the GUI level, rather than the Store level, thus obviating the need for this stopgap measure.
+
+#### <a name="=WEBLOGONAME=, <code>WEBLOGOIMG</code>, <code>WE"></a> =WEBLOGONAME, `WEBLOGOIMG`, `WEBLOGOURL`, `WEBLOGOALT`
+
+Each web can have its own customised logo. The simplest way is to upload a `logo.gif` to a web's WebPreferences, and it will appear in the top-left corner.
+
+To change the logo's filename, set the `WEBLOGONAME` variable. You'll especially need to do this if you use a different logo file format:
+
+- - Set WEBLOGONAME = MyLogo.jpg
+
+If you don't want to have custom logos on a per-web basic, but instead want to use a single, site-wide logo, hardcode a specific web in the `WEBLOGOURL` variable. For example:
+
+- - Set WEBLOGOURL = %PUBURLPATH%/Main/WebPreferences/logo.png
+
+#### <a name="=WIKILOGOIMG=, <code>WIKILOGOURL</code>, <code>W"></a> =WIKILOGOIMG, `WIKILOGOURL`, `WIKILOGOALT`
+
+These variables are now more closely associated with `WIKITOOLNAME`. If you change `WIKITOOLNAME`, you'll probably want to change these variables, too. `WIKILOGOIMG`, `WIKILOGOURL`, `WIKILOGOALT`, and `WIKITOOLNAME` are now used more consistently together.
+
+### <a name="Final Preferences"></a> Final Preferences
+
+The `FINALPREFERENCES` setting prevents particular preference settings from being over-ridden at a lower level. The hierarchy of how `FINALPREFERENCES` settings are applied has been clarified/formalized as reflected in the following chart:
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Level </strong></th>
+ <th bgcolor="#99CCCC"><strong> Set By </strong></th>
+ <th bgcolor="#99CCCC"><strong> Local site examples </strong></th>
+ </tr>
+ <tr>
+ <td> default site </td>
+ <td> %TWIKIWEB%.TWikiPreferences or %WIKIPREFSTOPIC% </td>
+ <td>[[TWiki/TWikiPreferences]]</td>
+ </tr>
+ <tr>
+ <td> local site </td>
+ <td> %MAINWEB%.TWikiPreferences or %LOCALSITEPREFS% </td>
+ <td>[[Main/TWikiPreferences]]</td>
+ </tr>
+ <tr>
+ <td> web </td>
+ <td> WebPreferences </td>
+ <td> %WEB%.WebPreferences </td>
+ </tr>
+ <tr>
+ <td> user </td>
+ <td> In one's user topic </td>
+ <td> Main.admin </td>
+ </tr>
+ <tr>
+ <td> topic </td>
+ <td> "Edit topic preferences settings" under "More topic actions" </td>
+ <td> %WEB%.%TOPIC% </td>
+ </tr>
+</table>
+
+By default, the site level `FINALPREFERENCES` are set in [[Main.TWikiPreferences|Main/TWikiPreferences]] so as not to conflict with preference settings in that topic.
+
+### <a name="=mod_perl= support improvements"></a> `mod_perl` support improvements
+
+TWiki no longer uses global variables other than for constants. Each CGI script creates a new "session object" that holds all session-specific information.
+
+There is still an issue with the `@INC` path in `mod_perl`, that mainly impacts plugins that lazy-load modules. You should use the `PerlSetEnv` directive that `mod_perl` provides to make sure that your TWiki `lib` directory is permanently on the path, if you are using `mod_perl`.
+
+### <a name="Plugins"></a> Plugins
+
+Plugins are no longer searched for every time a TWiki script is run. Instead they are automatically discovered in `configure`. To enable and disable plugins, use the `configure` interface. The entire @INC path is searched for plugins, so you can easily point at plugins outside the installation. However only the first instance of a plugin on the @INC path will be found (it is a path, after all).
+
+`%INSTALLEDPLUGINS%` and `%DISABLEDPLUGINS%` are no longer supported in TWikiPreferences. If you have set `%INSTALLEDPLUGINS%` in TWikiPreferences, you need to move that setting into the `{PluginsOrder}` configuration key, using the `configure` interface. To disable plugins, uncheck them in the `configure` interface, and save the changes.
+
+%X% Whenever you install a plugin, make sure you check [[TWikiPlugins#FAILEDPLUGINS]]. Several handlers have been deprecated, and updates of the plugins may be required. Contact the plugin author directly to get an update if none is available on the web.
+
+### <a name="Logins, Logouts, Sessions and Pa"></a> Logins, Logouts, Sessions and Passwords
+
+TWiki:Plugins.SessionPlugin and TWiki:Plugins.AuthPagePlugin have been integrated into the core. TWiki now supports cookied sessions, in the context of a much improved authentication architecture. The setup for authentication is now much simpler, and for most sites can be done entirely from the `configure` interface. There are some incompatibilities with TWiki:Plugins.SessionPlugin, with resepect to the in-line variables. See [[TWikiUserAuthentication]] in the release for full details of how authentication works now. TWiki also now supports the concept of pluggable password managers, making the integration of corporate authentication services much simpler.
+
+Administrators, especially of public sites, need to be aware of the security implications of cookied sessions, and the potential risks of cross-site scripting attacks that may be used to steal user sessions. See [[TWikiUserAuthentication]] for more details.
+
+### <a name="Protections"></a> Protections
+
+The evaluation of protections has been re-worked to make it more naturally understandable, and also fill a number of holes in the protection scheme, These holes meant that it was relatively easy to _deny_ access to a topic, but rather difficult to subsequently _restore_ access without either compromising other topics, or compromising old revisions.
+
+When deciding whether to grant access, TWiki now 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 [[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**
+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**
+7. If you got this far, access is **PERMITTED**
+
+In addition, permissions set on a specific revision of a topic now _always_ apply to that revision, even if access to the topic is relaxed in a later revision. This change was necessary to prevent accidentally permitting access to sensitive data in old revisions.
+
+The major impact of this change is that WebPreferences topics shipped with earlier releases of TWiki will have excessively restrictive controls, as the default settings were:
+
+- Set DENYWEBVIEW =
+- Set ALLOWWEBVIEW =
+ - This will now _deny_ view access to everyone _not_ in the list (i.e. everyone except admins)
+- Set DENYWEBCHANGE =
+- Set ALLOWWEBCHANGE =
+ - This will now _deny_ change access to everyone _not_ in the list (i.e. everyone except admins)
+- Set DENYWEBRENAME =
+- Set ALLOWWEBRENAME =
+ - This will now _deny_ rename access to everyone _not_ in the list (i.e. everyone except admins)
+- Set ALLOWTOPICCHANGE =
+ - This will now _deny_ change access to everyone _not_ in the list (i.e. everyone except admins)
+- Set ALLOWTOPICRENAME = Main.TWikiAdminGroup
+
+The standard webs shipped with this release have these settings disabled. However you are likely to have inherited the old default settings in your user webs. The easiest way to deal with this is to simply insert a # sign in these settings; for example:
+
+- #Set DENYWEBVIEW =
+- #Set ALLOWWEBVIEW =
+- _etc_
+
+%RED%Note:%ENDCOLOR% For security reasons, the [[Trash|Trash/WebHome]] web is shipped with `ALLOWWEBVIEW` set to [[TWikiAdminGroup]].
+
+#### <a name="Site Permissions Overview"></a> Site Permissions Overview
+
+The [[SitePermissions]] topic gives you a quick view of the permissions on each web - i.e. it aggregates ALLOWWEB\* etc. into a handy table. It is also installed on TWiki.org as TWiki:TWiki.SitePermissions.
+
+### <a name="Frustrating Robots and Spammers"></a> Frustrating Robots and Spammers
+
+Standard TWiki incorporates some simple measures to protect e-mail addresses and control the activities of benign robots. These should be enough to handle intranet requirements. Administrators of public (internet) sites are **strongly** recommended to investigate the TWiki:Plugins/BlackListPlugin.
+
+### <a name="New User Registration"></a> New User Registration
+
+The new user registration process has been extensively reworked to improve usability and security of the registration process.
+
+1. FirstName and LastName are recorded separately and tabulated. See [[UserListByLocation]]
+2. Sends a e-mail that the user has to respond to; registration data is staged until this is done
+3. Populates a form in the user topic, if there is one in the NewUserTemplate. If there is no form, then bullets are used, as in pre-Dakar TWiki.
+4. Sends different e-mails to the WIKIWEBMASTER and the USER, with the users containing the password unless \{HidePasswdInRegistration\} is set.
+5. There is now a mechanism for bulk registration, with callbacks for augmentation (e.g. from other sources).
+6. Absorbed TWiki:Codev.ResetPasswordByEmail.
+7. Obsoleted TWiki:Codev.InstallPassword
+
+### <a name="E-mail addresses"></a> E-mail addresses
+
+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 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.
+
+- You are strongly recommended to run this script if you are running a public site.
+- It will not modify existing personal topics.
+- The script will tell you if any users are found that don't have an e-mail.
+- You can re-run the script as many times as you like; once the password manager has an e-mail for a user, the e-mail in their personal topic is ignored.
+
+You should also advise all your registered users to make sure they have a valid e-mail. They can do this by logging in and visiting [[ChangeEmailAddress]].
+
+### <a name="Change notification support"></a> Change notification support
+
+The old `mailnotify` script has been retired in favour of the MailerContrib. See [[MailerContrib]] for information about functional changes.
+
+### <a name="Site Changes Summary"></a> Site Changes Summary
+
+The [[SiteChanges]] topic mimics TWiki.org's TWiki:Codev:WebChangesForAllWebs - i.e. it shows a [[WebChanges]] view across a whole site. It's name was chosen to parallel SiteMap; at some point you can expect the arrival of SiteStatistics too.
+
+### <a name="What's a Web"></a> What's a Web
+
+Old versions of TWiki would consider all subdirectories of the TWiki data directory to be webs. This behaviour has changed; now only subdirectories that contain a web preferences topic (`WebPreferences.txt`) will be considered to be webs. This may result in directories that used to return search matches no longer doing so.
+
+### <a name="Disable script tags"></a> Disable <script> tags
+
+In recognition of security concerns around <script> tags, the administrator has the choice whether to allow users to add script to topics or not. See the `{AllowInlineScript}` setting in the **Security** section of <code>[configure](http://www.dementia.org/twiki/configure)</code>.
+
+## <a name="Notes for _TWikiApplication Deve"></a> Notes for TWikiApplication Developers
+
+### <a name="Space/Tab conversion"></a> Space/Tab conversion
+
+Previous TWiki versions would automatically convert three spaces at the start of lines to a tab when the topic was saved. This meant that the saved topic was _not_ the same as the edited topic, which could result in considerable confusion. This conversion has been disabled, and the saved topic is now exactly what you see in the editor. One impact of this change is that any add-on scripts you may have developed that rely on bulleted list lines starting with a tab will no longer work. They must be adapted to treat groups of three spaces and single tabs as equivalent.
+
+### <a name="Evaluation order of _TWikiVariab"></a> Evaluation order of TWikiVariables
+
+In previous TWiki versions the evaluation order of `%VARIABLE%s` depended on where they were expanded in the code. The parser was somewhat crude, and could easily be confused when embedded variables (variables embedded in the parameters of other variables) were used.
+
+The parser has been replaced in Dakar with a deterministic variable parser with predictable behaviour. Specifically, variables are now always evaluated left to right and inside out. For example, consider `%VAR2{ "%VAR1{ "%VAR0{ "params" }%" }%" }% %VAR3%`. Previously, the expansion order would have depended on the order of expressions in the code, so the expansion may have proceeded VAR3 - VAR0 - VAR2 - VAR1. If you were lucky, this was the intended order. In Dakar, the order is now guranteed to be VAR0 - VAR1 - VAR2 - VAR3 (i.e. inside out and left to right).
+
+The main impact of this is that some TWikiApplications may cease to work if they have been written to take advantage of the old chaotic order. There is no way to predict which will work and which will fail, so you will have to deal with this on a case-by-case basis. In most cases TWikiApplication authors will have worked hard to do the "sensible thing" so instances of this problem should be rare.
+
+Note that because the TWiki spec allows double quotes within double-quoted strings in certain variable parameters it has been impossible to make the parser 100% deterministic. There may still be pathological cases where the parser may fail. In these cases, consider how open and close curly brackets are matched up.
+
+### <a name="Encoding of form-field values"></a> Encoding of form-field values
+
+The encoding used to escape characters in form-field values has had to change. The old encoding could very easily be confused by text strings in data values. Existing topics with the old encoding will still be loaded into TWiki as before, but if edited they will be saved with the new encoding. This should not affect you unless you have searches that look for the old encodings; specifically, the %\_G\_%, %\_Q\_%, and %\_P\_% character sequences. Any such searches will not work any more, and need to be converted to search for the new encoding. Assuming they are `regex` type searches, you can use `(%_G_%|%0A)` to match encoded newlines in field data in both old and new format topics, `(%_Q_%|%22)` to match quotes, and `(%_P_%|25)` for percent signs.
+
+### <a name="script tags in topics"></a> <script> tags in topics
+
+Previous releases of TWiki would attempt to interpret the content of <script> tags in topics as TWiki formatting language, often resulting in non-functional scripts. This release protects script sections from expansion by TWiki. Note that this means that [[TWikiVariables]] will **not** be expanded in script tags - they are passed through _verbatim_.
+
+In recognition of security concerns around <script> tags, the administrator has the choice whether to allow users to add script to topics or not. Check the setting of `{AllowInlineScript}` in <code>[configure](http://www.dementia.org/twiki/configure)</code> to see if it is allowed on your site. If not, script sections will simply disappear from topics.
+
+### <a name="verbatim tags in topics"></a> <verbatim> tags in topics
+
+Previous releases required `verbatim` tags to be on their own line. TWiki can now deal with inline verbatim blocks such as
+
+ blah<verbatim>inside</verbatim>after
+
+results in
+
+blah
+
+ inside
+
+after
+
+**NOTE:** VARIABLES are still Set within verbatim tags (this is a historical peculiarity)
+
+### <a name="=ALLVARIABLES="></a> `ALLVARIABLES`
+
+You can use `%ALLVARIABLES%` in a topic to get a dump of all variables set in that context. Invaluable for debugging those tricky TWikiApplications!
+
+### <a name="=IF="></a> `IF`
+
+The new `%IF()%` variable defines simple conditional statements that are evaluated at view time. This allows you to include content conditionally based on environmental factors. See [[IfStatements]] for more information on usage.
+
+### <a name="New <code>$count(reg-exp)</code> variable i"></a> New `$count(reg-exp)` variable in Formatted Search
+
+This new variable for [[FormattedSearch]] returns the number of instances a specified [[RegularExpression]] occur in a topic. This is useful for such things as counting the number of comments on a page (assuming they are marked my a unique heading level).
+
+## <a name="Notes for Skin Developers"></a> Notes for Skin Developers
+
+### <a name="Skin search path"></a> Skin search path
+
+Earlier releases of TWiki only allowed for a single skin, so customising a single template in a skin meant deriving a whole new skin. Dakar introduces the concept of a skin search path, which lets you combine skins additively. For example, you can customise just the view template by defining a new `view.mylocalskin.tmpl` and then setting
+
+- `Set SKIN = mylocalskin,pattern`
+
+Since you have defined a view template for `mylocalskin`, it will be picked up when you view a topic because `mylocalskin` is first on the search path. But you didn't define `edit.mylocalskin.tmpl`, so when you edit the next skin on the search path will be used instead (in this case `edit.pattern.tmpl`). You can put as many skins on the search path as you like.
+
+As with older releases, setting SKIN (or the `skin` parameter in the URL) replaces the existing skin path setting. Dakar supports _extension_ of the path as well, using _covers_.
+
+- `Set COVER = mylocalskin`
+
+pushes a different skin to the front of the skin search path. There is also an equivalent `cover` URL parameter. For example, [[http://www.dementia.org/twiki/view/%WEB%/WhatIsWikiWiki?cover=print.pattern|%WEB%/WhatIsWikiWiki?cover=print.pattern]]. This gives you an extra level of flexibility when defining skins.
+
+See [[TWikiSkins]] for more information.
+
+### <a name="Supporting web names that are _W"></a> Supporting web names that are WikiWords
+
+Although web names have been [[permitted to be WikiWords|TWiki:Codev/WebNameAsWikiName]] since the TWiki:Codev.CairoRelease, the base templates have been [[fixed|TWiki:Codev/DefaultTemplatesSupportWebNameAsWikiWord]] for Dakar.
+
+Skins should be upgraded if they have standalone `%WEB%` variables; only standalone `%WEB%` text that potentially could be turned into a link (because of a [[WikiWord]]) needs to be escaped. Same for `%MAINWEB%` and `%TWIKIWEB%`.
+
+Examples:
+
+- `%WEB%` -- needs to be escaped with `<nop>%WEB%`
+- `(%WEB%)` -- needs to be escaped because of parenthesis
+- `"%WEB%"` -- no need to escape, does not get linked
+- `<b>%WEB%</b>` -- no need to escape, does not get linked
+- `%WEB%.%TOPIC%` -- no need, is a `Web.TopicName`
+- `(%WEB%.%TOPIC%)` -- no need, is a `Web.TopicName`
+
+Basically, any prefix other then space and parenthesis needs to be looked at. `%WEB%` in a `%SEARCH%` should not be escaped.
+
+### <a name="Deprecation of %EDITTOPIC%"></a> Deprecation of %EDITTOPIC%
+
+In Cairo release (and earlier) the only way to have an edit link that changed with the context was to use `%EDITTOPIC%`. This was only available in view templates, and had no flexibility in formatting. It was also impossible to disable other active links, such as Attach.
+
+Dakar release includes new support for "context if" parameters to the `%TMPL:P%` construct. See [[TWikiTemplates]] for details. The default templates shipped with Dakar have been modified to use this support. %EDITTOPIC has been deprecated, though it is still available as a simple edit link, defined in [[TWikiPreferences]]. Skin authors are strongly recommended to replace this link with context-if conditionals.
+
+### <a name="Template Parameters"></a> Template Parameters
+
+`%TMPL:P%` now accepts parameters. Values passed in these parameters will be expanded when the `%TMPL:DEF%` is instantiated. See [[TWikiTemplates]] for full details. (Remember, this happens at template expansion time, which is usually very early in the rendering process.)
+
+### <a name="HTTP and HTTPS"></a> HTTP and HTTPS
+
+These two new TWikiVariables give access to the HTTP headers sent by your browser. For example, your browser says your browser is %HTTP:\{"User-Agent"\}% (this will be filled in if you are running Dakar).
+
+### <a name="QUERYSTRING"></a> QUERYSTRING
+
+This new TWikiVariable gives access to the full query string from the URL sent to your browser. For example, for the URL `http://www.dementia.org/twiki/view/%WEB%/%TOPIC%?make=Reliant&model=Robin`, the query string is `?make=Reliant;model=Robin` (yes, the semicolon is correct!)
+
+## <a name="Notes for Plugin Developers"></a> Notes for Plugin Developers
+
+### <a name="Changes to variable parsing"></a> Changes to variable parsing
+
+In earlier TWiki versions there was considerable confusion over the syntax and semantics of Preferences, TWiki Variables, and Plugin variables. The documentation suggested that all %VARIABLES% were equal, but in fact some were more equal than others.
+
+The syntax and semantics of preferences and [[TWikiVariables]] has been made consistent. `%VARIABLE%` has been made semantically identical to `%VARIABLE()%`, so if you set a preference named `%VARIABLE%` it will automatically be instantiated in place of `%VARIABLE{}%`. This is an elegant solution in several ways: first, it allows an administrator to electively disable TWikiVariables, simply by defining an overriding preference. Second, it rationalises the semantics in line with the common syntax. Third, it allows a single parser to do all the work, allowing localised optimisation. Fourth, it prevents a plugin from accidentally kidnapping system [[TWikiVariables]] (while this can still be done by registering a tag handler, it's a much more explicit process). Fifth, the ground rules are set for a possible future extension to support parameterised [[TWikiVariables]] e.g.
+
+- `Set CAR{make model accessory} = I drive %make% %model% with %accessory% in my dreams`
+
+`%CAR{make="an Aston Martin" model="DB9" accessory="a gorgeous blonde"}%`
+
+### <a name="Internals"></a> Internals
+
+A lot of the TWiki internals have changed. As a result, plugins that bypass the `TWiki::Func` API and call core functions directly are unlikely to work.
+
+The restructuring of the code internals is such that there are no 1:1 equivalents for the old core functions. Only the TWiki::Func API is guaranteed to work.
+
+You should convert your plugins to call the `TWiki::Func` API. If you have called unpublished functions that have no equivalent in `TWiki::Func`, then you may still be able to call the function via the TWiki "session" object, `$TWiki::Plugins::SESSION`. See the implementation of the `TWiki::Func` module for ideas on how to do this. However calling internals is **not** recommended, even using this new mechanism, as they are liable to change without prior notice.
+
+### <a name="Extensions to the Func API"></a> Extensions to the Func API
+
+- The `TWiki::Func` API has been extended to expose a number of new core functions. Review [[TWikiFuncDotPm]] for details.
+- The `TWiki::Meta` API, which was previously for internal core use only, has now been exposed and may be used in plugins. See [[TWikiMetaDotPm]] for full details.
+- Plugins which observed the existing published API (TWiki::Func) should continue to work.
+
+## <a name="TWiki 4.0.1 Patch Release Detail"></a> TWiki 4.0.1 Patch Release Details
+
+The following fixes have been addressed in this release:
+
+### <a name="TWiki 4.0.1 Fixes"></a> TWiki 4.0.1 Fixes
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item1597]]</td>
+ <td> configure shows text outside the text boxes - thanks KoenMartens </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1592]]</td>
+ <td> Whoops, deprecated syntax was both alive and documented, trying something else </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1592]]</td>
+ <td> Killing some never documented syntax, allowing for more flexibility in explicit external [[]]-style links </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1591]]</td>
+ <td> Friendly fallback added to meta->getParent() </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1591]]</td>
+ <td> small fix to parent search but bug remains </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1590]]</td>
+ <td> Don't loose old TOPICPARENT on save </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1589]]</td>
+ <td> Don't report cfg-files as non-executable </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1587]]</td>
+ <td> Including upgrade_emails.pl in distro </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1583]]</td>
+ <td> Cairo compatibility for rev argument syntax </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1579]]</td>
+ <td> corrected spanish access key. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1574]]</td>
+ <td> Net.pm: Tidying up e-mail split </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1574]]</td>
+ <td> Net.pm: Split only on , not on spaces when sending e-mail </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1572]]</td>
+ <td> made optional - thus removing the horrible slowdown it causes from the main loop </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item663]]</td>
+ <td> Fix %MAINWEB%.TWikiPreferences to %LOCALSITEPREFS%; remove %TWIKIWEB% prefix where not needed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item663]]</td>
+ <td> TWiki.org doc merge: GNU patch requirement </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item240]]</td>
+ <td> layout of more screen; added line "Current parent" with 2 searches inside IF - must be a more efficient way but how? </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item240]]</td>
+ <td> just to be sure: replacing MAKETEXT text with English, to be translated later. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item240]]</td>
+ <td> removes unwanted left border in non-view pages </td>
+ </tr>
+ <tr>
+ <td> Item000 </td>
+ <td> replaced 9 tabs by 9 x 3 spaces </td>
+ </tr>
+ <tr>
+ <td> Item000 </td>
+ <td> Typo in ClassicSkin.pm </td>
+ </tr>
+ <tr>
+ <td> Item000 </td>
+ <td> Committed a whole lot of local setup by accident, reverting - sorry folks </td>
+ </tr>
+ <tr>
+ <td> Item000 </td>
+ <td> Typo fix in Search.pm </td>
+ </tr>
+ <tr>
+ <td> Item0 </td>
+ <td> Untainting the tainted title </td>
+ </tr>
+</table>
+
+The 4.0.1 release was built from SVN <http://svn.twiki.org:8181/svn/twiki/branches/TWikiRelease04x00> revision **8740**.
+
+## <a name="TWiki 4.0.2 Patch Release Detail"></a> TWiki 4.0.2 Patch Release Details
+
+The following fixes and minor enhancements have been addressed in this release:
+
+### <a name="TWiki 4.0.2 Fixes"></a> TWiki 4.0.2 Fixes
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item2004]]</td>
+ <td> Syntax error in DelimitedFile.pm </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1983]]</td>
+ <td> Search box bust when searching for WikiWords </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1978]]</td>
+ <td> Form.pm fails when the name field is [[Topic][fieldname]] for controls </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1971]]</td>
+ <td> Not possible to INCLUDE javascript from external sites </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1963]]</td>
+ <td> "public" in WEBLIST should include all webs if the user is an admin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1961]]</td>
+ <td> LANGUAGES variable very slow </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1958]]</td>
+ <td> RSS feed mentions the TWikiAdministrator as creator </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1951]]</td>
+ <td> Excluding topic from SEARCH does not exclude WebHome (Doc improvement) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1950]]</td>
+ <td> Denial of Service attack very easy on both Cairo and Dakar </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1944]]</td>
+ <td> Add Comment to Configure Page - AuthScripts section </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1937]]</td>
+ <td> rename script doesn't honour access control restrictions </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1935]]</td>
+ <td> preview script ignores access control settings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1925]]</td>
+ <td> rdiff and changes scripts ignore access settings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1921]]</td>
+ <td> Merging 3part duplicates the text screwing up the page </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1920]]</td>
+ <td> Hide form twisty gives poor usability for TWiki apps that use the form </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1912]]</td>
+ <td> 3-way merge doesn't call the plugins merge handler </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1911]]</td>
+ <td> Small typo correction in MANIFEST for upgrade_emails.pl </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1909]]</td>
+ <td> TWiki.pot should be included in distribution </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1903]]</td>
+ <td> Special chars not escaped in registration </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1902]]</td>
+ <td> New chars to escape during registration </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1900]]</td>
+ <td> Compatibility issue: variables only work when upper case. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1899]]</td>
+ <td> statistics ignore pages with dashes and underscores </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1898]]</td>
+ <td> configure is unhelpful if rcs is not installed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1897]]</td>
+ <td> Simultaneous edit feature is not at all reliable. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1896]]</td>
+ <td> Skin fallback not working </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1895]]</td>
+ <td> $topic not substituted right in INCLUDEWARNING </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1882]]</td>
+ <td> "Plural to singular" unmarked breaks documentation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1878]]</td>
+ <td> FORMLIST in ChangeForm.pm generates invalid html </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1871]]</td>
+ <td> Attachment table broken with version history </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1864]]</td>
+ <td> "Modify search" link in search results not working </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1863]]</td>
+ <td> missing oopslanguagechanged template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1853]]</td>
+ <td> Sandbox doesn't report full errors for command execution on Windows </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1850]]</td>
+ <td> checkPassword not checkPasswd </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1849]]</td>
+ <td> Typo in code: checkPassword not checkPasswd, so remove user does not work </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1848]]</td>
+ <td> .htaccess.txt internal documentation unclear </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1840]]</td>
+ <td> Inadequate upgrade documentation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1838]]</td>
+ <td> commonTagHandler garbles square bracket links in WebTopBar </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1830]]</td>
+ <td> Rename web does not work </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1829]]</td>
+ <td> the templates for SEARCH are broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1820]]</td>
+ <td> Reproducible case of not being able to log out </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1819]]</td>
+ <td> tainted username prevents exec() </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1803]]</td>
+ <td> Sorting bugs by merge field causes an internal error </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1789]]</td>
+ <td> User::isAdmin can create an empty SuperAdminGroup </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1788]]</td>
+ <td> Formatted search does not return values that are zero </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1787]]</td>
+ <td> I18N: Translation updates for 4.0.2 / new PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1781]]</td>
+ <td> Allow admin users to change passwords and mail addresses </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1778]]</td>
+ <td> Registration gives strange TWiki vars in user topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1771]]</td>
+ <td> Error message 'Oh dear' in warnyyyymm.txt isn't helpful </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1743]]</td>
+ <td> Attachment sort order is cockeyed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1729]]</td>
+ <td> Better localisation of variable in Net.pm </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1724]]</td>
+ <td> Attach: FILENAME AND FILEPATH not showing the file name with non-alpha characters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1720]]</td>
+ <td> Save script fails on old topic when sole argument is topicparent and there's a mandatory field in the form. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1714]]</td>
+ <td> quotes in attachment comment break manage form </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1687]]</td>
+ <td> Must set TWiki::Plugins::SESSION before invoking registered tag handler </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1677]]</td>
+ <td> STARTSECTION/ENDSECTION variables being stripped from templates </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1672]]</td>
+ <td> Change PatternSkin to use non-table based layout </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1657]]</td>
+ <td> RenderListPlugin broken. The case where you draw a tree view does not work </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1654]]</td>
+ <td> mailnotify does not enter the command_line context </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1652]]</td>
+ <td> REVINFO{$time} should display time, not date - time </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1649]]</td>
+ <td> TWikiJavascripts prototype.js causes crash on Internet Explorer. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1645]]</td>
+ <td> Someweb.WebTopicEditTemplate topic does not exist </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1636]]</td>
+ <td> ResetPasswd deletes email entry in .htpasswd </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1634]]</td>
+ <td> Pattern Skin in Dakar: verbatim text and large images makes everything wider than the screen. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1624]]</td>
+ <td> FORMFIELD variable always expands to value of most recent topic revision </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1623]]</td>
+ <td> PatternSkin: WebLeftBar border margin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1621]]</td>
+ <td> beforeSaveHandler not functioning correctly </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1619]]</td>
+ <td> Label form field content destroyed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1616]]</td>
+ <td> inaccurate password_changed message </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1611]]</td>
+ <td> Generic doc work for TWiki 4.0.2 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1610]]</td>
+ <td> Configure script corrupts NameFilter (Unmatched Bracket in Regex) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1608]]</td>
+ <td> TOC{"MyTopic" web="MyWeb" } no longer forwards </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1599]]</td>
+ <td> "Upgrading a Beta" documentation errors </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1595]]</td>
+ <td> WebTopicCreator disallows topic names containing numbers </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1587]]</td>
+ <td> upgrade_emails.pl script missing in TWiki 4 distro </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1583]]</td>
+ <td> INCLUDE of a topic of a specific revision is not backwards compatible. </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1579]]</td>
+ <td> Incorrect properties in the Discard button in the action bar for the spanish translation </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1574]]</td>
+ <td> Registration process tries to send extra emails </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1566]]</td>
+ <td> DakarReleaseNotes.html and TWikiDocumentation.html not included in distribution of TWiki4.0 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1553]]</td>
+ <td> Clean up "oops attention: merge_notice" </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1515]]</td>
+ <td> Localise formatting help </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1430]]</td>
+ <td> inconsistent width constraints on topbar and content area </td>
+ </tr>
+</table>
+
+### <a name="TWiki 4.0.2 Enhancements"></a> TWiki 4.0.2 Enhancements
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item1964]]</td>
+ <td> Configurable user homepage layout </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1960]]</td>
+ <td> WebRss lacks search options </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1956]]</td>
+ <td> Cleaned up Plugins.EmptyPlugin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1926]]</td>
+ <td> Usability: Add tabindex + setfocus to template login form in TWiki.PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1801]]</td>
+ <td> Improved doc </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1728]]</td>
+ <td> increase security by defaulting "send password" in email off </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1689]]</td>
+ <td> Add more colors for text ink in Plugins.WysiwygPlugin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1148]]</td>
+ <td> Consistent buttons in edit and editsettings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1147]]</td>
+ <td> "Raw view" should turn into "Normal View" in raw mode </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1146]]</td>
+ <td> Two "Create" buttons </td>
+ </tr>
+</table>
+
+The 4.0.2 release was built from SVN <http://svn.twiki.org:8181/svn/twiki/branches/TWikiRelease04x00> revision **9626**.
+
+## <a name="TWiki 4.0.3 Patch Release Detail"></a> TWiki 4.0.3 Patch Release Details
+
+The following fixes and minor enhancements have been addressed in this release:
+
+### <a name="TWiki 4.0.3 Fixes"></a> TWiki 4.0.3 Fixes
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item668]]</td>
+ <td> _default web gives include error for WebLeftBar but the topic does exist </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item444]]</td>
+ <td> oops upload message with empty file is not intelligent </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2530]]</td>
+ <td> Prevent infinite recursion in TMPL:INCLUDE when including generic templates </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2528]]</td>
+ <td> Support for shortest view URLs </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2524]]</td>
+ <td> Make templates independent on TablePlugin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2509]]</td>
+ <td> Render::getRenderedVersion converts translation token </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2487]]</td>
+ <td> Re-introducing attachment table list count </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2481]]</td>
+ <td> Need a configure data type to select a pluggable class (like TWiki::Store::*) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2476]]</td>
+ <td> Topic action buttons shown with search result </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2472]]</td>
+ <td> Get user web name from config and not from registration form </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2469]]</td>
+ <td> TWikiAdminGroup definition topic must be called TWikiAdminGroup (not configurable) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2467]]</td>
+ <td> Non-existing abbreviations in other than current web have web part stripped (AAA.BBB.FFF renders as FFF) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2464]]</td>
+ <td> Definition of a group always requires "Group" in the group name </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2463]]</td>
+ <td> rdiff should show HTML comments </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2441]]</td>
+ <td> Func::getWikiToolName documentation is incorrect </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2439]]</td>
+ <td> Rename TWikiRelease04x00x00.html to TWikiRelease04x00.html </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2436]]</td>
+ <td> PatternSkin does not support PAGEBGCOLOR </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2427]]</td>
+ <td> viewfile delivers .tgz files as text (wrong mime type) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2426]]</td>
+ <td> ICONTOPIC variable: Incorrect value deadlocks topic (no edit possible) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2422]]</td>
+ <td> Inconsistent LocalSite.cfg.txt settings </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2421]]</td>
+ <td> Rename: Referrer topics need to be linked explicit </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2409]]</td>
+ <td> Form field checkbox option lost on topic edit </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2402]]</td>
+ <td> Sandbox not aware of I18N for user names </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2399]]</td>
+ <td> statistics does not like date variable sent to it because its tainted </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2395]]</td>
+ <td> Always show e-mail addresses to admins (USERINFO / HideUserDetails setting) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2394]]</td>
+ <td> Allow registration without a running e-mail service (error during registration using TWiki::Net::_sendEmailBySendmail) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2390]]</td>
+ <td> beforeAttachmentSaveHandler is broken on Solaris and RedHat </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2380]]</td>
+ <td> Logins / logouts with template login does not work with I18N topic names </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2379]]</td>
+ <td> Inconsistent meta data in registration </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2369]]</td>
+ <td> WIKIUSERNAME incorrectly expanded </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2365]]</td>
+ <td> Email address handling for registration and in users homepage is confusing and not working </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2356]]</td>
+ <td> in sequential rdiff a changed region is classified as twikiDiffAdd* </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2353]]</td>
+ <td> Cannot lock out re-registration by using htpasswd file anymore </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2352]]</td>
+ <td> Support secret values in configure (display stars for passwords) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2347]]</td>
+ <td> Statistics without params updates only Main web </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2339]]</td>
+ <td> Unable to cleanly turn off WEBHEADERART completely causing unexpected major problems </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2338]]</td>
+ <td> Improve doc on session vars to preclude override of perms </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2336]]</td>
+ <td> Using htpasswd on the command line wipes out email address in .htpasswd file </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2333]]</td>
+ <td> TWiki::Func::readAttachment my line shows wrong parameters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2332]]</td>
+ <td> GoodStyle talks about "Initials"; obsolete </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2331]]</td>
+ <td> Calling a speedy-fied view cgi from the commandline breaks template login </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2327]]</td>
+ <td> TWiki on Apache 2.0 hangs (Diab's TWikiOnApache2dot0Hangs patch) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2324]]</td>
+ <td> PatternSkin menu layout issue with MS Internet Explorer 7 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2322]]</td>
+ <td> Comment box should have ability to be disabled by skin template </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2321]]</td>
+ <td> Performance improvements to Users.pm implementation (large user bases) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2318]]</td>
+ <td> Links in square brackets breaks if there is a space in front of chars like - and ( </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2317]]</td>
+ <td> ChangePassword confirms change without password-handler </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2315]]</td>
+ <td> Template file permissions more restrictive in tgz dist </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2309]]</td>
+ <td> Prevent change password to empty string (add MinPasswordLength configuration option) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2302]]</td>
+ <td> Restore Using Forms for Settings Feature </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2298]]</td>
+ <td> TWiki::Data::DelimitedFile is not as robust as it could be </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2297]]</td>
+ <td> Lock down TWiki.TWikiPreferences to admin group </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2293]]</td>
+ <td> Registration fails if no mail available </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2292]]</td>
+ <td> SMTP mail fails if the server requires auth </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2287]]</td>
+ <td> When printing a view page, the print style is not called </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2286]]</td>
+ <td> When you move an attachment the rename screen shows all topics that refers to the topic name </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2278]]</td>
+ <td> userToWikiName broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2274]]</td>
+ <td> I18N: Non US-ASCII chars in usernames breaks groups </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2271]]</td>
+ <td> Cannot "put back" a moved non-wikiword topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2261]]</td>
+ <td> Error in Apache log due to TWikiWebPreferences (File does not exist / ATTACHEDFILELINKFORMAT preference) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2259]]</td>
+ <td> TWiki::UI::Save::buildNewTopic does not treat onlywikiname as a Boolean </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2247]]</td>
+ <td> Unclosed DIV in viewprint.pattern.tmpl </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2244]]</td>
+ <td> Documented METASEARCH parameter defaults are not the actual defaults </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2234]]</td>
+ <td> natlogon broken due to recent changes in Client.pm </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2227]]</td>
+ <td> PatternSkin CSS updates for IE 7 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2226]]</td>
+ <td> When you delete an attachment the rename screen shows all topics that refers to the topic name </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2225]]</td>
+ <td> Attachments are being named the full path name instead of the filename only </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2223]]</td>
+ <td> Empty textarea generated in raw mode (VIEW_TEMPLATE issue) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2214]]</td>
+ <td> WebTopicCreator not stripping some disallowed characters </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2186]]</td>
+ <td> TWiki.SiteChanges shows oldest (not latest) changes </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2163]]</td>
+ <td> Groups should be defined in UsersWebName only (performance improvement) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2158]]</td>
+ <td> TWiki leaks memory - mod_perl processes continually grow </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2157]]</td>
+ <td> Rendering of links containing periods does not work properly </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2151]]</td>
+ <td> Delete usecase broken in PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2142]]</td>
+ <td> Add option to write email into user topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2141]]</td>
+ <td> Error.pm not in sync with CPAN state </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2140]]</td>
+ <td> AUTHORS missing translators' credits </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2133]]</td>
+ <td> Editform templates are missing some save parameters (templatetopic and text) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2126]]</td>
+ <td> Bulk register shouldn't change passwords of existing users </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2116]]</td>
+ <td> I18N: updated translations for TWiki 4.0.3 </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2109]]</td>
+ <td> Add css classes to PreferencesPlugin buttons </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2105]]</td>
+ <td> A form field defined as [[Main/Topic]] assumes that the topic is in the same web as the form </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2102]]</td>
+ <td> Clicking Upload without choosing a file gives error </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2097]]</td>
+ <td> Plugin API / Store.pm: beforeAttachmentSaveHandler broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2096]]</td>
+ <td> New topic missing from notification when renamed </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2090]]</td>
+ <td> Default values for fields not picked up in new form (TWIKI4 only) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2088]]</td>
+ <td> PatternSkin MANIFEST is missing PatternSkin.pm </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2057]]</td>
+ <td> TMPL:P parameters broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2054]]</td>
+ <td> JSCalendarContrib only works with IE in PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2050]]</td>
+ <td> Easier overriding of PatternSkin </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2048]]</td>
+ <td> Mailto links written as <a href="mailto:address">mailto:address</a> causes flooding with warning messages about uninitialized value </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2032]]</td>
+ <td> Some UTF8 characters in form values broken (CGI.pm interaction) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2029]]</td>
+ <td> Build script: New topics added to distribution are not versioned correctly </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2019]]</td>
+ <td> Add tracing to Client.pm (login scenarios) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2012]]</td>
+ <td> Break RCS locks on topics automatically when saving (Cairo upgrade issue) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2010]]</td>
+ <td> Email address in the email field for the user is not turned into a link </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2009]]</td>
+ <td> Email addresses are not fully padded with the NOSPAM </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2003]]</td>
+ <td> lib/CPAN/lib/Error.pm has debugging print enabled </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1989]]</td>
+ <td> Latest CGI::Session is broken </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1982]]</td>
+ <td> Sequence of form fields in topics do not follow form definition </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1980]]</td>
+ <td> Login text remains untranslated </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1941]]</td>
+ <td> If REPEATs are munged in templates, RDiff bombs out </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1939]]</td>
+ <td> Inconsistent handling of non-wikiword topic names when creating new topic </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1890]]</td>
+ <td> Wysiwyg plugin in infinite loop </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1869]]</td>
+ <td> Clarify security docs in configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1843]]</td>
+ <td> A 1.2 version of a topic cannot be deleted (spam) with cmd=delRev </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1651]]</td>
+ <td> Extract UserMapping and GroupMapping code out of User.pm and Users.pm (enable non-TWikiTopic based User and Groups definititions) </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1613]]</td>
+ <td> Renaming the Main web breaks several links to users </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1602]]</td>
+ <td> link to TWikiUpgradeGuide needed from TWiki Installation Guide </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item1560]]</td>
+ <td> Non-existing favicon.ico is referenced in upgraded Cairo webs </td>
+ </tr>
+</table>
+
+### <a name="TWiki 4.0.3 Enhancements"></a> TWiki 4.0.3 Enhancements
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>[[BUGS/Item2452]]</td>
+ <td> mime.types lacks some widely used file types </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2301]]</td>
+ <td> Put {linkProtocolPattern} into configure </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2282]]</td>
+ <td> SpreadSheetPlugin with SETIFEMPTY </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2155]]</td>
+ <td> Remove hardcoded fonts from twiki's default content </td>
+ </tr>
+ <tr>
+ <td>[[BUGS/Item2125]]</td>
+ <td> Add format parameter to META{"parent"} </td>
+ </tr>
+</table>
+
+The 4.0.3 release was built from SVN <http://svn.twiki.org:8181/svn/twiki/branches/TWikiRelease04x00> revision **10706**..
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`.
-Parameters are passed using '-name' - for example,
+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"
</tr>
<tr>
<td><code>webs</code></td>
- <td><strong>list</strong> of webs to run stats on </td>
- <td> none </td>
+ <td> comma-separated list of webs to run stats on </td>
+ <td> all accessible webs </td>
+ </tr>
+ <tr>
+ <td><code>logdate</code></td>
+ <td> YYYYMM to generate statistics for </td>
+ <td> current month </td>
</tr>
</table>
- **_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)`
+When running from the command line or a cron job, you can pass parameters to the script like this:
+
+ ./statistics -logdate 200605 -webs TWiki,Sandbox
+
### <a name="Generating statistics manually b"></a> Generating statistics manually by URL
- The `twiki/bin/statistics` script can also be executed as a CGI script, just enter the URL in your browser. Examples:
- - Update current month for all webs: %BR% `http://www.dementia.org/twiki/statistics`
+ - Update current month for all webs you have access to: %BR% `http://www.dementia.org/twiki/statistics`
- Update current month for Main web only: %BR% `http://www.dementia.org/twiki/statistics/Main`
- - Update January 2000 for Main web: %BR% `http://www.dementia.org/twiki/statistics/Main?logdate=201006`
+ - Update Jun 2010 for Main web: %BR% `http://www.dementia.org/twiki/statistics/Main?logdate=201006`
+ - Update Jun 2010 for the ProjectX, ProjectY and ProjectZ webs: %BR% `http://www.dementia.org/twiki/statistics?logdate=201006;webs=ProjectX,ProjectY,ProjectZ`
<a name="LogFiles"></a>
- 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 - 11:59 | [[TWikiGuest]] | view | [[WebRss]] |Â | 66.124.232.02 |</code>
+- Example log entry: %BR% <code>| 29 Jun 2010 - 12:00 | [[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>
<ul>
<li><a href="#Package =TWiki::Store="> Package TWiki::Store</a><ul>
<li><a href="#ClassMethod <strong>new</strong> ()"> ClassMethod new <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
<li><a href="#ObjectMethod <strong>readTopic</strong> ($user,"> ObjectMethod readTopic <tt>($user,$web,$topic,$version) -> ($metaObject,$text)</tt></a></li>
<li><a href="#ObjectMethod <strong>read_TopicRaw</strong> ($u"> ObjectMethod readTopicRaw <tt>($user,$web,$topic,$version) -> $topicText</tt></a></li>
<li><a href="#ObjectMethod <strong>moveAttachment</strong> ($"> ObjectMethod moveAttachment <tt>($oldWeb,$oldTopic,$oldAttachment,$newWeb,$newTopic,$newAttachment,$user)</tt></a></li>
Construct a Store module, linking in the chosen sub-implementation.
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+1. breaking circular references to allow garbage collection in persistent environments
+
## <a name="ObjectMethod <strong>readTopic</strong> ($user,"></a> [[ObjectMethod]] **readTopic** `($user,$web,$topic,$version) -> ($metaObject,$text)`
Reads the given version of a topic and it's meta-data. If the version is undef, then read the most recent version. The version number must be an integer, or undef for the latest version.
<li><a href="#ObjectMethod <strong>getRevision</strong> ($ver"> ObjectMethod getRevision <tt>($version) -> $text</tt></a></li>
<li><a href="#ObjectMethod *stored_DataExists*"> ObjectMethod storedDataExists <tt>() -> $boolean</tt></a></li>
<li><a href="#ObjectMethod <strong>getTimestamp</strong> () -"> ObjectMethod getTimestamp <tt>() -> $integer</tt></a></li>
- <li><a href="#ObjectMethod *restore_LatestRevi"> ObjectMethod restoreLatestRevision <tt>()</tt></a></li>
+ <li><a href="#ObjectMethod *restore_LatestRevi"> ObjectMethod restoreLatestRevision <tt>($wikiname)</tt></a></li>
<li><a href="#ObjectMethod <strong>removeWeb</strong> ($web)"> ObjectMethod removeWeb <tt>($web)</tt></a></li>
<li><a href="#ObjectMethod <strong>moveTopic</strong> ($newWe"> ObjectMethod moveTopic <tt>($newWeb,$newTopic)</tt></a></li>
<li><a href="#ObjectMethod <strong>copyTopic</strong> ($newWe"> ObjectMethod copyTopic <tt>($newWeb,$newTopic)</tt></a></li>
<li><a href="#ObjectMethod *get_RevisionAtTime"> ObjectMethod getRevisionAtTime <tt>($time) -> $rev</tt></a></li>
<li><a href="#ObjectMethod *get_AttachmentAttr"> ObjectMethod getAttachmentAttributes <tt>($web,$topic,$attachment)</tt></a></li>
<li><a href="#ObjectMethod *get_AttachmentList"> ObjectMethod getAttachmentList <tt>($web,$topic)</tt></a></li>
+ <li><a href="#ObjectMethod <strong>stringify</strong> ()"> ObjectMethod stringify <tt>()</tt></a></li>
</ul>
</li>
</ul>
Get the timestamp of the file Returns 0 if no file, otherwise epoch seconds
-## <a name="ObjectMethod <strong>restore_LatestRevi"></a> [[ObjectMethod]] \*restoreLatestRevision `()`
+## <a name="ObjectMethod <strong>restore_LatestRevi"></a> [[ObjectMethod]] \*restoreLatestRevision `($wikiname)`
Restore the plaintext file from the revision at the head.
## <a name="ObjectMethod <strong>get_AttachmentList"></a> [[ObjectMethod]] \*getAttachmentList `($web,$topic)`
returns \{\} of filename => \{ key => value, key2 => value \} for any given web, topic Ignores files starting with \_ or ending with ,v
+
+## <a name="ObjectMethod <strong>stringify</strong> ()"></a> [[ObjectMethod]] **stringify** `()`
+
+Generate string representation for debugging
<ul>
<li><a href="#Package =TWiki::Store::_RcsLite="> Package TWiki::Store::RcsLite</a><ul>
<li><a href="#File format"> File format</a></li>
+ <li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
</ul>
</li>
</ul>
</div>
+
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+1. breaking circular references to allow garbage collection in persistent environments
<div>
<ul>
<li><a href="#Package =TWiki::Store::_RcsWrap="> Package TWiki::Store::RcsWrap</a><ul>
+ <li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
<li><a href="#StaticMethod *parse_RevisionDiff"> StaticMethod parseRevisionDiff <tt>($text) -> \@diffArray</tt></a></li>
</ul>
</li>
</ul>
</div>
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+1. breaking circular references to allow garbage collection in persistent environments
+
## <a name="StaticMethod <strong>parse_RevisionDiff"></a> [[StaticMethod]] \*parseRevisionDiff `($text) -> \@diffArray`
<table border="1" cellpadding="0" cellspacing="0">
<td> >=3.05 </td>
</tr>
<tr>
+ <td> File::Temp </td>
+ <td> (included with perl 5.6 and later) </td>
+ </tr>
+ <tr>
<td> FileHandle </td>
<td> >=2.01 </td>
</tr>
- displays any previous version as a regular Web page or as raw topic text
- TWiki web
- a TWiki organizational unit to which the topic belongs
- - relevant when searching for a topic, referencing it or typing in it's URL
+ - relevant when searching for a topic, referencing it or typing in its URL
- meta-data
- hidden contextual data stored within each topic.
- parents
Presently this is called in [[RegisterCgiScript]] directly after a call to verify. The separation is intended for the [[RegistrationApprovals]] functionality
1. calls \_reloadUserContext (throws oops if appropriate)
-2. calls newUserFromTemplate()
+2. calls createUserTopic()
3. if using the htpasswdFormatFamily, calls \_addUserToPasswordSystem
4. calls the misnamed [[RegistrationHandler]] to set cookies
-5. calls addUserToTWikiUsersTopic
+5. calls addUserToMapping
6. writes the logEntry (if wanted :/)
7. redirects browser to 'oopsregthanks'
<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="#Upgrading from Cairo to TWiki4 ("> Upgrading from Cairo to TWiki4 (additional advice)</a><ul>
+ <li><a href="#Favicon"> Favicon</a></li>
+ </ul>
+ </li>
</ul>
</li>
</ul>
## <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 [[TWikiReleaseNotes04x00x00]].
+See [[TWikiReleaseNotes04x00]].
## <a name="Automated Upgrade Procedure"></a> Automated Upgrade Procedure
**If** you changed any of the distributed files, you will have to continue from Step 5 above.
+## <a name="Upgrading from Cairo to TWiki4 ("></a> Upgrading from Cairo to TWiki4 (additional advice)
+
+### <a name="Favicon"></a> Favicon
+
+TWiki4's [[PatternSkin]] introduces the use of the favicon feature which most browsers use to show a small icon in front of the URL and for bookmarks.
+
+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.
+
+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
<li><a href="#Password Management"> Password Management</a></li>
<li><a href="#New User Registration"> New User Registration</a></li>
<li><a href="#Login Management"> Login Management</a><ul>
- <li><a href="#No Login"> No Login</a></li>
- <li><a href="#Template Login"> Template Login</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>
<li><a href="#Enabling Template Login"> Enabling Template Login</a></li>
</ul>
</li>
- <li><a href="#Apache Login"> Apache Login</a><ul>
+ <li><a href="#Apache Login (select =TWiki::Cli"> Apache Login (select TWiki::Client::ApacheLogin in configure)</a><ul>
<li><a href="#Enabling Apache Login using =mod"> Enabling Apache Login using mod_auth</a></li>
<li><a href="#Logons via bin/logon"> Logons via bin/logon</a></li>
</ul>
You can select your chosen login through the Security Settings pane in the `configure` interface.
-### <a name="No Login"></a> No Login
+### <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]].
-### <a name="Template Login"></a> Template Login
+### <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.
#### <a name="Enabling Template Login"></a> Enabling Template Login
1. Use the [ `configure` ](http://www.dementia.org/twiki/configure) interface to
- 1. enable the `TemplateLogin` login manager (on the Security Settings pane).
+ 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 recongises 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.
+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.
3. Create a new topic to check if authentication works.
4. **Edit the [[TWikiAdminGroup]] topic in the Main web to include users with system administrator status.**<br /> %X% **This is a very important step**, as users in this group can access _all_ topics, independent of TWiki access controls.
%T% You can customize the default user home page in [[NewUserTemplate]]. The same variables get expanded as in the [[template topics|Main/TWikiTemplates#Template_Topics]]
-### <a name="Apache Login"></a> Apache Login
+### <a name="Apache Login (select <code>TWiki::Cli"></a> Apache Login (select =TWiki::Client::ApacheLogin in configure)
Using this method TWiki does not authenticate users internally. Instead it depends on the `REMOTE_USER` environment variable, which is set when you enable authentication in the webserver.
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.
+**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="Enabling Apache Login using <code>mod"></a> Enabling Apache Login using =mod\_auth
You can use any other Apache authentication module that sets REMOTE\_USER.
-1. Use [configure](http://www.dementia.org/twiki/configure#LoginManager) to select the `ApacheLogin` login manager.
+1. Use [configure](http://www.dementia.org/twiki/configure#LoginManager) to select the `TWiki::Client::ApacheLogin` login manager.
2. Use [configure](http://www.dementia.org/twiki/configure#PasswordManager) to set up TWiki to create the right kind of `.htpasswd` entries.
3. Create a `.htaccess` file in the `twiki/bin` directory.<br />%H% There is an template for this file in `twiki/bin/.htaccess.txt` that you can copy and change. The comments in the file explain what need to be done.<br />%H% If you got it right, the browser should now ask for login name and password when you click on the <u>Edit</u>. If `.htaccess` does not have the desired effect, you may need to "AllowOverride All" for the directory in `httpd.conf` (if you have root access; otherwise, e-mail web server support) <br /> %X% At this time [[TWikiAccessControls]] do not control access to files in the `pub` area, unless they are only accessed through the `viewfile` script. If your `pub` directory is set up to allow open access you may want to add `.htaccess` files in there as well to restrict access
4. You can create a custom version of [[TWikiRegistration]] by deleting or adding input tags. The `name=""` parameter of the input tags must start with: `"Twk0..."` (if this is an optional entry), or `"Twk1..."` (if this is a required entry). This ensures that the fields are carried over into the user home page correctly. <br />You can customize the default user home page in [[NewUserTemplate]]. The same variables get expanded as in the [[template topics|Main/TWikiTemplates#Template_Topics]]
%SESSION_VARIABLE{ "varName" set="varValue" }%
%SESSION_VARIABLE{ "varName" clear="" }%
+Note that you **cannot** override access controls preferences this way.
+
### <a name="Cookies and Transparent Session"></a><a name="Cookies and Transparent Session "></a> Cookies and Transparent Session IDs
TWiki normally uses cookies to store session information on a client computer. Cookies are a common way to pass session information from client to server. TWiki cookies simply hold a unique session identifier that is used to look up a database of session information on the TWiki server.
<ul>
<li><a href="#Package =TWiki::Users="> Package TWiki::Users</a><ul>
<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 <strong>createUser</strong> ($logi"> ObjectMethod createUser <tt>($login,$wikiname) -> $userobject</tt></a></li>
- <li><a href="#ObjectMethod *add_UserToTWikiUse"> ObjectMethod addUserToTWikiUsersTopic <tt>($user) -> $topicName</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>
Construct the user management object
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+1. breaking circular references to allow garbage collection in persistent environments
+
## <a name="ObjectMethod <strong>findUser</strong> ($name[,"></a> [[ObjectMethod]] **findUser** `($name[,$wikiname][,$nocreate]) -> $userObject`
- `$name` - login name or wiki name
- `$wikiname` - optional, wikiname for created user
-- `$nocreate` - optional, disable creation of user object for user not found in [[TWikiUsers]]
+- `$nocreate` - optional, disable creation of user object for user not found
-Find the user object corresponding to `$name`, which may be either a login name or a wiki name. The name is looked up in the [[TWikiUsers]] topic. If `$name` is found (either in the list of login names or the list of wiki names) the corresponding user object is returned. In this case `$wikiname` is ignored.
+Find the user object corresponding to `$name`, which may be either a login name or a wiki name. If `$name` is found (either in the list of login names or the list of wiki names) the corresponding user object is returned. In this case `$wikiname` is ignored.
If they are not found, and `$nocreate` is true, then return undef.
-If `$nocreate` is false, then a user object is returned even if the user is not listed in [[TWikiUsers]].
+If `$nocreate` is false, then a user object is returned even if the user is not known.
If `$nocreate` is false, and no `$wikiname` is given, then the `$name` is used for both login name and wiki name.
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_UserToTWikiUse"></a> [[ObjectMethod]] \*addUserToTWikiUsersTopic `($user) -> $topicName`
+## <a name="ObjectMethod <strong>add_UserToMapping*"></a> [[ObjectMethod]] \*addUserToMapping `($user) -> $topicName`
-Add a user to the [[TWikiUsers]] topic. This is a topic that maps from usernames to wikinames. It is maintained by Register.pm, or manually outside TWiki.
+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`
<ul>
<li><a href="#Package =TWiki::Users::Password="> Package TWiki::Users::Password</a><ul>
<li><a href="#ClassMethod <strong>new</strong> ($session) ->"> ClassMethod new <tt>($session) -> $object</tt></a></li>
+ <li><a href="#ObjectMethod *finish*"> ObjectMethod finish <tt></tt></a></li>
<li><a href="#ObjectMethod <strong>fetchPass</strong> ($login"> ObjectMethod fetchPass <tt>($login) -> $passwordE</tt></a></li>
<li><a href="#ObjectMethod <strong>checkPassword</strong> ($u"> ObjectMethod checkPassword <tt>($user,$passwordU) -> $boolean</tt></a></li>
<li><a href="#ObjectMethod <strong>deleteUser</strong> ($user"> ObjectMethod deleteUser <tt>($user) -> $boolean</tt></a></li>
Constructs a new password handler of this type, referring to $session for any required TWiki services.
+## <a name="ObjectMethod <strong>finish*"></a><a name="ObjectMethod *finish</strong> "></a> [[ObjectMethod]] **finish** ``
+
+Complete processing after the client's HTTP request has been responded to.
+
+1. breaking circular references to allow garbage collection in persistent environments
+
## <a name="ObjectMethod <strong>fetchPass</strong> ($login"></a> [[ObjectMethod]] **fetchPass** `($login) -> $passwordE`
Implements TWiki::Password
--- /dev/null
+## <a name="TWiki Variables Quickstart"></a> TWiki Variables Quickstart
+
+TWiki Variables are names that are enclosed in percent signs `%` that are expanded on the fly. Some variables take arguments, such as `%INCLUDE%`. For those variables, the arguments are included in curly braces (\{ and \}).
+
+<table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Variable </strong></th>
+ <th bgcolor="#99CCCC"><strong> In brief </strong></th>
+ <th bgcolor="#99CCCC"><strong> Full documentation </strong></th>
+ </tr>
+ <tr>
+ <td><code>%TOC%</code></td>
+ <td> Automatically generates a table of contents based on headings in a topic - see the top of this page for an example. </td>
+ <td>[[Main/VarTOC]]</td>
+ </tr>
+ <tr>
+ <td><code>%WEB%</code></td>
+ <td> The current web, is <b>%WEB%</b>. </td>
+ <td>[[Main/VarWEB]]</td>
+ </tr>
+ <tr>
+ <td><code>%TOPIC%</code></td>
+ <td> The current topic name, is <b>WebHome</b>. </td>
+ <td>[[Main/VarTOPIC]]</td>
+ </tr>
+ <tr>
+ <td><code>%ATTACHURL%</code></td>
+ <td> The attachment URL of the current topic. Example usage: If you attach a file to a topic you can refer to it as <code><b>%ATTACHURL%/image.gif</b></code> to show the URL of the file or the image in your text. </td>
+ <td>[[Main/VarATTACHURL]]</td>
+ </tr>
+ <tr>
+ <td><code>%INCLUDE{"SomeTopic"}%</code></td>
+ <td> Server side include, includes another topic. The current web is the default web. Example: <code><b>%INCLUDE{"TWiki.SiteMap"}%</b></code></td>
+ <td>[[Main/VarINCLUDE]]</td>
+ </tr>
+ <tr>
+ <td><code>%SEARCH{"sushi"}%</code></td>
+ <td> Inline search showing the search result embedded in a topic. [[Main/FormattedSearch]] gives you control over formatting, useful for creating web-based applications. </td>
+ <td>[[Main/VarSEARCH]]</td>
+ </tr>
+</table>
+
+[[TWikiPreferences]] defines some site-wide variables. Among them are:
+
+- **Line break:** Write `%BR%` to start a new line.
+- **Colored text:** Write: `%RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors` to get: %RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors.
+
+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]].
+
+<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%.
</tr>
<tr>
<td align="right"> Version: </td>
- <td> 8515 </td>
+ <td> 10613 </td>
</tr>
<tr>
<td align="right"> Change History: </td>
**_Related Topics:_** [[TWikiPreferences]]
--- TWiki:Main.LynnwoodBrown - 21:45:10 31 March 2006
+-- TWiki:Main.LynnwoodBrown - 02:19:16 26 June 2006
</tr>
<tr>
<td><code><b>data/TWiki/TwistyContrib.txt</b></code></td>
- <td> NEW </td>
+ <td> Â </td>
</tr>
<tr>
<td><code><b>lib/TWiki/Contrib/TwistyContrib.pm</b></code></td>
- <td> NEW </td>
+ <td> Â </td>
</tr>
<tr>
<td><code><b>pub/TWiki/TwistyContrib/toggle-optm-jsoff-sep.html</b></code></td>
- <td> NEW </td>
+ <td> Â </td>
</tr>
<tr>
<td><code><b>pub/TWiki/TwistyContrib/twist.css</b></code></td>
- <td> NEW </td>
+ <td> Â </td>
</tr>
<tr>
<td><code><b>pub/TWiki/TwistyContrib/twist.js</b></code></td>
- <td> NEW </td>
+ <td> Â </td>
</tr>
</table>
--- /dev/null
+## <a name="Using HTML"></a> Using HTML
+
+You can use just about any HTML tag without a problem. You can add HTML if there is no TWiki equivalent, for example, write `<strike>deleted text</strike>` to get <strike>deleted text</strike>.
+
+%X% There are a few usability and technical considerations to keep in mind:
+
+- On collaboration pages, it's better **not** to use HTML, but to use [[TWiki shorthand|Main/WebHome#TWikiShorthand]] instead - this keeps the text uncluttered and easy to edit.
+- If you use HTML use [XHTML 1.0 Transitional](http://www.w3.org/TR/xhtml1/) syntax.
+- %X% Script tags may be filtered out, at the discretion of your TWiki administrator.
+
+Recommendations when pasting HTML from other sources:
+
+- Copy only text between `<body>` and `</body>` tags.
+- Remove all empty lines. TWiki inserts `<p />` paragraph tags on empty lines, which causes problems if done between HTML tags that do not allow paragraph tags, like for example between table tags.
+- Remove leading spaces. TWiki might interpret some text as lists.
+- Do not span a tag over more than one line. TWiki requires that the opening and closing angle brackets - <code>**<...>**</code> - of an HTML tag are on the same line, or the tag will be broken.
+- In your HTML editing program, save without hard line breaks on text wrap.
+
+%T% TWiki converts shorthand notation to HTML for display. To copy a fully marked-up page, simply view the source in your browser and save the contents. If you need to save HTML frequently, you may want to check out TWiki:Plugins/PublishAddOn.
--- /dev/null
+<a name="VarACTIVATEDPLUGINS"></a>
+
+### <a name="ACTIVATEDPLUGINS -- list of curr"></a> ACTIVATEDPLUGINS -- list of currently activated plugins
+
+- Syntax: `%ACTIVATEDPLUGINS%`
+- Expands to: [[SpreadSheetPlugin]], [[CommentPlugin]], [[EditTablePlugin]], [[InterwikiPlugin]], [[PreferencesPlugin]], [[SlideShowPlugin]], [[SmiliesPlugin]], [[TablePlugin]], [[TwistyPlugin]]
+- Related: [[PLUGINDESCRIPTIONS|Main/WebHome#VarPLUGINDESCRIPTIONS]], [[FAILEDPLUGINS|Main/WebHome#VarFAILEDPLUGINS]], [[PLUGINVERSION|Main/WebHome#VarPLUGINVERSION2]]
--- /dev/null
+<a name="VarALLVARIABLES"></a>
+
+### <a name="ALLVARIABLES -- list of currentl"></a> ALLVARIABLES -- list of currently defined TWikiVariables
+
+- Syntax: `%ALLVARIABLES%`
+- Expands to: a table showing all defined [[TWikiVariables]] in the current context
--- /dev/null
+<a name="VarATTACHURL"></a>
+
+### <a name="ATTACHURL -- full URL for attach"></a> ATTACHURL -- full URL for attachments in the current topic
+
+- 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]]
--- /dev/null
+<a name="VarATTACHURLPATH"></a>
+
+### <a name="ATTACHURLPATH -- path of the att"></a> ATTACHURLPATH -- path of the attachment URL of the current topic
+
+- Syntax: `%ATTACHURLPATH%`
+- Expands to: `http://www.dementia.org/twiki//view`
+- Related: [[ATTACHURL|Main/WebHome#VarATTACHURL]], [[PUBURL|Main/WebHome#VarPUBURL]], [[FileAttachments]]
--- /dev/null
+<a name="VarAUTHREALM"></a>
+
+### <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.
+- 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="VarBASETOPIC"></a>
+
+### <a name="BASETOPIC -- base topic where an"></a> BASETOPIC -- base topic where an INCLUDE started
+
+- The name of the topic where a single or nested INCLUDE started - same as `%TOPIC%` if there is no INCLUDE
+- Syntax: `%BASETOPIC%`
+- Related: [[BASEWEB|Main/WebHome#VarBASEWEB]], [[INCLUDINGTOPIC|Main/WebHome#VarINCLUDINGTOPIC]], [[INCLUDE|Main/WebHome#VarINCLUDE]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarBASEWEB"></a>
+
+### <a name="BASEWEB -- base web where an INC"></a> BASEWEB -- base web where an INCLUDE started
+
+- The web name where the includes started, e.g. the web of the first topic of nested includes. Same as `%WEB%` in case there is no include.
+- Syntax: `%BASEWEB%`
+- Related: [[BASETOPIC|Main/WebHome#VarBASETOPIC]], [[INCLUDINGWEB|Main/WebHome#VarINCLUDINGWEB]], [[INCLUDE|Main/WebHome#VarINCLUDE]], [[WEB|Main/WebHome#VarWEB]]
--- /dev/null
+<a name="VarDATE"></a>
+
+### <a name="DATE -- signature format date"></a> DATE -- signature format date
+
+- Syntax: `%DATE%`
+- Expands to: `29 Jun 2010`
+- **_%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{"format"}|Main/WebHome#VarGMTIME2]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
--- /dev/null
+<a name="VarDISPLAYTIME"></a>
+
+### <a name="DISPLAYTIME -- display time"></a> DISPLAYTIME -- display time
+
+- Syntax: `%DISPLAYTIME%`
+- Expands to: `29 Jun 2010 - 16:00`
+- Related: [[DISPLAYTIME{"format"}|Main/WebHome#VarDISPLAYTIME2]], [[GMTIME|Main/WebHome#VarGMTIME]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
--- /dev/null
+<a name="VarDISPLAYTIME2"></a>
+
+### <a name="DISPLAYTIME{"format"} -- formatt"></a> DISPLAYTIME\{"format"\} -- formatted display time
+
+- Formatted time - either GMT or Local server time, depending on setting in [configure](http://www.dementia.org/twiki/configure). Same format qualifiers as `%GMTIME%`
+- Syntax: `%DISPLAYTIME{"format"}%`
+- Example: `%DISPLAYTIME{"$hou:$min"}%` expands to `16:00`
+- Related: [[DISPLAYTIME|Main/WebHome#VarDISPLAYTIME]], [[GMTIME|Main/WebHome#VarGMTIME]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
--- /dev/null
+<a name="VarENCODE"></a>
+
+### <a name="ENCODE{"string"} -- encodes a st"></a> ENCODE\{"string"\} -- encodes a string to HTML entities
+
+- Encode "special" characters to HTML numeric entities. Encoded characters are:
+ - all non-printable ASCII characters below space, except newline (`"\n"`) and linefeed (`"\r"`)
+ - HTML special characters `"<"`, `">"`, `"&"`, single quote (`'`) and double quote (`"`)
+ - TWiki special characters `"%"`, `"["`, `"]"`, `"@"`, `"_"`, `"*"`, `"="` and `"|"`
+- Syntax: `%ENCODE{"string"}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"string"</code></td>
+ <td> String to encode </td>
+ <td> required (can be empty) </td>
+ </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>
+ </tr>
+ <tr>
+ <td><code>type="url"</code></td>
+ <td> Encode special characters for URL parameter use, like a double quote into <code>%22</code></td>
+ <td> (this is the default) </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" }%" />`
+- Related: [[URLPARAM|Main/WebHome#VarURLPARAM]]
--- /dev/null
+<a name="VarENDSECTION"></a>
+
+### <a name="ENDSECTION{"name"} -- marks the"></a><a name="ENDSECTION{"name"} -- marks the "></a> ENDSECTION\{"name"\} -- marks the end of a named section within a topic
+
+- Syntax: `%ENDSECTION{"name"}%`
+- Syntax: `%ENDSECTION{type="include"}%`
+- Supported parameter: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"name"</code></td>
+ <td> Name of the section. </td>
+ </tr>
+ <tr>
+ <td><code>type="..."</code></td>
+ <td> Type of the section being terminated; supported types <code>"section"</code>, <code>"include"</code>, <code>"templateonly"</code>. </td>
+ </tr>
+</table>
+- If the `STARTSECTION` is named, the corresponding `ENDSECTION` must also be named with the same name. If the `STARTSECTION` specifies a type, then the corresponding `ENDSECTION` must also specify the same type. If the section is unnamed, `ENDSECTION` will match with the nearest unnamed `%STARTSECTION%` **of the same type** above it.
+- Related: [[STARTSECTION|Main/WebHome#VarSTARTSECTION]]
--- /dev/null
+<a name="VarFAILEDPLUGINS"></a>
+
+### <a name="FAILEDPLUGINS -- debugging for p"></a> FAILEDPLUGINS -- debugging for plugins that failed to load, and handler list
+
+- Syntax: `%FAILEDPLUGINS%`
+- Expands to: See [[TWikiPlugins#FAILEDPLUGINS]]
+- Related: [[PLUGINDESCRIPTIONS|Main/WebHome#VarPLUGINDESCRIPTIONS]], [[ACTIVATEDPLUGINS|Main/WebHome#ACTIVATEDPLUGINS]], [[PLUGINVERSION|Main/WebHome#PLUGINVERSION2]]
--- /dev/null
+<a name="VarFORMFIELD"></a>
+
+### <a name="FORMFIELD{"fieldname"} -- render"></a> FORMFIELD\{"fieldname"\} -- renders a field in the form attached to some topic
+
+- Syntax: `%FORMFIELD{"fieldname"}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"fieldname"</code></td>
+ <td> The name of a [[Main/TWikiForms]] field </td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>topic="..."</code></td>
+ <td> Topic where form data is located. May be of the form <code>Web.TopicName</code></td>
+ <td> Current topic </td>
+ </tr>
+ <tr>
+ <td><code>format="..."</code></td>
+ <td> Format string. <code>$value</code> expands to the field value, and <code>$title</code> expands to the field title </td>
+ <td><code>"$value"</code></td>
+ </tr>
+ <tr>
+ <td><code>default="..."</code></td>
+ <td> Text shown when no value is defined for the field </td>
+ <td><code>""</code></td>
+ </tr>
+ <tr>
+ <td><code>alttext="..."</code></td>
+ <td> Text shown when field is not found in the form </td>
+ <td><code>""</code></td>
+ </tr>
+</table>
+- Example: `%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field found"}%`
+- Related: [[SEARCH|Main/WebHome#VarSEARCH]]
--- /dev/null
+<a name="VarGMTIME"></a>
+
+### <a name="GMTIME -- GM time"></a> GMTIME -- GM time
+
+- Syntax: `%GMTIME%`
+- Expands to: `29 Jun 2010 - 16:00`
+- **_%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{"format"}|Main/WebHome#VarGMTIME2]], [[SERVERTIME|Main/WebHome#VarSERVERTIME]]
--- /dev/null
+<a name="VarGMTIME2"></a>
+
+### <a name="GMTIME{"format"} -- formatted GM"></a> GMTIME\{"format"\} -- formatted GM time
+
+- Syntax: `%GMTIME{"format"}%`
+- Supported variables: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Variable: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Unit: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Example </strong></th>
+ </tr>
+ <tr>
+ <td><code>$seconds</code></td>
+ <td> seconds </td>
+ <td> 59 </td>
+ </tr>
+ <tr>
+ <td><code>$minutes</code></td>
+ <td> minutes </td>
+ <td> 59 </td>
+ </tr>
+ <tr>
+ <td><code>$hours</code></td>
+ <td> hours </td>
+ <td> 23 </td>
+ </tr>
+ <tr>
+ <td><code>$day</code></td>
+ <td> day of month </td>
+ <td> 31 </td>
+ </tr>
+ <tr>
+ <td><code>$wday</code></td>
+ <td> day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) </td>
+ <td> Thu </td>
+ </tr>
+ <tr>
+ <td><code>$dow</code></td>
+ <td> day of the week (Sun = 0) </td>
+ <td> 2 </td>
+ </tr>
+ <tr>
+ <td><code>$week</code></td>
+ <td> number of week in year (ISO 8601) </td>
+ <td> 34 </td>
+ </tr>
+ <tr>
+ <td><code>$month</code></td>
+ <td> month in ISO format </td>
+ <td> Dec </td>
+ </tr>
+ <tr>
+ <td><code>$mo</code></td>
+ <td> 2 digit month </td>
+ <td> 12 </td>
+ </tr>
+ <tr>
+ <td><code>$year</code></td>
+ <td> 4 digit year </td>
+ <td> 1999 </td>
+ </tr>
+ <tr>
+ <td><code>$ye</code></td>
+ <td> 2 digit year </td>
+ <td> 99 </td>
+ </tr>
+ <tr>
+ <td><code>$tz</code></td>
+ <td> either "GMT" (if set to gmtime), or "Local" (if set to servertime) </td>
+ <td> GMT </td>
+ </tr>
+ <tr>
+ <td><code>$iso</code></td>
+ <td> ISO format timestamp </td>
+ <td> 2010-06-29T16:00:39Z </td>
+ </tr>
+ <tr>
+ <td><code>$rcs</code></td>
+ <td> RCS format timestamp </td>
+ <td> 2010/06/29 16:00:39 </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>
+ </tr>
+ <tr>
+ <td><code>$epoch</code></td>
+ <td> Number of seconds since 00:00 on 1st January, 1970 </td>
+ <td> 1277827239 </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`
+- **_%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]]
--- /dev/null
+<a name="VarGROUPS"></a>
+
+### <a name="GROUPS -- a formatted list of gr"></a> GROUPS -- a formatted list of groups
+
+- Expands to a formatted list of user groups in your %WIKITOOLNAME%.
+- Syntax: `%GROUPS%`
+- The variable is intended to be used in [[TWikiGroups]], to allow a group listing for various user mapping managers.
+- Related: [[REMOTE_USER|Main/TWikiVariables#VarREMOTEUSER]], [[USERINFO|Main/TWikiVariables#VarUSERINFO]], [[USERNAME|Main/TWikiVariables#VarUSERNAME]], [[WIKIUSERNAME|Main/TWikiVariables#VarWIKIUSERNAME]], [[WIKIUSERSTOPIC|Main/TWikiVariables#VarWIKIUSERSTOPIC]]
--- /dev/null
+<a name="VarHOMETOPIC"></a>
+
+### <a name="HOMETOPIC -- home topic in each"></a><a name="HOMETOPIC -- home topic in each "></a> HOMETOPIC -- home topic in each web
+
+- Syntax: `%HOMETOPIC%`
+- Expands to: `WebHome`, renders as [[WebHome]]
+- Related: [[NOTIFYTOPIC|Main/WebHome#VarNOTIFYTOPIC]], [[STATISTICSTOPIC|Main/WebHome#VarSTATISTICSTOPIC]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarHTTP"></a>
+
+### <a name="HTTP -- get HTTP headers"></a> HTTP -- get HTTP headers
+
+- Called with the name of an HTTP header field, returns its value. Capitalization and the use of hyphens versus underscores are not significant.
+- Syntax: `%HTTP%`
+- Syntax: `%HTTP{"Header-name"}%`
+- Examples: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><code>%HTTP%</code></td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>%HTTP{"Accept-language"}%</code></td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>%HTTP{"User-Agent"}%</code></td>
+ <td> Â </td>
+ </tr>
+</table>
+- **_%X% Note:_** You can see the HTTP headers your browser sends to the server on a number of sites e.g. <http://www.ericgiguere.com/tools/http-header-viewer.html>
+- Related: [[HTTPS|Main/WebHome#VarHTTPS]], [[REMOTE_ADDR|Main/WebHome#VarREMOTEADDR]], [[REMOTE_PORT|Main/WebHome#VarREMOTEPORT]], [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]]
--- /dev/null
+<a name="VarHTTPHOST"></a>
+
+### <a name="HTTP_HOST -- environment variabl"></a> HTTP\_HOST -- environment variable
+
+- Syntax: `%HTTP_HOST%`
+- Expands to: ==
+- Related: [[REMOTE_ADDR|Main/WebHome#VarREMOTEADDR]], [[REMOTE_PORT|Main/WebHome#VarREMOTEPORT]], [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]]
--- /dev/null
+<a name="VarHTTPS"></a>
+
+### <a name="HTTPS -- get HTTPS headers"></a> HTTPS -- get HTTPS headers
+
+- The same as `%HTTP%` but operates on the HTTPS environment variables present when the SSL protocol is in effect. Can be used to determine whether SSL is turned on.
+- Syntax: `%HTTPS%`
+- Syntax: `%HTTPS{"Header-name"}%`
+- Related: [[HTTP|Main/WebHome#VarHTTP]], [[REMOTE_ADDR|Main/WebHome#VarREMOTEADDR]], [[REMOTE_PORT|Main/WebHome#VarREMOTEPORT]], [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]]
--- /dev/null
+<a name="VarICON"></a>
+
+### <a name="ICON{"name"} -- small documentat"></a> ICON\{"name"\} -- small documentation graphic or icon of common attachment types
+
+- Generates the HTML img tag of a small graphic image attached to [[TWikiDocGraphics]]. Images typically have a 16x16 pixel size. You can select a specific image by name, or you can give a full filename, in which case the type of the file will be used to select one of a collection of common file type icons.
+- Syntax: `%ICON{"name"}%`
+- Examples:
+ - `%ICON{"flag-gray"}%` returns <img src="http://www.dementia.org/twiki//view/Main/WebHome/flag-gray.gif" width="16" height="16" alt="flag-gray" />
+ - `%ICON{"pdf"}%` returns <img src="http://www.dementia.org/twiki//view/Main/WebHome/pdf.gif" width="16" height="16" alt="pdf" />
+ - `%ICON{"smile.pdf"}%` returns <img src="http://www.dementia.org/twiki//view/Main/WebHome/pdf.gif" width="16" height="16" alt="smile.pdf" />
+ - `%ICON{"/dont/you/dare/smile.pdf"}%` returns <img src="http://www.dementia.org/twiki//view/Main/WebHome/pdf.gif" width="16" height="16" alt="/dont/you/dare/smile.pdf" />
+ - `%ICON{"http://twiki.org/doc/xhtml.xsl"}%` returns <img src="http://www.dementia.org/twiki//view/Main/WebHome/xsl.gif" width="16" height="16" alt="http://twiki.org/doc/xhtml.xsl" />
+- Graphic samples: <img src="http://www.dementia.org/twiki//view/Main/WebHome/arrowbright.gif" width="16" height="16" alt="arrowbright" /> `arrowbright`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/bubble.gif" width="16" height="16" alt="bubble" /> `bubble`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/choice-yes.gif" width="16" height="16" alt="choice-yes" /> `choice-yes`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/hand.gif" width="16" height="16" alt="hand" /> `hand`
+- File type samples: <img src="http://www.dementia.org/twiki//view/Main/WebHome/bmp.gif" width="16" height="16" alt="bmp" /> `bmp`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/doc.gif" width="16" height="16" alt="doc" /> `doc`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/gif.gif" width="16" height="16" alt="gif" /> `gif`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/hlp.gif" width="16" height="16" alt="hlp" /> `hlp`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/html.gif" width="16" height="16" alt="html" /> `html`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/mp3.gif" width="16" height="16" alt="mp3" /> `mp3`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/pdf.gif" width="16" height="16" alt="pdf" /> `pdf`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/ppt.gif" width="16" height="16" alt="ppt" /> `ppt`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/txt.gif" width="16" height="16" alt="txt" /> `txt`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/xls.gif" width="16" height="16" alt="xls" /> `xls`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/xml.gif" width="16" height="16" alt="xml" /> `xml`, <img src="http://www.dementia.org/twiki//view/Main/WebHome/zip.gif" width="16" height="16" alt="zip" /> `zip`
+- Related: [[ICONURL|Main/WebHome#VarICONURL]], [[ICONURLPATH|Main/WebHome#VarICONURLPATH]], [[TWikiPreferences]], [[FileAttachments]], [[TWikiDocGraphics]]
--- /dev/null
+<a name="VarICONURL"></a>
+
+### <a name="ICONURL{"name"} -- URL of small"></a><a name="ICONURL{"name"} -- URL of small "></a> ICONURL\{"name"\} -- URL of small documentation graphic or icon
+
+- Generates the full URL of a [[TWikiDocGraphics]] image, which TWiki renders as an image. The related `%ICON{"name"}%` generates the full HTML img tag. Specify image name or full filename (see [[ICON|Main/WebHome#VarICON]] for details on filenames.)
+- Syntax: `%ICONURL{"name"}%`
+- Examples:
+ - `%ICONURL{"arrowbright"}%` returns http://www.dementia.org/twiki//view/Main/WebHome/arrowbright.gif
+ - `%ICONURL{"novel.pdf"}%` returns http://www.dementia.org/twiki//view/Main/WebHome/pdf.gif
+ - `%ICONURL{"/queen/boheme.mp3"}%` returns http://www.dementia.org/twiki//view/Main/WebHome/mp3.gif
+- Related: [[ICONURLPATH|Main/WebHome#VarICONURLPATH]], [[ICON|Main/WebHome#VarICON]], [[TWikiPreferences]], [[FileAttachments]], [[TWikiDocGraphics]]
--- /dev/null
+<a name="VarICONURLPATH"></a>
+
+### <a name="ICONURLPATH{"name"} -- URL path"></a><a name="ICONURLPATH{"name"} -- URL path "></a> ICONURLPATH\{"name"\} -- URL path of small documentation graphic or icon
+
+- Generates the URL path of a [[TWikiDocGraphics]] image, typically used in an HTML img tag. Specify image name or full filename (see [[ICON|Main/WebHome#VarICON]] for details on filenames.)
+- Syntax: `%ICONURLPATH{"name"}%`
+- Examples:
+ - `%ICONURLPATH{"locktopic"}%` returns ![locktopic.gif](http://www.dementia.org/twiki//view/Main/WebHome/locktopic.gif)
+ - `%ICONURLPATH{"eggysmell.xml"}%` returns ![xml.gif](http://www.dementia.org/twiki//view/Main/WebHome/xml.gif)
+ - `%ICONURLPATH{"/doc/xhtml.xsl"}%` returns ![xsl.gif](http://www.dementia.org/twiki//view/Main/WebHome/xsl.gif)
+- Related: [[ICONURL|Main/WebHome#VarICONURL]], [[ICON|Main/WebHome#VarICON]], [[TWikiPreferences]], [[FileAttachments]], [[TWikiDocGraphics]]
--- /dev/null
+<a name="VarIF"></a>
+
+### <a name="IF{"condition" ...} -- simple co"></a> IF\{"condition" ...\} -- simple conditionals
+
+- Evaluate a condition and show one text or another based on the result. See details in [[IfStatements]]
+- Syntax: `%IF{"CONDITION" then="THEN" else="ELSE"}%` shows `"THEN"` if `"CONDITION"` evaluates to `TRUE`, otherwise `"ELSE"` will be shown
+- Example: `%IF{"defined FUNFACTOR" then="FUNFACTOR is defined" else=" is not defined"}%` renders as ==
+- Related: [[$IF()|Main/SpreadSheetPlugin#FuncIF]] of [[SpreadSheetPlugin]]
--- /dev/null
+<a name="VarINCLUDE"></a>
+
+### <a name="INCLUDE{"page"} -- include other"></a> INCLUDE\{"page"\} -- include other topic or web page
+
+- Syntax: `%INCLUDE{"page" ...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"SomeTopic"</code></td>
+ <td> The name of a topic located in the current web, i.e. <code>%INCLUDE{"WebNotify"}%</code></td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>"Web.Topic"</code></td>
+ <td> A topic in another web, i.e. <code>%INCLUDE{"TWiki.SiteMap"}%</code></td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>"http://..."</code></td>
+ <td> A full qualified URL, i.e. <code>%INCLUDE{"http://twiki.org:80/index.html"}%</code>. Supported content types are <code>text/html</code> and <code>text/plain</code>. <br /> %I% if the URL resolves to an attachment file on the server this will <em>automatically</em> translate to a server-side include. </td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>pattern="..."</code></td>
+ <td> A [[Main/RegularExpression]] pattern to include a subset of a topic or page </td>
+ <td> none </td>
+ </tr>
+ <tr>
+ <td><code>rev="2"</code></td>
+ <td> Include a previous topic revision; N/A for URLs </td>
+ <td> top revision </td>
+ </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> disabled </td>
+ </tr>
+ <tr>
+ <td><code>warn="off"</code></td>
+ <td> Warn if topic include fails: Fail silently (if <code>off</code>); output default warning (if set to <code>on</code>); else, output specific text (use <code>$topic</code> for topic name) </td>
+ <td><code>%INCLUDEWARNING%</code> [[Main/TWikiPreferences]] setting </td>
+ </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> Â </td>
+ </tr>
+ <tr>
+ <td><code>PARONE="val 1"%BR% PARTWO="val 2"</code></td>
+ <td> Any other parameter will be defined as a variable within the scope of the included topic. The example parameters on the left will result in <code>%PARONE%</code> and <code>%PARTWO%</code> being defined within the included topic. </td>
+ <td> Â </td>
+ </tr>
+</table>
+- **_Note:_** JavaScript in included webpages is filtered out as a security precaution per default (disable filter with `raw` 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="VarINCLUDINGTOPIC"></a>
+
+### <a name="INCLUDINGTOPIC -- name of topic"></a><a name="INCLUDINGTOPIC -- name of topic "></a> INCLUDINGTOPIC -- name of topic that includes current topic
+
+- The name of the topic that includes the current topic - same as `%TOPIC%` in case there is no include
+- Syntax: `%INCLUDINGTOPIC%`
+- Related: [[BASETOPIC|Main/WebHome#VarBASETOPIC]], [[INCLUDINGWEB|Main/WebHome#VarINCLUDINGWEB]], [[INCLUDE|Main/WebHome#VarINCLUDE]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarINCLUDINGWEB"></a>
+
+### <a name="INCLUDINGWEB -- web that include"></a> INCLUDINGWEB -- web that includes current topic
+
+- The web name of the topic that includes the current topic - same as `%WEB%` if there is no INCLUDE.
+- Syntax: `%INCLUDINGWEB%`
+- Related: [[BASEWEB|Main/WebHome#VarBASEWEB]], [[INCLUDINGTOPIC|Main/WebHome#VarINCLUDINGTOPIC]], [[INCLUDE|Main/WebHome#VarINCLUDE]], [[WEB|Main/WebHome#VarWEB]]
--- /dev/null
+<a name="VarLANGUAGE"></a>
+
+### <a name="LANGUAGE -- current user's langu"></a> LANGUAGE -- current user's language
+
+- Returns the language code for the language used as the current user. This is the language actually used by TWiki Internationalization (e.g. in user interface).
+- The language is detected from the user's browser, unless some site/web/user/session-defined setting overrides it:
+ - If the `LANGUAGE` preference is set, it's used as user's language instead of any language detected from the browser.
+ - Avoid defining `LANGUAGE` at a non per-user way, so each user can choose his/her preferred language.
+- Related: [[LANGUAGES|Main/WebHome#VarLANGUAGES]]
--- /dev/null
+<a name="VarLANGUAGES"></a>
+
+### <a name="LANGUAGES -- list available TWik"></a> LANGUAGES -- list available TWiki languages
+
+- List the languages available (as `PO` files) to TWiki. Those are the languages in which TWiki's user interface is available.
+- Syntax: `%LANGUAGES{...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>format</code></td>
+ <td> format for each item. See below for variables available in the format string. </td>
+ <td><code>" Â * $langname"</code></td>
+ </tr>
+ <tr>
+ <td><code>separator</code></td>
+ <td> separator between items. </td>
+ <td><code>"\n"</code> (newline) </td>
+ </tr>
+ <tr>
+ <td><code>marker="selected"</code></td>
+ <td> Text for <code>$marker</code> if the item matches <code>selection</code></td>
+ <td><code>"selected"</code></td>
+ </tr>
+ <tr>
+ <td><code>selection="%LANGUAGE%"</code></td>
+ <td> Current language to be selected in list </td>
+ <td><code>(none)</code></td>
+ </tr>
+</table>
+- `format` variables: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Variable </strong></th>
+ <th bgcolor="#99CCCC"><strong> Meaning </strong></th>
+ </tr>
+ <tr>
+ <td><code>$langname</code></td>
+ <td> language's name, as informed by the translators </td>
+ </tr>
+ <tr>
+ <td><code>$langtag</code></td>
+ <td> language's tag. Ex: <code>en</code>, <code>pt-br</code>, etc. </td>
+ </tr>
+</table>
+- Example: `<select>%LANGUAGES{format="<option $marker value='$langtag'>$langname</option>" selection="%LANGUAGE%"}%</select>` creates an option list of the available languages with the current language selected
--- /dev/null
+<a name="VarLOCALSITEPREFS"></a>
+
+### <a name="LOCALSITEPREFS -- web.topicname"></a><a name="LOCALSITEPREFS -- web.topicname "></a> LOCALSITEPREFS -- web.topicname of site preferences topic
+
+- The full name of the local site preferences topic. This topic is read for preferences before TWiki.%TWIKIPREFSTOPIC% is read.
+- Syntax: `%LOCALSITEPREFS%`
+- Expands to: `Main.TWikiPreferences`, renders as [[TWikiPreferences]]
--- /dev/null
+<a name="VarLOGIN"></a>
+
+### <a name="LOGIN -- present a full login li"></a> LOGIN -- present a full login link
+
+- Syntax: `%LOGIN%`
+- Expand to:
+- Related: [[TWikiUserAuthentication]], [[SESSIONID|Main/WebHome#VarSESSIONID]], [[SESSIONVAR|Main/WebHome#VarSESSIONVAR]], [[LOGOUT|Main/WebHome#VarLOGOUT]], [[SESSION_VARIABLE|Main/WebHome#VarSESSION_VARIABLE]]
--- /dev/null
+<a name="VarLOGOUT"></a>
+
+### <a name="LOGOUT -- present a full logout"></a><a name="LOGOUT -- present a full logout "></a> LOGOUT -- present a full logout link
+
+- Syntax: `%LOGOUT%`
+- Expand to: [[Main/WebHome?logout=1]]
+- Related: [[TWikiUserAuthentication]], [[SESSIONID|Main/WebHome#VarSESSIONID]], [[SESSIONVAR|Main/WebHome#VarSESSIONVAR]], [[LOGIN|Main/WebHome#VarLOGIN]], [[SESSION_VARIABLE|Main/WebHome#VarSESSION_VARIABLE]]
--- /dev/null
+<a name="VarMAINWEB"></a>
+
+### <a name="MAINWEB -- name of Main web"></a> MAINWEB -- name of Main web
+
+- The web containing [[TWikiUsers]], individual user topics and [[TWikiGroups]]
+- Syntax: `%MAINWEB%`
+- Expands to: `Main`
+- Related: [[TWIKIWEB|Main/WebHome#VarTWIKIWEB]]
--- /dev/null
+<a name="VarMAKETEXT"></a>
+
+### <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">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default </strong></th>
+ </tr>
+ <tr>
+ <td><code>"text"</code> or <code>string="text"</code></td>
+ <td> The text to be displayed. </td>
+ <td><em>none</em></td>
+ </tr>
+ <tr>
+ <td><code>args="param1, param2"</code></td>
+ <td> a comma-separated list of arguments to be interpolated in the string, replacing the <code>[_N]</code> placeholders in it. </td>
+ <td><em>none</em></td>
+ </tr>
+</table>
+- Examples:
+ - `%MAKETEXT{string="Notes:"}%` %BR% expands to %BR% _ Notes: _
+ - `%MAKETEXT{"If you have any questions, please contact [_1]." args="%WIKIWEBMASTER%"}%` %BR% expands to %BR% _ If you have any questions, please contact 0. _
+ - `%MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="%TWIKIWEB%.ResetPassword,%WIKIUSERNAME%"}%` %BR% expands to %BR% _ Did you want to [[reset Main.admin's password|TWiki/ResetPassword]]? _
+- **_Notes:_**
+ - TWiki will translate the `string` to the current user's language _only_ if it has such string in its translation table for that language.
+ - Amperstands (`&`) followed by one letter (one of a...z, A...Z) (say, `X`) in the translatable string will be translated to `<span class='twikiAccessKey'>X</span>`. This is used to implement access keys. If you want to write an actual amperstand that stays just before a letter, write two consecutive amperstands (`&&`): they will be transformed in just one.
+ - translatable string starting with underscores (`_`) are reserved. You **cannot** use translatable phrases starting with an underscore.
+ - Make sure that the translatable string is _constant_. Specially, do **not** include `%VARIABLES%` inside the translatable strings (since they will get expanded **before** the `%MAKETEXT{...}%` itself is handled).
--- /dev/null
+<a name="VarMETA"></a>
+
+### <a name="META -- displays meta-data"></a> META -- displays meta-data
+
+- Provided mainly for use in templates, this variable generates the parts of the topic view that relate to meta-data (attachments, forms etc.) The `formfield` item is the most likely to be useful to casual users.
+- Syntax: `%META{ "item" ...}%`
+- Parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Item </strong></th>
+ <th bgcolor="#99CCCC"><strong> Options </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description </strong></th>
+ </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> Show a single form field </td>
+ </tr>
+ <tr>
+ <td><code>"form"</code></td>
+ <td><em>none</em></td>
+ <td> Generates the table showing the form fields. See [[Main/TWikiDocumentation#Form_Templates]]</td>
+ </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>
+ </tr>
+ <tr>
+ <td><code>"moved"</code></td>
+ <td><em>none</em></td>
+ <td> Details of any topic moves </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> Generates the parent link </td>
+ </tr>
+</table>
+- Related: [[METASEARCH|Main/WebHome#VarMETASEARCH]]
--- /dev/null
+<a name="VarMETASEARCH"></a>
+
+### <a name="METASEARCH -- special search of"></a><a name="METASEARCH -- special search of "></a> METASEARCH -- special search of meta data
+
+- Syntax: `%METASEARCH{...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>type="topicmoved"</code></td>
+ <td> What sort of search is required? <br /><code>"topicmoved"</code> if search for a topic that may have been moved <br /><code>"parent"</code> if searching for topics that have a specific parent i.e. its children <br /><code>"field"</code> if searching for topics that have a particular form field value (use the <code>name</code> and <code>value</code> parameters to specify which field to search) </td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>web="%WEB%"</code></td>
+ <td> Wiki web to search: A web, a list of webs separated by whitespace, or <code>all</code> webs. </td>
+ <td> current web </td>
+ </tr>
+ <tr>
+ <td><code>topic="%TOPIC%"</code></td>
+ <td> The topic the search relates to, for <code>topicmoved</code> and <code>parent</code> searches </td>
+ <td> current topic </td>
+ </tr>
+ <tr>
+ <td><code>name</code></td>
+ <td> form field to search, for <code>field</code> type searches. May be a regular expression (see [[Main/WebHome#VarSEARCH]]). </td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>value</code></td>
+ <td> form field value, for <code>field</code> type searches. May be a regular expression (see [[Main/WebHome#VarSEARCH]]). </td>
+ <td> Â </td>
+ </tr>
+ <tr>
+ <td><code>title="Title"</code></td>
+ <td> Text that is prefixed to any search results </td>
+ <td> empty </td>
+ </tr>
+ <tr>
+ <td><code>default="none"</code></td>
+ <td> Default text shown if no search hit </td>
+ <td> empty </td>
+ </tr>
+</table>
+- Example: `%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%`
+- Example: You may want to use this in [[WebTopicViewTemplate]] and [[WebTopicNonWikiTemplate]]:<br />`%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%`
+- Example: `%METASEARCH{type="field" name="Country" value="China"}%`
+- Related: [[SEARCH|Main/WebHome#VarSEARCH]], [[META|Main/WebHome#VarMETA]]
+
+**_Related Topics:_** [[UserDocumentationCategory]]
+
+**_Note:_** This topic is included by [[TWikiVariables]]
+
+----
--- /dev/null
+<a name="VarNOP"></a>
+
+### <a name="NOP -- template text not to be e"></a> NOP -- template text not to be expanded in instantiated topics
+
+- Syntax: `%NOP%`
+ - In normal topic text, expands to <nop>, which prevents expansion of adjacent variables and wikiwords
+ - When the topic containing this is used as a template for another topic, it is removed.
+- Syntax: `%NOP{...}%` **deprecated**
+ - In normal topic text, expands to whatever is in the curly braces (if anything).
+ - **_%X% Note:_** This is deprecated. Do not use it. Use `%STARTSECTION{type="templateonly"}%` .. `%ENDSECTION{type="templateonly"}%` instead (see [[TWikiTemplates]] for more details).
+- Related: [[STARTSECTION|Main/WebHome#VarSTARTSECTION]], [[TWikiTemplates]]
--- /dev/null
+<a name="VarNOTIFYTOPIC"></a>
+
+### <a name="NOTIFYTOPIC -- name of the notif"></a> NOTIFYTOPIC -- name of the notify topic
+
+- Syntax: `%NOTIFYTOPIC%`
+- Expands to: `WebNotify`, renders as [[WebNotify]]
+- Related: [[HOMETOPIC|Main/WebHome#VarHOMETOPIC]], [[STATISTICSTOPIC|Main/WebHome#VarSTATISTICSTOPIC]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarPLUGINDESCRIPTIONS"></a>
+
+### <a name="PLUGINDESCRIPTIONS -- list of pl"></a> PLUGINDESCRIPTIONS -- list of plugin descriptions
+
+- Syntax: `%PLUGINDESCRIPTIONS%`
+- Expands to:
+ - [[SpreadSheetPlugin]] <span>(any TWiki, 10197)</span>:
+ - [[CommentPlugin]] <span>(Dakar, 11359)</span>: Allows users to quickly post comments to a page without an edit/preview/save cycle
+ - [[EditTablePlugin]] <span>(any TWiki, 11646)</span>:
+ - [[InterwikiPlugin]] <span>(Dakar, $Rev: 11935$)</span>:
+ - [[PreferencesPlugin]] <span>(Dakar, 9839)</span>:
+ - [[SlideShowPlugin]] <span>(Any TWiki, $Rev: 12847$)</span>:
+ - [[SmiliesPlugin]] <span>(Dakar, 8154)</span>:
+ - [[TablePlugin]] <span>(1.020, 12339)</span>:
+ - [[TwistyPlugin]] <span>(1.2.0, $Rev: 12154$)</span>:
+- Related: [[ACTIVATEDPLUGINS|Main/WebHome#VarACTIVATEDPLUGINS]], [[FAILEDPLUGINS|Main/WebHome#VarFAILEDPLUGINS]], [[PLUGINVERSION|Main/WebHome#VarPLUGINVERSION2]]
--- /dev/null
+<a name="VarPLUGINVERSION"></a>
+
+### <a name="PLUGINVERSION -- the version of"></a><a name="PLUGINVERSION -- the version of "></a> PLUGINVERSION -- the version of a TWiki Plugin, or the TWiki Plugins API
+
+- Syntax: `%PLUGINVERSION{"name"}%` to get the version of a specific plugin
+- Example: `%PLUGINVERSION{"InterwikiPlugin"}%` expands to `$Rev: 11935$`
+- Syntax: `%PLUGINVERSION%` to get the version of the API
+- Expands to: `1.11`
+- Related: [[WIKIVERSION|Main/WebHome#VarWIKIVERSION]], [[ACTIVATEDPLUGINS|Main/WebHome#VarACTIVATEDPLUGINS]], [[FAILEDPLUGINS|Main/WebHome#FAILEDPLUGINS]], [[PLUGINDESCRIPTIONS|Main/WebHome#VarPLUGINDESCRIPTIONS]]
--- /dev/null
+<a name="VarPUBURL"></a>
+
+### <a name="PUBURL -- the base URL of attach"></a> PUBURL -- the base URL of attachments
+
+- 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]]
--- /dev/null
+<a name="VarPUBURLPATH"></a>
+
+### <a name="PUBURLPATH -- the base URL path"></a><a name="PUBURLPATH -- the base URL path "></a> PUBURLPATH -- the base URL path of attachments
+
+- 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]]
--- /dev/null
+<a name="VarQUERYSTRING"></a>
+
+### <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{}%`.
+- Syntax: `%QUERYSTRING%`
+- Expands to: ` `
+- Related: [[URLPARAM|Main/WebHome#VarURLPARAM]]
--- /dev/null
+<a name="VarREMOTEADDR"></a>
+
+### <a name="REMOTE_ADDR -- environment varia"></a> REMOTE\_ADDR -- environment variable
+
+- Syntax: `%REMOTE_ADDR%`
+- Expands to: ==
+- Related: [[HTTP_HOST|Main/WebHome#VarHTTPHOST]], [[REMOTE_PORT|Main/WebHome#VarREMOTEPORT]], [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]]
--- /dev/null
+<a name="VarREMOTEPORT"></a>
+
+### <a name="REMOTE_PORT -- environment varia"></a> REMOTE\_PORT -- environment variable
+
+- Syntax: `%REMOTE_PORT%`
+- Expands to: ``
+- Related: [[HTTP_HOST|Main/WebHome#VarHTTPHOST]], [[REMOTE_ADDR|Main/WebHome#VarREMOTEADDR]], [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]]
--- /dev/null
+<a name="VarREMOTEUSER"></a>
+
+### <a name="REMOTE_USER -- environment varia"></a> REMOTE\_USER -- environment variable
+
+- Syntax: `%REMOTE_USER%`
+- Expands to: ``
+- Related: [[HTTP_HOST|Main/WebHome#VarHTTPHOST]], [[REMOTE_ADDR|Main/WebHome#VarREMOTEADDR]], [[REMOTE_PORT|Main/WebHome#VarREMOTEPORT]], [[USERNAME|Main/WebHome#VarUSERNAME]], [[WIKINAME|Main/WebHome#VarWIKINAME]], [[WIKIUSERNAME|Main/WebHome#VarWIKIUSERNAME]]
--- /dev/null
+<a name="VarREVINFO"></a>
+
+### <a name="REVINFO -- revision information"></a><a name="REVINFO -- revision information "></a> REVINFO -- revision information of current topic
+
+- Syntax: `%REVINFO%`
+- Expands to: <code>r1 - 01 Jan 1970 - 00:00:00 - [[TWikiGuest]]</code>
+- Related: [[REVINFO{"format"}|Main/WebHome#VarREVINFO2]]
--- /dev/null
+<a name="VarREVINFO2"></a>
+
+### <a name="REVINFO{"format"} -- formatted r"></a> REVINFO\{"format"\} -- formatted revision information of topic
+
+- Syntax: `%REVINFO{"format"}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"format"</code></td>
+ <td> Format of revision information, see supported variables below </td>
+ <td><code>"r1.$rev - $date - $wikiusername"</code></td>
+ </tr>
+ <tr>
+ <td><code>web="..."</code></td>
+ <td> Name of web </td>
+ <td> Current web </td>
+ </tr>
+ <tr>
+ <td><code>topic="..."</code></td>
+ <td> Topic name </td>
+ <td> Current topic </td>
+ </tr>
+ <tr>
+ <td><code>rev="1.5"</code></td>
+ <td> Specific revison number </td>
+ <td> Latest revision </td>
+ </tr>
+</table>
+- Supported variables in format: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Variable: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Unit: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Example </strong></th>
+ </tr>
+ <tr>
+ <td><code>$web</code></td>
+ <td> Name of web </td>
+ <td> Current web </td>
+ </tr>
+ <tr>
+ <td><code>$topic</code></td>
+ <td> Topic name </td>
+ <td> Current topic </td>
+ </tr>
+ <tr>
+ <td><code>$rev</code></td>
+ <td> Revison number. Prefix <code>r1.</code> to get the usual <code>r1.5</code> format </td>
+ <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>
+ </tr>
+ <tr>
+ <td><code>$wikiname</code></td>
+ <td>[[Main/WikiName]] of revision </td>
+ <td><code>JohnSmith</code></td>
+ </tr>
+ <tr>
+ <td><code>$wikiusername</code></td>
+ <td> WikiName with Main web prefix </td>
+ <td><code>Main.JohnSmith</code></td>
+ </tr>
+</table>
+- Example: `%REVINFO{"$date - $wikiusername" rev="1.1"}%` returns revision info of first revision
+- Related: [[REVINFO|Main/WebHome#VarREVINFO]]
--- /dev/null
+<a name="VarSCRIPTNAME"></a>
+
+### <a name="SCRIPTNAME -- name of current sc"></a> SCRIPTNAME -- name of current script
+
+- The name of the current script is shown, including script suffix, if any (for example `viewauth.cgi`)
+- Syntax: `%SCRIPTNAME%`
+- Expands to: ==
+- Related: [[SCRIPTSUFFIX|Main/WebHome#VarSCRIPTSUFFIX]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURLPATH]]
--- /dev/null
+<a name="VarSCRIPTSUFFIX"></a>
+
+### <a name="SCRIPTSUFFIX -- script suffix"></a> SCRIPTSUFFIX -- script suffix
+
+- Some %WIKITOOLNAME% installations require a file extension for CGI scripts, such as `.pl` or `.cgi`
+- Syntax: `%SCRIPTSUFFIX%`
+- Expands to: ``
+- Related: [[SCRIPTNAME|Main/WebHome#VarSCRIPTNAME]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURLPATH]]
--- /dev/null
+<a name="VarSCRIPTURL"></a>
+
+### <a name="SCRIPTURL -- base URL of TWiki s"></a> SCRIPTURL -- base URL of TWiki scripts
+
+- Syntax: `%SCRIPTURL%`
+- Expands to: `http://www.dementia.org/twiki/`
+- Related: [[PUBURL|Main/WebHome#VarPUBURL]], [[SCRIPTNAME|Main/WebHome#VarSCRIPTNAME]], [[SCRIPTSUFFIX|Main/WebHome#VarSCRIPTSUFFIX]], [[SCRIPTURL{"script"}|Main/WebHome#VarSCRIPTURL2]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURLPATH]]
--- /dev/null
+<a name="VarSCRIPTURL2"></a>
+
+### <a name="SCRIPTURL{"script"} -- URL of TW"></a> SCRIPTURL\{"script"\} -- URL of TWiki script
+
+- Syntax: `%SCRIPTURL{"script"}%`
+- Expands to: `http://www.dementia.org/twiki/script`
+- Example: To get the authenticated version of the current topic you can write `%SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC%` which expands to `http://www.dementia.org/twiki/viewauth/%WEB%/%INCLUDINGTOPIC%`
+- **_%X% Note:_** In most cases you should use `%SCRIPTURLPATH{"script"}%` instead, as it works with URL rewriting much better
+- Related: [[PUBURL|Main/WebHome#VarPUBURL]], [[SCRIPTNAME|Main/WebHome#VarSCRIPTNAME]], [[SCRIPTSUFFIX|Main/WebHome#VarSCRIPTSUFFIX]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURLPATH]], [[SCRIPTURLPATH{"script"}|Main/WebHome#VarSCRIPTURLPATH2]]
--- /dev/null
+<a name="VarSCRIPTURLPATH"></a>
+
+### <a name="SCRIPTURLPATH -- base URL path o"></a> SCRIPTURLPATH -- base URL path of TWiki scripts
+
+- As `%SCRIPTURL%`, but doesn't include the protocol and host part of the URL
+- Syntax: `%SCRIPTURLPATH%`
+- Expands to: `http://www.dementia.org/twiki/`
+- Related: [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTNAME|Main/WebHome#VarSCRIPTNAME]], [[SCRIPTSUFFIX|Main/WebHome#VarSCRIPTSUFFIX]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURLPATH{"script"}|Main/WebHome#VarSCRIPTURLPATH2]]
--- /dev/null
+<a name="VarSCRIPTURLPATH2"></a>
+
+### <a name="SCRIPTURLPATH{"script"} -- URL p"></a> SCRIPTURLPATH\{"script"\} -- URL path of TWiki script
+
+- As `%SCRIPTURL{"script"}%`, but doesn't include the protocol and host part of the URL
+- Syntax: `%SCRIPTURLPATH{"script"}%`
+- Expands to: `http://www.dementia.org/twiki/script`
+- Related: [[PUBURLPATH|Main/WebHome#VarPUBURLPATH]], [[SCRIPTNAME|Main/WebHome#VarSCRIPTNAME]], [[SCRIPTSUFFIX|Main/WebHome#VarSCRIPTSUFFIX]], [[SCRIPTURL|Main/WebHome#VarSCRIPTURL]], [[SCRIPTURL{"script"}|Main/WebHome#VarSCRIPTURL2]], [[SCRIPTURLPATH|Main/WebHome#VarSCRIPTURLPATH]]
--- /dev/null
+<a name="VarSEARCH"></a>
+
+### <a name="SEARCH{"text"} -- search content"></a> SEARCH\{"text"\} -- search content
+
+- Inline search, shows a search result embedded in a topic
+- Syntax: `%SEARCH{"text" ...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"text"</code></td>
+ <td> Search term. Is a keyword search, literal search or regular expression search, depending on the <code>type</code> parameter. [[Main/SearchHelp]] has more </td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>search="text"</code></td>
+ <td> (Alternative to above) </td>
+ <td> N/A </td>
+ </tr>
+ <tr>
+ <td><code>web="Name"</code><br /><code>web="Main, Know"</code><br /><code>web="all"</code></td>
+ <td> Comma-separated list of webs to search. You can specifically <strong>exclude</strong> webs from an <code>all</code> search using a minus sign - for example, <code>web="all,-Secretweb"</code>. The special word <code>all</code> means all webs that do <strong>not</strong> have the <code>NOSEARCHALL</code> variable set to <code>on</code> in their [[Main/WebPreferences]]. Note that [[Main/TWikiAccessControls]] are respected when searching webs; it is <strong>much</strong> better to use them than <code>NOSEARCHALL</code>. </td>
+ <td> Current web </td>
+ </tr>
+ <tr>
+ <td><code>topic="WebPreferences"</code><br /><code>topic="*Bug"</code></td>
+ <td> Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. <strong><em>Note</em></strong> this is a list of <strong>topic names</strong> and must <strong>not</strong> include web names. </td>
+ <td> All topics in a web </td>
+ </tr>
+ <tr>
+ <td><code>excludetopic="Web*"</code><br /><code>excludetopic="WebHome, WebChanges"</code></td>
+ <td> Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. <strong><em>Note</em></strong> this is a list of <strong>topic names</strong> and must <strong>not</strong> include web names. </td>
+ <td> None </td>
+ </tr>
+ <tr>
+ <td><code>type="keyword"</code><br /><code>type="literal"</code><br /><code>type="regex"</code></td>
+ <td> Do a keyword search like <code>soap "web service" -shampoo</code>; a literal search like <code>web service</code>; or [[Main/RegularExpression]] search like <code>soap;web service;!shampoo</code></td>
+ <td><code>%SEARCHVAR- DEFAULTTYPE%</code> [[Main/TWikiPreferences]] setting (%SEARCHVARDEFAULTTYPE%) </td>
+ </tr>
+ <tr>
+ <td><code>scope="topic"</code><br /><code>scope="text"</code><br /><code>scope="all"</code></td>
+ <td> Search topic name (title); the text (body) of topic; or all (both) </td>
+ <td><code>"text"</code></td>
+ </tr>
+ <tr>
+ <td><code>order="topic"</code><br /><code>order="created"</code><br /><code>order="modified"</code><br /><code>order="editby"</code><br /><code>order=<br />Â "formfield(name)"</code></td>
+ <td> Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of [[Main/TWikiForms]]. The sorting is done web by web; if you want to sort across webs, create a [[Main/FormattedSearch]] table and sort it with [[Main/TablePlugin]]'s initsort. Note that dates are sorted most recent date <strong>last</strong> (i.e at the bottom of the table). </td>
+ <td> Sort by topic name </td>
+ </tr>
+ <tr>
+ <td><code>limit="all"</code><br /><code>limit="16"</code></td>
+ <td> Limit the number of results returned. This is done after sorting if <code>order</code> is specified </td>
+ <td> All results </td>
+ </tr>
+ <tr>
+ <td><code>date="..."</code></td>
+ <td> limits the results to those pages with latest edit time in the given [[Main/TimeInterval]]. </td>
+ <td> All results </td>
+ </tr>
+ <tr>
+ <td><code>reverse="on"</code></td>
+ <td> Reverse the direction of the search </td>
+ <td> Ascending search </td>
+ </tr>
+ <tr>
+ <td><code>casesensitive="on"</code></td>
+ <td> Case sensitive search </td>
+ <td> Ignore case </td>
+ </tr>
+ <tr>
+ <td><code>bookview="on"</code></td>
+ <td>[[Main/BookView]] search, e.g. show complete topic text </td>
+ <td> Show topic summary </td>
+ </tr>
+ <tr>
+ <td><code>nonoise="on"</code></td>
+ <td> Shorthand for <code>nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on"</code></td>
+ <td> Off </td>
+ </tr>
+ <tr>
+ <td><code>nosummary="on"</code></td>
+ <td> Show topic title only </td>
+ <td> Show topic summary </td>
+ </tr>
+ <tr>
+ <td><code>nosearch="on"</code></td>
+ <td> Suppress search string </td>
+ <td> Show search string </td>
+ </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>
+ </tr>
+ <tr>
+ <td><code>nototal="on"</code></td>
+ <td> Do not show number of topics found </td>
+ <td> Show number </td>
+ </tr>
+ <tr>
+ <td><code>zeroresults="off"</code></td>
+ <td> Suppress all output if there are no hits </td>
+ <td><code>zeroresults="on"</code>, displays: "Number of topics: 0" </td>
+ </tr>
+ <tr>
+ <td><code>noempty="on"</code></td>
+ <td> Suppress results for webs that have no hits. </td>
+ <td> Show webs with no hits </td>
+ </tr>
+ <tr>
+ <td><code>header="..."</code><br /><code>format="..."</code></td>
+ <td> Custom format results: see <strong>[[Main/FormattedSearch]]</strong> for usage, variables & examples </td>
+ <td> Results in table </td>
+ </tr>
+ <tr>
+ <td><code>expandvariables="on"</code></td>
+ <td> Expand variables before applying a [[Main/FormattedSearch]] on a search hit. Useful to show the expanded text, e.g. to show the result of a [[Main/SpreadSheetPlugin]] <code>%CALC{}%</code> instead of the formula </td>
+ <td> Raw text </td>
+ </tr>
+ <tr>
+ <td><code>multiple="on"</code></td>
+ <td> Multiple hits per topic. Each hit can be [[Main/FormattedSearch]]. The last token is used in case of a regular expression ";" <em>and</em> search </td>
+ <td> Only one hit per topic </td>
+ </tr>
+ <tr>
+ <td><code>nofinalnewline="on"</code></td>
+ <td> If <code>on</code>, the search variable does not end in a line by itself. Any text continuing immediately after the search variable on the same line will be rendered as part of the table generated by the search, if appropriate. </td>
+ <td><code>off</code></td>
+ </tr>
+ <tr>
+ <td><code>recurse="on"</code></td>
+ <td> Recurse into subwebs, if subwebs are enabled. </td>
+ <td><code>off</code></td>
+ </tr>
+ <tr>
+ <td><code>separator=", "</code></td>
+ <td> Line separator between hits </td>
+ <td> Newline <code>"$n"</code></td>
+ </tr>
+</table>
+- 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]]
--- /dev/null
+<a name="VarSERVERTIME"></a>
+
+### <a name="SERVERTIME -- server time"></a> SERVERTIME -- server time
+
+- Syntax: `%SERVERTIME%`
+- Expands to: `29 Jun 2010 - 12:00`
+- **_%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{"format"}|Main/WebHome#VarSERVERTIME2]]
--- /dev/null
+<a name="VarSERVERTIME2"></a>
+
+### <a name="SERVERTIME{"format"} -- formatte"></a> SERVERTIME\{"format"\} -- formatted server time
+
+- Same format qualifiers as `%GMTIME%`
+- Syntax: `%SERVERTIME{"format"}%`
+- Example: `%SERVERTIME{"$hou:$min"}%` expands to `12:00`
+- **_%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]]
--- /dev/null
+<a name="VarSESSIONID"></a>
+
+### <a name="SESSIONID -- unique ID for this"></a><a name="SESSIONID -- unique ID for this "></a> SESSIONID -- unique ID for this session
+
+- Syntax: `%SESSIONID%`
+- Expand to: `941fd3d797f64451cc06ffcd03f96779`
+- Related: [[TWikiUserAuthentication]], [[AUTHREALM|Main/WebHome#VarAUTHREALM]], [[SESSIONVAR|Main/WebHome#VarSESSIONVAR]], [[LOGIN|Main/WebHome#VarLOGIN]], [[LOGOUT|Main/WebHome#VarLOGOUT]], [[SESSION_VARIABLE|Main/WebHome#VarSESSION_VARIABLE]]
--- /dev/null
+<a name="VarSESSIONVAR"></a>
+
+### <a name="SESSIONVAR -- name of CGI and se"></a> SESSIONVAR -- name of CGI and session variable that stores the session ID
+
+- Syntax: `%SESSIONVAR%`
+- Expand to: `TWIKISID`
+- Related: [[TWikiUserAuthentication]], [[AUTHREALM|Main/WebHome#VarAUTHREALM]], [[SESSIONID|Main/WebHome#VarSESSIONID]], [[LOGIN|Main/WebHome#VarLOGIN]], [[LOGOUT|Main/WebHome#VarLOGOUT]], [[SESSION_VARIABLE|Main/WebHome#VarSESSION_VARIABLE]]
--- /dev/null
+<a name="VarSESSIONVARIABLE"></a>
+
+### <a name="SESSION_VARIABLE -- get, set or"></a><a name="SESSION_VARIABLE -- get, set or "></a> SESSION\_VARIABLE -- get, set or clear a session variable
+
+- Syntax: `%SESSION_VARIABLE{"name"}%`
+- Syntax: `%SESSION_VARIABLE{"name" set="value"}%`
+- Syntax: `%SESSION_VARIABLE{"name" clear=""}%`
+- %H% Hint: The users ID is in the `AUTHUSER` session variable, and is read-only
+- Related: [[TWikiUserAuthentication]], [[AUTHREALM|Main/WebHome#VarAUTHREALM]], [[SESSIONID|Main/WebHome#VarSESSIONID]], [[SESSIONVAR|Main/WebHome#VarSESSIONVAR]], [[LOGIN|Main/WebHome#VarLOGIN]], [[LOGOUT|Main/WebHome#VarLOGOUT]]
--- /dev/null
+<a name="VarSPACEDTOPIC"></a>
+
+### <a name="SPACEDTOPIC -- topic name, space"></a> SPACEDTOPIC -- topic name, spaced and URL-encoded **deprecated**
+
+- The current topic name with added URL-encoded spaces, for use in regular expressions that search for backlinks to the current topic
+- Syntax: `%SPACEDTOPIC%`
+- Expands to: ==
+- **_%X% Note:_** This is a deprecated variable. It can be duplicated with `%ENCODE{%SPACEOUT{"%TOPIC%" separator=" *"}%}%`
+- Related: [[SPACEOUT|Main/WebHome#VarSPACEOUT]], [[TOPIC|Main/WebHome#VarTOPIC]], [[ENCODE|Main/WebHome#VarENCODE]]
--- /dev/null
+<a name="VarSPACEOUT"></a>
+
+### <a name="SPACEOUT{"string"} -- renders st"></a> SPACEOUT\{"string"\} -- renders string with spaces inserted in sensible places
+
+- Inserts spaces after lower case letters that are followed by a digit or a capital letter, and after digits that are followed by a capital letter.
+- Useful for spacing out [[WikiWords]]
+- Syntax: `%SPACEOUT{ "%TOPIC%" }%`
+- Expands to: `%INCLUDINGTOPIC%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>separator</code></td>
+ <td> The separator to put between words e.g. %SPACEOUT{"DogsCatsBudgies" separator=", "}% -> Dogs, Cats, Budgies </td>
+ <td> ' ' </td>
+ </tr>
+</table>
+- %T% Hint: Spaced out WikiWords are not automatically linked. To SPACEOUT a WikiWord but preserve the link use "double bracket" format. For example, `[[WebHome][%SPACEOUT{"WebHome"}%]]` expands to [[Web Home|Main/WebHome]]
+- Related: [[SPACEDTOPIC|Main/WebHome#VarSPACEDTOPIC]], [[$PROPERSPACE()|Main/SpreadSheetPlugin#FuncPROPERSPACE]] of [[SpreadSheetPlugin]]
--- /dev/null
+<a name="VarSTARTINCLUDE"></a>
+
+### <a name="STARTINCLUDE -- start position o"></a> STARTINCLUDE -- start position of topic text if included
+
+- If present in included topic, start to include text from this location up to the end, or up to the location of the `%STOPINCLUDE%` variable. A normal view of the topic shows everything exept the `%STARTINCLUDE%` variable itself.
+- **_Note:_** If you want more than one part of the topic included, use `%STARTSECTION{type="include"}%` instead
+- Syntax: `%STARTINCLUDE%`
+- Related: [[INCLUDE|Main/WebHome#VarINCLUDE]], [[STARTSECTION|Main/WebHome#VarSTARTSECTION]], [[STOPINCLUDE|Main/WebHome#VarSTOPINCLUDE]]
--- /dev/null
+<a name="VarSTARTSECTION"></a>
+
+### <a name="STARTSECTION -- marks the start"></a><a name="STARTSECTION -- marks the start "></a> STARTSECTION -- marks the start of a section within a topic
+
+- Section boundaries are defined with `%STARTSECTION{}%` and `%ENDSECTION{}%`.
+- Sections may be given a name to help identify them, and/or a type, which changes how they are used.
+ - `type="section"` - the default, used for a generic section, such as a named section used by [[INCLUDE|Main/WebHome#VarINCLUDE]].
+ - `type="include"` - like `%STARTINCLUDE%` ... `%STOPINCLUDE%` except that you can have as many include blocks as you want (`%STARTINCLUDE%` is restricted to only one).
+ - `type="templateonly"` - start position of text to be removed when a template topic is used. This is used to embed text that you _do not_ want expanded when a new topic based on the template topic is created. See [[TWikiTemplates]] for more information.
+- Syntax: `%STARTSECTION{"name"}% ................ %ENDSECTION{"name"}%`
+- Syntax: `%STARTSECTION{type="include"}% ........ %ENDSECTION{type="include"}%`
+- Syntax: `%STARTSECTION{type="templateonly"}% ... %ENDSECTION{type="templateonly"}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default </strong></th>
+ </tr>
+ <tr>
+ <td><code>"name"</code></td>
+ <td> Name of the section. Must be unique inside a topic. </td>
+ <td> Generated name </td>
+ </tr>
+ <tr>
+ <td><code>type="..."</code></td>
+ <td> Type of the section; type <code>"section"</code>, <code>"include"</code> or <code>"templateonly"</code></td>
+ <td><code>"section"</code></td>
+ </tr>
+</table>
+- **_%X% Note:_** If a section is not given a name, it will be assigned one. Unnamed sections are assigned names starting with `_SECTION0` for the first unnamed section in the topic, `_SECTION1` for the second, etc..
+- **_%X% Note:_** You can define nested sections. It is not recommended to overlap sections, although it is valid in TWiki. Use named sections to make sure that the correct START and ENDs are matched. Section markers are **not** displayed when a topic is viewed.
+- Related: [[ENDSECTION|Main/WebHome#VarENDSECTION]], [[INCLUDE|Main/WebHome#VarINCLUDE]], [[NOP|Main/WebHome#VarNOP]], [[STARTINCLUDE|Main/WebHome#VarSTARTINCLUDE]], [[STOPINCLUDE|Main/WebHome#VarSTOPINCLUDE]]
--- /dev/null
+<a name="VarSTATISTICSTOPIC"></a>
+
+### <a name="STATISTICSTOPIC -- name of stati"></a> STATISTICSTOPIC -- name of statistics topic
+
+- Syntax: `%STATISTICSTOPIC%`
+- Expands to: `WebStatistics`, renders as [[WebStatistics]]
+- Related: [[HOMETOPIC|Main/WebHome#VarHOMETOPIC]], [[NOTIFYTOPIC|Main/WebHome#VarNOTIFYTOPIC]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarSTOPINCLUDE"></a>
+
+### <a name="STOPINCLUDE -- end position of t"></a> STOPINCLUDE -- end position of topic text if included
+
+- If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the `%STOPINCLUDE%` variable itself.
+- Syntax: `%STOPINCLUDE%`
+- Related: [[INCLUDE|Main/WebHome#VarINCLUDE]], [[STARTINCLUDE|Main/WebHome#VarSTARTINCLUDE]]
--- /dev/null
+<a name="VarTOC"></a>
+
+### <a name="TOC -- table of contents of curr"></a> TOC -- table of contents of current topic
+
+- Syntax: `%TOC%`
+- Related: [[TOC{"Topic"}|Main/WebHome#VarTOC2]]
--- /dev/null
+<a name="VarTOC2"></a>
+
+### <a name="TOC{"Topic"} -- table of content"></a> TOC\{"Topic"\} -- table of contents
+
+- Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in [[WikiSyntax]] (`"---++ text"`) and HTML (`"<h2>text</h2>"`) are taken into account. Any heading text after `"!!"` is excluded from the TOC; for example, write `"---+!! text"` if you do not want to list a header in the TOC
+- Syntax: `%TOC{"SomeTopic" ...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"TopicName"</code></td>
+ <td> topic name </td>
+ <td> Current topic </td>
+ </tr>
+ <tr>
+ <td><code>web="Name"</code></td>
+ <td> Name of web </td>
+ <td> Current web </td>
+ </tr>
+ <tr>
+ <td><code>depth="2"</code></td>
+ <td> Limit depth of headings shown in TOC </td>
+ <td> 6 </td>
+ </tr>
+ <tr>
+ <td><code>title="Some text"</code></td>
+ <td> Title to appear at top of TOC </td>
+ <td> none </td>
+ </tr>
+</table>
+- Example: `%TOC{depth="2"}%`
+- Example: `%TOC{"TWikiDocumentation" web="TWiki" title="Contents:"}%`
+- Example: see TWiki:Sandbox.TestTopicInclude
+- %T% Hint: TOC will generate links to the headings, so when a reader clicks on a heading it will jump straight where that heading is anchored in the text. If you have two headings with exactly the same text, then their anchors will also be identical and they won't be able to jump to them. To make the anchors unique, you can add an invisible HTML comment to the text of the heading. This will be hidden in normal view, but will force the anchors to be different. For example, `---+ Heading <!--5-->`.
+- Related: [[TOC|Main/WebHome#VarTOC]]
--- /dev/null
+<a name="VarTOPIC"></a>
+
+### <a name="TOPIC -- name of current topic"></a> TOPIC -- name of current topic
+
+- Syntax: `%TOPIC%`
+- Expands to: `%INCLUDINGTOPIC%`, renders as [[%INCLUDINGTOPIC%|Main/INCLUDINGTOPIC]]
+- Related: [[BASETOPIC|Main/WebHome#VarBASETOPIC]], [[INCLUDINGTOPIC|Main/WebHome#VarINCLUDINGTOPIC]], [[TOPICLIST|Main/WebHome#VarTOPICLIST]], [[WEB|Main/WebHome#VarWEB]]
--- /dev/null
+<a name="VarTOPICLIST"></a>
+
+### <a name="TOPICLIST{"format"} -- topic ind"></a> TOPICLIST\{"format"\} -- topic index of a web
+
+- List of all topics in a web. The "format" defines the format of one topic item. It may include variables: The `$name` variable gets expanded to the topic name, `$qname` to double quoted name, `$marker` to `marker` parameter where topic matches `selection`, and `$web` to the name of the web.
+- Syntax: `%TOPICLIST{"format" ...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"format"</code></td>
+ <td> Format of one line, may include <code>$web</code> (name of web), <code>$name</code> (name of the topic), <code>$qname</code> (name of topic in double quotes), <code>$marker</code> (which expands to <code>marker</code> for the item matching <code>selection</code> only) </td>
+ <td><code>"$name"</code></td>
+ </tr>
+ <tr>
+ <td><code>format="format"</code></td>
+ <td> (Alternative to above) </td>
+ <td><code>"$name"</code></td>
+ </tr>
+ <tr>
+ <td><code>separator=", "</code></td>
+ <td> line separator </td>
+ <td><code>"$n"</code> (new line) </td>
+ </tr>
+ <tr>
+ <td><code>marker="selected"</code></td>
+ <td> Text for <code>$marker</code> if the item matches <code>selection</code></td>
+ <td><code>"selected"</code></td>
+ </tr>
+ <tr>
+ <td><code>selection="TopicA, TopicB"</code></td>
+ <td> Current value to be selected in list </td>
+ <td><code>(none)</code></td>
+ </tr>
+ <tr>
+ <td><code>web="Name"</code></td>
+ <td> Name of web </td>
+ <td> Current web </td>
+ </tr>
+</table>
+- Example: `%TOPICLIST{" Â * $web.$name"}%` creates a bullet list of all topics
+- Example: `%TOPICLIST{separator=", "}%` creates a comma separated list of all topics
+- Example: `%TOPICLIST{" <option>$name</option>"}%` creates an option list (for drop down menus)
+- Example: `<select>%TOPICLIST{" <option $marker value='$name'>$name</option>" separator=" " selection="%TOPIC%"}%</select>` creates an option list of web topics with the current topic selected
+- Related: [[SEARCH|Main/WebHome#VarSEARCH]], [[WEBLIST|Main/WebHome#VarWEBLIST]]
--- /dev/null
+<a name="VarTWIKIWEB"></a>
+
+### <a name="TWIKIWEB -- name of TWiki docume"></a> TWIKIWEB -- name of TWiki documentation web
+
+- The web containing all documentation and site-wide preference settings for %WIKITOOLNAME%
+- Syntax: `%TWIKIWEB%`
+- Expands to: `TWiki`
+- Related: [[MAINWEB|Main/WebHome#VarMAINWEB]]
--- /dev/null
+<a name="VarURLPARAM"></a>
+
+### <a name="URLPARAM{"name"} -- get value of"></a> URLPARAM\{"name"\} -- get value of a URL parameter
+
+- Returns the value of a URL parameter.
+- Syntax: `%URLPARAM{"name"}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"name"</code></td>
+ <td> The name of a URL parameter </td>
+ <td> required </td>
+ </tr>
+ <tr>
+ <td><code>default="..."</code></td>
+ <td> Default value in case parameter is empty or missing </td>
+ <td> empty string </td>
+ </tr>
+ <tr>
+ <td><code>newline="<br />"</code></td>
+ <td> Convert newlines in textarea to other delimiters </td>
+ <td> no conversion </td>
+ </tr>
+ <tr>
+ <td><code>encode="entity"</code></td>
+ <td> Encode special characters into HTML entities. See [[Main/WebHome#VarENCODE]] for more details. </td>
+ <td> no encoding </td>
+ </tr>
+ <tr>
+ <td><code>encode="url"</code></td>
+ <td> Encode special characters for URL parameter use, like a double quote into <code>%22</code></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>
+ <tr>
+ <td><code>separator=", "</code></td>
+ <td> Separator between multiple selections. Only relevant if multiple is specified </td>
+ <td><code>"\n"</code> (new line) </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:_** 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="VarUSERINFO"></a>
+
+### <a name="USERINFO - retrieve details abou"></a> USERINFO - retrieve details about a user (by default the logged-in user)
+
+- Syntax: `%USERINFO%`
+- Expands to: =admin, Main.admin, =
+
+**To format that information differently:**
+
+- Syntax: `%USERINFO{format="$username is really $wikiname"}%`
+- Expands to: `admin is really admin`.
+ - The tokens `$emails`, `$username`, `$wikiname`, `$wikiusername`, and `$groups` are available for use in the format string .By default, the info will be formatted as a comma-separated list of the username, wikiusername, and emails.
+
+**To get information about another user:**
+
+- Syntax: `%USERINFO{"TWikiGuest" format="$username is really $wikiname"}%`
+- Expands to: ``
+ - The parameter should be the wikiname of a user. You can only get information about another user if the `{AntiSpam}{HideUserDetails}` configuration option is not enabled, or if you are an admin. _(User details are hidden in this TWiki)_
+
+- Related: [[USERNAME|Main/WebHome#VarUSERNAME]], [[WIKINAME|Main/WebHome#VarWIKINAME]], [[WIKIUSERNAME|Main/WebHome#VarWIKIUSERNAME]], [[TWikiUserAuthentication]], [[ChangeEmailAddress]]
--- /dev/null
+<a name="VarUSERNAME"></a>
+
+### <a name="USERNAME -- your login username"></a> USERNAME -- your login username
+
+- TWiki makes names available in three formats: USERNAME like `jsmith`, WIKINAME like `JohnSmith` and WIKIUSERNAME like `Main.JohnSmith`. Un-authenticated users are all [[TWikiGuest]].
+- Syntax: `%USERNAME%`
+- Expands to: `admin`
+- **_%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: [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]], [[USERINFO|Main/WebHome#VarUSERINFO]], [[WIKINAME|Main/WebHome#VarWIKINAME]], [[WIKIUSERNAME|Main/WebHome#VarWIKIUSERNAME]], [[TWikiUserAuthentication]]
--- /dev/null
+<a name="VarVAR"></a>
+
+### <a name="VAR{"NAME" web="Web"} -- get a p"></a> VAR\{"NAME" web="Web"\} -- get a preference value from another web
+
+- Syntax: `%VAR{"NAME" web="Web"}%`
+- Example: To get `%WEBBGCOLOR%` of the Main web write `%VAR{"WEBBGCOLOR" web="Main"}%`, which expands to ==
+- Related: [[WEBPREFSTOPIC|Main/WebHome#VarWEBPREFSTOPIC]]
--- /dev/null
+<a name="VarWEB"></a>
+
+### <a name="WEB -- name of current web"></a> WEB -- name of current web
+
+- Syntax: `%WEB%`
+- Expands to: `%WEB%`
+- Related: [[BASEWEB|Main/WebHome#VarBASEWEB]], [[INCLUDINGWEB|Main/WebHome#VarINCLUDINGWEB]], [[TOPIC|Main/WebHome#VarTOPIC]]
--- /dev/null
+<a name="VarWEBLIST"></a>
+
+### <a name="WEBLIST{"format"} -- index of al"></a> WEBLIST\{"format"\} -- index of all webs
+
+- List of all webs. Obfusticated webs are excluded, e.g. webs with a `NOSEARCHALL = on` preference variable. The `"format"` defines the format of one web item. The `$name` variable gets expanded to the name of the web, `$qname` gets expanded to double quoted name, `$marker` to `marker` where web matches `selection`.
+- Syntax: `%WEBLIST{"format" ...}%`
+- Supported parameters: <table border="1" cellpadding="0" cellspacing="0">
+ <tr>
+ <th bgcolor="#99CCCC"><strong> Parameter: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Description: </strong></th>
+ <th bgcolor="#99CCCC"><strong> Default: </strong></th>
+ </tr>
+ <tr>
+ <td><code>"format"</code></td>
+ <td> Format of one line, may include <code>$name</code> (the name of the web), $qname (the name of the web in double quotes), <code>$indentedname</code> (the name of the web with parent web names replaced by indents, for use in indented lists), and <code>$marker</code> (which expands to <code>marker</code> for the item matching <code>selection</code> only) </td>
+ <td><code>"$name"</code></td>
+ </tr>
+ <tr>
+ <td><code>format="format"</code></td>
+ <td> (Alternative to above) </td>
+ <td><code>"$name"</code></td>
+ </tr>
+ <tr>
+ <td><code>separator=", "</code></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><code>"public"</code></td>
+ </tr>
+ <tr>
+ <td><code>marker="selected"</code></td>
+ <td> Text for <code>$marker</code> if the item matches <code>selection</code></td>
+ <td><code>"selected"</code></td>
+ </tr>
+ <tr>
+ <td><code>selection="%WEB%"</code></td>
+ <td> Current value to be selected in list </td>
+ <td><code>section="%WEB%"</code></td>
+ </tr>
+</table>
+- Example: `%WEBLIST{" Â * [[$name.WebHome]]"}%` creates a bullet list of all webs.
+- Example: `%WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash, public" selection="%WEB%" separator=" "}%` creates a dropdown of all public webs + Trash web, with the current web highlighted.
+- Related: [[TOPICLIST|Main/WebHome#VarTOPICLIST]], [[SEARCH|Main/WebHome#VarSEARCH]]
--- /dev/null
+<a name="VarWEBPREFSTOPIC"></a>
+
+### <a name="WEBPREFSTOPIC -- name of web pre"></a> WEBPREFSTOPIC -- name of web preferences topic
+
+- Syntax: `%WEBPREFSTOPIC%`
+- Expands to: `WebPreferences`, renders as [[WebPreferences]]
+- Related: [[HOMETOPIC|Main/WebHome#VarHOMETOPIC]], [[WIKIPREFSTOPIC|Main/WebHome#VarWIKIPREFSTOPIC]], [[VAR|Main/WebHome#VarVAR]]
--- /dev/null
+<a name="VarWIKIHOMEURL"></a>
+
+### <a name="WIKIHOMEURL -- site home URL <strong>de"></a> WIKIHOMEURL -- site home URL \*deprecated
+
+- **_%X% Note:_** use `%WIKILOGOURL%` defined in [[WebPreferences]] instead.
--- /dev/null
+<a name="VarWIKINAME"></a>
+
+### <a name="WIKINAME -- your Wiki username"></a> WIKINAME -- your Wiki username
+
+- The [[WikiName]] is the same as `%USERNAME%` if not defined in the [[TWikiUsers]] topic
+- Syntax: `%WIKINAME%`
+- Expands to: `admin`
+- **_%X% Note:_** When used in a template topic, this variable will be expanded when the template is used to create new topic. See [[TWikiTemplates#TemplateTopicsVars]] for details.
+- Related: [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]], [[USERINFO|Main/WebHome#VarUSERINFO]], [[USERNAME|Main/WebHome#VarUSERNAME]], [[WIKIUSERNAME|Main/WebHome#VarWIKIUSERNAME]], [[WIKIUSERSTOPIC|Main/WebHome#VarWIKIUSERSTOPIC]]
--- /dev/null
+<a name="VarWIKIPREFSTOPIC"></a>
+
+### <a name="WIKIPREFSTOPIC -- name of site-w"></a> WIKIPREFSTOPIC -- name of site-wide preferences topic
+
+- Syntax: `%WIKIPREFSTOPIC%`
+- Expands to: `TWikiPreferences`, renders as [[TWikiPreferences]]
+- Related: [[HOMETOPIC|Main/WebHome#VarHOMETOPIC]], [[WEBPREFSTOPIC|Main/WebHome#VarWEBPREFSTOPIC]]
--- /dev/null
+<a name="VarWIKITOOLNAME"></a>
+
+### <a name="WIKITOOLNAME -- name of your TWi"></a> WIKITOOLNAME -- name of your TWiki site
+
+- Syntax: `%WIKITOOLNAME%`
+- Expands to: `%WIKITOOLNAME%`
+- Related: [[WIKIHOMEURL|Main/WebHome#VarWIKIHOMEURL]], [[WIKIVERSION|Main/WebHome#VarWIKIVERSION]]
--- /dev/null
+<a name="VarWIKIUSERNAME"></a>
+
+### <a name="WIKIUSERNAME -- your Wiki userna"></a> WIKIUSERNAME -- your Wiki username with web prefix
+
+- Your %WIKINAME% with Main web prefix, useful to point to your %WIKITOOLNAME% home page
+- Syntax: `%WIKIUSERNAME%`
+- Expands to: `Main.admin`, renders as Main.admin
+- **_%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: [[REMOTE_USER|Main/WebHome#VarREMOTEUSER]], [[USERINFO|Main/WebHome#VarUSERINFO]], [[USERNAME|Main/WebHome#VarUSERNAME]], [[WIKINAME|Main/WebHome#VarWIKINAME]]
--- /dev/null
+<a name="VarWIKIUSERSTOPIC"></a>
+
+### <a name="WIKIUSERSTOPIC -- name of topic"></a><a name="WIKIUSERSTOPIC -- name of topic "></a> WIKIUSERSTOPIC -- name of topic listing all registers users
+
+- Syntax: `%WIKIUSERSTOPIC%`
+- Expands to: `TWikiUsers`, with Main prefix renders as [[TWikiUsers]]
+- Related: [[WIKIUSERNAME|Main/WebHome#VarWIKIUSERNAME]]
--- /dev/null
+<a name="VarWIKIVERSION"></a>
+
+### <a name="WIKIVERSION -- the version of th"></a> WIKIVERSION -- the version of the installed TWiki engine
+
+- Syntax: `%WIKIVERSION%`
+- Expands to: `TWiki-4.1.2, Sat, 03 Mar 2007, build 13046`
+- Related: [[PLUGINVERSION|Main/WebHome#VarPLUGINVERSION]], [[WIKITOOLNAME|Main/WebHome#VarWIKITOOLNAME]]
- [[Frequently Asked Questions|Main/TWikiFAQ]] - about TWiki
- [[Reference Manual|Main/TWikiReferenceManual]] - documentation for system administrators
- [[Admin Tools|Main/AdminToolsCategory]] - manage the TWiki site
-- [[TWiki-4.0.0 Release Notes|Main/TWikiReleaseNotes04x00x00]] - describes what's new in this release
+- [[TWiki-4.0 Release Notes|Main/TWikiReleaseNotes04x00]] - describes what's new in this release
## <a name="%WEB% Web Utilities"></a> %WEB% Web Utilities
-<form action="http://www.dementia.org/twiki/edit/Main/" name="newtopic" onsubmit="return canSubmit(this);">
- <h1><a name="Create New Topic in Main Web"></a> Create New Topic in Main Web </h1>
+# <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>
<div>
<h3><a name="Topic name:"></a> Topic name: </h3>
<p>
- </p><input name="topic" onblur="this.value=capitalize(this.form, this.value);" size="40" type="text" value="" /><p>
- </p><input id="nonwikiword" name="nonwikiword" type="checkbox" /><label for="nonwikiword">Allow non WikiWord for the new topic name</label>
- <p>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.</p>
- </div>
+ </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="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>
- <h3><a name="Topic parent:"></a> Topic parent: </h3><select name="topicparent" size="10"><p>
+ <h3><a name="Topic parent:"></a> Topic parent: </h3>
+ <p>
+ </p><select name="topicparent" size="10" tabindex="12"><p>
</p>
<option value="">(no parent, orphaned topic)</option></select></div>
- <div><input type="submit" value="Create this topic" /></div>
- </div><input name="onlywikiname" type="hidden" value="off" /> <input name="onlynewtopic" type="hidden" value="on" /></form>
+ <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>
%BR%
-## <a name="NOTE: This Wiki topic does not e"></a> NOTE: This Wiki topic does not exist yet
-
-### <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:
-
-- 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/%WEB%/?scope=topic&nosummary=on¬otal=on&search=%TOPIC%)
-- [Search for similar topics in all public webs](http://www.dementia.org/twiki/search/%WEB%/?web=all&scope=topic&nosummary=on¬otal=on&search=%TOPIC%)
-
-# <a name="TWiki Installation Error"></a> TWiki Installation Error
-
-Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
-
-### <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:
-
-<form action="http://www.dementia.org/twiki/search/%WEB%/" 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="%TOPIC%" />Â <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>
-
-### <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:
-
-- %X% %RED% **WARNING:** %ENDCOLOR% This topic name is not recommended because it will not be linked automatically. See [[WikiWord]] for details
+> %X% %RED%
+>
+> **WARNING:**
+>
+> %ENDCOLOR% This topic name is not recommended because it will not be linked automatically. See
+>
+> [[WikiWord]]
+>
+> for details
- 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/%WEB%/?scope=topic&nosummary=on¬otal=on&search=%TOPIC%)
-- [Search for similar topics in all public webs](http://www.dementia.org/twiki/search/%WEB%/?web=all&scope=topic&nosummary=on¬otal=on&search=%TOPIC%)
+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)
# <a name="TWiki Installation Error"></a> TWiki Installation Error
### <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:
-<form action="http://www.dementia.org/twiki/search/%WEB%/" name="search">
+<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="%TOPIC%" />Â <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>
+ <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>
### <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:
-- Continue to **[create topic %TOPIC%](http://www.dementia.org/twiki/edit/%WEB%/%TOPIC%)**
+> **Topic name:**<br />
+>
+> **Topic parent:**<br />
</tr>
<tr>
<td align="right"> Plugin Version: </td>
- <td> 9566 </td>
+ <td> 10613 </td>
</tr>
<tr>
- <td> Change History: </td>
+ <td> Change History: </td>
<td> Â </td>
</tr>
<tr>
- <td> 9565 </td>
+ <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>
+ <tr>
+ <td align="right"> 9566 </td>
+ <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1890" rel="nofollow">Item1890</a> doc update </td>
+ </tr>
+ <tr>
+ <td align="right"> 9565 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1890" rel="nofollow">Item1890</a> <a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1041" rel="nofollow">Item1041</a> <a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item944" rel="nofollow">Item944</a> Much more aggressive cleanup of HTML pasted in from external sources. Excessively verbose HTML (e.g. from Outlook) was causing apparent infinite looing behaviour. </td>
</tr>
<tr>
- <td> 8867 </td>
+ <td align="right"> 8867 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1176" rel="nofollow">Item1176</a> commented out Cairo version of header handler </td>
</tr>
<tr>
- <td> 8780 </td>
+ <td align="right"> 8780 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1625" rel="nofollow">Item1625</a> disable expansion of twiki variables in urls where there are other twiki variables that can't be expanded </td>
</tr>
<tr>
- <td> 8779 </td>
+ <td align="right"> 8779 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1530" rel="nofollow">Item1530</a> support for templatetopic when editing new topics </td>
</tr>
<tr>
- <td> 8592 </td>
+ <td align="right"> 8592 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1532" rel="nofollow">Item1532</a> [[Main/WysiwygPlugin]]: Added two more do-not-edit-if-topic-contains parameters, pre+comments </td>
</tr>
<tr>
- <td> 8590 </td>
+ <td align="right"> 8590 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1532" rel="nofollow">Item1532</a> [[Main/WysiwygPlugin]]: Kenneths suggestion on proper handling of HTML comments (incl. change to kupu) </td>
</tr>
<tr>
- <td> 8572 </td>
+ <td align="right"> 8572 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1529" rel="nofollow">Item1529</a> evil, evil. The XMLSerializer in IE isn't happy serializing the DOM. I have no idea why. Kupu manages to get away with this because it passes the DOM through the XML validator, which I had to disable because it strips comments. So, for now, the IE implementation will strip comments - but at least you can save again </td>
</tr>
<tr>
- <td> 8538 </td>
+ <td align="right"> 8538 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1501" rel="nofollow">Item1501</a> table handling was a bit spazzy. Several problems fixed. </td>
</tr>
<tr>
- <td> 8535 </td>
+ <td align="right"> 8535 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1518" rel="nofollow">Item1518</a> moved icon and string lists into topics, updated screenshot </td>
</tr>
<tr>
- <td> 8531 </td>
+ <td align="right"> 8531 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1392" rel="nofollow">Item1392</a> reversed the sense of the navigate-away condition, again </td>
</tr>
<tr>
- <td> 8466 </td>
+ <td align="right"> 8466 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1486" rel="nofollow">Item1486</a> added WYSIWYG_EXCLUDE to allow exclusion of 'uneditable' content </td>
</tr>
<tr>
- <td> 8463 </td>
+ <td align="right"> 8463 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1486" rel="nofollow">Item1486</a> was stripping comments, wrongly. Had to disable the kupu filters completely, they just do too much damage. </td>
</tr>
<tr>
- <td> 8401 </td>
+ <td align="right"> 8401 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1457" rel="nofollow">Item1457</a> corrected problem with bullet list at top of topic </td>
</tr>
<tr>
- <td> 8388 </td>
+ <td align="right"> 8388 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1445" rel="nofollow">Item1445</a> fix for a javascript error, introduced by previous fix </td>
</tr>
<tr>
- <td> 8387 </td>
+ <td align="right"> 8387 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1445" rel="nofollow">Item1445</a> small usability improvements </td>
</tr>
<tr>
- <td> 8334 </td>
+ <td align="right"> 8334 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item663" rel="nofollow">Item663</a> TWiki.org doc merge: Fix incorrect link to kupu website </td>
</tr>
<tr>
- <td> 8327 </td>
+ <td align="right"> 8327 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1411" rel="nofollow">Item1411</a> handle case of the result of a TWiki variable being nopped </td>
</tr>
<tr>
- <td> 8312 </td>
+ <td align="right"> 8312 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1317" rel="nofollow">Item1317</a> wrong result returned from generation function when expanding HTML embedded in verbatim block </td>
</tr>
<tr>
- <td> 8301 </td>
+ <td align="right"> 8301 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1397" rel="nofollow">Item1397</a> removed excess space after sqaub links </td>
</tr>
<tr>
- <td> 8300 </td>
+ <td align="right"> 8300 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1231" rel="nofollow">Item1231</a> added %SPAN% to indicate a spanned-over cell in the editor. Improved handling of HTML in verbatim tags by inserting line breaks is the tag type calls for it, before removing the HTML. </td>
</tr>
<tr>
- <td> 8276 </td>
+ <td align="right"> 8276 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1215" rel="nofollow">Item1215</a> added WYSIWYG_ICONS and WYSIWYG_TAGS to support user customisation of icon images and twiki variables that can be inserted </td>
</tr>
<tr>
- <td> 8274 </td>
+ <td align="right"> 8274 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1314" rel="nofollow">Item1314</a> debugging in case the hang happens again; and made sure to default the editor just in case </td>
</tr>
<tr>
- <td> 8273 </td>
+ <td align="right"> 8273 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1315" rel="nofollow">Item1315</a> short forms must be terminated by one of the same characters that terminate wikiwords </td>
</tr>
<tr>
- <td> 8272 </td>
+ <td align="right"> 8272 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1391" rel="nofollow">Item1391</a> added special interpretation of IMG tags to expand selected TWiki variables within SRC attributes </td>
</tr>
<tr>
- <td> 8271 </td>
+ <td align="right"> 8271 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1340" rel="nofollow">Item1340</a> refined handling of NOP to cover abbrevs </td>
</tr>
<tr>
- <td> 8270 </td>
+ <td align="right"> 8270 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1311" rel="nofollow">Item1311</a> removed excess space inserted in headings </td>
</tr>
<tr>
- <td> 8269 </td>
+ <td align="right"> 8269 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1339" rel="nofollow">Item1339</a> changed from using arbitrary attribute for notoc to a new CSS class. Arbitrary attributes are stripped by Kupu before save. </td>
</tr>
<tr>
- <td> 8268 </td>
+ <td align="right"> 8268 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1344" rel="nofollow">Item1344</a> strip ^Ms inserted by Sarissa during serialisation on IE </td>
</tr>
<tr>
- <td> 8267 </td>
+ <td align="right"> 8267 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1394" rel="nofollow">Item1394</a> still can't get text styles to work properly in IE; but I am now firmly of the opinion that the fault lies with the browser, and not with Kupu. </td>
</tr>
<tr>
- <td> 8232 </td>
+ <td align="right"> 8232 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1341" rel="nofollow">Item1341</a> added appropriate CSS class </td>
</tr>
<tr>
- <td> 8152 </td>
+ <td align="right"> 8152 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1313" rel="nofollow">Item1313</a> added caveat about editing complex HTML and mixed HTML-TML </td>
</tr>
<tr>
- <td> 8151 </td>
+ <td align="right"> 8151 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1334" rel="nofollow">Item1334</a> headers not handled properly in Cairo version </td>
</tr>
<tr>
- <td> 8108 </td>
+ <td align="right"> 8108 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1318" rel="nofollow">Item1318</a> corrected table/list parser for tables embedded in bulleted lists </td>
</tr>
<tr>
- <td> 8106 </td>
+ <td align="right"> 8106 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1310" rel="nofollow">Item1310</a> support for <nop/> </td>
</tr>
<tr>
- <td> 8105 </td>
+ <td align="right"> 8105 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1317" rel="nofollow">Item1317</a> support for limited case of nopped variable </td>
</tr>
<tr>
- <td> 8104 </td>
+ <td align="right"> 8104 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1320" rel="nofollow">Item1320</a> corrected interpretation of relative URL path in [[]] </td>
</tr>
<tr>
- <td> 8091 </td>
+ <td align="right"> 8091 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1259" rel="nofollow">Item1259</a> changed comment handling; rather than trying to create HTML, which gets munged, create an HTML comment. This will only be editable by switching to source view, but hey, it's supposed to be WYSIWYG. Note that this also means that comments in pasted HTML should be retained now </td>
</tr>
<tr>
- <td> 8063 </td>
+ <td align="right"> 8063 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1042" rel="nofollow">Item1042</a> spec of SCRIPTURL changed </td>
</tr>
<tr>
- <td> 7904 </td>
+ <td align="right"> 7904 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1189" rel="nofollow">Item1189</a> reverting accidental checkin of experimental code </td>
</tr>
<tr>
- <td> 7903 </td>
+ <td align="right"> 7903 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1189" rel="nofollow">Item1189</a> filter whitelist is not good enough; need to generate B and I nodes. templates/ pub/TWiki/WysiwygPlugin </td>
</tr>
<tr>
- <td> 7902 </td>
+ <td align="right"> 7902 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1189" rel="nofollow">Item1189</a> it took bloody ages to track down, but finally discovered that bold and italic were being filtered out of spans by Kupu 1.3.2.... too smart for it's own good. So added them to the filter whitelist, and it works again. </td>
</tr>
<tr>
- <td> 7873 </td>
+ <td align="right"> 7873 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1189" rel="nofollow">Item1189</a> added pre save filter to try and find where the attributes are disappearing to in FF </td>
</tr>
<tr>
- <td> 7872 </td>
+ <td align="right"> 7872 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1187" rel="nofollow">Item1187</a> for lack of an s on an RE, the nation was lost (well, the multi-line comment actually). Thanks Kenneth! </td>
</tr>
<tr>
- <td> 7871 </td>
+ <td align="right"> 7871 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item859" rel="nofollow">Item859</a> solved issue with non-display of inserted images. Was due to the use of an onSubmit handler to close the dialog, rather than an onLoad handler triggered when the IFRAME that contains the result is loaded. </td>
</tr>
<tr>
- <td> 7869 </td>
+ <td align="right"> 7869 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1172" rel="nofollow">Item1172</a> had to rewrite big chunk of the table popup to get it working with 1.3.2 </td>
</tr>
<tr>
- <td> 7858 </td>
+ <td align="right"> 7858 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1151" rel="nofollow">Item1151</a> rewrote link handlings stuff to leverage browser better </td>
</tr>
<tr>
- <td> 7854 </td>
+ <td align="right"> 7854 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1175" rel="nofollow">Item1175</a> escape wikiwords within squabs </td>
</tr>
<tr>
- <td> 7815 </td>
+ <td align="right"> 7815 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1158" rel="nofollow">Item1158</a> works for Cairo now as well </td>
</tr>
<tr>
- <td> 7814 </td>
+ <td align="right"> 7814 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1158" rel="nofollow">Item1158</a> first implementation of AJAX interface to allow selectoin of topics from other webs </td>
</tr>
<tr>
- <td> 7812 </td>
+ <td align="right"> 7812 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1154" rel="nofollow">Item1154</a> removed non-existent scull.gif </td>
</tr>
<tr>
- <td> 7811 </td>
+ <td align="right"> 7811 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1155" rel="nofollow">Item1155</a> added extra recursion block, as Item1155 suggests it is needed </td>
</tr>
<tr>
- <td> 7801 </td>
+ <td align="right"> 7801 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1042" rel="nofollow">Item1042</a> All sorts of clever tricks to handle expansion/compression of a subset of TWiki variables when they are used in URLs. Not a complete solution, but better than it was. </td>
</tr>
<tr>
- <td> 7799 </td>
+ <td align="right"> 7799 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1024" rel="nofollow">Item1024</a> caught out by recursive call to beforeCommonTagsHandler in Cairo (nasty) </td>
</tr>
<tr>
- <td> 7798 </td>
+ <td align="right"> 7798 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1042" rel="nofollow">Item1042</a> whoops, broke \t conversion in Cairo </td>
</tr>
<tr>
- <td> 7789 </td>
+ <td align="right"> 7789 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1140" rel="nofollow">Item1140</a> testcase for 1140 </td>
</tr>
<tr>
- <td> 7788 </td>
+ <td align="right"> 7788 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1140" rel="nofollow">Item1140</a> fix rewriting of img src urls (and updated MANIFEST for Kupu1.3.2) </td>
</tr>
<tr>
- <td> 7786 </td>
+ <td align="right"> 7786 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1042" rel="nofollow">Item1042</a> extensive improvements to variable and URL recognition and conversion </td>
</tr>
<tr>
- <td> 7766 </td>
+ <td align="right"> 7766 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item856" rel="nofollow">Item856</a> added doc on EDIT_SKIN to the plugin </td>
</tr>
<tr>
- <td> 7712 </td>
+ <td align="right"> 7712 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1074" rel="nofollow">Item1074</a> upgrade to Kupu 1.3.2 complete (at last) </td>
</tr>
<tr>
- <td> 7710 </td>
+ <td align="right"> 7710 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1074" rel="nofollow">Item1074</a> Fixed source edit mode </td>
</tr>
<tr>
- <td> 7709 </td>
+ <td align="right"> 7709 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1074" rel="nofollow">Item1074</a> tidied up broken toolbar. There are still known issues </td>
</tr>
<tr>
- <td> 7700 </td>
+ <td align="right"> 7700 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1074" rel="nofollow">Item1074</a> first pass at moving to Kupu 1.3.2. </td>
</tr>
<tr>
- <td> 7673 </td>
+ <td align="right"> 7673 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1037" rel="nofollow">Item1037</a> insert wikiword only if selection is zero length </td>
</tr>
<tr>
- <td> 7672 </td>
+ <td align="right"> 7672 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item977" rel="nofollow">Item977</a> changed to remove dangerous Cairo-based assumption, and use context ids instead </td>
</tr>
<tr>
- <td> 7630 </td>
+ <td align="right"> 7630 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item1025" rel="nofollow">Item1025</a> added 'escape clause' for old handlers implemented to support old TWiki releases without warnings </td>
</tr>
<tr>
- <td> 7506 </td>
+ <td align="right"> 7506 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item941" rel="nofollow">Item941</a> Eliminated the last of the dynamic globals to try and solve saving problem. Can;t test with mod_perl, but is fine with speedycgi AFAICT </td>
</tr>
<tr>
- <td> 7456 </td>
+ <td align="right"> 7456 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item873" rel="nofollow">Item873</a> minor issue; replace br with \n in pre </td>
</tr>
<tr>
- <td> 7455 </td>
+ <td align="right"> 7455 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item873" rel="nofollow">Item873</a> obvious problem parsing closing pre tag on same line as open tag </td>
</tr>
<tr>
- <td> 7453 </td>
+ <td align="right"> 7453 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item710" rel="nofollow">Item710</a> Handling HTML comments </td>
</tr>
<tr>
- <td> 7452 </td>
+ <td align="right"> 7452 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item876" rel="nofollow">Item876</a> Item945: Item876: spacing around table cells, correct handling of variables. Had to compromise on handling [[]] but I think it's for the best. </td>
</tr>
<tr>
- <td> 7430 </td>
+ <td align="right"> 7430 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item871" rel="nofollow">Item871</a> made sure that brackets are generated for non-wikiwords </td>
</tr>
<tr>
- <td> 7425 </td>
+ <td align="right"> 7425 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item928" rel="nofollow">Item928</a> removed special interpretation of mailto links </td>
</tr>
<tr>
- <td> 7424 </td>
+ <td align="right"> 7424 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item866" rel="nofollow">Item866</a> extended URL parsing to handle MAINWEB and TWIKIWEB twiki variables, in the same hacky way as the core. </td>
</tr>
<tr>
- <td> 7416 </td>
+ <td align="right"> 7416 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item870" rel="nofollow">Item870</a> a couple of corner-cases for correct handling of twiki variables </td>
</tr>
<tr>
- <td> 7401 </td>
+ <td align="right"> 7401 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item899" rel="nofollow">Item899</a> changed list generation to use spaces instead of tabs </td>
</tr>
<tr>
- <td> 7265 </td>
+ <td align="right"> 7265 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item180" rel="nofollow">Item180</a> removed pointless, outdated dependency check from [[Main/DateFieldPlugin]]</td>
</tr>
<tr>
- <td> 6935 </td>
+ <td align="right"> 6935 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item622" rel="nofollow">Item622</a> reverted 3 specs to tabs in Set lines in plugins topics for kompatterbility with Kigh-roe </td>
</tr>
<tr>
- <td> 6905 </td>
+ <td align="right"> 6905 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item622" rel="nofollow">Item622</a> tabs -> 3 spacesto avoid confusing the users </td>
</tr>
<tr>
- <td> 6850 </td>
+ <td align="right"> 6850 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item638" rel="nofollow">Item638</a> added instruction to run configure to all install docs (I hope) </td>
</tr>
<tr>
- <td> 6827 </td>
+ <td align="right"> 6827 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item569" rel="nofollow">Item569</a> added default RELEASE to everything that had a version, and removed a load of dead code that was getting in the way </td>
</tr>
<tr>
- <td> 6758 </td>
+ <td align="right"> 6758 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item569" rel="nofollow">Item569</a> computed version numbers for plugins from the repository rev they were built from. </td>
</tr>
<tr>
- <td> 6504 </td>
+ <td align="right"> 6504 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item436" rel="nofollow">Item436</a> incremented vernos of all changed plugins </td>
</tr>
<tr>
- <td> 6485 </td>
+ <td align="right"> 6485 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item429" rel="nofollow">Item429</a> trying to make access controls clearer </td>
</tr>
<tr>
- <td> 6401 </td>
+ <td align="right"> 6401 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item340" rel="nofollow">Item340</a> re-initialisation bug found by [[Main/ColasNahaboo]] when using mod_perl; fixed by correctly re-initialising the parse stack for each run of the convertor </td>
</tr>
<tr>
- <td> 6284 </td>
+ <td align="right"> 6284 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item340" rel="nofollow">Item340</a> Release 0.16 of [[Main/WysiwygPlugin]]</td>
</tr>
<tr>
- <td> 6279 </td>
+ <td align="right"> 6279 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item340" rel="nofollow">Item340</a> bugfixes for release 0.16 of [[Main/WysiwygPlugin]]</td>
</tr>
<tr>
- <td> 6261 </td>
+ <td align="right"> 6261 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item335" rel="nofollow">Item335</a> Switched PNGs to indexed mode, as transparency doesn't work on IE for RGB images </td>
</tr>
<tr>
- <td> 6238 </td>
+ <td align="right"> 6238 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item332" rel="nofollow">Item332</a> Added context identifier to [[Main/WysiwygPlugin]], and a button to the pattern view template. If [[Main/WysiwygPlugin]] is enabled, then the button will appear. Neat, huh? </td>
</tr>
<tr>
- <td> 6195 </td>
+ <td align="right"> 6195 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item196" rel="nofollow">Item196</a> getting plugin test suites to pass. Doesn't mean the plugins actually work, just that the test suites run (which is a good indicator) </td>
</tr>
<tr>
- <td> 6174 </td>
+ <td align="right"> 6174 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> checkpoint checking for 0.16 </td>
</tr>
<tr>
- <td> 6151 </td>
+ <td align="right"> 6151 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item186" rel="nofollow">Item186</a> more minor updates </td>
</tr>
<tr>
- <td> 6150 </td>
+ <td align="right"> 6150 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> new icons, and a couple of bugfixes, to [[Main/WysiwygPlugin]]</td>
</tr>
<tr>
- <td> 6092 </td>
+ <td align="right"> 6092 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item196" rel="nofollow">Item196</a> more plugin and contrib fixes for develop; mainly just moving tests around and making sure they all pass. </td>
</tr>
<tr>
- <td> 6067 </td>
+ <td align="right"> 6067 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item138" rel="nofollow">Item138</a> had to change to using beforeCommonTagsHandler and also escape % signs to prevent TWiki from rendering internal tags (as reported by Colas) </td>
</tr>
<tr>
- <td> 5979 </td>
+ <td align="right"> 5979 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> corrected stupid error on IE; added screenshot </td>
</tr>
<tr>
- <td> 5977 </td>
+ <td align="right"> 5977 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> release 0.13 </td>
</tr>
<tr>
- <td> 5948 </td>
+ <td align="right"> 5948 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> nearly ready for 0.13 </td>
</tr>
<tr>
- <td> 5937 </td>
+ <td align="right"> 5937 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> corrected images, twikified all images </td>
</tr>
<tr>
- <td> 5936 </td>
+ <td align="right"> 5936 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> the import from cvs has screwed images </td>
</tr>
<tr>
- <td> 5934 </td>
+ <td align="right"> 5934 </td>
<td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item168" rel="nofollow">Item168</a> twikified icon images, and renamed some images to be more intention-revealing </td>
</tr>
<tr>
- <td> 5739 </td>
+ <td align="right"> 5739 </td>
<td> 0.12 beta release </td>
</tr>
<tr>
- <td> 5730 </td>
+ <td align="right"> 5730 </td>
<td> V0.11 </td>
</tr>
<tr>
- <td> 5714 </td>
+ <td align="right"> 5714 </td>
<td> Tidied up installer, documentation. Release 0.10 </td>
</tr>
<tr>
- <td> 5712 </td>
+ <td align="right"> 5712 </td>
<td> pre-release 0.06 </td>
</tr>
<tr>
- <td> 5706 </td>
+ <td align="right"> 5706 </td>
<td> Version 0.05 </td>
</tr>
<tr>
- <td> 5705 </td>
+ <td align="right"> 5705 </td>
<td> Checkpoint checking - version 0.03 </td>
</tr>
<tr>
- <td> 5702 </td>
+ <td align="right"> 5702 </td>
<td> cvsrmtee old files </td>
</tr>
<tr>
- <td> 5701 </td>
+ <td align="right"> 5701 </td>
<td> Check in for prototype release </td>
</tr>
<tr>
- <td> 5700 </td>
+ <td align="right"> 5700 </td>
<td> Check in for prototype release </td>
</tr>
<tr>
- <td> 5699 </td>
+ <td align="right"> 5699 </td>
<td> Checkpoint </td>
</tr>
<tr>
- <td> 5698 </td>
+ <td align="right"> 5698 </td>
<td> Most of the toolboxes are working again </td>
</tr>
<tr>
- <td> 5693 </td>
+ <td align="right"> 5693 </td>
<td> Initial commit; doesn't do much except run tests </td>
</tr>
<tr>
**_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
--- TWiki:Main/CrawfordCurrie - 21:45:16 31 March 2006
+-- TWiki:Main/CrawfordCurrie - 02:19:17 26 June 2006