diff and grep tools if in doubt!) and TWiki:Codev/TWikiOnLinux.
/home/httpd/twiki and unzip the TWiki distribution into this directory.
twiki/bin directory of TWiki must be set as a cgi-bin directory. Add /home/httpd/twiki/bin to file httpd.conf (typcially located in /etc/httpd/) with only ExecCGI option.
twiki/pub directory of TWiki must be set so that it is visible as a URL. Add /home/httpd/twiki to file httpd.conf with normal access options (copy from /home/httpd/html ).
ScriptAlias for /twiki/bin and Alias for /twiki to file httpd.conf .
ScriptAlias must come before the Alias, otherwise, Apache will fail to correctly set up /twiki/bin/, by treating it as just another subdirectory of the /twiki/ alias.
twiki/data and twiki/templates directories should be set so that they are not visible as URLs. Add them to httpd.conf with deny from all.
Examplehttpd.confentries:ScriptAlias /twiki/bin/ "/home/httpd/twiki/bin/" Alias /twiki/ "/home/httpd/twiki/" <Directory "/home/httpd/twiki/bin"> Options +ExecCGI SetHandler cgi-script Allow from all </Directory> <Directory "/home/httpd/twiki/pub"> Options FollowSymLinks +Includes AllowOverride None Allow from all </Directory> <Directory "/home/httpd/twiki/data"> deny from all </Directory> <Directory "/home/httpd/twiki/templates"> deny from all </Directory>
service httpd restart (or as appropriate to your flavor of UNIX or Linux).
twiki/bin directory is CGI-enabled by trying visiting it in your browser:
bin directory, http://yourdomain.com/twiki/bin/
"Forbidden. You don't have permission to access /twiki/bin/ on this server".
"Index of /twiki/bin" - recheck your httpd.conf file.
pub)
Note: Don't worry if you are not able to put the
TWiki dir: What it is: Where to copy: Example: twikistart-up pages root TWiki dir /home/smith/twiki/twiki/binCGI bin CGI-enabled dir /home/smith/twiki/bintwiki/liblibrary files same level as twiki/bin/home/smith/twiki/libtwiki/pubpublic files htdoc enabled dir /home/smith/twiki/pubtwiki/datatopic data dir secure from public access /home/smith/twiki/datatwiki/templatesweb templates dir secure from public access /home/smith/twiki/templates
twiki/lib directory at the same level as the twiki/bin directory (e.g. because CGI bin directories can't be under your home directory and you don't have root access). You can create this directory elsewhere and configure the /twiki/bin/setlib.cfg file (done in Step 3)
/usr/bin/perl. If it's elsewhere, change the path to Perl in the first line of each script in the twiki/bin directory, or create a symbolic link from /usr/bin/perl.
.cgi extension to run. Some systems need .pl, the regular Perl extension. Rename all twiki/bin scripts if necessary.
twiki/bin/.htaccess that contains the single line SetHandler cgi-script, which tells Apache to treat all files in this directory as CGI scripts.
twiki/bin directory as executable to -rwxr-xr-x (755).
.tmpl files it is necessary to chown and chgrp -R twiki so all the files have the owner you want.
nobody ownership for all files manipulated by the CGI scripts (executed by the Web server), and user twiki for all other files. You can:
nobody with another user if your server executes scripts under a different name (ex: default for Debian is www-data).
testenv script from your browser: http://yourdomain.com/twiki/bin/testenv. It will show you the user name of the CGI scripts, a table listing all CGI environment variables, and a test of your twiki/lib/TWiki.cfg configuration file (you'll configure that in a minute).
twiki with your own username
twiki/data so that they are writable by user nobody. A simple way is to chmod them to -rw-rw-r-- (664) and to chown them to nobody.
twiki/data directory and its subdirectories so that files in there are writable by user nobody. A simple way is to chmod them to drwxrwxr-x (775) and to chown them to nobody.
twiki/pub directory and all its subdirectories so that files in there are writable by user nobody. A simple way is to chmod them to drwxrwxr-x (775) and to chown them to nobody.
twiki/data/*/*.txt,v RCS repository files in the installation package are locked by user nobody. If your CGI scripts are not running as user nobody, it's not possible to check in files (you'll see that the revision number won't increase after saving a topic). In this case, you need to unlock all repository files (check the RCS man pages) and lock them with a different user, such as www-data, or delete them all - new files will be automatically created the first time each topic is edited. You have two options to change ownership of the RCS lock user:
testenv script from your browser; in the Fix line you can relock all the rcs files (recommended)
cd twiki/data find . -name *,v -exec perl -pi~ -e '$. <= 10 && s/nobody:/www-data:/ ' {} \; *,v~ backup files which you should remove after verification: find . -name *,v~ -exec rm -f {} \;
/twiki/bin/setlib.cfg
$twikiLibPath to the absolute file path of your /twiki/lib as seen by the web server.
"../lib" path or Plugins might fail to initialize properly
$localPerlLibPath if you are not root and need to install additional CPAN modules, but can't update the main Perl installation files on the server. Just set this variable to the full pathname to your local lib directory, typically under your home directory.
setlib.cfg file.
twiki/lib/TWiki.cfg, setting the variables to your needs.
$scriptSuffix variable to cgi or pl if required.
$storeTopicImpl = "RcsWrap"; for the RCS executables and make sure RCS is installed. Set $rcsDir in twiki/lib/TWiki.cfg to match the location of your RCS binaries. You can check this by issuing the command rcs at the prompt, it should result in something like "rcs: no input file".
diff, by typing diff -v - an error indicates you have a non-GNU diff, so install the GNU diffutils package and make sure that diff is on the PATH used by TWiki (see $safeEnvPath in the TWiki.cfg file).
$storeTopicImpl = "RcsLite"; for the Perl based RCS
twiki/data , twiki/templates and all their subdirectories should be set so that they are not visible through URLs. (Alternatively, move the directories to a place where they are not visible, and change the variables in twiki/lib/TWiki.cfg accordingly)
testenv script from your browser: http://yourdomain.com/twiki/bin/testenv. Check if your twiki/lib/TWiki.cfg configuration file settings are correct.
TWiki.cfg file's Internationalisation section to set the $useLocale parameter to 1. TWiki will now use the I18N parameters set in the rest of this section.
locale -a to find a suitable 'locale' for your use of TWiki. A locale that includes a dot followed by a character set is recommended, e.g. pl_PL.ISO-8859-2 for Poland. Consult your system administrator if you are not sure which locale to use.
TWiki.cfg, set the $siteLocale parameter to your chosen locale, e.g. pl_PL.ISO-8859-2 for Poland.
testenv (download the latest testenv from TWiki:Support/SupportGuidelines if possible) - this provides some diagnostics for I18N setup, and in particular checks that your locale can be used successfully.
TWiki.cfg parameter $localeRegexes to 0 - this disables some features but enables TWiki to work even if your system has locales that do not work. Then, set the $upperNational and $lowerNational parameters to the valid upper and lower case accented letters for your locale.
$useLocale set to 1 and set $localeRegexes to 0, then set $upperNational and $lowerNational - if testenv generates the lists of characters for you, your locales are working so there is no need to set $localeRegexes to 0 in this case. See the comments in TWiki.cfg for more information.
WIKIWEBMASTER email address, and other email settings required for registration and WebChangesAlert to work:
WIKIWEBMASTER should be set to the email address of the TWiki administrator
SMTPMAILHOST is typically set on Windows or other non-Unix/Linux systems, where sendmail or similar is not available. When this is set and the Perl module Net::SMTP is installed, TWiki will connect to this SMTP server (e.g. mail.yourdomain.com) to send email for user registration and WebChangesAlerts. If you do have a sendmail-type program, leave SMTPMAILHOST unset so that the external sendmail program is used instead (defined by $mailProgram in TWiki.cfg).
SMTPSENDERHOST is optional, and set to the domain name sending the email (e.g. twiki.yourdomain.com). For use where the SMTP server requires that you identify the TWiki server sending mail. If not set, Net::SMTP will guess it for you.
http://yourdomain.com/twiki/bin/view and start TWiki-ing away!
http://yourdomain.com/twiki/ to get the pre-TWiki index.html page, with a link to the view script. Customize this page if you want a public intro screen with a login link, instead of immediately calling up the .htaccess login dialog by going directly to view.
WEBCOPYRIGHT messages, and other preferences.
%VARIABLES%. Define site-level variables in the TWikiPreferences topic. See also: TWikiVariables.
.htaccess.txt in the twiki/bin directory to .htaccess and change it to your needs. The comment at the top of the file explains what need to be done, basically replace !FILE_path_to_TWiki! and !URL_path_to_TWiki! with paths specific to your installation. For the details of how this file works, consult the HTTP server documentation (for Apache server: [1], [2]).
.cgi or .pl file extension to the bin scripts, make sure to do the same for edit, view, preview, and all the other script names in .htaccess.
.htaccess does not have the desired effect, you need to enable it: Add "AllowOverride All" to the Directory [3] section of access.conf for your twiki/bin directory.
twiki/data/.htpasswd.txt file contains several TWiki core team user accounts and a guest user account. You probably want to remove those accounts by deleting the entries in .htpasswd. Do not remove the guest user if you want to allow guest logins.
$htpasswdFormatFamily, $htpasswdEncoding and $htpasswdFilename in the TWiki.cfg file. The supported options are htpasswd:plain, htpasswd:crypt, htpasswd:sha1, htdigest:md5
.txt and .txt,v files in the twiki/data/TWiki directory.
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.
data/.htpasswd file. The .htpasswd file that comes with the TWiki installation includes user accounts for TWiki core team members that are used for testing on TWiki.org. You can edit the file and delete those lines.
Main.UserName or %MAINWEB%.UserName format. (The %MAINWEB% variable is an advantage if you ever change the Main web name, but the standard Main.UserName is easier for users to enter, which is the bottom line!)
REMOTE_USER environment variable. This variable is set when you enable Basic Authentication (.htaccess) or SSL "secure server" authentication (https protocol).
TWiki uses visitor identification to keep track of who made changes to topics at what time and to manage a wide range of personal site settings. This gives a complete audit trail of changes and activity.
attach, edit, installpasswd, manage, preview, rename, save, upload. The TWikiInstallationGuide has step-by-step instructions.
twiki/bin directory. Consult your web server documentation.
lib/TWiki.cfg. It lets you combine open access to some functions, with authentication on others, with full user activity tracking:
REMOTE_USER environment variable is set for the scripts that are under authentication. If, for example, the edit, save and preview scripts are authenticated, but not view, you would get your WikiName in preview for the %WIKIUSERNAME% variable, but view will show TWikiGuest instead of your WikiName.
view, will show the correct username instead of TWikiGuest.
$doRememberRemoteUser flag in TWiki.cfg. TWiki then persistently stores the IP address/username pairs in the file, $remoteUserFilename, which is "$dataDir/remoteusers.txt" by default.
view script to viewauth (or better, create a symbolic link)
viewauth to the list of authenticated scripts in the twiki/bin/.htaccess file. The view script should not be listed in the .htaccess file.
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.
twiki/data, there are two registration form topics, TWikiRegistration and TWikiRegistrationPub?. The original form includes an intranet Login Username field. For Basic Authentication, the original form is replaced by the Pub version. If you started using TWiki on Basic Authentication and want to change, you have to switch back forms for future use, and manually correct the existing entries, by editing TWikiUsers, adding the Login Username for each member - PeterThoeny - pthoeny - 01 Jan 1999 - and also in the .htpasswd file, where you can either replace the WikiNames or duplicate the entries and have both, so both usernames will work.
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 TWiki.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 ):
Forgot your old password? Then use ResetPassword instead. Please only use ResetPassword in case you really forgot your password. Thank you. After submitting this form your password will be changed. If you have questions please contact the TWiki webmaster webmaster@kitchentablemath.net.
TWiki/ResetPassword ):
Please only use this ResetPassword form in case you really forgot your password. Otherwise just change it using ChangePassword. Thank you. After submitting this form you will see a page with your new password appearing encrypted. You will have to e-mail this information to the Wiki webmaster, webmaster@kitchentablemath.net, who will set your account to use the new password.-- TWiki:Main.MikeMannix - 19 May 2002
.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
Set DENYTOPICCHANGE = < list of Users and Groups >
Set ALLOWTOPICCHANGE = < list of Users and Groups >
Set DENYTOPICCHANGE = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup
Set ALLOWTOPICCHANGE = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup
Set DENYWEBCHANGE = < list of Users and Groups >
Set ALLOWWEBCHANGE = < list of Users and Groups >
Set DENYTOPICRENAME = < list of Users and Groups >
Set ALLOWTOPICRENAME = < list of Users and Groups >
Set DENYTOPICRENAME = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup
Set ALLOWTOPICRENAME = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup
Set DENYWEBRENAME = < list of Users and Groups >
Set ALLOWWEBRENAME = < list of Users and Groups >
DENYTOPICVIEW / ALLOWTOPICVIEW preferences variables, provided that the view script is authenticated. However this setup is not recommended since all content is searchable within a web - a search will turn up view restricted topics.
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
$doRememberRemoteUser flag in lib/TWiki.cfg 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.
$superAdminGroup variable in lib/TWiki.cfg to the name of a group of Users who are always allowed to edit/view topics.
$superAdminGroup = "TWikiAdminGroup";
| Formatting Command: | Example: You write: | You get: | |||||||||||||||||||
|
Paragraphs: Blank lines will create new paragraphs. |
1st paragraph 2nd paragraph | 1st paragraph 2nd paragraph | |||||||||||||||||||
|
Headings: At least three dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a level 1 heading (most important), two pluses a level 2 heading; the maximum is level 6. Note: A Table of Content can be created automatically with the %TOC% variable, see TWikiVariables. 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.
|
---++ Sushi ---+++ Maguro |
SushiMaguro |
|||||||||||||||||||
|
Bold Text: Words get bold by enclosing them in * asterisks.
|
*Bold* | Bold | |||||||||||||||||||
|
Italic Text: Words get italic by enclosing them in _ underscores.
|
_Italic_ | Italic | |||||||||||||||||||
|
Bold Italic: Words get _bold italic by enclosing them in _ double-underscores.
|
__Bold italic__ | Bold italic | |||||||||||||||||||
|
Fixed Font: Words get shown in fixed font by enclosing them in = equal signs.
|
=Fixed font= |
Fixed font
|
|||||||||||||||||||
|
Bold Fixed Font: Words get shown in bold fixed font by enclosing them in double equal signs.
|
==Bold fixed== |
Bold fixed
|
|||||||||||||||||||
Note: Make sure there is no space between the text and the bold, italic, or other indicators (* _ __ = ==).
|
_This works_, _this not _ |
This works, _this not _ |
|||||||||||||||||||
|
Verbatim Mode: Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags. Note: Use <pre> and </pre> tags instead if you want that HTML code is interpreted. Note: Each tag must be on a line by itself. |
<verbatim>
class CatAnimal {
void purr() {
<code here>
}
}
</verbatim>
|
class CatAnimal {
void purr() {
<code here>
}
}
|
|||||||||||||||||||
|
Separator: At least three dashes at the beginning of a line. |
------- |
|
|||||||||||||||||||
|
List Item: Three spaces, an asterisk, and another space. |
* bullet item |
|
|||||||||||||||||||
|
Nested List Item: Six, nine, ... spaces, an asterisk, and another space. |
* level 1
* level 2
|
|
|||||||||||||||||||
|
Ordered List: Three spaces, a number, a dot, and another space. Several types are available besides a number:
|
1. Sushi 1. Dim Sum A. Sushi A. Dim Sum i. Sushi i. Dim Sum |
|
|||||||||||||||||||
|
Definition List: Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. |
$ Sushi: Japan $ Dim Sum: S.F. |
|
|||||||||||||||||||
|
Table: Any number of lines of text. Each line is one row of the table consisting of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored. Notes: • | *bold* | cells are displayed as table headers.• | center-spaced | cells are displayed center aligned.• | right-spaced | cells are displayed right aligned.• | 2 colspan || cells are displayed as multi-span columns (i.e., a cell with no text spans a column).• |^| cells with a caret indicate follow-up rows of multi-span rows (this functionality is provided by TablePlugin).• If a row contains a large amount of text, and you want it to be more readable while editing the table, split the row into multiple text lines by ending each line with a backslash character '\'.• Table cells wrap automatically as determined by the browser. |
| *L* | *C* | *R* | | A2 | 2 | 2 | | A3 | 3 | 3 | | multi span ||| | A4-6 | four | four | |^| five | five | |^| six | six | |
|
|||||||||||||||||||
|
WikiWord Links: CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically. Note: In case 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 in case the is WebHome, else it is the topic name)
|
WebNotify Main.TWikiUsers | WebNotify TWikiUsers | |||||||||||||||||||
|
Forced Links: You can create a forced internal link by enclosing words in double square brackets. Note: 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.
Note: To "escape" double square brackets that would otherwise be a correct link, prefix the leading left square brackets with an exclamation point, that is, begin with ![[....
|
[[wiki syntax]] [[Main.TWiki users]] escaped: ![[wiki syntax]] | wiki syntax Main.TWiki users escaped: [[wiki syntax]] | |||||||||||||||||||
|
Specific Links: Create a link where you can specify the link text and the link reference separately, using nested square brackets like [[reference][text]]. Internal link references (e.g. WikiSyntax) and external link references (e.g. http://TWiki.org/) are supported.
Note: The same Forced Links rules apply for internal link references. Note: For external link references, you can simply use a space instead of ][ to separate the link URL from the descriptive text.
Note: Anchor names can be added as well, like [[WebHome#MyAnchor][go home]] and [[http://gnu.org/#Action][GNU Action]].
|
[[WikiSyntax][syntax]] [[http://gnu.org][GNU]] [[http://xml.org XML]] | syntax GNU XML | |||||||||||||||||||
|
Anchors: You can define a link 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]] [[#MyAnchor][Jump]] #MyAnchor To here | WikiWord#NotThere Jump To here | |||||||||||||||||||
|
Prevent a Link: Prevent a WikiWord from being linked by prepending it with an exclamation point. |
!SunOS | SunOS | |||||||||||||||||||
|
Disable Links: You can disable automatic linking of WikiWords by surrounding text with <noautolink> and </noautolink> tags.
Note: Each tag must be on a line by itself. Note: This also works for TWiki tables, but only if you add a blank line between the end of the table and the closing </noautolink> tag (known issue of the TablePlugin).
|
<noautolink> RedHat & SuSE </noautolink> | RedHat & SuSE | |||||||||||||||||||
|
Mailto: Links: To create 'mailto:' links that have more descriptive link text, specify subject lines or message bodies, or omit the email address, you can write [[mailto:user@domain descriptive text]].
|
[[mailto:a@z.com Mail]] [[mailto:?subject=Hi Hi]] | Mail Hi | |||||||||||||||||||
<p /> paragraph tags on empty lines, which causes problems if done between 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.
<, ex: a < b
<pre> tags:
<script type="text/javascript"> <!-- Hide JavaScript and <pre> escape TWiki rendering ... put your JavaScript code here... // Stop hiding and stop </pre> escaping TWiki rendering --> </script>
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, used to create 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%:
*_text_* as bold italic text.
"$SUM( $ABOVE() )" to tables located in TWiki topics.
ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic
<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%.
lib/twiki.cfg file, when TWiki was installed, or taken from server info (like current username, or date and time). Many of the variables let you format the appearance of the display results.
%INCLUDINGTOPIC%, %INCLUDE%, and the mighty %SEARCH%.
% percent signs):
%ATTACHURL%
http://www.kitchentablemath.net/twiki/pub/TWiki/TWikiVariablesAtoM
%ATTACHURL%/image.gif
%ATTACHURLPATH%
/twiki/pub/TWiki/TWikiVariablesAtoM
%TOPIC% if there is no INCLUDE
%BASETOPIC%
%WEB% in case there is no include.
%BASEWEB%
%DISPLAYTIME%
23 May 2013 - 01:28
%GMTIME%
%DISPLAYTIME{"format"}%
%DISPLAYTIME{"$hou:$min"}% expands to 01:28
%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
%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 | "$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%
23 May 2013 - 01:28
%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 |
$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 | 2013-05-23T01:28Z |
$rcs | RCS format timestamp | 2013/05/23 01:28:19 |
$http | E-mail & http format timestamp | Thu, 23 May 2013 01:28:19 GMT |
%GMTIME{"$day $month, $year - $hour:$min:$sec"}% expands to 23 May, 2013 - 01:28:19
%HOMETOPIC%
WebHome, renders as WebHome
%HTTP_HOST%
www.kitchentablemath.net
%ICON{"type"}%
bmp, doc, gif, hlp, html, mp3, pdf, ppt, txt, xls, xml, zip
%ICON{"pdf"}% expands to %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/"}% Note if the URL resolves to an attachment file on the server this will automatically translate to a server-side include. | |
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) | %INCLUDE- WARNING% preferences setting |
%TOPIC% in case there is no include
%INCLUDINGTOPIC%
%WEB% if there is no INCLUDE.
%INCLUDINGWEB%
%MAINWEB%
Main
%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 | 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 | current topic |
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: "}%
%NOTIFYTOPIC%
WebNotify, renders as WebNotify
$TWiki::Plugins::VERSION number, also indicating the version of the TWikiFuncModule
%PLUGINVERSION{}%
1.025
%PLUGINVERSION{"name"}%
%PLUGINVERSION{"DefaultPlugin"}% expands to 1.021
%PUBURL%
http://www.kitchentablemath.net/twiki/pub
%PUBURL%/%WEB%/OtherTopic/image.gif
%PUBURLPATH%
/twiki/pub
%REMOTE_ADDR%
54.224.75.101
%REMOTE_PORT%
59806
%REMOTE_USER%
%REVINFO%
r1.1 - 25 Apr 2005 - 00:49 - Main.carolynj
%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
%SCRIPTURL%
http://www.kitchentablemath.net/twiki/bin
%SCRIPTURL%/viewauth%SCRIPTSUFFIX%/%WEB%/%TOPIC% which expands to http://www.kitchentablemath.net/twiki/bin/viewauth/TWiki/TWikiVariablesNtoZ
%SCRIPTURLPATH%
/twiki/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" | Wiki web to search: A web, a list of webs separated by comma, or all webs. [2] | 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 |
reverse="on" | Reverse the direction of the search | Ascending search |
casesensitive="on" | Case sensitive search | Ignore case |
nosummary="on" | Show topic title only | Show topic summary |
bookview="on" | BookView search, e.g. show complete topic text | 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 |
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 |
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%" }%
web="all" search if you define a NOSEARCHALL=on variable in its WebPreferences
%SERVERTIME%
22 May 2013 - 21:28
%GMTIME%
%SERVERTIME{"format"}%
%SERVERTIME{"$hou:$min"}% expands to 21:28
%SPACEDTOPIC%
TWiki%20*Variables%20*Nto%20*Z
%STOPINCLUDE% variable. A normal view of the topic shows everyting exept the %STARTINCLUDE% variable itself.
%STARTINCLUDE%
%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:
jsmith, WIKINAME like JohnSmith and WIKIUSERNAME like Main.JohnSmith. A user is a TWikiGuest in case the topic is not authenticated
%USERNAME%
guest
%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://your.domain.com/twiki
%WIKINAME%
guest
%WIKIPREFSTOPIC%
TWikiPreferences, renders as TWikiPreferences
%WIKITOOLNAME%
TWiki
%WIKIUSERNAME%
Main.guest, renders as Main.guest
%WIKIUSERSTOPIC%
TWikiUsers, with Main prefix renders as TWikiUsers
%WIKIVERSION%
04 Sep 2004 $Rev: 1742 $
| Variable: | Level: | What: | Expands to: |
|---|---|---|---|
%ALLOWTOPICCHANGE% |
(any topic) | List of users and groups who are allowed to change the current topic. (More in TWikiAccessControl) | TWikiAdminGroup |
%ALLOWTOPICRENAME% |
(any topic) | List of users and groups who are allowed to rename the current topic. (More in TWikiAccessControl) | TWikiAdminGroup |
%ALLOWWEBCHANGE% |
WL | List of users and groups who are allowed to change topics in the TWiki web. (More in TWikiAccessControl) | TWikiAdminGroup |
%ALLOWWEBRENAME% |
WL | List of users and groups who are allowed to rename topics in the TWiki web. (More in TWikiAccessControl) | TWikiAdminGroup |
%ATTACHLINKBOX% |
SL , UL | Default state of the link check box in the attach file page. Check box is initially checked if value is set to CHECKED , unchecked if empty. If checked, a link is created to the attached file at the end of the topic. Value is: |
|
%DENYTOPICCHANGE% |
(any topic) | List of users and groups who are not allowed to change the current topic. (More in TWikiAccessControl) | %DENYTOPICCHANGE% |
%DENYTOPICRENAME% |
(any topic) | List of users and groups who are not allowed to rename the current topic. (More in TWikiAccessControl) | %DENYTOPICRENAME% |
%DENYWEBCHANGE% |
WL | List of users and groups who are not allowed to change topics in the TWiki web. (More in TWikiAccessControl) | |
%DENYWEBRENAME% |
WL | List of users and groups who are not allowed to rename topics in the TWiki web. (More in TWikiAccessControl) | |
%DONTNOTIFYCHECKBOX% |
SL , UL | Default state of the "Minor Changes, Don't Notify" (DontNotify) check box in preview. Check box is initially checked if Set DONTNOTIFYCHECKBOX = checked="checked", or unchecked if empty. Value is: |
|
%EDITBOXHEIGHT% |
SL , UL | Vertical size of edit box, is 15 |
15 |
%EDITBOXWIDTH% |
SL , UL | Horizontal size of edit box, is 70 |
70 |
%EDITBOXSTYLE% |
SL , UL | Style of text edit box. Set to width: 99% for full window width (default; overwrites the EDITBOXWIDTH setting), or width: auto to disable. Value is: width: 99% |
width: 99% |
%FINALPREFERENCES% |
SL , WL | List of preferences that are not allowed to be overridden by next level preferences | ATTACHFILESIZELIMIT, PREVIEWBGIMAGE, WIKITOOLNAME, WIKIWEBMASTER, SMTPMAILHOST, SMTPSENDERHOST, ALLOWWEBMANAGE, READTOPICPREFS, TOPICOVERRIDESUSER, NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME |
%HTTP_EQUIV_ON_EDIT% |
SL , UL | http-equiv meta tags for edit script. | |
%HTTP_EQUIV_ON_PREVIEW% |
SL , UL | http-equiv meta tags for preview script. | |
%HTTP_EQUIV_ON_VIEW% |
SL | http-equiv meta tags for view, rdiff, attach, search* scripts. | |
%NEWTOPICBGCOLOR% |
SL , UL | Background color of non existing topic. ( UL needs authentication for topic views ) | #FFFFCE |
%NEWTOPICFONTCOLOR% |
SL , UL | Font color of non existing topic. ( UL needs authentication for topic views ) | #0000FF |
%NOSEARCHALL% |
WL | Exclude web from a web="all" search (set variable to on for hidden webs) |
|
%RELEASEEDITLOCKCHECKBOX% |
SL , UL | Default state of the "Release edit lock" (UnlockTopic) check box in preview. Checkbox is initially checked if Set RELEASEEDITLOCKCHECKBOX = checked="checked", or unchecked if empty. If checked, make sure to click on Edit to do more changes; do not go back in your browser to the edit page, or you risk that someone else will edit the topic at the same time! Value is: |
|
%WEBBGCOLOR% |
WL | Background color of web | #FFD8AA |
%WEBCOPYRIGHT% |
SL , WL | Copyright notice (bottom right corner of topics) | Copyright © 1999-2013 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding TWiki? Send feedback |
%WEBTOPICLIST% |
WL | Common links of web (second line of topics) | Welcome | Register | Changes | Topics | Index | Search | Go |
%WIKIWEBLIST% |
SL | List of TWiki webs (in upper right corner of topics) | Main | TWiki | Sandbox? |
%WIKIWEBMASTER% |
SL | Webmaster email address (sender of email notifications) , is webmaster@kitchentablemath.net | webmaster@kitchentablemath.net |
%BR% for line break, colors like %RED% for colored text and small icons like %H% for a Set VARIABLENAME = value
Set VARIABLENAME = value
Example: Create a custom logo variable the TWiki web-- TWiki:Main.PeterThoeny - 14 Aug 2004
- 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 100 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://www.kitchentablemath.net/twiki/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 PeterThoeny Just a sample Smile.gif
manage 0.1 K 22 Jul 2000 - 19:38 PeterThoeny Smiley face
Manage link takes you to a new page that looks like this:
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 checkboxes per line | comma list of checkbox labels |
| One or more checkboxes, plus Set and Clear buttons | checkbox+buttons | (same) | (same) |
| Read-only label text | label | 1 | (unused) |
| One or more radio buttons | radio | number of radio buttons per line | comma list of checkbox labels |
| Drop-down menu or scrollable box | select | 1 for drop down, 2 and up for scrollable box | comma list of options |
| A one-line text field | text | text box width in number of characters | (unused) |
| A text box; size is 40x10 (columns x rows) | textarea | columns x rows, e.g. 40x6 | (unused) |
YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
Name, Type, Size, Values, and Tooltip message (see sample below).
Example:WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| 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 TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah... OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah... OsVersion text 16 blah blah...
FormTemplate topic defines the Form, ex: YourFormTemplate.
Example: WebFormTemplate
- WebFormTemplate main definition:
Name Type Size Values Tooltip message TopicClassification select 1 blah blah... OperatingSystem checkbox 3 blah blah... OsVersion text 16 blah blah...
Leave the
Valuesfield blank.
- TopicClassification field value definition:
Name Type Tooltip message NoDisclosure option blah blah... PublicSupported option blah blah... PublicFAQ option blah blah...
[[...]] links can be used to force a link (at present, the [[...][...]] format is not supported).
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.
WebTopicEditTemplate, with field=value, or, for checkboxes, field=1 .
WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:
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 URL. Initial values can then be provided in the URLs or as form values:
name, ex: ?BugPriority=1
namevalue=1, ex: ?ColorRed=1. 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.
| Form Templates | Category Tables |
|---|---|
| defined in topics | defined in templates |
| many forms per web | one table per web |
| saved as Meta Data | saved as HTML |
| Change & Add Form buttons | UseCategory radio button |
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.
{3 spaces}* Set statements:
| *Name*|*Type*|*Size*|*Value*|*Tooltip message*|*Attributes*| | WEBTOPICLIST |textarea| | | List of topics of the %WEB% web |S| | SITEMAPLIST |select |3| on, | list this web in the Site Map |S| | SITEMAPWHAT |textarea| | | short web summary |S| | WEBBGCOLOR |text |8| | Web specific background color |S| Set WEBFORMS line
textarea stuff, and set as you like
S attribute has been specified (S for Setting).
If you change the form, the changes will not take affect until you edit and save the preferences' topics again.
Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.
A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.
Another example, this one using EditTablePlugin, source:
%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%
Result (after some editing):
-- TWiki:Main.JohnTalintyre - 16 Aug 2001 &TWiki::Store::readTemplate() so that the caller simply gets an expanded template file (the same as before).
%TMPL:<key>% and %TMPL:<key>{"attr"}%.
%TMPL:INCLUDE{"file"}%: Includes a template file. The template directory of the current web is searched first, then the templates root (twiki/templates).
%TMPL:DEF{"var"}%: Define a variable. Text between this and the END directive is not returned, but put into a hash for later use.
%TMPL:END%: Ends variable definition.
%TMPL:P{"var"}%: Prints a previously defined variable.
twiki.tmpl master template, like twiki.print.tmpl, that redefines the header and footer.
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
twiki/templates directory or in user topics. As an example, twiki/templates/view.tmpl is the template file for the twiki/bin/view script.
Additionally (and primarily for use in
If a skin is specified If no skin is specified templates/%WEB%/script.skin.tmpltemplates/%WEB%/script.tmpltemplates/script.skin.tmpltemplates/script.tmpldata/%WEB%/SkinSkinScriptTemplate.txtdata/%WEB%/ScriptTemplate.txtdata/TWiki/SkinSkinScriptTemplate.txtdata/TWiki/ScriptTemplate.txtLegend:
• script refers to the script name, e.gview,edit
• Script refers to the same, but with the first character capitalized, e.gView
• skin refers to the skin name, e.gdragon,pattern
• Skin refers to the same, but with the first character capitalized, e.gDragon
•%WEB%refers to the current web
%TMPL:INCLUDE{}%) the template name may be a wiki topic name, specified as Web.Topic, in which case the search is:
If Web is not specified in the INCLUDE, it defaults to TWiki, and the search to the first type. Special variables are used in templates, especially in
If a skin is specified If no skin is specified templates/web/Web.Topic.skin.tmpltemplates/web/Web.Topic.tmpltemplates/Web.Topic.skin.tmpltemplates/Web.Topic.tmpldata/Web/Topic.txt
view, to display meta data.
All template topics are located in the TWiki web. The WebTopicEditTemplate can be overloaded. 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.
Notes:
Variable: Description: %DATE%Current date, e.g. 23 May 2013%USERNAME%Login name, e.g. jsmith%WIKINAME%WikiName of user, e.g. JohnSmith%WIKIUSERNAME%User name, e.g. Main.JohnSmith%URLPARAM{"name"}%Value of a named URL parameter %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{ ... }%A no-operation text that gets removed. Useful to write-protect an edit template topic, but not the topics based this template topic. See notes below. Example:
%NOP{
* Set ALLOWTOPICCHANGE = Main.TWikiAdminGroup
}%
%NOP{ ... }% can span multiple lines.
}% pattern is "non-greedy", that is, it stops at the first occurance. That means, you need to escape variables with parameters located inside %NOP{ ... }%: Insert a %NOP% between } and %. Silly 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>
The edit scipt understands the following parameters, typically supplied by HTML input fields:
Parameter: Description: topicName of topic to create. Can be set in a text field, or is set programmatically (e.g. with a sequential number) onlywikinameIf set, TWiki will complain if the topic name is not a WikiWord onlynewtopicIf set, TWiki will complain if a topic of the same name already exists templatetopicThe name of the template topic, e.g. topic used to copy the initial content topicparentSets the parent topic TopicClassificationAssuming the template topic has a form with a field called "TopicClassification", it will set the value of the field contenttypeOptional parameter that defines the application type to write into the CGI header. Defaults to text/html. May be used to invoke alternative client applicationsanynameAny parameter can passed to the new topic; if the template topic contains %URLPARAM{"anyname"}%, it will be replaced by its value
%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
.tmpl filename extension - it contained unresolved %VARIABLES%, but could still be previewed directly in a browser.
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.
Use the existing TWikiTemplates (like view.tmpl) or skin files as a base for your own skin, name it for example view.myskin.tmpl.
| Variable: | Expanded to: |
|---|---|
%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 - Main.guest |
%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:
<style type="text/css">
.broadcastmessage {
background: yellow; display:block;
border-style:solid;border-width: 2px;border-color:red;
}
.broadcastmessage strong {color: red}
</style>
Then add a div tag to the %BROADCASTMESSAGE% variable located after the #PageTop anchor or after the opening form tag:
<div class="broadcastmessage"> %BROADCASTMESSAGE% </div>
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 - Main.guest - topic.
Set SKIN = print
?skin=name to the URL, for this example:
?skin=name URL parameter overrides the SKIN Preference value.
-- TWiki:Main.PeterThoeny - 25 Jul 2004 %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: |
|---|---|
$wikiusername | Wiki user name of last topic update, like Main.JohnSmith |
$wikiname | Wiki user name of last topic update, e.g. JohnSmith |
$web | Name of the web |
$username | Login name of last topic update, e.g. jsmith |
$topic | Topic name |
$topic(40, ...) | Topic name, shortended to 40 characters with "..." indication |
$topic(30, -<br />) | Topic name, hyphenated each 30 characters with separator "-<br />" |
$topic(20) | Topic name, "- " hyphenated each 20 characters |
$text | Formatted topic text. In case of a multiple="on" search, it is the line found for each search hit. |
$summary | Topic summary |
$rev | Number of last topic revision, e.g. 1.4 |
$quot | Double quote ("). Alternatively write \" to escape it |
$percnt | Percent sign (%) |
$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 |
$parent | Name of parent topic; empty if not set |
$parent(20) | Name of parent topic, same hyphenation/shortening like $topic() |
$nop or $nop() | Is a "no operation". This variable gets removed; useful for nested search |
$n or $n() | New line |
$locked | LOCKED flag (if any) |
$isodate | Time stamp of last topic update, e.g. 2013-05-23T01:28Z |
$formname | The name of the form attached to the topic; empty if none |
$formfield(name, 30, ...) | Form field value, shortended to 30 characters with "..." indication |
$formfield(name, 20, -<br />) | Form field value, hyphenated each 20 characters with separator "-<br />" |
$formfield(name, 10) | Form field value, "- " hyphenated each 10 characters |
$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 |
$dollar | Dollar sign ($) |
$date | Time stamp of last topic update, e.g. 23 May 2013 - 01:28 |
$createwikiusername | Wiki user name of topic revision 1.1, e.g. Main.JohnSmith |
$createwikiname | Wiki user name of topic revision 1.1, e.g. JohnSmith |
$createusername | Login name of topic revision 1.1, e.g. jsmith |
$createdate | Time stamp of topic revision 1.1 |
%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:
| WebStatistics | Main.guest | 08 Dec 2012 - 04:10 |
| TWikiPreferences | CarolynJohnston | 24 Dec 2005 - 01:46 |
| CommentsTmpl | CarolynJohnston | 20 Jul 2005 - 19:28 |
| TWikiRegistration | CarolynJohnston | 18 Jul 2005 - 03:40 |
| WebSearch | CarolynJohnston | 19 Jun 2005 - 23:25 |
| NewUserTemplate | CarolynJohnston | 17 May 2005 - 02:42 |
| WikiNotation | Main.guest | 01 May 2005 - 00:22 |
%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:
<form action="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%">
Find Topics:
<input type="text" name="q" size="32" value="%URLPARAM{"q"}%" />
<input type="submit" value="Search" />
</form>
Result:
%SEARCH{ search="%URLPARAM{"q"}%" format=" * $web.$topic: %BR% $summary" nosearch="on" }%
To get this:
Result:
Number of topics: 0
-- TWiki:Main.PeterThoeny - 26 Jul 2004
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="PeterThoeny" format="1.0"}%
text of the topic
%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName"
by="JohnTalintyre" 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.
-- TWiki:Main.JohnTalintyre - 29 Aug 2001 TWiki:Plugins expands to TWiki:Plugins on TWiki.org. You can edit the predefined set of of Wiki-related sites, and add your own
"$SUM( $ABOVE() )" to tables located in TWiki topics.
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/TWiki.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://www.kitchentablemath.net/twiki/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: DefaultPlugin, SpreadSheetPlugin, CommentPlugin, ContributorsPlugin, EditTablePlugin, InterwikiPlugin, RenderListPlugin, SlideShowPlugin, TablePlugin. Using%:PLUGINDESCRIPTIONS%
You can use any of these active TWiki Plugins:
- DefaultPlugin: This plugin can be used to specify some simple custom rendering rules. It also renders depreciated
*_text_*as bold italic text.- SpreadSheetPlugin: Add spreadsheet calculation like
"$SUM( $ABOVE() )"to tables located in TWiki topics.- CommentPlugin: Allows users to quickly post comments to a page without an edit/preview/save cycle.
- ContributorsPlugin: This plugin gives a variable %CONTRIBUTORS% which gives information on all revisions of a given topic.
- EditTablePlugin: Edit TWiki tables using edit fields, date pickers and drop down boxes
- InterwikiPlugin: Link
ExternalSite:Pagetext to external sites based on aliases defined in the InterWikis topic- RenderListPlugin: Render bullet lists in a variety of formats
- SlideShowPlugin: Create web based presentations based on topics with headings.
- TablePlugin: Control attributes of tables and sorting of table columns
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]]
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.025.
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
sub _make_filename
{
my ( $web, $topic, $name ) = @_;
# Create web directory "pub/$web" if needed
my $dir = TWiki::Func::getPubDir() . "/$web";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
# Create topic directory "pub/$web/$topic" if needed
$dir .= "/$topic";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
return "$dir/_FooBarPlugin_$name";
}
-- TWiki:Main/PeterThoeny - 14 Aug 2004 %PLUGINVERSION{}% variable. The "Since" field in the function documentation
refers to the VERSION number and the date that the function was addded.
| Description: | Get a session value from the Session Plugin (if installed) |
Parameter: $key | Session key |
Return: $value | Value associated with key; empty string if not set; undef if session plugin is not installed |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Set a session value via the Session Plugin (if installed) |
Parameter: $key | Session key |
Parameter: $value | Value associated with key |
Return: $result | "1" if success; undef if session plugin is not installed |
| Since: | TWiki::Plugins::VERSION 1.000 (17 Aug 2001) |
| Description: | Get the name of the skin, set by the SKIN preferences variable or the skin CGI parameter |
Return: $skin | Name of skin, e.g. "gnu". Empty string if none |
| Since: | TWiki::Plugins::VERSION 1.000 (29 Jul 2001) |
| Description: | Get protocol, domain and optional port of script URL |
Return: $host | URL host, e.g. "http://example.com:80" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Compose fully qualified URL |
Parameter: $web | Web name, e.g. "Main" |
Parameter: $topic | Topic name, e.g. "WebNotify" |
Parameter: $script | Script name, e.g. "view" |
Return: $url | URL, e.g. "http://example.com:80/cgi-bin/view.pl/Main/WebNotify" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get script URL path |
Return: $path | URL path of TWiki scripts, e.g. "/cgi-bin" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Compose fully qualified view URL |
Parameter: $web | Web name, e.g. "Main". The current web is taken if empty |
Parameter: $topic | Topic name, e.g. "WebNotify" |
Return: $url | URL, e.g. "http://example.com:80/cgi-bin/view.pl/Main/WebNotify" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Compose fully qualified "oops" dialog URL |
Parameter: $web | Web name, e.g. "Main". The current web is taken if empty |
Parameter: $topic | Topic name, e.g. "WebNotify" |
Parameter: $template | Oops template name, e.g. "oopslocked" |
Parameter: $param1 ... $param4 | Parameter values for %PARAM1% ... %PARAM4% variables in template, optional |
Return: $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) |
| Description: | Get pub URL path |
Return: $path | URL path of pub directory, e.g. "/pub" |
| Since: | TWiki::Plugins::VERSION 1.000 (14 Jul 2001) |
| Description: | Get CGI query object. Important: Plugins cannot assume that scripts run under CGI, Plugins must always test if the CGI query object is set |
Return: $query | CGI query object; or 0 if script is called as a shell script |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Prints a basic content-type HTML header for text/html to standard out |
Parameter: $query | CGI query object |
| Return: | none |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Redirect to URL |
Parameter: $query | CGI query object |
Parameter: $url | URL to redirect to |
| Return: | none, never returns |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Extract all parameters from a variable string and returns a hash of parameters |
Parameter: $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"
my %params = TWiki::Func::extractParameters( $text );
%params hash contains now: _DEFAULT => "nameless" name1 => "val1" name2 => "val2"
| Description: | Extract a named or unnamed value from a variable parameter string |
| Note: | Function TWiki::Func::extractParameters is more efficient for extracting several parameters |
Parameter: $attr | Attribute string |
Parameter: $name | Name, optional |
Return: $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" );
| Description: | Get a preferences value from TWiki or from a Plugin |
Parameter: $key | Preferences key |
Parameter: $web | Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics |
Return: $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" );
| Description: | Get a preferences value from your Plugin |
Parameter: $key | Plugin Preferences key w/o PLUGINNAME_ prefix. |
Return: $value | Preferences value; empty string if not set |
| Since: | TWiki::Plugins::VERSION 1.021 (27 Mar 2004) |
| Description: | Get a preferences flag from TWiki or from a Plugin |
Parameter: $key | Preferences key |
Parameter: $web | Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics |
Return: $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" );
| Description: | Get a preferences flag from your Plugin |
Parameter: $key | Plugin Preferences key w/o PLUGINNAME_ prefix. |
Return: $flag | Preferences flag "1" (if set), or "0" (for preferences values "off", "no" and "0", or values not set at all) |
| Since: | TWiki::Plugins::VERSION 1.021 (27 Mar 2004) |
| Description: | Get toolname as defined in TWiki.cfg |
Return: $name | Name of tool, e.g. "TWiki" |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Get name of Main web as defined in TWiki.cfg |
Return: $name | Name, e.g. "Main" |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Get name of TWiki documentation web as defined in TWiki.cfg |
Return: $name | Name, e.g. "TWiki" |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Get default user name as defined in TWiki.cfg's $defaultUserName |
Return: $loginName | Default user name, e.g. "guest" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get Wiki name of logged in user |
Return: $wikiName | Wiki Name, e.g. "JohnDoe" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get Wiki name of logged in user with web prefix |
Return: $wikiName | Wiki Name, e.g. "Main.JohnDoe" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Translate a Wiki name to a login name based on Main.TWikiUsers topic |
Parameter: $wikiName | Wiki name, e.g. "Main.JohnDoe" or "JohnDoe" |
Return: $loginName | Login name of user, e.g. "jdoe" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Translate a login name to a Wiki name based on Main.TWikiUsers topic |
Parameter: $loginName | Login name, e.g. "jdoe" |
Parameter: $dontAddWeb | Do not add web prefix if "1" |
Return: $wikiName | Wiki name of user, e.g. "Main.JohnDoe" or "JohnDoe" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Test if logged in user is a guest |
Return: $flag | "1" if yes, "0" if not |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Test if any access restrictions are set for this web, ignoring settings on individual pages |
Parameter: $web | Web name, required, e.g. "Sandbox" |
Return: $flag | "1" if yes, "0" if no |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Check access permission for a topic based on the TWiki.TWikiAccessControl rules |
Parameter: $type | Access type, e.g. "VIEW", "CHANGE", "CREATE" |
Parameter: $wikiName | WikiName of remote user, i.e. "Main.PeterThoeny" |
Parameter: $text | Topic text, optional. If empty, topic $web.$topic is consulted |
Parameter: $topic | Topic name, required, e.g. "PrivateStuff" |
Parameter: $web | Web name, required, e.g. "Sandbox" |
Return: $flag | "1" if access may be granted, "0" if not |
| Since: | TWiki::Plugins::VERSION 1.000 (27 Feb 2001) |
| Description: | Test if web exists |
Parameter: $web | Web name, required, e.g. "Sandbox" |
Return: $flag | "1" if web exists, "0" if not |
| Since: | TWiki::Plugins::VERSION 1.000 (14 Jul 2001) |
| Description: | Test if topic exists |
Parameter: $web | Web name, optional, e.g. "Main" |
Parameter: $topic | Topic name, required, e.g. "TokyoOffice", or "Main.TokyoOffice" |
Return: $flag | "1" if topic exists, "0" if not |
| Since: | TWiki::Plugins::VERSION 1.000 (14 Jul 2001) |
| Description: | Get revision info of a topic |
Parameter: $theWebName | Web name, optional, e.g. "Main" |
Parameter: $theTopic | Topic name, required, e.g. "TokyoOffice" |
Parameter: $theRev | revsion number, or tag name (can be in the format 1.2, or just the minor number) |
Parameter: $attachment | attachment filename |
Return: ( $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 | |
| $rev | |
| $comment | WHAT COMMENT? |
| Since: | TWiki::Plugins::VERSION 1.000 (29 Jul 2001) |
| Description: | Check if topic has an edit lock by a user |
Parameter: $web | Web name, e.g. "Main", or empty |
Parameter: $topic | Topic name, e.g. "MyTopic", or "Main.MyTopic" |
Return: ( $oopsUrl, $loginName, $unlockTime ) | The $oopsUrl for calling redirectCgiQuery(), user's $loginName, and estimated $unlockTime in minutes. The $oopsUrl and $loginName is empty if topic has no edit lock. |
| Since: | TWiki::Plugins::VERSION 1.010 (31 Dec 2002) |
| Description: | Lock topic for editing, or unlock when done |
Parameter: $web | Web name, e.g. "Main", or empty |
Parameter: $topic | Topic name, e.g. "MyTopic", or "Main.MyTopic" |
Parameter: $lock | Set to 1 to lock topic, 0 to unlock |
Return: $oopsUrl | Empty string if OK; the $oopsUrl for calling redirectCgiQuery() in case lock is already taken when trying to lock topic |
| Since: | TWiki::Plugins::VERSION 1.010 (31 Dec 2002) |
| Description: | Read topic text, including meta data |
Parameter: $web | Web name, e.g. "Main", or empty |
Parameter: $topic | Topic name, e.g. "MyTopic", or "Main.MyTopic" |
Parameter: $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. |
Parameter: $ignorePermissions | Set to "1" if checkAccessPermission() is already performed and OK; an oops URL is returned if user has no permission |
Return: $text | Topic text with embedded meta data; an oops URL for calling redirectCgiQuery() is returned in case of an error |
| Since: | TWiki::Plugins::VERSION 1.010 (31 Dec 2002) |
| Description: | Save topic text, typically obtained by readTopicText(). Topic data usually includes meta data; the file attachment meta data is replaced by the meta data from the topic file if it exists. |
Parameter: $web | Web name, e.g. "Main", or empty |
Parameter: $topic | Topic name, e.g. "MyTopic", or "Main.MyTopic" |
Parameter: $text | Topic text to save, assumed to include meta data |
Parameter: $ignorePermissions | Set to "1" if checkAccessPermission() is already performed and OK |
Parameter: $dontNotify | Set to "1" if not to notify users of the change |
Return: $oopsUrl | Empty string if OK; the $oopsUrl for calling redirectCgiQuery() in case of error |
| Since: | TWiki::Plugins::VERSION 1.010 (31 Dec 2002) |
my $oopsUrl = TWiki::Func::setTopicEditLock( $web, $topic, 1 ); if( $oopsUrl ) { TWiki::Func::redirectCgiQuery( $query, $oopsUrl ); # assuming valid query return; } my $text = TWiki::Func::readTopicText( $web, $topic ); # read topic text # check for oops URL in case of error: if( $text =~ /^http.*?\/oops/ ) { TWiki::Func::redirectCgiQuery( $query, $text ); return; } # do topic text manipulation like: $text =~ s/old/new/g; # do meta data manipulation like: $text =~ s/(META\:FIELD.*?name\=\"TopicClassification\".*?value\=\")[^\"]*/$1BugResolved/; $oopsUrl = TWiki::Func::saveTopicText( $web, $topic, $text ); # save topic text TWiki::Func::setTopicEditLock( $web, $topic, 0 ); # unlock topic if( $oopsUrl ) { TWiki::Func::redirectCgiQuery( $query, $oopsUrl ); return; }
| Description: | 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" ) |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get list of all topics in a web |
Parameter: $web | Web name, required, e.g. "Sandbox" |
Return: @topics | Topic list, e.g. ( "WebChanges", "WebHome", "WebIndex", "WebNotify" ) |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Expand all common %VARIABLES% |
Parameter: $text | Text with variables to expand, e.g. "Current user is %WIKIUSER%" |
Parameter: $topic | Current topic name, e.g. "WebNotify" |
Parameter: $web | Web name, optional, e.g. "Main". The current web is taken if missing |
Return: $text | Expanded text, e.g. "Current user is TWikiGuest" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Render text from TWiki markup into XHTML as defined in TWiki.TextFormattingRules |
Parameter: $text | Text to render, e.g. "*bold* text and =fixed font=" |
Parameter: $web | Web name, optional, e.g. "Main". The current web is taken if missing |
Return: $text | XHTML text, e.g. "<b>bold</b> and <code>fixed font</code>" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Render topic name and link label into an XHTML link. Normally you do not need to call this funtion, it is called internally by renderText() |
Parameter: $pre | Text occuring before the TWiki link syntax, optional |
Parameter: $web | Web name, required, e.g. "Main" |
Parameter: $topic | Topic name to link to, required, e.g. "WebNotify" |
Parameter: $label | Link label, required. Usually the same as $topic, e.g. "notify" |
Parameter: $anchor | Anchor, optional, e.g. "#Jump" |
Parameter: $createLink | Set to "1" to add question linked mark after topic name if topic does not exist;set to "0" to suppress link for non-existing topics |
Return: $text | XHTML anchor, e.g. "<a href="/cgi-bin/view/Main/WebNotify#Jump">notify</a>" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | This is not a function, just a how-to note. Use: expandCommonVariables("%SEARCH{...}%" ); |
Parameter: $text | Search variable |
Return: $text | Search result in TWiki.FormattedSearch format |
| Description: | Format the time in seconds into the desired time string |
Parameter: $time | Time in epoc seconds |
Parameter: $format | Format type, optional. Default e.g. " TWiki::Plugins::VERSION 1.010 (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") |
Parameter: $timezone | either not defined (uses the displaytime setting), "gmtime", or "servertime" |
Return: $text | Formatted time string |
| Note: | if you used the removed formatGmTime, add a third parameter "gmtime" |
| Since: | TWiki::Plugins::VERSION 1.020 (26 Feb 2004) |
| NOTE: | This function is deprecated and should not be used. Use formatTime() instead |
| Description: | Format the time to GM time |
Parameter: $time | Time in epoc seconds |
Parameter: $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") |
Return: $text | Formatted time string |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get data directory (topic file root) |
Return: $dir | Data directory, e.g. "/twiki/data" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Get pub directory (file attachment root). Attachments are in $dir/Web/TopicName |
Return: $dir | Pub directory, e.g. "/htdocs/twiki/pub" |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| NOTE: | The following function is deprecated and should not be used. Use readTopicText() instead |
| Description: | Read topic text and meta data, regardless of access permissions. |
Parameter: $web | Web name, required, e.g. "Main" |
Parameter: $topic | Topic name, required, e.g. "TokyoOffice" |
Return: ( $meta, $text ) | Meta data object and topic text |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Read a template or skin file. Embedded template directives get expanded |
Parameter: $name | Template name, e.g. "view" |
Parameter: $skin | Skin name, optional, e.g. "print" |
Return: $text | Template text |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Read text file, low level. NOTE: For topics use readTopicText() |
Parameter: $filename | Full path name of file |
Return: $text | Content of file |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| Description: | Save text file, low level. NOTE: For topics use saveTopicText() |
Parameter: $filename | Full path name of file |
Parameter: $text | Text to save |
| Return: | none |
| Since: | TWiki::Plugins::VERSION 1.000 (7 Dec 2002) |
| TODO: | This should return an error for the different failure modes. |
| Description: | Log Warning that may require admin intervention to data/warning.txt |
Parameter: $text | Text to write; timestamp gets added |
| Return: | none |
| Since: | TWiki::Plugins::VERSION 1.020 (16 Feb 2004) |
| Description: | Log debug message to data/debug.txt |
Parameter: $text | Text to write; timestamp gets added |
| Return: | none |
| Since: | TWiki::Plugins::VERSION 1.020 (16 Feb 2004) |
| Description: | Retrieves a TWiki predefined regular expression |
Parameter: $regexName | Name of the regular expression to retrieve. See notes below |
| Return: | String or precompiled regular expression matching as described below |
| Since: | TWiki::Plugins::VERSION 1.020 (9 Feb 2004) |
| Name | Matches | CC |
|---|---|---|
| upperAlpha | Upper case characters | Y |
| lowerAlpha | Lower case characters | Y |
| mixedAlpha | Alphabetic characters | Y |
| mixedAlphaNum | Alphanumeric charactecs | Y |
| wikiWordRegex | WikiWords | N |
my $upper = TWiki::Func::getRegularExpression("upperAlpha");
my $alpha = TWiki::Func::getRegularExpression("mixedAlpha");
my $capitalized = qr/[$upper][$alpha]+/;
| Description: | Checks a list of Perl dependencies at runtime |
Parameter: $moduleName | Context description e.g. name of the module being checked |
Parameter: $dependenciesRef | Reference of list of hashes containing dependency information; see notes below |
Return: $error | undef if dependencies are OK, an error message otherwise |
| Since: | TWiki::Plugins::VERSION 1.025 (01 Aug 2004) |
initPlugin method
like this:
if( $TWiki::Plugins::VERSION >= 1.025 ) {
my @deps = (
{ package => 'TWiki::Plugins::CalendarPlugin', constraint => '>= 5.030' },
{ package => 'Time::ParseDate' },
{ package => 'Apache::VMonitor' }
);
my $err = TWiki::Func::checkDependencies( $pluginName, \@deps );
if( $err ) {
TWiki::Func::writeWarning( $err );
print STDERR $err; # print to webserver log file
return 0; # plugin initialisation failed
}
}
TWiki::Func in twiki format. In case you want to get dynamically updated documentation based on the actual Perl module, install the PerlDocPlugin and replace above text with %PERLDOC{"TWiki::Func"}%.
-- PeterThoeny? - 31 Dec 2002
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%
<space><space><space>*) format containing the WikiName of a user; a WikiName with e-mail address; or a TWikiGroup. Examples:
Main.FredBloggs
Main.FredBloggs - secondary@home.com
Main.EngineeringGroup
%MAINWEB% instead of Main, but this is not necessary even if you have renamed the main web by configuring $mainWebname in TWiki.cfg.
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 TWiki.cfg.
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%
$doLogTopicView, $doLogTopicSave and $doLogTopicUpload in TWiki.cfg are set. This will generate log file entries (see below).
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
$logDir variable in TWiki.cfg
log<year><month>.txt
twiki/data/log201305.txt
| <time> | <wikiusername> | <action> | <web>.<topic> | <extra info> | <IP address> |
| 22 May 2013 - 21:28 | Main.TWikiGuest | view | TWiki.WebRss | | 66.124.232.02 |
$doLogTopic<action> flags
| 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) |
| register | register | E-mail address |
| save | save | when replacing existing revision: repRev 1.3 when user checks the minor changes box: dontNotify |
| search | search | search string |
| rdiff | rdiff | 1.4 1.3 |
| rename | rename | when moving topic: moved to Newweb.NewTopic |
| rename | move | when moving attachment: Attachment filename moved to Newweb.NewTopic |
| 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"}%
-- TWiki:Main.MikeMannix - 01 Dec 2001 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.
%<nop>METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%"
title="This topic used to exist and was moved to: "}%
<pre> and <verbatim> are honoured - no changes are made to text within these areas.
searchrenameview.tmpl. First, matching topics in the current web are listed - matches are to topic. Next, all webs (including the current one) are listed that match web.topic. Because %SEARCH% is used, webs marked in WebPreferences as NOSEARCHALL will not show up in the search for references to the topic being changed.
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.
-- TWiki:Main.MikeMannix - 27 Dec 2001[[Old Topic]] => [[NewTopic][Old Topic]] [[old topic]] => [[NewTopic][old topic]] [[old t opic]] => not changed [[OldTopic]] => [[NewTopic]]
WEBBGCOLOR, SITEMAPLIST, SITEMAPWHAT, SITEMAPUSETO and NOSEARCHALL. These variables are used to dynamically generate the SiteMap
WIKIWEBLIST. This must be done by hand
UPPER or UPPERlower. A side effect of this is that if you do use a wiki name, %WEB% must be written as <nop>%WEB% or else it will try to link to a non-existing topic of that name
Oldwebname., including the dot so you'll find references like Oldwebname.SomeTopic
Newwebname.SomeTopic or better yet, to %MAINWEB%.SomeTopic
WIKIWEBLIST variable
twiki/data and rename or remove the web directory
twiki/templates and rename or remove the web directory if present
twiki/pub and rename or remove the web directory if present
%MAINWEB%, default named Main. That means, every WikiName signature - Main.SomeUserName - points to it and would need updating (unless the variable, %MAINWEB%.SomeUserName, is used throughout).
-- TWiki:Main.MikeMannix - 14 Sep 2001 data/.htpasswd file to delete their entry (only applies if you are using a .htpasswd file)
FredQuimby line from the Main.TWikiUsers topic
ALLOWWEB/ALLOWTOPIC... declarations, if any.data/Main/FredQuimby.txt and data/Main/FredQuimby.txt,v
twiki - to whatever you like by changing it in the TWiki.cfg configuration file. However, to keep the current installation and future upgrades simple, you should leave the five main subdirectories intact:
| Directory: | Files: | Used for: |
|---|---|---|
twiki | list | Start-up info |
twiki/bin | list | Perl scripts |
twiki/lib | list | Configuration file, main library, Perl system modules, Plugins directory |
twiki/pub | list | Public files (eg: images) and FileAttachments and their RCS histories |
twiki/data | list | Individual topics (page content) and their RCS histories |
twiki/templates | list | HTML templates, used by TWiki scripts |
twiki | File | Used for |
|---|---|
index.html | Links to launch TWiki after install and for files in this directory |
license.txt | GNU General Public License and TWiki-specific info |
readme.txt | General TWiki start-up info with relevant URLs |
TWikiDocumentation.html | All documentation packaged as a single page |
TWikiHistory.html | TWiki development timeline: versions, features, developers |
TwikiUpgrade | TWiki upgrade script (Beta state) |
twiki/bin | File: | Used for: |
|---|---|
.htaccess.txt | Authentication. Rename to .htaccess and customize if used |
attach | Shows the attach file page (FileAttachment) |
changes | a simple WebChanges query |
edit | Edit a topic |
geturl | Fetch URL data |
installpasswd | Install new password by admin |
mailnotify | Script called by cron job to notify users of changes |
manage | Manage script to create new webs |
oops | Shows an OK or oops dialog |
passwd | Reset and change password |
preview | Preview topic after edit |
rdiff | See differences of topics |
rdiffauth | Copy of rdiff script (ideally a link). The .htaccess file sets this as requiring authorisation |
register | Register new users |
rename | Rename/move topics and move attachments |
save | Saves a topic, called by preview |
search | Displays search results |
setlib.cfg | Location of the TWiki libraries. Customize if needed |
statistics | Create statistics topic |
testenv | Test CGI environment variables |
upload | Does file upload (FileAttachment) |
view | View a topic (the script) |
viewauth | Copy of view script (ideally a link). The .htaccess file sets this as requiring authorisation |
viewfile | View a file attachment |
twiki/lib lib/TWiki/Plugins directories contain configuration, library and function files, and TWikiPlugins. Full file list:
| File: | Used for: |
|---|---|
TWiki.cfg | Main configuration, used by TWiki.pm |
TWiki.pm | Main TWiki library |
Algorithm/Diff.pm | Diff library |
Text/Diff.pm | Diff library, used by TwikiUpgrade script |
TWiki/Access.pm | Access control |
TWiki/Attach.pm | Attachment handling |
TWiki/Form.pm | Form handling |
TWiki/Func.pm | Public functions that Plugins may use |
TWiki/Meta.pm | Meta data in topics |
TWiki/Net.pm | SMTP mail handling |
TWiki/Plugins.pm | Plugin handling |
TWiki/Plugins/CommentPlugin.pm | Plugin handling a comment box |
TWiki/Plugins/CommentPlugin/Attrs.pm | Supporting module for Comment Plugin |
TWiki/Plugins/CommentPlugin/Comment.pm | Supporting module for Comment Plugin |
TWiki/Plugins/CommentPlugin/Templates.pm | Supporting module for Comment Plugin |
TWiki/Plugins/DefaultPlugin.pm | Handles some legacy rules |
TWiki/Plugins/EditTablePlugin.pm | Plugin to edit tables |
TWiki/Plugins/EmptyPlugin.pm | Empty plugin, use to create your own |
TWiki/Plugins/InterwikiPlugin.pm | Use aliases as links for predefined URLs |
TWiki/Plugins/RenderListPlugin.pm | Plugin to render lists as nice trees |
TWiki/Plugins/SlideShowPlugin.pm | Plugin turning headings into slides |
TWiki/Plugins/SmiliesPlugin.pm | Plugin rendering smilies like :-) |
TWiki/Plugins/SpreadSheetPlugin.pm | Plugin resolving spreadsheet formulae |
TWiki/Plugins/TablePlugin.pm | Plugin to render tables nicely |
TWiki/Prefs.pm | Preferences handling |
TWiki/Render.pm | TWiki markup to HTML rendering |
TWiki/Search.pm | Search engine, used by TWiki.pm |
TWiki/Store.pm | Back-end storage, *.txt text file and *.txt,v RCS repository file handling |
TWiki/Store/RcsFile.pm | Generic file handling code, a class |
TWiki/Store/RcsWrap.pm | Wrappers around RCS executables, a class that inherits from RcsFile |
TWiki/Store/RcsLite.pm | A Perl RCS implemention, a class that inherits from RcsFile |
TWiki/UI.pm | User interface handling |
TWiki/UI/Changes.pm | Functionality of changes script |
TWiki/UI/Edit.pm | Functionality of edit script |
TWiki/UI/Manage.pm | Functionality of manage script |
TWiki/UI/Oops.pm | Functionality of oops script |
TWiki/UI/Preview.pm | Functionality of preview script |
TWiki/UI/RDiff.pm | Functionality of rdiff script |
TWiki/UI/Save.pm | Functionality of save script |
TWiki/UI/Search.pm | Functionality of search script |
TWiki/UI/Statistics.pm | Functionality of statistics script |
TWiki/UI/Upload.pm | Functionality of upload script |
TWiki/UI/View.pm | Functionality of view script |
TWiki/UI/Viewfile.pm | Functionality of viewfile script |
TWiki/Upgrade/TWikiCfg.pm | Supporting module of TwikiUpgrade script |
TWiki/Upgrade/UpdateTopics.pm | Supporting module of TwikiUpgrade script |
TWiki/Upgrade/UpdateTopicsManualSymlinks.pm | Supporting module of TwikiUpgrade script |
TWiki/User.pm | Abstraction package to allow plugable user authentication systems |
TWiki/User/HtPasswdUser.pm | Apache Htpasswd file implementation (the default) |
TWiki/User/NoPasswdUser.pm | simple, no users authentication (totally wiki) |
twiki/pub pub directory stores topic-related files, including images used by TWiki and FileAttachments. Attachments are stored in subdirectories created with the related topic name. You can also upload files directly for and link manually (but not through Attach) Partial file list:
| File: | Used for: |
|---|---|
favicon.ico | ICO file |
wikiHome.gif | GIF file |
icn/_filetypes.txt | Lookup table to translate file extension to file type |
icn/bat.gif | GIF file for file type |
icn/bmp.gif | GIF file for file type |
| ... | ... |
TWiki/FileAttachment/Sample.txt | TEXT file: sample |
TWiki/FileAttachment/Smile.gif | GIF image: sample |
TWiki/FileAttachment/Smile.gif,v | RCS repository for GIF file |
TWiki/PreviewBackground/blankltgraybg.gif | GIF image |
TWiki/PreviewBackground/blankwhitebg.gif | GIF image |
TWiki/PreviewBackground/previewbg.gif | GIF image: Preview view background |
TWiki/PreviewBackground/preview2bg.gif | GIF image: Alternate preview view background |
TWiki/TWikiLogos/twikiRobot121x54.gif | GIF image: TWiki logo |
| ... | ... |
TWiki/TWikiTemplates/testscreen.gif | GIF image: Screen shot |
TWiki/WabiSabi/wabisabi.gif | GIF image: illustration |
twiki/data Main, TWiki, and Sandbox - with documentation and demo content, a Trash web for browser-based, recoverable topic deletion, and a _default directory containing a core topic set required to start a new web. Partial file list:
| File: | Used for: |
|---|---|
.htpasswd | Basic Authentication (htaccess) users file with username and encrypted password pairs |
debug.txt | Program-generated messages useful for debugging |
mime.types | Recognized file formats |
warning.txt | Diagnostic messages for identifying problems |
_default/.changes | Per web record of topic changes |
_default/.mailnotify | Per web timestamp of most recent email notification |
_default/WebChanges.txt | Display most recent topic changes in web |
_default/WebChanges.txt,v | Revisions history (RCS) |
_default/WebHome.txt | Default web home page |
_default/WebHome.txt,v | Revisions history (RCS) |
_default/WebIndex.txt | Lists all topics in a web |
_default/WebIndex.txt,v | Revisions history (RCS) |
_default/WebLeftBar.txt | Left navigation bar for PatternSkin? |
_default/WebLeftBar.txt,v | Revisions history (RCS) |
_default/WebNotify.txt | Subscribe/unsubscribe to web changes email alert |
_default/WebNotify.txt,v | Revisions history (RCS) |
_default/WebPreferences.txt | Per web Preference Settings |
_default/WebPreferences.txt,v | Revisions history (RCS) |
_default/WebSearch.txt | Per web search options |
_default/WebSearch.txt,v | Revisions history (RCS) |
_default/WebStatistics.txt | Generates web usage statistics |
_default/WebStatistics.txt,v | Revisions history (RCS) |
_default/WebTopicList.txt | Lists all topics in a web in compact format |
_default/WebTopicList.txt,v | Revisions history (RCS) |
| ... | ... |
twiki/templates | File: | Used for: |
|---|---|
attach.tmpl | Attachment (FileAttachments) control screen |
attachagain.tmpl | Attachment control screen for updating an existing attachment |
attachnew.tmpl | Attachment control screen for adding a new attachment |
attachtables.tmpl | Macros for definition of attachment tables |
changeform.tmpl | Control screen to change the form in edit mode |
changes.tmpl | Displays list of recently changed topics |
edit.iejs.tmpl | Edit window with IE-specific JavaScript |
edit.tmpl | Main edit window |
mailnotify.tmpl | Email notification |
moveattachment.tmpl | Move attachment control screen |
oopsaccesschange.tmpl | Error message |
oopsaccessgroup.tmpl | Error message |
oopsaccessmanage.tmpl | Error message |
oopsaccessrename.tmpl | Error message |
oopsaccessview.tmpl | Error message |
oopsattachnotopic.tmpl | Error message |
oopsauth.tmpl | Error message |
oopsbadcharset.tmpl | Error message |
oopsbadpwformat.tmpl | Error message |
oopschangepasswd.tmpl | Error message |
oopscreatenewtopic.tmpl | Error message |
oopsempty.tmpl | Error message |
oopslocked.tmpl | Error message |
oopslockedrename.tmpl | Error message |
oopsmanage.tmpl | Error message |
oopsmissing.tmpl | Error message |
oopsmngcreateweb.tmpl | Error message |
oopsmore.tmpl | More topic actions message |
oopsmoveerr.tmpl | Error message |
oopsnoformdef.tmpl | Error message |
oopsnotwikiuser.tmpl | Error message |
oopsnoweb.tmpl | Error message |
oopspreview.tmpl | Error message |
oopsregemail.tmpl | Error message |
oopsregexist.tmpl | Error message |
oopsregpasswd.tmpl | Error message |
oopsregrequ.tmpl | Error message |
oopsregthanks.tmpl | Error message |
oopsregwiki.tmpl | Error message |
oopsremoveuserdone.tmpl | Error message |
oopsrenameerr.tmpl | Error message |
oopsrenamenotwikiword.tmpl | Error message |
oopsresetpasswd.tmpl | Error message |
oopsrev.tmpl | Error message |
oopssave.tmpl | Error message |
oopssaveerr.tmpl | Error message |
oopssendmailerr.tmpl | Error message |
oopstopicexists.tmpl | Error message |
oopsupload.tmpl | Error message |
oopsuploadlimit.tmpl | Error message |
oopswrongpassword.tmpl | Error message |
preview.tmpl | Preview Changes screen |
rdiff.tmpl | Displays text changes before & after Diffs |
registernotify.tmpl | Registration notification |
rename.tmpl | Rename/move control screen (choose web & new topic tile |
renamebase.tmpl | Used by other rename templates |
renameconfirm.tmpl | Confirms a pre-specified rename, ex: undoing a rename |
renamedelete.tmpl | Confirms a delete |
renamerefs.tmpl | Display if rename done, but some references not changed (topics were locked) |
search.tmpl | Search screen |
searchbookview.tmpl | Search results with full topic content |
searchformat.tmpl | Search screen for formatted search |
searchmeta.tmpl | Search screen |
searchrenameview.tmpl | Used by rename to list references to topic being renamed |
twiki.tmpl | Master template: definitions are used by other templates |
view.plain.tmpl | Skin for bare bone topic view without header/footer but with HTML head and body tags |
view.print.tmpl | Skin for printable topic view with a simple header/footer |
view.rss.tmpl | Skin for topic view in RDF XML format |
view.text.tmpl | Skin for topic text only, without HTML head and body tags, and no form and attachments |
view.tmpl | Main topic view - the standard regular Web page |
twiki twiki - will probably be your domain or login name, eg: yourdomain yourdomain and can't be changed; same for nobody nobody files further down. Also, in the bin directory, scripts might need a .cgi (sometimes .pl) extension.
twiki/bin:
drwxrwxr-x 2 twiki twiki 4096 May 9 00:08 . drwxrwxr-x 5 twiki twiki 4096 Nov 18 2002 .. -rw-rw-r-- 1 twiki twiki 3145 Jul 25 00:31 .htaccess.txt -rwxrwxr-x 1 twiki twiki 1459 May 28 23:51 attach -rwxrwxr-x 1 twiki twiki 1721 May 28 23:51 changes -rwxrwxr-x 1 twiki twiki 1994 May 28 23:51 edit -rwxrwxr-x 1 twiki twiki 1878 May 28 23:51 geturl -rwxrwxr-x 1 twiki twiki 6689 May 28 23:51 installpasswd -rwxrwxr-x 1 twiki twiki 7313 May 28 23:51 mailnotify -rwxrwxr-x 1 twiki twiki 3557 Jul 25 15:00 manage -rwxrwxr-x 1 twiki twiki 1448 May 28 23:51 oops -rwxrwxr-x 1 twiki twiki 4062 May 28 23:51 passwd -rwxrwxr-x 1 twiki twiki 1506 May 28 23:51 preview -rwxrwxr-x 2 twiki twiki 1490 May 28 23:51 rdiff -rwxrwxr-x 2 twiki twiki 1490 May 28 23:51 rdiffauth -rwxrwxr-x 1 twiki twiki 7635 May 28 23:51 register -rwxrwxr-x 1 twiki twiki 1774 May 28 23:51 rename -rwxrwxr-x 1 twiki twiki 1654 Jul 25 00:31 save -rwxrwxr-x 1 twiki twiki 1728 May 28 23:51 search -rw-rw-r-- 1 twiki twiki 2131 Aug 7 21:13 setlib.cfg -rwxrwxr-x 1 twiki twiki 2596 May 28 23:51 statistics -rwxrwxr-x 1 twiki twiki 39926 Jul 25 15:00 testenv -rwxrwxr-x 1 twiki twiki 1478 May 28 23:51 upload -rwxrwxr-x 2 twiki twiki 1689 May 28 23:51 view -rwxrwxr-x 2 twiki twiki 1689 May 28 23:51 viewauth -rwxrwxr-x 1 twiki twiki 1438 May 28 23:51 viewfileDirectory
twiki/templates/:
drwxrwxr-x 2 twiki twiki 4096 Aug 7 19:09 . drwxrwxr-x 4 twiki twiki 4096 Aug 7 21:13 .. -rw-rw-r-- 1 twiki users 2077 Aug 13 22:21 attachagain.pattern.tmpl -rw-rw-r-- 1 twiki users 1650 Aug 13 22:21 attachagain.tmpl -rw-rw-r-- 1 twiki twiki 2556 Jul 27 10:47 attach.dragon.tmpl -rw-rw-r-- 1 twiki users 567 Jul 28 19:52 attachnew.pattern.tmpl -rw-rw-r-- 1 twiki users 470 Jul 28 19:52 attachnew.tmpl -rw-rw-r-- 1 twiki users 2855 Aug 8 03:40 attach.pattern.tmpl -rw-rw-r-- 1 twiki users 1991 Aug 3 13:09 attachtables.pattern.tmpl -rw-rw-r-- 1 twiki users 1869 Jul 27 22:03 attachtables.tmpl -rw-rw-r-- 1 twiki users 2355 Jul 28 19:52 attach.tmpl -rw-rw-r-- 1 twiki twiki 1324 Jul 27 10:47 changeform.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1441 Aug 6 11:47 changeform.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1032 Jul 28 19:52 changeform.tmpl -rw-rw-r-- 1 twiki twiki 1870 Jul 27 10:47 changes.dragon.tmpl -rw-rw-r-- 1 twiki twiki 433 Jul 31 12:39 changes.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1196 May 28 23:51 changes.tmpl -rw-rw-r-- 1 twiki twiki 35 May 21 03:56 comments.tmpl -rw-rw-r-- 1 twiki twiki 526 Jul 27 10:47 dragoncssvars.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1645 Jul 31 00:57 dragonmenu.dragon.tmpl -rw-rw-r-- 1 twiki twiki 4207 Jul 27 10:47 edit.dragon.tmpl -rw-rw-r-- 1 twiki twiki 12608 Jul 28 19:52 edit.iejs.tmpl -rw-rw-r-- 1 twiki twiki 4904 Aug 7 17:48 edit.pattern.tmpl -rw-rw-r-- 1 twiki twiki 3975 Aug 8 03:40 edit.tmpl -rw-rw-r-- 1 twiki twiki 993 May 28 23:51 mailnotify.tmpl -rw-rw-r-- 1 twiki twiki 1640 Jul 27 10:47 moveattachment.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1968 Aug 7 17:48 moveattachment.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1342 Jul 28 19:52 moveattachment.tmpl -rw-rw-r-- 1 twiki twiki 571 May 28 23:51 oopsaccesschange.tmpl -rw-rw-r-- 1 twiki twiki 587 May 28 23:51 oopsaccessgroup.tmpl -rw-rw-r-- 1 twiki twiki 597 Aug 2 11:10 oopsaccessmanage.tmpl -rw-rw-r-- 1 twiki twiki 572 May 28 23:51 oopsaccessrename.tmpl -rw-rw-r-- 1 twiki twiki 574 May 28 23:51 oopsaccessview.tmpl -rw-rw-r-- 1 twiki twiki 571 Aug 2 11:10 oopsattachnotopic.tmpl -rw-rw-r-- 1 twiki twiki 998 May 28 23:51 oopsauth.tmpl -rw-rw-r-- 1 twiki twiki 646 May 28 23:51 oopsbadcharset.tmpl -rw-rw-r-- 1 twiki twiki 406 May 28 23:51 oopsbadpwformat.tmpl -rw-rw-r-- 1 twiki twiki 345 May 28 23:51 oopschangepasswd.tmpl -rw-rw-r-- 1 twiki twiki 382 May 28 23:51 oopscreatenewtopic.tmpl -rw-rw-r-- 1 twiki twiki 627 Jul 7 23:11 oopsempty.tmpl -rw-rw-r-- 1 twiki twiki 927 Aug 3 13:09 oopslocked.pattern.tmpl -rw-rw-r-- 1 twiki twiki 612 Aug 2 11:10 oopslockedrename.pattern.tmpl -rw-rw-r-- 1 twiki twiki 596 Aug 2 11:10 oopslockedrename.tmpl -rw-rw-r-- 1 twiki twiki 910 Aug 3 13:09 oopslocked.tmpl -rw-rw-r-- 1 twiki twiki 679 May 28 23:51 oopsmanage.tmpl -rw-rw-r-- 1 twiki twiki 329 May 28 23:51 oopsmissing.tmpl -rw-rw-r-- 1 twiki twiki 2353 May 28 23:51 oopsmngcreateweb.tmpl -rw-rw-r-- 1 twiki twiki 2987 Aug 3 13:09 oopsmore.tmpl -rw-rw-r-- 1 twiki twiki 418 May 28 23:51 oopsmoveerr.tmpl -rw-rw-r-- 1 twiki twiki 1133 May 28 23:51 oopsnoformdef.tmpl -rw-rw-r-- 1 twiki twiki 521 May 28 23:51 oopsnotwikiuser.tmpl -rw-rw-r-- 1 twiki twiki 1516 Jul 28 19:52 oopsnoweb.tmpl -rw-rw-r-- 1 twiki twiki 394 May 28 23:51 oopspreview.tmpl -rw-rw-r-- 1 twiki twiki 341 May 28 23:51 oopsregemail.tmpl -rw-rw-r-- 1 twiki twiki 411 May 28 23:51 oopsregerr.tmpl -rw-rw-r-- 1 twiki twiki 476 May 28 23:51 oopsregexist.tmpl -rw-rw-r-- 1 twiki twiki 346 May 28 23:51 oopsregpasswd.tmpl -rw-rw-r-- 1 twiki twiki 357 May 28 23:51 oopsregrequ.tmpl -rw-rw-r-- 1 twiki twiki 541 May 28 23:51 oopsregthanks.tmpl -rw-rw-r-- 1 twiki twiki 680 May 28 23:51 oopsregwiki.tmpl -rw-rw-r-- 1 twiki twiki 587 May 28 23:51 oopsremoveuserdone.tmpl -rw-rw-r-- 1 twiki twiki 503 May 28 23:51 oopsrenameerr.tmpl -rw-rw-r-- 1 twiki twiki 434 May 28 23:51 oopsrenamenotwikiword.tmpl -rw-rw-r-- 1 twiki twiki 507 May 28 23:51 oopsresetpasswd.tmpl -rw-rw-r-- 1 twiki twiki 962 Jul 28 19:52 oopsrev.tmpl -rw-rw-r-- 1 twiki twiki 483 May 28 23:51 oopssaveerr.tmpl -rw-rw-r-- 1 twiki twiki 777 Jul 7 23:11 oopssave.tmpl -rw-rw-r-- 1 twiki twiki 466 May 28 23:51 oopssendmailerr.tmpl -rw-rw-r-- 1 twiki twiki 385 May 28 23:51 oopstopicexists.tmpl -rw-rw-r-- 1 twiki twiki 344 May 28 23:51 oopsuploadlimit.tmpl -rw-rw-r-- 1 twiki twiki 343 May 28 23:51 oopsupload.tmpl -rw-rw-r-- 1 twiki twiki 365 May 28 23:51 oopswrongpassword.tmpl -rw-rw-r-- 1 twiki twiki 3590 Jul 27 10:47 preview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 2855 Aug 6 11:47 preview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2253 Aug 8 03:40 preview.tmpl -rw-rw-r-- 1 twiki twiki 1739 Jul 27 10:47 rdiff.dragon.tmpl -rw-rw-r-- 1 twiki users 1529 Aug 13 22:21 rdiff.pattern.tmpl -rw-rw-r-- 1 twiki users 1299 May 28 23:51 rdiff.tmpl -rw-rw-r-- 1 twiki twiki 1159 Jul 31 12:39 registernotify.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1160 May 28 23:51 registernotify.tmpl -rw-rw-r-- 1 twiki twiki 2561 Jul 27 10:47 renamebase.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3363 Aug 8 03:40 renamebase.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2279 Jul 28 20:54 renamebase.tmpl -rw-rw-r-- 1 twiki twiki 718 Jul 31 12:39 renameconfirm.pattern.tmpl -rw-rw-r-- 1 twiki twiki 570 Jul 28 19:52 renameconfirm.tmpl -rw-rw-r-- 1 twiki twiki 1046 Jul 31 12:39 renamedelete.pattern.tmpl -rw-rw-r-- 1 twiki twiki 932 Jul 28 19:52 renamedelete.tmpl -rw-rw-r-- 1 twiki twiki 1147 Jul 31 12:39 rename.pattern.tmpl -rw-rw-r-- 1 twiki twiki 766 Jul 28 19:52 renamerefs.pattern.tmpl -rw-rw-r-- 1 twiki twiki 616 Jul 28 19:52 renamerefs.tmpl -rw-rw-r-- 1 twiki twiki 1041 Jul 28 19:52 rename.tmpl -rw-rw-r-- 1 twiki twiki 1397 Jul 27 10:47 searchbookview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 723 Jul 31 12:39 searchbookview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1230 May 28 23:51 searchbookview.tmpl -rw-rw-r-- 1 twiki twiki 1705 Jul 27 10:47 search.dragon.tmpl -rw-rw-r-- 1 twiki twiki 722 Jul 27 10:47 searchformat.dragon.tmpl -rw-rw-r-- 1 twiki twiki 157 Jul 31 12:39 searchformat.pattern.tmpl -rw-rw-r-- 1 twiki twiki 529 May 28 23:51 searchformat.tmpl -rw-rw-r-- 1 twiki twiki 149 Jul 7 23:03 searchmeta.pattern.tmpl -rw-rw-r-- 1 twiki twiki 149 May 28 23:51 searchmeta.tmpl -rw-rw-r-- 1 twiki twiki 1638 Aug 7 17:48 search.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1892 Jul 27 10:47 searchrenameview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1208 Aug 3 13:09 searchrenameview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1615 May 28 23:51 searchrenameview.tmpl -rw-rw-r-- 1 twiki twiki 1364 May 28 23:51 search.tmpl -rw-rw-r-- 1 twiki twiki 3836 Jul 27 10:47 twiki.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3175 Aug 7 17:48 twiki.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2798 Jul 27 22:57 twiki.tmpl -rw-rw-r-- 1 twiki twiki 1324 Jul 27 10:47 view.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3577 Aug 8 03:40 view.pattern.tmpl -rw-rw-r-- 1 twiki twiki 425 May 28 23:51 view.plain.tmpl -rw-rw-r-- 1 twiki twiki 1056 Jul 31 12:39 view.print.pattern.tmpl -rw-rw-r-- 1 twiki twiki 845 May 28 23:51 view.print.tmpl -rw-rw-r-- 1 twiki twiki 300 May 28 23:51 view.rss.tmpl -rw-rw-r-- 1 twiki twiki 8 May 28 23:51 view.text.tmpl -rw-rw-r-- 1 twiki twiki 1281 Jul 31 12:39 view.tmplDirectory
twiki/data/:
drwxrwxr-x 7 nobody twiki 4096 Aug 7 21:13 . drwxrwxr-x 4 twiki twiki 4096 Aug 7 21:13 .. -rw-rw-rw- 1 twiki twiki 0 Feb 1 2003 debug.txt drwxrwxr-x 2 nobody twiki 4096 Jul 16 00:36 _default -rw-rw-r-- 1 twiki twiki 25 Dec 16 2003 .htpasswd.txt -rw-rw-r-- 1 nobody nobody 11811 Aug 13 23:10 log200408.txt drwxrwxr-x 2 nobody twiki 4096 Aug 4 21:03 Main -rw-rw-r-- 1 twiki twiki 3419 Aug 13 2001 mime.types drwxrwxr-x 2 nobody twiki 4096 Aug 7 21:03 Sandbox drwxrwxr-x 2 nobody twiki 4096 Jul 20 18:15 Trash drwxrwxr-x 2 nobody twiki 12288 Aug 13 23:10 TWiki -rw-rw-rw- 1 twiki twiki 0 Aug 7 18:03 warning.txtPartial file list for
twiki/data/Main:
.txt,v.
drwxrwxr-x 2 nobody twiki 4096 Aug 4 21:03 . drwxrwxr-x 7 nobody twiki 4096 Aug 7 21:13 .. -rw-rw-rw- 1 twiki twiki 3743 Aug 4 21:03 .changes -rw-rw-rw- 1 twiki twiki 9 Oct 25 2001 .mailnotify -rw-r--r-- 1 nobody nobody 518 Dec 16 2003 TWikiAdminGroup.txt -r--r--r-- 1 nobody nobody 2453 Dec 16 2003 TWikiAdminGroup.txt,v -rw-r--r-- 1 nobody nobody 1668 Aug 4 21:03 TWikiGroups.txt -r--r--r-- 1 nobody nobody 3421 Aug 4 21:03 TWikiGroups.txt,v -rw-r--r-- 1 nobody nobody 686 Dec 13 2000 TWikiGuest.txt -rw-r--r-- 1 nobody nobody 1995 Dec 13 2000 TWikiGuest.txt,v -rw-r--r-- 1 nobody nobody 319 Dec 20 2003 TWikiPreferences.txt -r--r--r-- 1 nobody nobody 508 Dec 20 2003 TWikiPreferences.txt,v -rw-r--r-- 1 nobody nobody 1812 Feb 20 13:54 TWikiUsers.txt -r--r--r-- 1 nobody nobody 9222 Feb 20 13:54 TWikiUsers.txt,v -rw-r--r-- 1 nobody nobody 119 Jan 11 2003 TWikiVariables.txt -r--r--r-- 1 nobody nobody 742 Jan 11 2003 TWikiVariables.txt,v -rw-r--r-- 1 nobody nobody 124 Aug 16 2001 WebChanges.txt -r--r--r-- 1 nobody nobody 526 Aug 16 2001 WebChanges.txt,v -rw-r--r-- 1 nobody nobody 1842 Feb 1 2003 WebHome.txt -r--r--r-- 1 nobody nobody 11862 Feb 1 2003 WebHome.txt,v -rw-r--r-- 1 nobody nobody 176 Nov 24 2001 WebIndex.txt -r--r--r-- 1 nobody nobody 483 Nov 24 2001 WebIndex.txt,v -rw-r--r-- 1 nobody nobody 922 Feb 3 2003 WebNotify.txt -r--r--r-- 1 nobody nobody 4303 Feb 3 2003 WebNotify.txt,v -rw-r--r-- 1 nobody nobody 3738 Dec 25 2003 WebPreferences.txt -r--r--r-- 1 nobody nobody 10697 Dec 25 2003 WebPreferences.txt,v -rw-r--r-- 1 nobody nobody 416 Jan 30 2003 WebRss.txt -r--r--r-- 1 nobody nobody 605 Jan 30 2003 WebRss.txt,v -rw-r--r-- 1 nobody nobody 164 Jan 18 2004 WebSearchAdvanced.txt -r--r--r-- 1 nobody nobody 353 Jan 18 2004 WebSearchAdvanced.txt,v -rw-r--r-- 1 nobody nobody 158 Aug 7 2001 WebSearch.txt -r--r--r-- 1 nobody nobody 18332 Aug 7 2001 WebSearch.txt,v -rw-r--r-- 1 nobody nobody 825 Jul 16 00:32 WebStatistics.txt -r--r--r-- 1 nobody nobody 4226 Jul 16 00:32 WebStatistics.txt,v -rw-r--r-- 1 nobody nobody 182 Nov 24 2001 WebTopicList.txt -r--r--r-- 1 nobody nobody 371 Nov 24 2001 WebTopicList.txt,vDirectory
twiki/pub/:
drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 . drwxrwxr-x 3 twiki twiki 4096 Nov 18 12:31 .. drwxrwxr-x 2 nobody nobody 4096 Apr 7 2002 Main drwxrwxr-x 2 nobody nobody 4096 Apr 20 2002 Sandbox drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 TWiki drwxrwxr-x 2 nobody nobody 4096 Dec 3 2001 Trash -rw-rw-r-- 1 twiki twiki 1078 Jan 14 2000 favicon.ico drwxrwxr-x 2 twiki twiki 4096 Nov 18 12:31 icn -rw-rw-r-- 1 twiki twiki 2877 Jun 7 1999 wikiHome.gifPartial file list for
twiki/pub/icn/:
drwxrwxr-x 2 twiki twiki 4096 Nov 18 12:31 . drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 .. -rw-rw-r-- 1 twiki twiki 801 Mar 26 1999 _filetypes.txt -rw-rw-r-- 1 twiki twiki 143 Mar 9 1999 bat.gif -rw-rw-r-- 1 twiki twiki 926 Mar 9 1999 bmp.gif -rw-rw-r-- 1 twiki twiki 141 Mar 25 1999 c.gif -rw-rw-r-- 1 twiki twiki 144 Mar 9 1999 dll.gif -rw-rw-r-- 1 twiki twiki 152 Mar 9 1999 doc.gifDirectory
twiki/pub/TWiki:
drwxrwx--x 8 nobody nobody 4096 Nov 18 12:31 . drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 .. drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 FileAttachment drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 PreviewBackground drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiDocGraphics drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiLogos drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiTemplates drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 WabiSabiDirectory
twiki/pub/TWiki/FileAttachment:
drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 . drwxrwx--x 8 nobody nobody 4096 Nov 18 12:31 .. -rw-rw-r-- 1 nobody nobody 30 Jul 22 1999 Sample.txt -rw-rw-r-- 1 nobody nobody 94 Jun 7 1999 Smile.gif -r--r--r-- 1 nobody nobody 81 Aug 15 10:14 Smile.gif,v-- TWiki:Main.PeterThoeny - 29 Aug 2004
twiki. So: twikiEditPage, twikiTopicAction, etcetera. Remember that CSS class names are case sensitive - TWiki CSS uses lowercase tw.
twiki prefix to prevent undesired overriding effects.
| .twikiNew | Changes.pm |
| .twikiChangeFormButtonHolder | Edit.pm |
| .twikiChangeFormButton | Form.pm |
| .twikiForm | Form.pm |
| .twikiEditFormTextField | Form.pm |
| .twikiEditFormLabelField | Form.pm |
| .twikiEditFormTextAreaField | Form.pm |
| .twikiEditFormCheckboxButton | Form.pm |
| .twikiEditFormCheckboxButton | Form.pm |
| .twikiEditFormCheckboxField | Form.pm |
| .twikiEditFormRadioField | Form.pm |
| .twikiEditFormError | Form.pm |
| .twikiRadioButton | Form.pm |
| .twikiCheckbox | 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 |
| .twikiDiffLineNumberHeader | RDiff.pm |
| .twikiForm | Render.pm |
| .twikiAnchorLink | Render.pm |
| .twikiLink | Render.pm |
| .twikiNewLink | Render.pm |
| .twikiNew | Search.pm |
| .twikiAlert | Search.pm |
| .twikiAlert | Statistics.pm |
| .twikiAlert | TWiki.pm |
| .twikiToc | TWiki.pm |
| .twikiTocTitle | TWiki.pm |
| .twikiSortedAscendingCol | TablePlugin.pm |
| .twikiSortedDescendingCol | TablePlugin.pm |
| .twikiFirstCol | TablePlugin.pm |
$siteLocale setting in TWiki.cfg - this enables you to have a slightly different spelling of the character set in the server locale (e.g. 'eucjp') and the HTTP header sent to the browser (e.g. 'euc-jp').
This feature should also support use of Mozilla Browser with TWiki:Codev.TWikiOnMainframe (as long as mainframe web server can convert or pass through UTF-8 URLs) - however, this specific combination is not tested. Other browser-server combinations should not have any problems.
Please note that use of UTF-8 as the site character set is not yet supported - see Phase 2 of TWiki:Codev.ProposedUTF8SupportForI18N for plans and work to date in this area.
This feature is complete in TWiki releases newer than February 2004.
Note for skin developers: %INTURLENCODE% is no longer required (TWiki:Plugins.InternationalisingYourSkin).
$siteCharset (from the TWiki.cfg locale setting), using modules such as CPAN:Encode if needed.
TWiki generates the whole page in the site charset, e.g. ISO-8859-1 or EUC-JP, but the browser dynamically UTF-8 encodes the attachment's URL when it's used. Since Apache serves attachment downloads without TWiki being involved, TWiki's code can't do its UTF-8 decoding trick, so TWiki URL-encodes such URLs in ISO-8859-1 or whatever when generating the page, to bypass this URL encoding, ensuring that the URLs and filenames seen by Apache remain in the site charset.
TWiki:Codev.TWikiOnMainframe uses EBCDIC web servers that typically translate their output to ASCII, UTF-8 or ISO-8859-1 (and URLs in the other direction) since there are so few EBCDIC web browsers. Such web servers don't work with even ISO-8859-1 URLs if they are URL encoded, since the automated translation is bypassed for URL-encoded characters. For TWiki on Mainframe, TWiki assumes that the web server will automatically translate UTF-8 URLs into EBCDIC URLs, as long as URL encoding is turned off in TWiki pages.
| Topic TWikiDocumentation . { Edit | Attach | Ref-By | Printable | Diffs | r1.46 | > | r1.45 | > | r1.44 | More } |
|
Copyright © 1999-2013 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback |