| Resource | Required Server Environment * |
|---|---|
| Perl | 5.005_03 or higher (5.8.4 or higher is recommended) |
| RCS | 5.7 or higher (including GNU diff) Optional, TWiki includes a pure perl implementation of RCS that can be used instead (though it's slower) |
GNU diff | GNU diff 2.7 or higher is required when not using the all-Perl RcsLite. Install on PATH if not included with RCS (check version with diff -v) Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to diff |
| Other external programs | fgrep, egrep |
| Cron/scheduler | • Unix: cron • Windows: cron equivalents |
| Web server | Apache is well supported; for other servers, see the TWiki:Codev.CategoryCookbook lists |
| Module | Preferred version | Description |
|---|---|---|
| CGI::Carp | >=1.26 | Required. Available from the CPAN archive. |
| CGI::Cookie | >=1.24 | Optional. Available from the CPAN archive. |
| CGI::Session | >=3.95 | Optional. Available from the CPAN archive. |
| Config | >=0 | Required. Available from the CPAN archive. |
| Cwd | >=3.05 | Required. Available from the CPAN archive. |
| Data::Dumper | >=2.121 | Required. Available from the CPAN archive. |
| File::Copy | >=2.06 | Required. Available from the CPAN archive. |
| File::Find | >=1.05 | Required. Available from the CPAN archive. |
| File::Spec | >=3.05 | Required. Available from the CPAN archive. |
| FileHandle? | >=2.01 | Required. Available from the CPAN archive. |
| IO::File | >=1.10 | Required. Available from the CPAN archive. |
| Locale::Maketext::Lexicon | >=0 | Optional. Available from the CPAN archive. |
| Net::SMTP | >=2.29 | Optional. Used for sending mail. |
| Time::Local | >=1.11 | Required. Available from the CPAN archive. |
data and pub directories and to lib/LocalSite.cfg. Everything else should be read-only.
/usr/bin/perl. If it's somewhere else, change the path to Perl in the first line of each script in the twiki/bin directory.
.cgi or .pl). If necessary, rename all files in twiki/bin (i.e. rename view to view.pl etc). If you do this, make sure you set the ScriptSuffix option in configure (Step 6).
/twiki/bin/LocalLib.cfg.
/twiki/bin/LocalLib.cfg.txt. $twikiLibPath, which must point to the absolute file path of your twiki/lib e.g. /home/httpd/twiki/lib.
$CPANBASE to point to your personal CPAN install. Don't forget that the webserver user has to be able to read those files as well.
bin/configure script from your browser.
httpd.conf file in twiki_httpd_conf.txt at the root of the package. This file also contains advice on securing your installation.
configure script from your browser, and resolve any errors or warnings it tells you about.
http://yourdomain.com/twiki/bin/view and start TWiki-ing away!
configure script and make sure you have resolved all errors, and are happy that you understand any warnings.
Failing that, please check the topics listed below, they include some important tips for HP-UX, Solaris, OS/390, and many other platforms.
"UpgradeTwiki", and is found in the root of the distribution. It can be run by any user, though you will need to make sure you correct permissions so the webserver user can write all files in the new installation when you have finished. The upgrade script does not write to your existing installation.
The upgrade script will upgrade the TWiki core only. Plugins will need to be upgraded separately.
It will:
UpgradeTwiki script available, see TWiki:Codev.UpgradeTWiki
distro/
distro/
new_twiki. This directory must not already exist.
distro/ and run: ./UpgradeTwiki <full path to existing_twiki's setlib.cfg> <full path to new_twiki>
cgi-bin/configure
UpgradeTwiki will give you the final instructions.
There are a few points worth noting:
UpgradeTwiki may not be able to merge all the changes you made in your existing TWiki into the new installation, but it will tell you which ones it couldn't deal with
UpgradeTwiki creates the new installation in a new directory tree. It makes a complete copy of all your existing data, so:
data/ directory in your existing installation, these are reproduced as actual directories in the new structure. It is up to you to pull these sub-directories out again and re-symlink as needed
UpgradeTwiki doesn't deal with custom templates or Plugins, you will have to reinstall these in the new installation.
UpgradeTwiki more robust.
configure interface for the new install.
configure, then copy the new TWiki.cfg to LocalSite.cfg, and edit LocalSite? .cfg. Remove all the settings that you didn't change in your previous install, and change the remaining settings to the values from your old TWiki.cfg.
.htpasswd files on the server. These files can be unique to TWiki, or can be shared with other applications (such as an Apache webserver). A variety of password encoding schemes are supported for flexibility when re-using existing files. See the descriptive comments in the Security Settings section of the configure interface for more details.
configure interface.
configure interface to
TemplateLogin login manager (on the Security Settings pane).
.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.
pub area, unless they are only accessed through the viewfile script. If your pub directory is set up in the webserver to allow open access you may want to add .htaccess files in there to restrict access.
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.
REMOTE_USER environment variable, which is set when you enable authentication in the webserver.
The advantage of this scheme is that if you have an existing website authentication scheme using Apache modules such as mod_auth_ldap or mod_auth_mysql you can just plug in directly to them.
The disadvantage is that because the user identity is cached in the browser, you can log in, but you can't log out again.
TWiki maps the REMOTE_USER that was used to log in to the webserver to a WikiName using the table in TWikiUsers. This table is updated whenever a user registers, so users can choose not to register (in which case their webserver login name is used for their signature) or register (in which case that login name is mapped to their WikiName).
The same private .htpasswd file used in TWiki Template Login can be used to authenticate Apache users, using the Apache Basic Authentication support. This allows the TWiki registration support to maintain usernames and passwords.
mod_auth ApacheLogin login manager.
.htpasswd entries.
.htaccess file in the twiki/bin directory.twiki/bin/.htaccess.txt that you can copy and change. The comments in the file explain what need to be done..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, email web server support)
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
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.
.htpasswd file. If not, you may have got a path wrong, or the permissions may not allow the webserver user to write to that file.
bin/logon script accomplishes this. The bin/logon script must be setup in the bin/.htaccess file to be a script which requires a valid user. However, once authenticated, it will simply redirect the user to the view URL for the page from which the logon script was linked.
pthoeny. This name is normally passed to TWiki by the REMOTE_USER environment variable, and used internally. Login Usernames are maintained by your system administrator.
PeterThoeny, is recorded when you register using TWikiRegistration; doing so also generates a personal home page in the Main web.
configure. The default is to use your WikiName as a login name.
NOTE: To correctly enter a WikiName - your own or someone else's - be sure to include the Main web name in front of the Wiki username, followed by a period, and no spaces. Ex:This pointsMain.WikiUsernameor%MAINWEB%.WikiUsernameWikiUserto the Main web, where user registration pages are stored, no matter which web it's entered in. Without the web prefix, the name appears as a NewTopic? everywhere but in the Main web.
TWiki/ChangePassword ):
TWiki/ResetPassword ):
.htpasswd if authentication is enabled.
Main web, like the TWikiAdminGroup. To create a new group:
Edit TWikiGroups by entering a new topic with a name that ends in Group. Example:
SomeGroup
Set GROUP = < list of Users and/or Groups >
Set ALLOWTOPICCHANGE = < list of Users and/or Groups >
Set GROUP = Main.SomeUser, Main.OtherUser, Main.SomeGroup
Set ALLOWTOPICCHANGE = Main.TWikiAdminGroup
SuperAdminGroup configuration setting to the wikiname of a group of Users who are always allowed to edit/view topics e.g. "TWikiAdminGroup".
Set DENYWEBVIEW = < comma-delimited list of Users and Groups >
Set ALLOWWEBVIEW = < comma-delimited list of Users and Groups >
Set DENYWEBCHANGE = < comma-delimited list of Users and Groups >
Set ALLOWWEBCHANGE = < comma-delimited list of Users and Groups >
Set DENYWEBRENAME = < comma-delimited list of Users and Groups >
Set ALLOWWEBRENAME = < comma-delimited list of Users and Groups >
Set DENYTOPICVIEW = < comma-delimited list of Users and Groups >
Set ALLOWTOPICVIEW = < comma-delimited list of Users and Groups >
Set DENYTOPICCHANGE = < comma-delimited list of Users and Groups >
Set ALLOWTOPICCHANGE = < comma-delimited list of Users and Groups >
Set DENYTOPICRENAME = < comma-delimited list of Users and Groups >
Set ALLOWTOPICRENAME = < comma-delimited list of Users and Groups >
mod_rewrite module, and configure your webserver to redirect accesses to attachments to the TWiki viewfile script. For example,
That way all the controls that apply to the topic also apply to attachments to the topic.
all webs search option from accessing obfuscated webs. Do so by enabling the NOSEARCHALL variable in WebPreferences:
Set NOSEARCHALL = on
Set DENYWEBVIEW = < list of Users and Groups >
Set ALLOWWEBVIEW = < list of Users and Groups >
DENYWEBVIEW is evaluated before ALLOWWEBVIEW. Access is denied if the authenticated person is in the DENYWEBVIEW list, or not in the ALLOWWEBVIEW list. Access is granted in case DENYWEBVIEW and ALLOWWEBVIEW is not defined.
NOSEARCHALL variable in its WebPreferences topic:
Set NOSEARCHALL = on
view to the list of authenticated scripts in the .htaccess file.
view script is authenticated, which means that all Users have to login, even for read-only access. (An open guest account, like TWikiGuest, can get around this, allowing anyone to login to a common account with, for example, view-only access for public webs.) TWikiInstallationGuide has more on Basic Authentication, using the .htaccess file.
Set DENYWEBVIEW = < list of Users and Groups >
Set ALLOWWEBVIEW = < list of Users and Groups >
DENYWEBVIEW is evaluated before ALLOWWEBVIEW. Access is denied if the authenticated person is in the DENYWEBVIEW list, or not in the ALLOWWEBVIEW list. Access is granted in case DENYWEBVIEW and ALLOWWEBVIEW is not defined.
NOSEARCHALL variable in its WebPreferences topic:
Set NOSEARCHALL = on
{RememberUserIPAddress} in http://localhost/CLEAN/bin/configure as described in TWikiUserAuthentication. TWiki will now remember the IP address of an authenticated user.
view script to viewauth (or better, create a symbolic link)
viewauth to the list of authenticated scripts in the .htaccess file. The view script should not be listed in the .htaccess file.
view script to the viewauth script once (this happens only if the user has never edited a topic). Doing so will ask for authentication. The viewauth script shows the requested topic if the user could log on and if the user is authorized to see that web.
| Formatting Command: | You write: | You get: | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Paragraphs: Blank lines will create new paragraphs. | 1st paragraph 2nd paragraph | |||||||||||||||||||
|
Headings: 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. You can create a table of contents with the %TOC% variable. If you want to exclude a heading from the TOC, put !! after the ---+.
|
SushiMaguroExclude from TOC |
|||||||||||||||||||
|
Bold Text: Words get shown in bold by enclosing them in * asterisks.
| Bold | |||||||||||||||||||
|
Italic Text: Words get shown in italic by enclosing them in _ underscores.
| Italic | |||||||||||||||||||
|
Bold Italic: Words get shown in bold italic by enclosing them in __ double-underscores.
| Bold italic | |||||||||||||||||||
|
Fixed Font: Words get shown in fixed font by enclosing them in = equal signs.
|
Fixed font
|
|||||||||||||||||||
|
Bold Fixed Font: Words get shown in bold fixed font by enclosing them in double equal signs.
|
Bold fixed
|
|||||||||||||||||||
* _ __ = ==) indicator
with normal punctuation, such as commas and full stops.
|
This works, _this does not _ |
|||||||||||||||||||
|
Separator (horizontal rule): Three or more three dashes at the beginning of a line.. |
|
|||||||||||||||||||
|
Bulleted list: Multiple of three spaces, an asterisk, and another space. |
|
|||||||||||||||||||
|
Numbered List: Multiple of three spaces, a type character, a dot, and another space. Several types are available besides a number:
|
|
|||||||||||||||||||
|
Definition List: Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. |
|
|||||||||||||||||||
|
Table: 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.
|
|
|||||||||||||||||||
|
WikiWord Links: CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically. If you want to link to a topic in a different TWiki web write Otherweb.TopicName. (The link label is the the name of the web if it is WebHome, otherwise it is the topic name)
| WebNotify TWikiUsers | |||||||||||||||||||
|
Verbatim (Literal) text: Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags. Each tag must be on a line by itself.
verbatim tags disable HTML code. Use <pre> and </pre> tags instead if you want the HTML code within the tags to be interpreted.
| ||||||||||||||||||||
|
Anchors: You can define a reference inside a TWiki topic (called an anchor name) and link to that. To define an anchor write #AnchorName at the beginning of a line. The anchor name must be a WikiWord. To link to an anchor name use the [[MyTopic#MyAnchor]] syntax. You can omit the topic name if you want to link within the same topic.
| WikiWord#NotThere Jump To here | |||||||||||||||||||
|
Forced Links: You can create a forced internal link by enclosing words in double square brackets. 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, [[text formatting FAQ]] links to topic TextFormattingFAQ. You can also refer to a different web and use anchors.
| wiki syntax Main.TWiki users escaped: [[wiki syntax]] | |||||||||||||||||||
|
Specific Links: You can create a link where you specify the link text and the URL separately using nested square brackets [[reference][text]]. Internal link references (e.g. WikiSyntax) and URLs (e.g. http://TWiki.org/) are both supported.
The rules described under Forced Links apply for internal link references.
| wiki syntax GNU write to the Barretts here | |||||||||||||||||||
|
Prevent a Link: Prevent a WikiWord from being linked by prepending it with an exclamation mark. | SunOS | |||||||||||||||||||
|
Disable Links: You can disable automatic linking of WikiWords by surrounding text with <noautolink> and </noautolink> tags. Each tag must be on a line by itself.
| RedHat & SuSE | |||||||||||||||||||
<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.
<...> - of an HTML tag must be on the same line, or the tag will be broken.
<script> tags in for your TWiki applications. However note that your TWiki administrator can disable <script> in topics, and may have chosen to do so for security considerations. TWiki markup and TWikiVariables are not expanded inside script tags.
http://..., https://..., ftp://..., gopher://..., news://..., file://..., telnet://...
and mailto:...@... are linked automatically.
name@domain.com are linked automatically.
[[Square bracket rules]] let you easily create non-WikiWord links.
[[http://yahoo.com Yahoo home page]] as an easier way of doing external links with descriptive text for the link, such as Yahoo home page.
% that are expanded on the fly.
%TOC% : Automatically generates a table of contents based on headings in a topic - see the top of this page for an example.
%WEB% : The current web, is TWiki.
%TOPIC% : The current topic name, is TextFormattingRules.
%ATTACHURL% : The attachment URL of the current topic. Example usage: If you attach a file to a topic you can refer to it as %ATTACHURL%/image.gif to show the URL of the file or the image in your text.
%INCLUDE{"SomeTopic"}% : Server side include, includes another topic. The current TWiki web is the default web. Example: %INCLUDE{"TWiki.SiteMap"}%
%SEARCH{"sushi"}% : Inline search showing the search result embedded in a topic. FormattedSearch gives you control over formatting, useful for creating web-based applications.
%BR% to start a new line.
%RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors to get: Red and blue colors.
%H% Help, %T% Tip, %X% Alert to get: !%SOMEVARIABLE% to get: %SOMEVARIABLE%.
%PLUGINDESCRIPTIONS%:
<filename> is not displayed. How can I show it as it is?
'<' and '>' characters have a special meaning in HTML, they define HTML tags. You need to escape them, so write '<' instead of '<', and '>' instead of '>'. 'prog <filename>' to get 'prog <filename>'.
'&' character sometimes not displayed?
'&' character has a special meaning in HTML, it starts a so called character entity, i.e. '©' is the © copyright character. You need to escape '&' to see it as it is, so write '&' instead of '&'. 'This & that' to get 'This & that'.
%VARIABLE% - that expand into content whenever a page is rendered for viewing. VARIABLES are replaced by data, either user-entered or automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you can configure. You can also define custom variables, with new names and values.
Notes:
!%TOPIC% to get %TOPIC%.
%INCLUDINGTOPIC%, %INCLUDE%, and the mighty %SEARCH%.
% percent signs):
%ACTIVATEDPLUGINS%
%ATTACHURL%
http://localhost/CLEAN/pub/TWiki/TWikiVariablesAtoM
%ATTACHURL%/image.gif
%ATTACHURLPATH%
/CLEAN/pub/TWiki/TWikiVariablesAtoM
configure. This is used in certain password encodings, and in login templates as part of the login prompt.
%AUTHREALM%
%TOPIC% if there is no INCLUDE
%BASETOPIC%
%WEB% in case there is no include.
%BASEWEB%
%DATE%
30 Sep 2005
%DISPLAYTIME%
30 Sep 2005 - 10:30
%GMTIME%
%DISPLAYTIME{"format"}%
%DISPLAYTIME{"$hou:$min"}% expands to 10:30
%ENCODE{"string"}%
| Parameter: | Description: | Default: |
|---|---|---|
"string" | String to encode | required (can be empty) |
type="entity" | Encode special characters into HTML entities, like a double quote into " | URL encoding |
type="url" | Encode special characters for URL parameter use, like a double quote into %22 | (this is the default) |
%ENCODE{"spaced name"}% expands to spaced%20name
%ENDSECTION{"name"}%
| Parameter: | Description: | Default: |
|---|---|---|
"name" | Name of the section. Must be unique inside a topic, and must match with a previous %SEcTION% tag. | Mandatory parameter without a default |
%FAILEDPLUGINS%
| Plugin | Errors |
|---|---|
| .CommentPlugin |
Plugins: could not fully register CommentPlugin, no plugin topic TWiki::Plugins::CommentPlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/CommentPlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 34) line 1. BEGIN failed--compilation aborted at (eval 34) line 1. ---- |
| .EditTablePlugin |
Plugins: could not fully register EditTablePlugin, no plugin topic TWiki::Plugins::EditTablePlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/EditTablePlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 35) line 1. BEGIN failed--compilation aborted at (eval 35) line 1. ---- |
| .InterwikiPlugin |
Plugins: could not fully register InterwikiPlugin, no plugin topic TWiki::Plugins::InterwikiPlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/InterwikiPlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 36) line 1. BEGIN failed--compilation aborted at (eval 36) line 1. ---- |
| .PreferencesPlugin |
Plugins: could not fully register PreferencesPlugin, no plugin topic TWiki::Plugins::PreferencesPlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/PreferencesPlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 37) line 1. BEGIN failed--compilation aborted at (eval 37) line 1. ---- |
| .SmiliesPlugin |
Plugins: could not fully register SmiliesPlugin, no plugin topic TWiki::Plugins::SmiliesPlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/SmiliesPlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 38) line 1. BEGIN failed--compilation aborted at (eval 38) line 1. ---- |
| .SpreadSheetPlugin |
Plugins: could not fully register SpreadSheetPlugin, no plugin topic TWiki::Plugins::SpreadSheetPlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/SpreadSheetPlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 39) line 1. BEGIN failed--compilation aborted at (eval 39) line 1. ---- |
| .TablePlugin |
Plugins: could not fully register TablePlugin, no plugin topic TWiki::Plugins::TablePlugin could not be loaded. Errors were: Can't locate TWiki/Plugins/TablePlugin.pm in @INC (@INC contains: /home/twiki/CLEAN/lib . /usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl) at (eval 40) line 1. BEGIN failed--compilation aborted at (eval 40) line 1. ---- |
| Handler | Plugins |
|---|---|
| afterAttachmentSaveHandler | |
| afterCommonTagsHandler | |
| afterEditHandler | |
| afterSaveHandler | |
| beforeAttachmentSaveHandler | |
| beforeCommonTagsHandler | |
| beforeEditHandler | |
| beforeSaveHandler | |
| commonTagsHandler | |
| earlyInitPlugin | |
| endRenderingHandler | |
| initPlugin | |
| initializeUserHandler | |
| insidePREHandler | |
| modifyHeaderHandler | |
| mergeHandler | |
| outsidePREHandler | |
| postRenderingHandler | |
| preRenderingHandler | |
| redirectCgiQueryHandler | |
| registrationHandler | |
| renderFormFieldForEditHandler | |
| renderWikiWordHandler | |
| startRenderingHandler | |
| writeHeaderHandler |
%FORMFIELD{"fieldname"}%
| Parameter: | Description: | Default: |
|---|---|---|
"fieldname" | The name of a TWiki form field | required |
topic="..." | Topic where form data is located. May be of the form Web.TopicName | Current topic |
format="..." | Format string. $value expands to the field value, and $title expands to the field title | "$value" |
default="..." | Text shown when no value is defined for the field | "" |
alttext="..." | Text shown when field is not found in the form | "" |
%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field found"}%
%GMTIME%
30 Sep 2005 - 10:30
%GMTIME{"format"}%
| Variable: | Unit: | Example |
|---|---|---|
$seconds | seconds | 59 |
$minutes | minutes | 59 |
$hours | hours | 23 |
$day | day of month | 31 |
$wday | day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) | Thu |
$dow | day of the week (Sun = 0) | 2 |
$week | number of week in year (ISO 8601) | 34 |
$month | month in ISO format | Dec |
$mo | 2 digit month | 12 |
$year | 4 digit year | 1999 |
$ye | 2 digit year | 99 |
$tz | either "GMT" (if set to gmtime), or "Local" (if set to servertime) | GMT |
$iso | ISO format timestamp | 2005-09-30T10:30Z |
$rcs | RCS format timestamp | 2005/09/30 10:30:52 |
$http | E-mail & http format timestamp | Fri, 30 Sep 2005 10:30:52 GMT |
$epoch | Number of seconds since 00:00 on 1st January, 1970 | 1128076252 |
%GMTIME{"$day $month, $year - $hour:$min:$sec"}% expands to 30 Sep, 2005 - 10:30:52
%HOMETOPIC%
WebHome, renders as WebHome
%HTTP{'Header-name'}%
%HTTP% | |
%HTTP{"Accept-language"}% | |
%HTTP{"User-Agent"}% |
%HTTPS%
%HTTPS{'Header-name'}%
%HTTP_HOST%
%ICON{"type"}%
bmp, doc, gif, hlp, html, mp3, pdf, ppt, txt, xls, xml, zip
%ICON{"pdf"}% expands to %IF{"CONDITION" then="THEN" else="ELSE"}%
%INCLUDE{"page" ...}%
| Parameter: | Description: | Default: |
|---|---|---|
"SomeTopic" | The name of a topic located in the current web, i.e. %INCLUDE{"WebNotify"}% | |
"Web.Topic" | A topic in another web, i.e. %INCLUDE{"TWiki.SiteMap"}% | |
"http://..." | A full qualified URL, i.e. %INCLUDE{"http://twiki.org/"}% | |
pattern="..." | A RegularExpression pattern to include a subset of a topic or page | none |
rev="1.2" | Include a previous topic revision; N/A for URLs | top revision |
warn="off" | Warn if topic include fails: Fail silently (if off); output default warning (if set to on); else, output specific text (use $topic for topic name) | on preferences setting |
section="name" | Includes only the specified section, as defined in the included topic by the SECTION and ENDSECTION tags |
%INCLUDE{"AnotherTopic" PONE="val 1" PTWO="val 2"}% will result in %PONE% and %PTWO% being defined within the included topic.
%INCLUDE{"http://some.page.com/index.html" pattern="^.*?BEFORE(.*)AFTER.*" }%, where BEFORE is the part of the page just before the inclusion, and AFTER is the part just after the inclusion.
%TOPIC% in case there is no include
%INCLUDINGTOPIC%
%WEB% if there is no INCLUDE.
%INCLUDINGWEB%
%LANGUAGES{...}%
| Parameter: | Description: | Default: |
|---|---|---|
format | format for each item. See below for variables available in the format string. | " * $langname" |
sep | separator between items. | "\n" (newline) |
format variables:
| Variable | Meaning |
|---|---|
$langname | language's name, as informed by the translators |
$langtag | language's tag. Ex: en, pt-br, etc. |
%LOCALSITEPREFS%
%LOGIN%
%LOGOUT%
%MAKETEXT{"string" args="..."}
| Parameter | Description | Default |
|---|---|---|
"text" or string="text" | The text to be displayed. | none |
args="param1,param2" | a comma-separated list of arguments to be interpolated in the string, replacing the [_N] placeholders in it. | none |
%MAKETEXT{string="Notes:"}%
%MAKETEXT{"Contact [_1] if you have any questions." args="%WIKIWEBMASTER%"}%
%MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="TWiki.ResetPassword,%WIKIUSERNAME%"}%
string to the current user's language only
if it has such string in its translation table for that language.
%MAINWEB%
Main
%META{ "item" ...}%
formfield item is the most likely to be useful to casual users.
| Item | Options | Description |
|---|---|---|
"formfield" | name="..." - name of the field. The field value can be shortened as described in FormattedSearch for $formfield | Show a single form field |
"form" | none | Generates the table showing the form fields. See Form Templates |
"attachments" | all="on" to show hidden attachments | Generates the table showing the attachments |
"moved" | none | Details of any topic moves |
"parent" | dontrecurse="on": By default recurses up tree, this has some cost. nowebhome="on": Suppress WebHome. prefix="...": Prefix that goes before parents, but only if there are parents, default "". suffix="...": Suffix, only appears if there are parents, default "". separator="...": Separator between parents, default is " > ". | Generates the parent link |
%METASEARCH{...}%
| Parameter: | Description: | Default: |
|---|---|---|
type="topicmoved" | What sort of search is required? "topicmoved" if search for a topic that may have been moved "parent" if searching for topics that have a specific parent i.e. its children "field" if searching for topics that have a particular form field value (use the name and value parameters to specify which field to search) | required |
web="%WEB%" | Wiki web to search: A web, a list of webs separated by whitespace, or all webs. | current web |
topic="%TOPIC%" | The topic the search relates to, for topicmoved and parent searches | current topic |
name | form field to search, for field type searches. May be a regular expression (see SEARCH). | |
value | form field value, for field type searches. May be a regular expression (see SEARCH). | |
title="Title" | Text that is prefixed to any search results | empty |
default="none" | Default text shown if no search hit | empty |
%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
%METASEARCH{type="field" name="Country" value="China"}%
%NOP%
%NOP{...}%
%NOTIFYTOPIC%
WebNotify, renders as WebNotify
%PLUGINDESCRIPTIONS%
$TWiki::Plugins::VERSION number, also indicating the version of the Func module
%PLUGINVERSION%
1.1
%PLUGINVERSION{"name"}%
%PLUGINVERSION{"InterwikiPlugin"}% expands to ==
%PUBURL%
http://localhost/CLEAN/pub
%PUBURL%/%WEB%/OtherTopic/image.gif
%PUBURLPATH%
/CLEAN/pub
skin=plain
%URLPARAM.
%REMOTE_ADDR%
%REMOTE_PORT%
%REMOTE_USER%
%REVINFO%
r0 - 27 Mar 2005 - 13:14 - TWikiContributor
%REVINFO{"format"}%
| Parameter: | Description: | Default: |
|---|---|---|
"format" | Format of revision information, see supported variables below | "r1.$rev - $date - $wikiusername" |
web="..." | Name of web | Current web |
topic="..." | Topic name | Current topic |
rev="1.5" | Specific revison number | Latest revision |
| Variable: | Unit: | Example |
|---|---|---|
$web | Name of web | Current web |
$topic | Topic name | Current topic |
$rev | Revison number. Prefix r1. to get the usual r1.5 format | 5 |
$date | Revision date | 11 Jul 2004 |
$username | Login username of revision | jsmith |
$wikiname | WikiName of revision | JohnSmith |
$wikiusername | WikiName with Main web prefix | Main.JohnSmith |
%REVINFO{"$date - $wikiusername" rev="1.1"}% returns revision info of first revision
%SECTION{"name"}%
| Parameter: | Description: | Default: |
|---|---|---|
"name" | Name of the section. Must be unique inside a topic. | Mandatory parameter without a default |
%SESSION_VARIABLE{"name"}%
%SESSION_VARIABLE{"name" set="value"}%
%SESSION_VARIABLE{"name" clear=""}%
AUTHUSER session variable, and is read-only.
%SESSIONID%
%SESSIONVAR%
%SCRIPTURL%
http://localhost/CLEAN/bin
%SCRIPTURL%/viewauth%SCRIPTSUFFIX%/%WEB%/%TOPIC% which expands to http://localhost/CLEAN/bin/viewauth/TWiki/TWikiVariablesNtoZ
%SCRIPTURLPATH%
/CLEAN/bin
.pl or .cgi
%SCRIPTSUFFIX%
%SEARCH{"text" ...}%
| Parameter: | Description: | Default: |
|---|---|---|
"text" | Search term. Is a keyword search, literal search or regular expression search, depending on the type parameter. SearchHelp has more | required |
search="text" | (Alternative to above) | N/A |
web="Name" web="Main, Know" web="all" | Comma-separated list of webs to search. The special word all means all webs that doe not have the NOSEARCHALL variable set to on in their WebPreferences. You can specifically exclude webs from an all search using a minus sign - for example, web="all,-Secretweb". | Current web |
topic="WebPreferences" topic="*Bug" | Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | All topics in a web |
excludetopic="Web*" excludetopic="WebHome, WebChanges" | Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | None |
type="keyword" type="literal" type="regex" | Do a keyword search like soap "web service" -shampoo; a literal search like web service; or RegularExpression search like soap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE% preferences setting (literal) |
scope="topic" scope="text" scope="all" | Search topic name (title); the text (body) of topic; or all (both) | "text" |
order="topic" order="created" order="modified" order="editby" order= | Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin? 's initsort | Sort by topic name |
limit="all" limit="16" | Limit the number of results returned. This is done after sorting if order is specified | All results |
date="..." | limits the results to those pages with latest edit time in the given TimeInterval. | All results |
reverse="on" | Reverse the direction of the search | Ascending search |
casesensitive="on" | Case sensitive search | Ignore case |
bookview="on" | BookView search, e.g. show complete topic text | Show topic summary |
nonoise="on" | Shorthand for =nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" | Off |
nosummary="on" | Show topic title only | Show topic summary |
nosearch="on" | Suppress search string | Show search string |
noheader="on" | Suppress search header Topics: Changed: By: | Show search header |
nototal="on" | Do not show number of topics found | Show number |
zeroresults="off" | Suppress all output if there are no hits | zeroresults="on", displays: "Number of topics: 0" |
noempty="on" | Suppress results for webs that have no hits. | Show webs with no hits |
header="..." format="..." | Custom format results: see FormattedSearch for usage, variables & examples | Results in table |
expandvariables="on" | Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin? %CALC{}% instead of the formula | Raw text |
multiple="on" | Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search | Only one hit per topic |
nofinalnewline="on" | If on, the search variable does not end in a line by itself. Any text continuing immediately after the search tag on the same line will be rendered as part of the table generated by the search, if appropriate. | off |
separator=", " | Line separator between hits | Newline "$n" |
%SEARCH{"wiki" web="Main" scope="topic"}%
%SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"% (displays results in a table with header - details)
%TABLE{}% variable just before the %SEARCH{}% to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
%SERVERTIME%
30 Sep 2005 - 11:30
%GMTIME%
%SERVERTIME{"format"}%
%SERVERTIME{"$hou:$min"}% expands to 11:30
%SPACEDTOPIC%
T%20*Wiki%20*Variables%20*Nto%20*Z
%STOPINCLUDE% variable. A normal view of the topic shows everything exept the %STARTINCLUDE% variable itself. An optional parameter can be used to control whether the content is expanded.
%STARTINCLUDE%
%STARTINCLUDE{param}%
%STATISTICSTOPIC%
WebStatistics, renders as WebStatistics
%STOPINCLUDE% variable itself.
%STOPINCLUDE%
%TOC%
%TOC{"SomeTopic" ...}%
"---++ 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
| Parameter: | Description: | Default: |
|---|---|---|
"TopicName" | topic name | Current topic |
web="Name" | Name of web | Current web |
depth="2" | Limit depth of headings shown in TOC | 6 |
title="Some text" | Title to appear at top of TOC | none |
%TOC{depth="2"}%
%TOC{"TWikiDocumentation" web="TWiki" title="Contents:"}%
%TOPIC%
TWikiVariablesNtoZ, renders as TWikiVariablesNtoZ
$name variable gets expanded to the topic name; the $web variable gets expanded to the name of the web.
%TOPICLIST{"format" ...}%
| Parameter: | Description: | Default: |
|---|---|---|
"format" | Format of one line, may include $name and $web variables | "$name" |
format="format" | (Alternative to above) | "$name" |
separator=", " | line separator | "\n" (new line) |
web="Name" | Name of web | Current web |
%TOPICLIST{" * $web.$name"}% creates a bullet list of all topics
%TOPICLIST{separator=", "}% creates a comma separated list of all topics
%TOPICLIST{" <option>$name</option>"}% creates an option list (for drop down menus)
%TWIKIWEB%
TWiki
%URLPARAM{"name"}%
| Parameter: | Description: | Default: |
|---|---|---|
"name" | The name of a URL parameter | required |
default="..." | Default value in case parameter is empty or missing | empty string |
newline="<br />" | Convert newlines in textarea to other delimiters | no conversion |
encode="entity" | Encode special characters into HTML entities, like a double quote into ". This is needed if text is put into an HTML form field | no encoding |
encode="url" | Encode special characters for URL parameter use, like a double quote into %22 | no encoding |
multiple="on" multiple="[[$item]]" | If set, gets all selected elements of a <select multiple="multiple"> tag. A format can be specified, with $item indicating the element, e.g. multiple="Option: $item" | first element |
separator=", " | Separator between multiple selections. Only relevant if multiple is specified | "\n" (new line) |
%URLPARAM{"skin"}% returns print for a .../view/TWiki/TWikiVariablesNtoZ?skin=print URL. Test this: plain
jsmith, WIKINAME like JohnSmith and WIKIUSERNAME like Main.JohnSmith. Un-authenticated users are all TWikiGuest.
%USERNAME%
guest
LANGUAGE preference is set, it's used as user's language instead of any language detected from the browser.
LANGUAGE at a non per-user way, so each user can choose his/her preferred language.
%VAR{"NAME" web="Web"}%
%WEBBGCOLOR% of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%, which expands to #FFEFA6
%WEB%
TWiki
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.
%WEBLIST{"format" ...}%
| Parameter: | Description: | Default: |
|---|---|---|
"format" | Format of one line, may include $name variable | "$name" |
format="format" | (Alternative to above) | "$name" |
separator=", " | line separator | "\n" (new line) |
webs="public" | comma sep list of Web, public expands to all non-hidden | "public" |
marker="selected" | Text for $marker where item matches selection, otherwise equals "" | "selected" |
selection="%WEB%" | Current value to be selected in list | section="%WEB%" |
%WEBLIST{" * [[$name.WebHome]]"}% creates a bullet list of all webs.
%WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash,public" selection="TWiki" separator=" "}% Dropdown of all public Webs + Trash Web, current Web highlighted.
%WEBPREFSTOPIC%
WebPreferences, renders as WebPreferences
%WIKIHOMEURL%
http://localhost/CLEAN/bin/view
%WIKINAME%
TWikiGuest
%WIKIPREFSTOPIC%
TWikiPreferences, renders as TWikiPreferences
%WIKITOOLNAME%
TWiki
%WIKIUSERNAME%
Main.TWikiGuest, renders as TWikiGuest
%WIKIUSERSTOPIC%
TWikiUsers, with Main prefix renders as TWikiUsers
%WIKIVERSION%
Thu, 29 Sep 2005 build 6683
Examples:Spaces between the = sign and the value will be ignored. You can split a value over several lines by starting following lines with [multiple of 3 spaces] - as long as you don't try to use * as the first character on the following line.
Set VARIABLENAME = value
Set VARIABLENAME = value
Example:You can also set preference variables on a topic by clicking the link* Set VARIABLENAME = value starts here and continues here
Edit topic preference settings under More topic actions. Preferences set in this manner are not visible in the topic text but take effect nevertheless.
Local in place of Set in the variable definition. For example, if the user sets the following in their home topic:
Then when they are editing any other topic, they will get a 10 high edit box. However when they are editing their home topic, they will get a 20 high edit box.
Local can be used wherever a preference needs to take a different value depending on where the current operation is being performed.
Use this powerful feature with great care! %ALL_VARIABLES% can be used to get a listing of the values of all variables in their evaluation order, so you can see variable scope if you get confused.
Example: Create a custom logo variable
- To place a logo anywhere in a web by typing
%MYLOGO%, define the Variable on the web's WebPreferences page, and upload a logo file, ex:mylogo.gif. You can upload by attaching the file to WebPreferences, or, to avoid clutter, to any other topic in the same web, ex:LogoTopic:
Set MYLOGO = %PUBURL%/TWiki/LogoTopic/mylogo.gif
Attach link at the bottom of the page. The Attach screen lets you browse for a file, add a comment, and upload it. The uploaded file will show up in the File Attachment table.
*.php files are renamed to *.php.txt so that no one can place code that would be read in a .php file.
%ATTACHFILESIZELIMIT% variable of the TWikiPreferences, currently set at 10000 KB.
Manage on the Attachment to be moved.
Move. The attachment and its version history are moved. The original location is stored as topic Meta Data.
Trash, topic TrashAttachment.
Attach file: Sample.txt
Edit topic and enter: %ATTACHURL%/Sample.txt
Preview: %ATTACHURL%/Sample.txt text appears as: http://localhost/CLEAN/pub/TWiki/FileAttachment/Sample.txt, a link to the text file.
%PUBURL%/%WEB%/OtherTopic/Sample.txt (if it's within the same web)
%PUBURL%/Otherweb/OtherTopic/Sample.txt (if it's in a different web)
Attach file: Sample.txt
Edit topic and write text: %INCLUDE{"%ATTACHURL%/Sample.txt"}%
Attach file: Smile.gif
Edit topic and write text: %ATTACHURL%/Smile.gif
Preview: text appears as
, an image.
Attachment Action Size Date Who Comment Sample.txt
manage 0.1 K 22 Jul 2000 - 19:37 UploadingUser Just a sample Smile.gif
manage 0.1 K 22 Jul 2000 - 19:38 UploadingUser Smiley face
Manage link takes you to a new page that looks a bit like this (depending on what skin is selected):
h means the attachment is hidden, it isn't listed when viewing a topic.
Hide file checkbox, then click Change properties.
| Input type | Type field | Size field | Value field |
|---|---|---|---|
| One or more checkboxes | checkbox | number of items per line | comma list of item labels |
| One or more checkboxes, plus Set and Clear buttons | checkbox+buttons | (same) | (same) |
| One or more radio buttons (radio buttons are mutually exclusive; only one can be selected) | radio | (same) | (same) |
| Read-only label text | label | ignored | text |
| Drop-down menu or scrollable box | select | 1 for drop down, 2 and up for scrollable box | comma-separated list of options |
| A one-line text field | text | text box width in number of characters | initial text, if a new topic is created with a form template |
| A text box | textarea | columns x rows, e.g. 80x6; default size is 40x5 | initial text, if a new topic is created with a form template |
YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
Name, Type, Size, Values, Tooltip message, and Attributes (see sample below).
Example: WebFormYou can also retrieve possible values for select, checkbox or radio types from other topics:
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... | |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... | |
| OsVersion | text | 16 | | blah blah... | |
Name Type Size Values Tooltip message Attributes TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah... OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah... OsVersion text 16 blah blah...
Example: WebFormField values can also be obtained as the result of a FormattedSearch. For example,
- In the WebForm topic, define the form:
Name Type Size Values Tooltip message Attributes TopicClassification select 1 blah blah... OperatingSystem checkbox 3 blah blah... OsVersion text 16 blah blah...
Leave the
Valuesfield blank.
- Then in the TopicClassification topic, define the possible values:
Name Type Tooltip message NoDisclosure option blah blah... Public Supported option blah blah... Public FAQ option blah blah...
%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nototal="on" nosummary="on" nosearch="on" regex="on" format="Main.$topic" separator=", " }%
when used in the value field of the form definition, will take the set of field values to be all topic names in the Main web which end in "Office".
Notes:
[[...]] links. This notation can also be used when referencing another topic to obtain field values, but one wants to use a name other than the topic name as the name of the field.
[[...]] notation.
Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip in edit view.
Attributes column is used to define special behavior for that form field (multiple attributes can be entered, with or without separators):
H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asteriks next to the field name.
WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates.
Example:
- Set WEBFORMS = BugForm, FeatureForm, Books.BookLoanForm
WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.
formtemplate parameter in the (edit or save) URL. Initial values can then be provided in the URLs or as form values:
name, ex: ?BugPriority=1
namevalue=1, ex: ?ColorRed=1. http://somehost/twiki/edit/Sandbox/TestTopic?formtemplate=TopicTemplate&TopicType=Testing
http://develop.twiki.org/~develop/cgi-bin/edit/Bugs/ItemXXXXXXXXXX?formtemplate=Bugs.ItemTemplate&_T=0501092906
WEBFORMS variable defines alternative forms that can be selected by pressing Change in edit mode.
SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form.
SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
text fields when a topic is saved. If you need linefeeds in a field, make sure it is a textarea.
twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.
The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
data/warning.txt.
%TMPL:<key>% and %TMPL:<key>{"attr"}%.
%TMPL:INCLUDE{"file"}%: Includes a template file. The file is found as described below.
%TMPL:DEF{"block"}%: Define a block. Text between this and the %TMPL:END% directive is not used in-place, but is saved for later use with %TMPL:P. Leading and trailing whitespace is ignored.
%TMPL:END%: Ends a block definition.
%TMPL:P{"var"}%: Includes a previously defined block.
%{...}%: is a comment.
twiki.tmpl master template, like twiki.print.tmpl, that redefines the header and footer.
%TMPL:DEF{"x"}% x%P%z%TMPL:END% then %TMPL:P{"x" P="y"}% will expand to xyz.
Note that parameters can simply be ignored; for example=%TMPL:P{"x"}%= will expand to x%P%z.
Any alphanumeric characters can be used in parameter names. You are highly recommended to use parameter names that cannot be confused with TWikiVariables.
Note that three parameter names, context, then and else are reserved. They are used to support a limited form of "if" condition that you can use to select which of two templates to use, based on a context identifier:
When the "inactive" context is set, then this will expand the "link_inactive" template; otherwise it will expand the "link_active" template.
See IfStatements for details of supported context identifiers.
twiki/templates directory, or can also be read from user topics. As an example, twiki/templates/view.tmpl is the default template file for the twiki/bin/view script.
Templates that are included using %TMPL:INCLUDE% are also found using the same search algorithm, unless you explicitly put '.tmpl' at the end of the template name. In this case, the string is assumed to be the full name of a template in the templates directory, and the algorithm isn't used.
TWiki uses the following search order to determine which template file or topic to use for a particular script. The skin path is set as described in TWikiSkins.
The template name may also be a fullLegend:
- templates/web/script.skin.tmpl for each skin on the skin path
- templates/script.skin.tmpl for each skin on the skin path
- templates/web/script.tmpl
- templates/script.tmpl
- web.topic if the template name can be parsed into web.topic (e.g. "Myweb.MyTemplate")
- web.SkinSkinScriptTemplate for each skin on the skin path
- web.ScriptTemplate
- TWiki.SkinSkinScriptTemplate for each skin on the skin path
- TWiki.ScriptTemplate
- script refers to the script name, e.g
view,edit- Script refers to the same, but with the first character capitalized, e.g
View- skin refers to a skin name, e.g
dragon,pattern. All skins are checked at each stage, in the order they appear in the skin path.- Skin refers to the same, but with the first character capitalized, e.g
Dragon- web refers to the current web
Web.Topic name, in which case the search is:
If a skin path is specified If no skin path is specified templates/web/Web.Topic.skin.tmplfor each skintemplates/web/Web.Topic.tmpltemplates/Web.Topic.skin.tmplfor each skintemplates/Web.Topic.tmplWeb.Topic
%TMPL:DEF and %TMPL:END%) to define common sections that appear in two or more other templates. twiki.tmpl is the default master template.
Template variable: Defines: %TMPL:DEF{"sep"}% "|" separator %TMPL:DEF{"htmldoctype"}% Start of all HTML pages %TMPL:DEF{"standardheader"}% Standard header (ex: view, index, search) %TMPL:DEF{"simpleheader"}% Simple header with reduced links (ex: edit, attach, oops) %TMPL:DEF{"standardfooter"}% Footer, excluding revision and copyright parts %TMPL:DEF{"oops"}% Skeleton of oops dialog
When you create a new topic, TWiki locates a topic to use as a content template according to the following search order:
Topic Name: What it is: WebTopicViewTemplate Error page shown when you try to view a nonexistent topic WebTopicNonWikiTemplate Alert page shown when you try to view a nonexistent topic with a non-WikiName WebTopicEditTemplate Default text shown when you create a new topic.
templatetopic CGI parameter
The
Variable: Description: %DATE%Signature format date. See TWikiVariables %GMTIME%Date/time. See TWikiVariables %GMTIME{...}%Formatted date/time. See TWikiVariables %NOP%A no-operation variable that gets removed. Useful to prevent a SEARCH from hitting an edit template topic; also useful to escape a variable like %URLPARAM%NOP%{...}%%NOP{ ... }%Text that gets removed when a new topic based on the template is created. See notes below. %SERVERTIME%Date/time. See TWikiVariables %SERVERTIME{...}%Formatted date/time. See TWikiVariables %USERNAME%Login name of user who is instantiating the new topic, e.g. guest %URLPARAM{"name"}%Value of a named URL parameter %WIKINAME%WikiName of user who is instantiating the new topic, e.g. TWikiGuest %WIKIUSERNAME%User name of user who is instantiating the new tpoic, e.g. Main.TWikiGuest
NOP tag is used to embed text that you do not want expanded when a new topic based on the template is created. For example, you might want to write in the template:
This will restrict who can edit the template, but will get removed when a topic based on the template is created.
%NOP% (or %NOP{}% can be used to prevent expansion of TWiki variables that would otherwise be expanded during topic creation e.g. %SERVERTIME%.
Notes:
%NOP{ ... }% can span multiple lines.
}% pattern is "non-greedy", that is, it stops at the first occurence. That means you have to protect variables with parameters located inside %NOP{ ... }%. To do this, insert a %NOP% between } and %. Example: %NOP{ %GMTIME{"$year"}%NOP%% }%.
templatetopic specifies ExampleTopicTemplate as the template topic to use. Here is the HTML source of the form:
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
* New example topic:
<input type="text" name="topic" value="ExampleTopic%SERVERTIME{$yearx$mox$day}%" size="23" />
<input type="hidden" name="templatetopic" value="ExampleTopicTemplate" />
<input type="hidden" name="topicparent" value="%TOPIC%" />
<input type="hidden" name="onlywikiname" value="on" />
<input type="hidden" name="onlynewtopic" value="on" />
<input type="submit" value="Create" />
(date format is <nop>YYYYxMMxDD)
</form>
See TWikiScripts for details of the parameters that the edit script understands.
%WIKIUSERNAME% and %DATE% variables in your topic templates to include the signature of the person creating a new topic. The variables are expanded into fixed text when a new topic is created. The standard signature is: -- %WIKIUSERNAME% - %DATE%
oopsbase.tmpl and an example oops dialog oopstest.tmpl based on the base template. %A% NOTE: This isn't the release version, just a quick, simple demo.
%TMPL:P{"sep"}%
%TMPL:DEF{"sep"}% | %TMPL:END% <html> <head> <title> %WIKITOOLNAME% . %WEB% . %TOPIC% %.TMPL:P{"titleaction"}%</title> <base href="%SCRIPTURL%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%"> <meta name="robots" content="noindex"> </head> <body bgcolor="#FFFFFF"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr> <td bgcolor="%WEBBGCOLOR%" rowspan="2" valign="top" width="1%"> <a href="%WIKIHOMEURL%"> <img src="%PUBURLPATH%/wikiHome.gif" border="0"></a> </td> <td> <b>%WIKITOOLNAME% . %WEB% . </b><font size="+2"> <B>%TOPIC%</b> %TMPL:P{"titleaction"}%</font> </td> </tr> <tr bgcolor="%WEBBGCOLOR%"> <td colspan="2"> %TMPL:P{"webaction"}% </td> </tr> </table> --- ++ %TMPL:P{"heading"}% %TMPL:P{"message"}% <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr bgcolor="%WEBBGCOLOR%"> <td valign="top"> Topic <b>%TOPIC%</b> . { %TMPL:P{"topicaction"}% } </td> </tr> </table> </body>
%TMPL:DEF{"titleaction"}% (test =titleaction=) %TMPL:END% %TMPL:DEF{"webaction"}% test =webaction= %TMPL:END% %TMPL:DEF{"heading"}% Test heading %TMPL:END% %TMPL:DEF{"message"}% Test =message=. Blah blah blah blah blah blah blah blah blah blah blah... * Some more blah blah blah blah blah blah blah blah blah blah... * Param1: %PARAM1% * Param2: %PARAM2% * Param3: %PARAM3% * Param4: %PARAM4% %TMPL:END% %TMPL:DEF{"topicaction"}% Test =topicaction=: [[%WEB%.%TOPIC%][OK]] %TMPL:P{"sep"}% [[%TWIKIWEB%.TWikiRegistration][Register]] %TMPL:END% %TMPL:INCLUDE{"oopsbase"}%
.../bin/oops/Sandbox/TestTopic2?template=oopstest¶m1=WebHome¶m2=WebNotify
Related Topics: TWikiSkins, DeveloperDocumentationCategory, AdminDocumentationCategory
![]()
twiki/templates directory and are named with the syntax: <scriptname>.<skin>.tmpl. For example, the Printable skin for the view template is view.print.tmpl. Skin files may also be defined in TWiki topics - see TWikiTemplates for details.
Use the existing TWikiTemplates (like view.tmpl) or skin files as a base for your own skin, name it for example view.myskin.tmpl.
text skin, and skin names starting with rss have _hard-coded meanings. See below? .
| Variable: | Expanded to: |
|---|---|
%WEBLOGONAME% | Filename of web logo |
%WEBLOGOIMG% | Image URL of web logo |
%WEBLOGOURL% | Link of web logo |
%WEBLOGOALT% | Alt text of web logo |
%WIKILOGOURL% | Link of page logo |
%WIKILOGOIMG% | Image URL of page logo |
%WIKILOGOALT% | Alt text of page logo |
%WEBBGCOLOR% | Web-specific background color, defined in the WebPreferences |
%WIKITOOLNAME% | The name of your TWiki site |
%SCRIPTURL% | The script URL of TWiki |
%SCRIPTSUFFIX% | The script suffix, ex: .pl, .cgi |
%WEB% | The name of the current web. Note: It is recommended to URL-encode the variable in form actions with %INTURLENCODE{"%WEB%"}% for proper handling in an internationalized environment |
%TOPIC% | The name of the current topic. Note: It is recommended to URL-encode the variable in form actions with %INTURLENCODE{"%TOPIC%"}% for proper handling in an internationalized environment |
%WEBTOPICLIST% | Common links of current web, defined in the WebPreferences. It includes a #GoBox |
%TEXT% | The topic text, e.g. the content that can be edited |
%META{"form"}% | TWikiForm, if any |
%META{"attachments"}% | FileAttachment table |
%META{"parent"}% | The topic parent |
%EDITTOPIC% | Edit link |
%REVTITLE% | The revision title, if any, ex: (r1.6) |
%REVINFO% | Revision info, ex: r1.6 - 24 Dec 2002 - 08:12 GMT - TWikiGuest |
%WEBCOPYRIGHT% | Copyright notice, defined in the WebPreferences |
%BROADCASTMESSAGE% | Broadcast message at the beginning of your view template, can be used to alert users of scheduled downtimes; is set in TWikiPreferences |
%WEBTOPICLIST% includes a "Go" box to jump to a topic. The box also understand URLs, e.g. you can type http://www.google.com/ to jump to an external web site. The feature is handy if you build a skin that has a select box of frequently used links, like Intranet home, employee database, sales database and such. A little JavaScript gets into action on the onSelect method of the select tag to fill the selected URL into the "Go" box field, then submits the form.
Here is an example form that has a select box and the "Go" box for illustration purposes. You need to have JavaScript enabled for this to work:
view.myskin.tmpl:
Then add a div tag to the %BROADCASTMESSAGE% variable located after the #PageTop anchor or after the opening form tag:
templates/twiki.tmpl template using the %TMPL:DEF macro syntax described in TWikiTemplates. These macros are:
| Macro | Description |
|---|---|
ATTACH:files:header | Standard title bar |
ATTACH:files:row | Standard row |
ATTACH:files:footer | Footer for all screens |
ATTACH:files:header:A | Title bar for upload screens, with attributes column |
ATTACH:files:row:A | Row for upload screen |
ATTACH:files:footer:A | Footer for all screens |
| Macro | Description |
|---|---|
ATTACH:versions:header | Header for versions table on upload screen |
ATTACH:versions:row | Row format for versions table on upload screen |
ATTACH:versions:footer | Footer for versions table on upload screen |
ATTACH:row macros are expanded for each file in the attachment table, using the following special tags:
| Tag | Description |
|---|---|
%A_URL% | URL that will recover the file |
%A_REV% | Revision of this file e.g. "1.1" |
%A_ICON% | A file icon suitable for representing the attachment content |
%A_FILE% | The name of the file |
%A_SIZE% | The size of the file |
%A_DATE% | The date the file was uploaded |
%A_USER% | The user who uploaded it |
%A_COMMENT% | The comment they put in when uploading it |
%A_ATTRS% | The attributes of the file as seen on the upload screen e.g "h" for a hidden file |
twiki.tmpl template file. However, to simplify upgrading, you should avoid doing this. Instead, write a skin-specific template file e.g. attach.myskin.tmpl and use %TMPL:INCLUDE{attach.myskin.tmpl}% to include it in each of your skin files. As long as it it included after twiki.tmpl, your macro definitions will override the defaults defined there.
SKIN Preference variable in TWikiPreferences, one of the WebPreferences, or in a user - TWikiGuest - topic. For example,
Set SKIN = mine,pattern
?skin=path to the URL, for example:
?cover=path to the URL, for example:
view.skin.tmpl, where skin is the name of the skin e.g. pattern. If no template is found, then the fallback is to use view.tmpl. Each skin on the path is searched for in turn. For example, if you have set SKIN to local,pattern and ?skin=mine then view.mine.tmpl will be searched for first, then view.local.tmpl and finally view.pattern.tmpl.
text skin is reserved for TWiki internal use. It is used with the raw URL parameter to create a URL that allows the recovery of the plain text of the topic. For example, the URL:
will recover the plain text of the topic as presented to edit, s MIME type text/plain.
edit, as MIME type application/x-rabbit (whatever that might be!
text must be the only skin in the skin path.
Skin names starting with rss also have a special meaning; if one or more of the skins in the skin path starts with 'rss' then 8-bit characters will be encoded as XML entities in the output, and the content-type header will be forced to text/xml.
Related Topics: AdminDocumentationCategory, DeveloperDocumentationCategory
%SEARCH{...}% variable documented in TWikiVariables has a fixed format for the search result, that is, a table consisting of topic names and topic summaries. Use the format="..." parameter to specify a customized format of the search result. The string of the format parameter is typically a bullet list or table row containing variables (such as %SEARCH{ "food" format="| $topic | $summary |" }%).
header="..." parameter
Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. header="| *Topic:* | *Summary:* |"
2. format="..." parameter
Use the format parameter to specify the format of one search hit.
format="| $topic | $summary |"
Variables that can be used in the format string:
| Name: | Expands To: |
|---|---|
$web | Name of the web |
$topic | Topic name |
$topic(20) | Topic name, "- " hyphenated each 20 characters |
$topic(30, -<br />) | Topic name, hyphenated each 30 characters with separator "-<br />" |
$topic(40, ...) | Topic name, shortended to 40 characters with "..." indication |
$parent | Name of parent topic; empty if not set |
$parent(20) | Name of parent topic, same hyphenation/shortening like $topic() |
$text | Formatted topic text. In case of a multiple="on" search, it is the line found for each search hit. |
$locked | LOCKED flag (if any) |
$date | Time stamp of last topic update, e.g. 30 Sep 2005 - 10:30 |
$isodate | Time stamp of last topic update, e.g. 2005-09-30T10:30Z |
$rev | Number of last topic revision, e.g. 1.4 |
$username | Login name of last topic update, e.g. jsmith |
$wikiname | Wiki user name of last topic update, e.g. JohnSmith |
$wikiusername | Wiki user name of last topic update, like Main.JohnSmith |
$createdate | Time stamp of topic revision 1.1 |
$createusername | Login name of topic revision 1.1, e.g. jsmith |
$createwikiname | Wiki user name of topic revision 1.1, e.g. JohnSmith |
$createwikiusername | Wiki user name of topic revision 1.1, e.g. Main.JohnSmith |
$summary(options) | Topic summary, just the plain text, all formatting and line breaks discarded. options may contain any of the following: a number (characters shown in the summary), showvarnames (shows variables as VARIABLE and VARIABLE{...}; otherwise removed), noheader (suppresses the headings at the beginning). |
$formname | The name of the form attached to the topic; empty if none |
$formfield(name) | The field value of a form field; for example, $formfield(TopicClassification) would get expanded to PublicFAQ. This applies only to topics that have a TWikiForm |
$formfield(name, 10) | Form field value, "- " hyphenated each 10 characters |
$formfield(name, 20, -<br />) | Form field value, hyphenated each 20 characters with separator "-<br />" |
$formfield(name, 30, ...) | Form field value, shortended to 30 characters with "..." indication |
$pattern(reg-exp) | A regular expression pattern to extract some text from a topic (does not search meta data; use $formfield instead). In case of a multiple="on" search, the pattern is applied to the line found in each search hit.• Specify a RegularExpression that covers the whole text (topic or line), which typically starts with .*, and must end in .* • Put text you want to keep in parenthesis, like $pattern(.*?(from here.*?to here).*) • Example: $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ... • This example has non-greedy .*? patterns to scan for the first occurance of the Email bullet; use greedy .* patterns to scan for the last occurance • Limitation: Do not use .*) inside the pattern, e.g. $pattern(.*foo(.*)bar.*) does not work, but $pattern(.*foo(.*?)bar.*) does • Note: Make sure that the integrity of a web page is not compromised; for example, if you include an HTML table make sure to include everything including the table end tag |
$count(reg-exp) | Count of number of times a regular expression pattern appears in the text of a topic (does not search meta data). Follows guidelines for use and limitations outlined above under $pattern(reg-exp). Example: $count(.*?(---[+][+][+][+]) .*) counts the number of <H4> headers in a page. |
$n or $n() | New line |
$nop or $nop() | Is a "no operation". This variable gets removed; useful for nested search |
$quot | Double quote ("). Alternatively write \" to escape it |
$percnt | Percent sign (%) |
$dollar | Dollar sign ($) |
%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }%
To get this:
TopicClassification field, an OperatingSystem field and an OsVersion field we could write:
| *Topic:* | *OperatingSystem:* | *OsVersion:* | %SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%
To get this:
| Topic: | OperatingSystem: | OsVersion: |
|---|---|---|
| IncorrectDllVersionW32PTH10DLL | OsWin | 95/98 |
| WinDoze95Crash | OsWin | 95 |
%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%
To get this:
TWiki FAQs:
%SEARCH{ "culture" format=" * $topic is referenced by: (list all references)" nosearch="on" nototal="on" }%
%SEARCH{ "(topic found in first search)" format="$topic" nosearch="on" nototal="on" separator=", " }%
$percnt to escape the leading percent of the second search
\" to escape the double quotes
$dollar to escape the $ of $topic
$nop to escape the }% sequence
%SEARCH{ "culture" format=" * $topic is referenced by:$n * $percntSEARCH{ \"$topic\" format=\"$dollartopic\" nosearch=\"on\" nototal=\"on\" separator=\", \" }$nop%" nosearch="on" nototal="on" }%
To get this:
$dollarpercntSEARCH{ for level three, $dollardollarpercntSEARCH{ for level four, etc.
%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="| [[$topic]] | $wikiusername | $date |" limit="7" }%
To get this:
| WikiNotation | TWikiContributor | 27 Mar 2005 - 13:14 |
| WelcomeGuest | TWikiContributor | 27 Mar 2005 - 13:14 |
| WabiSabi | TWikiContributor | 27 Mar 2005 - 13:14 |
| TWikiWebsTable | TWikiContributor | 27 Mar 2005 - 13:14 |
| TWikiUpgradeTo01Dec2001 | TWikiContributor | 27 Mar 2005 - 13:14 |
| TWikiTopics | TWikiContributor | 27 Mar 2005 - 13:14 |
| GoodStyle | TWikiContributor | 27 Mar 2005 - 13:14 |
%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}% %SEARCH{ "." scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) < $GET(weekold), <nop>, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%
weekold variable to the serialized date of exactly one week ago
$percnt makes sure that the CALC gets executed once for each search hit
weekold date
<nop> is returned, which gets removed at the end of the TWiki rendering process
%URLPARAM{"..."}% variable. Example:
Write this:
To get this:
Result:
Number of topics: 0
Related Topics: UserDocumentationCategory
META variable name/value pairs
META variables to store topic data that's separate from the main free-form content. This includes program-generated info like FileAttachment and topic movement data, and user-defined TWikiForms info. Use META variables to format and display Meta Data.
%META:<type>{key1="value1" key2="value2" ...}%
name, this appears first for easier searching (note the order of the variables themselves is defined).
\n (new line) is represented in values by %_N_ and " (double-quotes) by %_Q_%.
Example of Format
%META:TOPICINFO{version="1.6" date="976762663" author="LastEditorWikiName" format="1.0"}%
text of the topic
%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName"
by="TopicMoverWikiName" date="976762680"}%
%META:TOPICPARENT{name="NavigationByTopicContext"}%
%META:FILEATTACHMENT{name="Sample.txt" version="1.3" ... }%
%META:FILEATTACHMENT{name="Smile.gif" version="1.1" ... }%
%META:FORM{name="WebFormTemplate"}%
%META:FIELD{name="OperatingSystem" value="OsWin"}%
%META:FIELD{name="TopicClassification" value="PublicFAQ"}%
| Key | Comment |
|---|---|
| version | Same as RCS version |
| date | integer, unix time, seconds since start 1970 |
| author | last to change topic, is the REMOTE_USER |
| format | Format of this topic, will be used for automatic format conversion |
%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%
| Key | Comment |
|---|---|
| from | Full name, i.e., web.topic |
| to | Full name, i.e., web.topic |
| by | Who did it, is the REMOTE_USER, not WikiName |
| date | integer, unix time, seconds since start 1970 |
| Key | Comment |
|---|---|
| name | The topic from which this was created, WebHome if done from Go, othewise topic where ? or form used. Normally just topic, but is full web.topic format if parent is in a different Web. Renaming a Web will then only break a few of these references or they can be scanned and fixed. |
| Key | Comment |
|---|---|
| name | Name of file, no path. Must be unique within topic |
| version | Same as RCS revision |
| path | Full path file was loaded from |
| size | In bytes |
| date | integer, unix time, seconds since start 1970 |
| user | the REMOTE_USER, not WikiName |
| comment | As supplied when file uploaded |
| attr | h if hidden, optional |
| Key | Comment |
|---|---|
| movedfrom | full topic name - web.topic |
| movedby | the REMOTE_USER, not WikiName |
| movedto | full topic name - web.topic |
| moveddate | integer, unix time, seconds since start 1970 |
| Key | Comment |
|---|---|
| name | A topic name - the topic represents one of the TWikiForms. Can optionally include the web name (i.e., web.topic), but doesn't normally |
| Key | Name |
|---|---|
| name | Ties to entry in TWikiForms template, is title with all bar alphanumerics and . removed |
| title | Full text from TWikiForms template |
| value | Value user has supplied via form |
diff function output appears in a logical order
META:TOPICINFO
META:TOPICPARENT (optional)
META:TOPICMOVED (optional)
META:FILEATTACHMENT (0 or more entries)
META:FORM (optional)
META:FIELD (0 or more entries; FORM required)
Raw Text link can be clicked to show the text of a topic (i.e., as seen when editing). This is done by adding raw=on to URL. raw=debug shows the meta data as well as the topic data, ex: debug view for this topic
view, preview and edit scripts.
Note: Rendering meta data is currently not supported in topic text. As a workaround, use FormattedSearch on the current topic only to render form fields.
Current support covers:
| Variable usage: | Comment: |
|---|---|
%META{"form"}% | Show form data, see TWikiForms. |
%META{"formfield"}% | Show form field value. Parameter: name="field_name". Example:%META{ "formfield" name="TopicClassification" }% |
%META{"attachments"}% | Show attachments, except for hidden ones. Options: all="on": Show all attachments, including hidden ones. |
%META{"moved"}% | Details of any topic moves. |
%META{"parent"}% | Show topic parent. Options: dontrecurse="on": By default recurses up tree, at some cost. nowebhome="on": Suppress WebHome. prefix="...": Prefix for parents, only if there are parents, default "". suffix="...": Suffix, only appears if there are parents, default "". separator="...": Separator between parents, default is " > ". |
Meta.pm code that supports the format needs only minor alteration.
Related Topics: DeveloperDocumentationCategory, UserDocumentationCategory
TWiki:Plugins expands to TWiki:Plugins on TWiki.org. You can edit the predefined set of of Wiki-related sites, and add your own
SomePlugin), there's a separate development page.
Dev (SomePluginDev).
twiki/bin and twiki/lib directories for the Test version, and adjust the paths in the new lib/LocalSite.cfg. The following directories are shared: twiki/data, twiki/templates and twiki/pub.
DISABLEDPLUGINS variable in TWikiPreferences. Redefine the DISABLEDPLUGINS variable in the Sandbox web and do the testing there.
outsidePREHandler is an expensive callback function, or a Plugin might use many Perl libraries that need to be initialized with each page view (unless you run mod_perl). It is recommended to measure the performance with and without a new Plugin. Example for Unix:time wget -qO /dev/null http://localhost/CLEAN/bin/view/TWiki/AbcPlugin
In case you need to install an "expensive" Plugin and you need its functionality only in one web you can place the Plugin topic into that web. TWiki will initialize the Plugin only if the Plugin topic is found (which won't be the case for other webs.)
lib/TWiki/Plugins directory are activated automatically unless disabled by the DISABLEDPLUGINS Preferences variable in TWikiPreferences. You can optionally list the installed Plugins in the INSTALLEDPLUGINS Preferences variable. This is useful to define the sequence of Plugin execution, or to specify other webs than the TWiki web for the Plugin topics. Settings in TWikiPreferences are:
Set INSTALLEDPLUGINS = DefaultPlugin, ...
Set DISABLEDPLUGINS = EmptyPlugin, ...
web.topicname name, if specified in INSTALLEDPLUGINS; next, the TWiki web is searched; and finally, the current web.
Plugin-specific settings are done in individual Plugin topics. Two settings are standard for each Plugin:
Set SHORTDESCRIPTION = Blah blah woof woof.
data/debug.txt. Set to 0=off or 1=on:
Set DEBUG = 0
%<pluginname>_<var>%, ex: %DEFAULTPLUGIN_SHORTDESCRIPTION% shows the description of the DefaultPlugin.
%ACTIVATEDPLUGINS% variable lists activated Plugins by name. (This variable is displayed in TWikiPreferences for debugging use.)
%PLUGINDESCRIPTIONS% variable displays a bullet list with a one-line description of each active Plugins. This variable is based on the %<plugin>_SHORTDESCRIPTION% Preferences variables of individual topics and is shown in TextFormattingRules.
DEMO: Automatically List Active Plugins Using Variables Using%ACTIVATEDPLUGINS%:
On this TWiki site, the active Plugins are: . Using%PLUGINDESCRIPTIONS%:
You can use any of these active TWiki Plugins:
- CommentPlugin: (disabled)
- EditTablePlugin: (disabled)
- InterwikiPlugin: (disabled)
- PreferencesPlugin: (disabled)
- SmiliesPlugin: (disabled)
- SpreadSheetPlugin: (disabled)
- TablePlugin: (disabled)
lib/TWiki/Func.pm) implements ALL official Plugin functions. Plugins should ONLY use functions published in this module.
Func.pm, you run the risk of creating security holes. Also, your Plugin will likely break and require updating when you upgrade to a new version of TWiki.
lib/TWiki/Plugins/EmptyPlugin.pm module.
DISABLE_ from the function name.
outsidePREHandler and insidePREHandler are particularly expensive.
commonTagsHandler or startRenderingHandler for rendering tasks:
commonTagsHandler: Use it to expand %XYZPLUGIN% and %XYZPLUGIN{...}% variables
startRenderingHandler: Use it for your own rendering rules or to overload TWiki's internal rendering like [[links]]
rest script (see TWikiScripts for more info), external systems or other TWikiApplications? can interact with a plugin in a RESTful manner.
eval block like:eval { require IPC::Run } return "<font color=\"red\">SamplePlugin: Can't load required modules ($@)</font>" if $@;
$VERSION='0.000' variable, beginning at 1.000.
initPlugin handler should check all dependencies and return TRUE if the initialization is OK or FALSE if something went wrong.
initPlugin handler).
$TWiki::Plugins::VERSION in the TWiki::Plugins module contains the TWiki Plugin API version, currently 1.1.
MyFirstPlugin.pm
MyFirstPlugin.txt
MyFirstPlugin topic. Other needed Perl code is best placed in a lib/TWiki/Plugins/MyFirstPlugin/ directory.
The Plugin API handles the details of connecting your Perl module with main TWiki code. When you're familiar with the Plugin API, you're ready to develop Plugins.
lib/TWiki/Plugins/EmptyPlugin.pm to <name>Plugin.pm. The EmptyPlugin.pm module contains mostly empty functions, so it does nothing, but it's ready to be used. Customize it. Refer to the Plugin API specs for more information.
If your Plugin uses its own modules and objects, you must include the name of the Plugin in the package name. For example, write Package MyFirstPlugin::Attrs; instead of just Package Attrs;. Then call it using:
use TWiki::Plugins::MyFirstPlugin::Attrs; $var = MyFirstPlugin::Attrs->new();
MyFirstPlugin, press enter and create the new topic
OUTLINE: Doc Topic Contents
Check the Plugins web on TWiki.org for the latest Plugin doc topic template. Here's a quick overview of what's covered: Syntax Rules: <Describe any special text formatting that will be rendered.>" Example: <Include an example of the Plugin in action. Possibly include a static HTML version of the example to compare if the installation was a success!>" Plugin Settings: <Description and settings for custom Plugin %VARIABLES%, and those required by TWiki.>"Plugin Installation Instructions: <Step-by-step set-up guide, user help, whatever it takes to install and run, goes here.>" Plugin Info: <Version, credits, history, requirements - entered in a form, displayed as a table. Both are automatically generated when you create or edit a page in the TWiki:Plugins web.>"
- Plugins Preferences <If user settings are needed, explain... Entering values works exactly like TWikiPreferences and WebPreferences: six (6) spaces and then:>"
- Set <EXAMPLE = value added>
Plugin, ex: MyFirstPlugin.pm, and a documentation page with the same name(MyFirstPlugin.txt).
lib/TWiki/Plugins/MyFirstPlugin.pm
data/TWiki/MyFirstPlugin.txt
pub/TWiki/MyFirstPlugin/uparrow.gif [a required graphic]
MyFirstPlugin.zip) and add the entire directory structure from Step 1. The archive should look like this:
lib/TWiki/Plugins/MyFirstPlugin.pm
data/TWiki/MyFirstPlugin.txt
pub/TWiki/MyFirstPlugin/uparrow.gif
MyFirstPlugin
MyFirstPlugin.zip
Dev, ex: MyFirstPluginDev. This is the discussion page for future development. (User support for Plugins is handled in TWiki:Support.)
pubdir/Installweb/FooBarPlugin
Installweb refers to the name of the web where the Plugin is installed
%PUBURL%/Installweb/FooBarPlugin
_any_name.ext
getPubDir() to get the attachment root directory
getUrlHost() and getPubUrlPath() to build the URL in case you create content for the browser
$installWeb to get the name of the web where the Plugin is installed
pubdir/Webname/TopicName
%PUBURL%/Webname/TopicName
_FooBarPlugin_any_name.ext
getPubDir() to get the attachment root directory
getUrlHost() and getPubUrlPath() to build the URL in case you create content for the browser
TWiki::Func %PLUGINVERSION{}% variable. The 'Since' field in the function
documentation refers to the VERSION number and the date that the function
was addded.
Note Contrib authors beware! These methods should only ever be called
from the context of a TWiki plugin. They require a session context to be
established before they are called, and will not work if simply called from
another TWiki module unless the session object is defined first.
$key - Session key
$value Value associated with key; empty string if not set
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 200)
$key - Session key
$value - Value associated with key
$result "1" if success; undef if session plugin is not installed
Since: TWiki::Plugins::VERSION 1.000 (17 Aug 2001)
SKIN preferences variable or the skin CGI parameter
Return: $skin Comma-separated list of skins, e.g. 'gnu,tartan'. Empty string if none
Since: TWiki::Plugins::VERSION 1.000 (29 Jul 2001)
$host URL host, e.g. "http://example.com:80"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$web - Web name, e.g. 'Main'
$topic - Topic name, e.g. 'WebNotify'
$script - Script name, e.g. 'view'
$url URL, e.g. "http://example.com:80/cgi-bin/view.pl/Main/WebNotify"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$path URL path of TWiki scripts, e.g. "/cgi-bin"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$web - Web name, e.g. 'Main'. The current web is taken if empty
$topic - Topic name, e.g. 'WebNotify'
$url URL, e.g. "http://example.com:80/cgi-bin/view.pl/Main/WebNotify"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$web - Web name, e.g. 'Main'. The current web is taken if empty
$topic - Topic name, e.g. 'WebNotify'
$template - Oops template name, e.g. 'oopsmistake'. The 'oops' is optional; 'mistake' will translate to 'oopsmistake'.
$param1 ... $param4 - Parameter values for %PARAM1% ... %PARAMn% variables in template, optional
$url URL, e.g. "http://example.com:80/cgi-bin/oops.pl/ Main/WebNotify?template=oopslocked¶m1=joe"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$path URL path of pub directory, e.g. "/pub"
Since: TWiki::Plugins::VERSION 1.000 (14 Jul 2001)
$query CGI query object; or 0 if script is called as a shell script
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$query - CGI query object. If not given, the default CGI query will be used. In most cases you should not pass this parameter.
$contentLength - Length of content
$query - CGI query object. Ignored, only there for compatibility. The session CGI query object is used instead.
$url - URL to redirect to
$attr | Attribute string
Return: %params Hash containing all parameters. The nameless parameter is stored in key _DEFAULT
Since: TWiki::Plugins::VERSION 1.025 (26 Aug 2004)
%TEST{ 'nameless' name1="val1" name2="val2" }%
{...} to get: 'nameless' name1="val1" name2="val2"
%params hash contains now: _DEFAULT => 'nameless' name1 => "val1" name2 => "val2"
$attr - Attribute string
$name - Name, optional
$value Extracted value
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
%TEST{ 'nameless' name1="val1" name2="val2" }%
{...} to get: 'nameless' name1="val1" name2="val2"
my $noname = TWiki::Func::extractNameValuePair( $text ); my $val1 = TWiki::Func::extractNameValuePair( $text, "name1" ); my $val2 = TWiki::Func::extractNameValuePair( $text, "name2" );
$key - Preferences key
$web - Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics
$value Preferences value; empty string if not set
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
* Set COLOR = red
"MYPLUGIN_COLOR" for $key
my $color = TWiki::Func::getPreferencesValue( "MYPLUGIN_COLOR" );
* Set WEBBGCOLOR = #FFFFC0
my $webColor = TWiki::Func::getPreferencesValue( 'WEBBGCOLOR', 'Sandbox' );
$key - Plugin Preferences key w/o PLUGINNAME_ prefix.
$value Preferences value; empty string if not set
NOTE: This sub will retrieve nothing if called from a module in a subpackage of TWiki::Plugins (ie, TWiki::Plugins::MyPlugin::MyModule)
Since: TWiki::Plugins::VERSION 1.021 (27 Mar 2004)
$key - Preferences key
$web - Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics
$value Preferences flag '1' (if set), or "0" (for preferences values "off", "no" and "0")
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
* Set SHOWHELP = off
"MYPLUGIN_SHOWHELP" for $key
my $showHelp = TWiki::Func::getPreferencesFlag( "MYPLUGIN_SHOWHELP" );
$key - Plugin Preferences key w/o PLUGINNAME_ prefix.
$flag Preferences flag '1' (if set), or "0" (for preferences values "off", "no" and "0", or values not set at all)
NOTE: This sub will retrieve nothing if called from a module in a subpackage of TWiki::Plugins (ie, TWiki::Plugins::MyPlugin::MyModule)
Since: TWiki::Plugins::VERSION 1.021 (27 Mar 2004)
$name Name of tool, e.g. 'TWiki'
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
$name Name, e.g. 'Main'
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
$name Name, e.g. 'TWiki'
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
DefaultUserLogin
Return: $loginName Default user name, e.g. 'guest'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$wikiName Wiki Name, e.g. 'JohnDoe'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$wikiName Wiki Name, e.g. "Main.JohnDoe"
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$wikiName - Wiki name, e.g. 'Main.JohnDoe' or 'JohnDoe'
$loginName Login name of user, e.g. 'jdoe'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$loginName - Login name, e.g. 'jdoe'
$dontAddWeb - Do not add web prefix if "1"
$wikiName Wiki name of user, e.g. 'Main.JohnDoe' or 'JohnDoe'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$flag "1" if yes, "0" if not
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$web - Web name, required, e.g. 'Sandbox'
$flag "1" if yes, "0" if no
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
$type - Access type, e.g. 'VIEW', 'CHANGE', 'CREATE'
$wikiName - WikiName of remote user, i.e. "Main.PeterThoeny"
$text - Topic text, optional. If empty, topic $web.$topic is consulted
$topic - Topic name, required, e.g. 'PrivateStuff'
$web - Web name, required, e.g. 'Sandbox'
$flag "1" if access may be granted, "0" if not
Since: TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
$filter - spec of web types to recover
$filter may also contain the word 'public' which will further filter
out webs that have NOSEARCHALL set on them.
For example, the deprecated getPublicWebList function can be duplicated
as follows:
Since: TWiki::Plugins::VERSION 1.1
$web - Web name, required, e.g. 'Sandbox'
$flag "1" if web exists, "0" if not
Since: TWiki::Plugins::VERSION 1.000 (14 Jul 2001)
Trash
Since: TWiki::Plugins::VERSION 1.1
$web - Web name, optional, e.g. 'Main'.
$topic - Topic name, required, e.g. 'TokyoOffice', or "Main.TokyoOffice"
normalizeWebTopicName.
Since: TWiki::Plugins::VERSION 1.000 (14 Jul 2001)
$theWebName - Web name, optional, e.g. 'Main'
$theTopic - Topic name, required, e.g. 'TokyoOffice'
$theRev - revsion number, or tag name (can be in the format 1.2, or just the minor number)
$attachment -attachment filename
( $date, $user, $rev, $comment ) List with: ( last update date, login name of last user, minor part of top revision number ), e.g. ( 1234561, 'phoeny', "5" )
| $date | in epochSec |
| $user | Wiki name of the author (not login name) |
| $rev | actual rev number |
| $comment | WHAT COMMENT? |
$web - web for topic
$topic - topic
$time - time (in epoch secs) for the rev
$web Web name, e.g. "Main", or empty
$topic Topic name, e.g. "MyTopic", or "Main.MyTopic"
( $oopsUrl, $loginName, $unlockTime ) | The $oopsUrl for calling redirectCgiQuery(), user's $loginName, and estimated $unlockTime in minutes, or ( '', '', 0 ) if no lease exists.
$web Web name, e.g. "Main", or empty
$topic Topic name, e.g. "MyTopic", or "Main.MyTopic"
$lock 1 to lease the topic, 0 to clear the lease=
edit script
always takes out a lease.
It is impossible to fully lock a topic. Concurrent changes will be
merged.
$web - Web name, required, e.g. 'Main'
$topic - Topic name, required, e.g. 'TokyoOffice'
$rev - revision to read (default latest)
( $meta, $text ) Meta data object and topic text
$meta is a perl 'object' of class TWiki::Meta. This class is
fully documented in the source code documentation shipped with the
release, or can be inspected in the lib/TWiki/Meta.pm file.
This method ignores topic access permissions. You should be careful to use checkAccessPermissions to ensure the current user has read access to the topic.
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$web - Web name, e.g. 'Main', or empty
$topic - Topic name, e.g. 'MyTopic', or "Main.MyTopic"
$rev - Topic revision to read, optional. Specify the minor part of the revision, e.g. "5", not "1.5"; the top revision is returned if omitted or empty.
$ignorePermissions - Set to "1" if checkAccessPermission() is already performed and OK; an oops URL is returned if user has no permission
$text Topic text with embedded meta data; an oops URL for calling redirectCgiQuery() is returned in case of an error
This method is more efficient than readTopic, but returns meta-data embedded in the text. Plugins authors must be very careful to avoid damaging meta-data. You are recommended to use readTopic instead, which is a lot safer..
Since: TWiki::Plugins::VERSION 1.010 (31 Dec 2002)
$web - web for the topic
$topic - topic name
$meta - reference to TWiki::Meta object
$text - text of the topic (without embedded meta-data!!!
\%options - ref to hash of save options
\%options may include:
dontlog | don't log this change in twiki log |
comment | comment for save |
minor | True if this is a minor change, and is not to be notified |
beforeSaveHandler ) will be called as
appropriate.
$web - Web name, e.g. 'Main', or empty
$topic - Topic name, e.g. 'MyTopic', or "Main.MyTopic"
$text - Topic text to save, assumed to include meta data
$ignorePermissions - Set to "1" if checkAccessPermission() is already performed and OK
$dontNotify - Set to "1" if not to notify users of the change
$oopsUrl Empty string if OK; the $oopsUrl for calling redirectCgiQuery() in case of error
This method is a lot less efficient and much more dangerous than saveTopic.
Since: TWiki::Plugins::VERSION 1.010 (31 Dec 2002)
$web source web - required
$topic source topic - required
$newWeb dest web
$newTopic dest topic
$web - Web name, optional, e.g. Main.
$topic - Topic name, required, e.g. TokyoOffice, or Main.TokyoOffice
$attachment - attachment name, e.g.=logo.gif=
normalizeWebTopicName.
Since: TWiki::Plugins::VERSION 1.1
$web - web for topic
$topic - topic
$name - attachment name
$rev - revision to read (default latest)
readTopic. If the attachment does not exist, or cannot be read, undef 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.
Since: TWiki::Plugins::VERSION 1.1
$web - web for topic
$topic - topic to atach to
$attachment - name of the attachment
$opts - Ref to hash of options
$opts may include:
dontlog | don't log this change in twiki log |
comment | comment for save |
hide | if the attachment is to be hidden in normal topic view |
stream | Stream of file to upload |
file | Name of a file to use for the attachment data. ignored if stream is set. Local file on the server. |
filepath | Client path to file |
filesize | Size of uploaded data |
filedate | Date |
$web source web - required
$topic source topic - required
$attachment source attachment - required
$newWeb dest web
$newTopic dest topic
$newAttachment dest attachment
$web - Web name, required, e.g. 'Sandbox'
@topics Topic list, e.g. ( 'WebChanges', 'WebHome', 'WebIndex', 'WebNotify' )
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
commonTagsHandler.
$tag - The name of the tag i.e. the 'MYTAG' part of %MYTAG%. The tag name must match /^[A-Z][A-Z0-9_]*$/ or it won't work.
\&fn - Reference to the handler function.
$syntax can be 'classic' (the default) or 'context-free'. 'classic' syntax is appropriate where you want the tag to support classic TWiki syntax i.e. to accept an unquoted default parameter. For example, %MYTAG{unquoted parameter}%. If your tag will only use named parameters, you can use 'context-free' syntax, which supports a more natural and friendly syntax. For example, %MYTAG{param1=value1, value 2, param3="value 3", param4='value 5"}%
\%session - a reference to the TWiki session object (may be ignored)
\%params - a reference to a TWiki::Attrs object containing parameters. This can be used as a simple hash that maps parameter names to values, with _DEFAULT being the name for the default parameter.
$theTopic - name of the topic in the query
$theWeb - name of the web in the query
%EXEC{"ps -Af" silent="on"}%
$header to the HTML header (the tag).
This is useful for plugins that want to include some javascript custom css.
$id - Unique ID to prevent the same HTML from being duplicated. Plugins should use a prefix to prevent name clashes (e.g EDITTABLEPLUGIN_JSCALENDAR)
$header - the HTML to be added to the section. The HTML must be valid in a HEAD tag - no checks are performed.
$header will be expanded before being inserted into the section.
Note that this is not the same as the HTTP header, which is modified through the plugins modifyHeaderHandler.
Since: TWiki::Plugins::VERSION 1.1
example:
%VARIABLES%
$text - Text with variables to expand, e.g. 'Current user is %WIKIUSER%'
$topic - Current topic name, e.g. 'WebNotify'
$web - Web name, optional, e.g. 'Main'. The current web is taken if missing
$text Expanded text, e.g. 'Current user is TWikiGuest'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
See also: expandVariablesOnTopicCreation
$text - Text to render, e.g. '*bold* text and =fixed font='
$web - Web name, optional, e.g. 'Main'. The current web is taken if missing
$text XHTML text, e.g. '<b>bold</b> and <code>fixed font</code>'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
renderText()
$pre - Text occuring before the TWiki link syntax, optional
$web - Web name, required, e.g. 'Main'
$topic - Topic name to link to, required, e.g. 'WebNotify'
$label - Link label, required. Usually the same as $topic, e.g. 'notify'
$anchor - Anchor, optional, e.g. '#Jump'
$createLink - Set to '1' to add question linked mark after topic name if topic does not exist;'0' to suppress link for non-existing topics
$text XHTML anchor, e.g. '<a href='/cgi-bin/view/Main/WebNotify#Jump'>notify</a>'
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$time - Time in epoc seconds
$format - Format type, optional. Default e.g. '31 Dec 2002 - 19:30'. Can be '$iso' (e.g. '2002-12-31T19:30Z'), '$rcs' (e.g. '2001/12/31 23:59:59', '$http' for HTTP header format (e.g. 'Thu, 23 Jul 1998 07:21:56 GMT'), or any string with tokens '$seconds, $minutes, $hours, $day, $wday, $month, $mo, $year, $ye, $tz' for seconds, minutes, hours, day of month, day of week, 3 letter month, 2 digit month, 4 digit year, 2 digit year, timezone string, respectively
$timezone - either not defined (uses the displaytime setting), 'gmtime', or 'servertime'
$text Formatted time string
| Note: | if you used the removed formatGmTime, add a third parameter 'gmtime' |
$name - Template name, e.g. 'view'
$skin - Comma-separated list of skin names, optional, e.g. 'print'
$text Template text
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$text - Text to write; timestamp gets added
$text - Text to write; timestamp gets added
$name - Name of the expression to retrieve. See notes below
| Name | Matches | Type |
|---|---|---|
| upperAlpha | Upper case characters | String |
| upperAlphaNum | Upper case characters and digits | String |
| lowerAlpha | Lower case characters | String |
| lowerAlphaNum | Lower case characters and digits | String |
| numeric | Digits | String |
| mixedAlpha | Alphabetic characters | String |
| mixedAlphaNum | Alphanumeric characters | String |
| wikiWordRegex | WikiWords | RE |
| webNameRegex | User web names | RE |
| anchorRegex | #AnchorNames | RE |
| abbrevRegex | Abbreviations e.g. GOV, IRS | RE |
| emailAddrRegex | email@address.com | RE |
| tagNameRegex | Standard tag names e.g. %THIS_BIT% (THIS_BIT only) | RE |
$theName - template file name
$theSkin - comma-separated list of skins to use (default: current skin)
$theWeb - the web to look in for topics that contain templates (default: current web)
$theDef - template name
$text - the text to process
%DATE% Signature-format date
%SERVERTIME% See TWikiVariables
%GMTIME% See TWikiVariables
%USERNAME% Base login name
%WIKINAME% Wiki name
%WIKIUSERNAME% Wiki name with prepended web
%URLPARAM{...}% - Parameters to the current CGI query
%NOP% No-op
$web - Web name, identifying variable, or empty string
$topic - Topic name, may be a web.topic string, required.
| Input | Return |
|---|---|
| ( 'Web', 'Topic' ) | ( 'Web', 'Topic' ) |
| ( '', 'Topic' ) | ( 'Main', 'Topic' ) |
| ( '', '' ) | ( 'Main', 'WebHome' ) |
| ( '', 'Web/Topic' ) | ( 'Web', 'Topic' ) |
| ( '', 'Web.Topic' ) | ( 'Web', 'Topic' ) |
| ( 'Web1', 'Web2.Topic' ) | ( 'Web2', 'Topic' ) |
| ( 'Main', 'Topic' ) | ( 'Main', 'Topic' ) |
| ( 'TWiki', 'Topic' ) | ( 'TWiki', 'Topic' ) |
Main and TWiki are the web names set in $cfg{UsersWebName} and $cfg{SystemWebName} respectively.
$searchString - the search string, in egrep format
$web - The web to search in
\@topics - reference to a list of topics to search
\%option - reference to an options hash
\%options hash may contain the following options:
type - if regex will perform a egrep-syntax RE search (default '')
casesensitive - false to ignore case (defaulkt true)
files_without_match - true to return files only (default false). If files_without_match is specified, it will return on the first match in each topic (i.e. it will return only one match per topic, and will not return matching lines).
$text - text of the mail, including MIME headers
$retries - number of times to retry the send (default 1)
$wikiName - wiki name of the user
getListOfWebs instead.
Get list of all public webs, e.g. all webs that do not have the NOSEARCHALL flag set in the WebPreferences
Return: @webs List of all public webs, e.g. ( 'Main', 'Know', 'TWiki' )
$time - Time in epoc seconds
$format - Format type, optional. Default e.g. '31 Dec 2002 - 19:30', can be 'iso' (e.g. '2002-12-31T19:30Z'), 'rcs' (e.g. '2001/12/31 23:59:59', 'http' for HTTP header format (e.g. 'Thu, 23 Jul 1998 07:21:56 GMT')
$text Formatted time string
Since: TWiki::Plugins::VERSION 1.000 (7 Dec 2002)
$dir Data directory, e.g. '/twiki/data'
DEPRECATED: TWiki::Plugins::VERSION 1.1
This function violates store encapsulation and is therefore deprecated. Use
the various web, topic and attachment manipulation functions instead.
$dir/Web/TopicName
Return: $dir Pub directory, e.g. '/htdocs/twiki/pub'
This function violates store encapsulation and is therefore deprecated.
Use readAttachment and saveAttachment instead.
$filename - Full path name of file
$text Content of file
$filename - Full path name of file
$text - Text to save
bin directory. This topic describes the interfaces to some of those scripts.
All the scripts can be called from the CGI environment or from the command-line.
guest).
twiki/bin directory to run the scripts from the command line.
Parameters are passed using '-name' - for example,
All parameters require a value.
| Parameter | Description | Default |
|---|---|---|
topic | If this is set to a URL, TWiki will immediately redirect to that URL. Otherwise it overrides the URL and is taken as the topic name (you can pass Web.TopicName) | |
user | Command-line only; set the name of the user performing the action. Note: this usage is inherently insecure, as it bypasses webserver login constraints. For this reason only authorised users should be allowed to execute scripts from the command line. | |
skin | Overrides the default skin path (see TWikiSkins) | |
cover | Specifies temporary skin path to prepend to the skin path for this script only (see TWikiSkins) |
save save script performs a range of save-related functions, as selected by the action parameter.
| Parameter | Description | Default |
|---|---|---|
action_save=1 | default; save, return to view, dontnotify is OFF | |
action_quietsave=1 | save, and return to view, dontnotify is ON | |
action_checkpoint | save and redirect to the edit script, dontnotify is ON | |
action_cancel | exit without save, return to view | |
action_preview | preview edited text | |
action_addform | Redirect to the "change form" page. | |
action_replaceform... | Redirect to the "change form" page. | |
action_delRev | Administrators only delete the most recent revision of the topic - all other parameters are ignored | |
action_repRev | Administrators only replace the text of the most recent revision of the topic with the text in the text parameter. text must included embedded meta-data tags. All other parameters are ignored. | |
onlynewtopic | If set, error if topic already exists | |
onlywikiname | If set, error if topic name is not a WikiWord | |
dontnotify | if defined, suppress change notification | |
templatetopic | Name of a topic to use as a template for the text and form | |
text | New text of the topic | |
forcenewrevision | if set, forces a revision even if TWiki thinks one isn't needed | |
topicparent | If 'none' remove any current topic parent. If the name of a topic, set the topic parent to this. | |
formtemplate | if defined, use the named template for the form | |
editaction | When action is checkpoint, add form or replace form..., this is used as the action parameter to the edit script that is redirected to after the save is complete. | |
originalrev | Revision on which the edit started. |
oops page.
The parameters are interpreted in according to the following rules.
X characters in the topic name will be converted to a number such that the resulting topic name is unique in the target web.
save, checkpoint, quietsave, or preview:
text parameter, if it is defined,
templatetopic, if it is defined,
forcenewrevision is set.
formtemplate, if defined
templatetopic, if defined,
templatetopic, if defined,
text and originalrev is > 0 and is not the same as the revision number of the most recent revision. If merging is enabled both the topic and the meta-data are merged.
Form field values are passed in parameters named 'field' - for example, if I have a field Status the parameter name is Status.
oops oops templates are used with the oops script to generate system messages. This is done to make internationalisation or other local customisations simple.
The oops script supports the following parameters:
| Parameter | Description | Default |
|---|---|---|
template | Name of the template file to display | |
def | Optional, can be set to the name of a single definition within template. This definition will be instantiated in the template wherever %INSTANTIATE% is seen. This lets you use a single template file for many messages. For an example, see oopsmanagebad.tmpl. | |
paramN | Where N is an integer from 1 upwards. These values will be substituted into template for %PARAM1% etc. |
edit edit scipt understands the following parameters, typically supplied by HTML input fields:
| Parameter | Description | Default |
|---|---|---|
action | Optional. Use the editaction template instead of the standard edit, and if action=text, then hide the form | |
onlynewtopic | If set, error if topic already exists | |
onlywikiname | If set, error if topic name is not a WikiWord | |
templatetopic | The name of the template topic, copied to get the initial content | |
text | Initial text for the topic | |
topicparent | The parent topic | |
formtemplate | Name of the form to instantiate in the topic. Overrides the form set in the templatetopic if defined. | |
contenttype | Optional parameter that defines the application type to write into the CGI header. Defaults to text/html. May be used to invoke alternative client applications | |
anyname | Any parameter can passed to the new topic; if the template topic contains %URLPARAM{"anyname"}%, it will be replaced by its value | |
breaklock | If set, any lease conflicts will be ignored, and the edit will proceed even if someone is already editing the topic. |
Status the parameter name is Status.
X characters in the topic name will be converted on save to a number such that the resulting topic name is unique in the target web.
view | Parameter | Description | Default |
|---|---|---|
raw=on | Shows the text of the topic in a scrollable textarea | |
raw=debug | As raw=on, but also shows the metadata (forms etc) associated with the topic. | |
raw=text | Shows only the source of the topic, as plain text (Content-type: text/plain). This is useful when you want to extract the source of a topic to a local file on disc. | |
contenttype | Allows you to specify a different Content-Type: (e.g. contenttype=text/plain) | |
rev | Revision to view (e.g. rev=45) | |
template | Allows you to specify a different skin template, overriding the 'view' template the view script would normally use. The default template is view. For example, you could specify http://localhost/CLEAN/bin/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialised templates for a TWiki Application. |
text skin. If the skin=text parameter is given, it is used like this:
http://.../view/MyWeb/MyTopic?skin=text&contenttype=text/plain&raw=on
which shows the topic as plain text; useful for those who want
to download plain text for the topic.
Using skin=text this way is DEPRECATED, and this hack will be removed in a future release. Use raw=text instead.
viewfile pub) directory using a URL. However if it contains sensitive information, you will want to protect attachments using TWikiAccessControls. In this case, you can use the viewfile script to give access to attachments while still checking access controls.
| Parameter | Description | Default |
|---|---|---|
filename | name of attachment | |
rev | Revision to view |
preview save script.
rest endPoint parameter is specified, in which case the control is redirected to the given topic.
The rest script can receive one parameter:
endPoint | Where to redirect the response once the request is served, in the form "Web.Topic" |
http://my.host/bin/rest/EmptyPlugin/testRest
Will invoke TWiki::Plugin::EmptyPlugin::testRest, and print the result directly to the stream.
http://my.host/bin/rest/EmptyPlugin/testRest?endPoint=SomeWeb.SomeTopic
Will invoke TWiki::Plugin::EmptyPlugin::testRest, and redirect the control to SomeWeb.SomeTopic
configure configure is the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose except configure.
rdiff | Parameter | Description | Default |
|---|---|---|
| rev1 | the higher revision | |
| rev2 | the lower revision | |
| render | the rendering style {sequential, sidebyside, raw, debug} | DIFFRENDERSTYLE, sequential |
| type | history, diff, last} history diff, version to version, last version to previous | diff |
| context | number of lines of context |
rename | Parameter | Description | Default |
|---|---|---|
skin | skin(s) to use | |
newweb | new web name | |
newtopic | new topic name | |
breaklock | ||
attachment | ||
confirm | if defined, requires a second level of confirmation | |
currentwebonly | if defined, searches current web only for links to this topic | |
nonwikiword | if defined, a non-wikiword is acceptable for the new topic name |
attach | Parameter | Description | Default |
|---|---|---|
filename | Name of attachment |
upload | Parameter | Description | Default |
|---|---|---|
hidefile | if defined, will not show file in attachment table | |
filepath | ||
filename | ||
filecomment | Comment to associate with file in attachment table | |
createlink | if defined, will create a link to file at end of topic | |
changeproperties |
search %SEARCH% functionality driven by the following CGI parameters:
| Parameter: | Description: | Default: |
|---|---|---|
"text" | Search term. Is a keyword search, literal search or regular expression search, depending on the type parameter. SearchHelp has more | required |
search="text" | (Alternative to above) | N/A |
web="Name" web="Main, Know" web="all" | Comma-separated list of webs to search. The special word all means all webs that doe not have the NOSEARCHALL variable set to on in their WebPreferences. You can specifically exclude webs from an all search using a minus sign - for example, web="all,-Secretweb". | Current web |
topic="WebPreferences" topic="*Bug" | Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | All topics in a web |
excludetopic="Web*" excludetopic="WebHome, WebChanges" | Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | None |
type="keyword" type="literal" type="regex" | Do a keyword search like soap "web service" -shampoo; a literal search like web service; or RegularExpression search like soap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE% preferences setting (literal) |
scope="topic" scope="text" scope="all" | Search topic name (title); the text (body) of topic; or all (both) | "text" |
order="topic" order="created" order="modified" order="editby" order= | Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin? 's initsort | Sort by topic name |
limit="all" limit="16" | Limit the number of results returned. This is done after sorting if order is specified | All results |
date="..." | limits the results to those pages with latest edit time in the given TimeInterval. | All results |
reverse="on" | Reverse the direction of the search | Ascending search |
casesensitive="on" | Case sensitive search | Ignore case |
bookview="on" | BookView search, e.g. show complete topic text | Show topic summary |
nonoise="on" | Shorthand for nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" | Off |
nosummary="on" | Show topic title only | Show topic summary |
nosearch="on" | Suppress search string | Show search string |
noheader="on" | Suppress search header Topics: Changed: By: | Show search header |
nototal="on" | Do not show number of topics found | Show number |
zeroresults="off" | Suppress all output if there are no hits | zeroresults="on", displays: "Number of topics: 0" |
noempty="on" | Suppress results for webs that have no hits. | Show webs with no hits |
header="..." format="..." | Custom format results: see FormattedSearch for usage, variables & examples | Results in table |
expandvariables="on" | Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin? %CALC{}% instead of the formula | Raw text |
multiple="on" | Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search | Only one hit per topic |
nofinalnewline="on" | If on, the search variable does not end in a line by itself. Any text continuing immediately after the search tag on the same line will be rendered as part of the table generated by the search, if appropriate. | off |
separator=", " | Line separator between hits | Newline "$n" |
changes changes script can receive one parameter:
| Parameter | Description | Default |
|---|---|---|
minor | If 0, show only major changes. If 1, show all the changes (both minor and major) | 0 |
%SEARCH%, while this script reads the changes file in each web, making it a faster alternative.
NOTE: The result from changes script and the topic WebChanges can be different, if the changes file is deleted from a web. In particular, in new installations the changes script will return no results while the WebChanges topic will.
manage | Parameter | Description | Default |
|---|---|---|
action | One of createweb, changePassword, bulkRegister, deleteUserAccount, editSettings or saveSettings | none |
action=createweb | Parameter | Description | Default |
|---|---|---|
webbgcolor | Background colour for the web | '' |
sitemapwhat | ? | '' |
sitemapuseto | What the web is used for | '' |
nosearchall | Value for NOSEARCHALL in the new web | '' |
newweb | Name of the new web | '' |
baseweb | Name of the web to copy to create the new web | '' |
newtopic | ? | '' |
action=changePassword | Parameter | Description | Default |
|---|---|---|
username | Username | |
oldpassword | Existing password (plain text) | |
password | New password (plain text) | |
passwordA | New password confirmation (plain text) | |
TopicName | ? |
action=bulkRegister | Parameter | Description | Default |
|---|---|---|
OverwriteHomeTopics | ? | false |
EmailUsersWithDetails | ? | false |
LogTopic | ? | Same as topic name, with 'Result' appended. |
action=deleteUserAccount | Parameter | Description | Default |
|---|---|---|
password | ? | none |
action=editSettings action=saveSettings | Parameter | Description | Default |
|---|---|---|
text | Text of the topic | '' |
originalrev | Revision that the edit started on | Most recent revision |
passwd | Parameter | Description | Default |
|---|---|---|
action | one of changePassword or resetPassword | none |
manage, action=changePassword.
register | Parameter | Description | Default |
|---|---|---|
action | register or verify or resetPassword or approve |
resetpasswd | Parameter | Description | Default |
|---|---|---|
LoginName | list of usernames to reset | none |
Introduction | ? | '' |
mailnotify is called by a background process at regular intervals. The script sends an automated email to subscribed users if topics were changed in a web since the script was last run.
%NOTIFYTOPIC%
%MAINWEB% instead of Main, but this is not necessary even if you have renamed the main web by configuring {MainWebName} in configure.
Net::SMTP module if it is installed on your system. Set this with the SMTPMAILHOST variable in TWikiPreferences.
The notify e-mail uses the default changes.tmpl template, or a skin if activated in the TWikiPreferences.
mailnotify also relies on two hidden files in each TWiki/data/[web] directory: .changes and .mailnotify. Make sure both are writable by your web server process. .changes contains a list of changes; go ahead and make this empty. .mailnotify contains a timestamp of the last time notification was done.
You can use an external mail program, like sendmail, if the Net::SMTP module is not installed. Set the program path in {MailProgram} in configure.
SMTPMAILHOST in TWikiPreferences to an empty value.
SMTPSENDERHOST variable to define the mail sender host (some SMTP installations require this).
cron table so that mailnotify is called in an interval of your choice. Please consult man crontab of how to modify the table that schedules program execution at certain intervals. Example:
% crontab -e 0 2 * * * (cd /path/to/twiki/bin; ./mailnotify -q)The above line will run mailnotify nightly at 02:00. The
-q switch suppresses all normal output.
For ISP installations: Many ISPs don't allow hosted accounts direct cron access, as it's often used for things that can heavily load the server. Workaround scripts are available.
On Windows NT/2000: You can use a scheduled task if you have administrative privileges.
Note: AT on an NT machine is pretty limited.
Microsoft lists several third-party
replacements. TWiki:Codev/CronTabWin is a free scheduler for Windows.
%STATISTICSTOPIC%
twiki/bin/statistics script from a cron job, once a day is recommended. This will update the WebStatistics topics in all webs.
nobody on many systems. Example crontab entry: 0 0 * * * (cd /path/to/TWiki/bin; ./statistics >/dev/null 2>&1)
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: 0 0 * * * (cd /path/to/TWiki/bin; ./geturl mydomain.com /urlpath/to/TWiki/bin/statistics >/dev/null 2>&1)
twiki/bin/statistics script can also be executed as a CGI script, just enter the URL in your browser. Examples:
http://mydomain.com/twiki/bin/statistics
http://mydomain.com/twiki/bin/statistics/Main
http://mydomain.com/twiki/bin/statistics/Main?logdate=200001
log<year><month>.txt
twiki/logs/log200509.txt
| <time> | <wikiusername> | <action> | <web>.<topic> | <extra info> | <IP address> |
| 30 Sep 2005 - 11:30 | %MAINWEB%.TWikiGuest | view | %TWIKIWEB%.WebRss | | 66.124.232.02 |
| Script | Action name | Extra info | |||
|---|---|---|---|---|---|
| attach | attach | when viewing attach screen of previous uploaded attachment: filename | |||
| changes | changes | ||||
| edit | edit | when editing non-existing topic: (not exist) | |||
| rdiff | rdiff | 1.4 1.3 | |||
| register | regstart | WikiUserName? | E-Mail address | LoginName | user attempts to register |
| register | register | E-mail address | user successfully registers | ||
| register | bulkregister | WikiUserName? of new | E-mail address | Admin Id | |
| rename | rename | when moving topic: moved to Newweb.NewTopic | |||
| rename | move | when moving attachment: Attachment filename moved to Newweb.NewTopic | |||
| passwd | resetpasswd | LoginName | WikiName | EmailAddress? | Success code from addUserPassword |
| passwd | changepasswd | LoginName | WikiName | ||
| save | save | when replacing existing revision: repRev 1.3 when user checks the minor changes box: dontNotify | |||
| search | search | search string | |||
| upload | upload | filename | |||
| view | view | when viewing non-existing topic: (not exist) when viewing previous topic revision: r1.3 |
SEARCH. The number of topics listed by the limit parameter.:
%SEARCH{".*" web="TWiki" regex="on" nosearch="on" order="modified"
reverse="on" limit="50"}%
SEARCH:
%SEARCH{"\.*" scope="topic" regex="on" nosearch="on"}%
Related Topics: AdminDocumentationCategory
Trash web.
[More] (bottom right of page) on the topic to be changed, then, in the new screen, on [Rename/move]. You can now rename and/or move/delete in one operation:
Trash to delete a topic.
[Rename/Move]: the topic will be renamed and links to the topic updated as requested.
[Rename/Move].
Rename/Move/Delete - an instruction line and undo link will appear at the bottom of the modified topic. This allows you to revert from the last modification only.
Trash web - they are NOT physically erased from the server. All webs share Trash - in case of a name conflict with a topic already Trash, the user is alerted and asked to choose a new name.
The Trash web should be be cleared periodically, by archiving (saving) the text and RCS files if required (recommended), then deleting them from the Trash directory.
Trash directory is all that's required for maintenance, it's possible to grant Trash admin privileges to multiple users, while strictly limiting server access.
<pre> and <verbatim> are honoured - no changes are made to text within these areas.
topic. Next, all webs (including the current one) are listed that match web.topic. All webs will be searched during rename, even if NOSEARCHALL is defined on a web, though access permissions will of course be honoured.
Changed references are kept are as short as possible, ex: topic is used in preference to web.topic.
ALLOWTOPICCHANGE and ALLOWTOPICRENAME permission for that topic. To alter referring topics, you need change permission. See TWikiAccessControl for information on setting up access permissions.
search can show matches that will not be updated due to case differences. Other mismatches with actual rendered output are also possible as the approaches are so different.
The following shows some limitations of square bracket processing.
Related Topics: UserDocumentationCategory, AdminDocumentationCategory
_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.
In either case you will want to be sure to verify that your new web has all the custom modifications that you desire.
WEBBGCOLOR, SITEMAPLIST, SITEMAPWHAT, SITEMAPUSETO and NOSEARCHALL. These variables are used to dynamically generate the SiteMap
WIKIWEBLIST. This must be done by hand
%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 topic.
If you want to rename the TWiki web, remember it is referred to by %TWIKIWEB% which is also defined by a configuration setting.
EnableHierarchicalWebs setting in configure. Without this setting, TWiki will only allow a single level of hierarchy (webs). If you set this, you can use multiple levels, like a directory tree, i.e. webs within webs.
You can create hierarchical webs via the Adding a New Web form above, by using a slash- or dot-separated path name which is based on an existing web name in the Name of new web: field.
Example:
To create a subweb named Bar inside a web named Foo, use Foo/Bar or Foo.Bar as the new web name in the form above.
Sandbox/TestWeb/SubWeb.SubWebTopic topic:
TWiki.TWikiPreferences site-wide preferences
Sandbox.WebPreferences inherits from and overrides settings in TWiki.TWikiPreferences
Sandbox/TestWeb.WebPreferences inherits from and overrides settings in Sandbox.WebPreferences
Sandbox/TestWeb/SubWeb.WebPreferences inherits from and overrides settings in Sandbox/TestWeb.WebPreferences
Sandbox/TestWeb/SubWeb.SubWebTopic inherits from and overrides settings in Sandbox/TestWeb/SubWeb.WebPreferences
.htpasswd file, edit the .htpasswd file to delete the line starting fred:
FredQuimby - fred line from the Main.TWikiUsers topic
FredQuimby from all groups and from all the ALLOWWEB/ALLOWTOPIC... declarations, if any.twiki. So: twikiAlert, twikiToc, etcetera. Remember that CSS class names are case sensitive - TWiki CSS uses lowercase tw.
twiki prefix to prevent undesired overriding effects.
| .twikiAlert | Client.pm, Form.pm, Statistics.pm |
| .twikiFirstCol | Render.pm |
| .twikiForm | Render.pm |
| .twikiNew | Changes.pm, Search.pm |
| .twikiHelp | Changes.pm |
| .twikiTopRow | Manage.pm |
| .twikiSummary | Manage.pm |
| .twikiGrayText | Manage.pm |
| .twikiCheckBox | Manage.pm |
| .twikiLink | Render.pm |
| .twikiNewLink | Render.pm |
| .twikiAnchorLink | Render.pm |
| .twikiEmulatedLink | Preview.pm |
| .twikiEditFormTextField | Form.pm |
| .twikiEditFormLabelField | Form.pm |
| .twikiEditFormTextAreaField | Form.pm |
| .twikiEditFormCheckboxButton | Form.pm |
| .twikiEditFormCheckboxField | Form.pm |
| .twikiRadioButton | Form.pm |
| .twikiEditFormRadioField | Form.pm |
| .twikiEditFormError | Form.pm |
| .twikiDiffTable | RDiff.pm |
| .twikiDiffDeletedHeader | RDiff.pm |
| .twikiDiffDeletedMarker | RDiff.pm |
| .twikiDiffDeletedText | RDiff.pm |
| .twikiDiffAddedHeader | RDiff.pm |
| .twikiDiffAddedMarker | RDiff.pm |
| .twikiDiffAddedText | RDiff.pm |
| .twikiDiffChangedHeader | RDiff.pm |
| .twikiDiffChangedText | RDiff.pm |
| .twikiDiffUnchangedText | RDiff.pm |
| .twikiDiffUnchangedTextContents | RDiff.pm |
| .twikiDiffLineNumberHeader | RDiff.pm |
| .twikiToc | TWiki.pm |
| .twikiTocTitle | TWiki.pm |
| .twikiSortedAscendingCol | TablePlugin? |
| .twikiSortedDescendingCol | TablePlugin? |
| .twikiFirstCol | TablePlugin? |
| .twikiBroadcastMessage | TWikiPreferences |
| .twikiAttachments |
| .twikiSubmit |
| .twikiButton |
| .twikiLeft |
| .twikiRight |
| .twikiClear |
| .twikiHidden |
| .twikiSmall |
| .twikiBottomRow |
| .twikiSRAuthor |
| .twikiSRRev |
| .twikiPageForm |
| .twikiSeparator |
| .twikiAccessKey |