/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 /etc/httpd/httpd.conf
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.conf
entries: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>
/etc/rc.d/rc5.d/S85httpd restart
.
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
)
If you are not able to create the
TWiki dir: What it is: Where to copy: Example: twiki
start-up pages root TWiki dir /home/smith/twiki/
twiki/bin
CGI bin CGI-enabled dir /home/smith/twiki/bin
twiki/lib
library files same level as twiki/bin
/home/smith/twiki/lib
twiki/pub
public files htdoc enabled dir /home/smith/twiki/pub
twiki/data
topic data dir secure from public access /home/smith/twiki/data
twiki/templates
web 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 edit the setlib.cfg
file in the bin
directory:
# -------------- Change these settings if required $twikiLibPath = '/some/other/path/lib'; # Path to lib directory containing TWiki.pmYou can also edit
$localPerlLibPath
in the setlib.cfg
file 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.
/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. Modify all twiki/bin
script filenames if necessary.
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, ex www-data
, or delete them all - new files will be automatically created the first time each topic is edited. A simple way to change ownership is with a search-and-replace in all files; for example, using perl:
cd twiki/data perl -pi~ -e 's/nobody:/www-data:/' */*,v
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.
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. For details, consult the HTTP server documentation (for Apache server: [1], [2]). In particular, the following red part needs to be configured correctly: Redirect /urlpathto/twiki/index.html http://yourdomain.com/urlpathto/twiki/bin/view
AuthUserFile /filepathto/twiki/data/.htpasswd
ErrorDocument 401 /urlpathto/twiki/bin/oops/TWiki/TwikiRegistration?template=oopsauth
.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.
.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.
twiki/templates/Someweb
directory (otherwise, templates are inherited from twiki/templates
).
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!
readTopicText
, saveTopicText
, setTopicEditLock
, checkTopicEditLock
registrationHandler
, beforeEditHandler
, afterEditHandler
, beforeSaveHandler
, writeHeaderHandler
, redirectCgiQueryHandler
, getSessionValueHandler
, setSessionValueHandler
%SEARCH{}%
variable, FormattedSearch and WebSearch
$TWIKIROOT
is the root of your current 01-Dec-2001 release. As written this will require some downtime. A process for switching over without downtime is described at the end of this section.
$TWIKIROOT/bin
, $TWIKIROOT/pub
, $TWIKIROOT/data
, $TWIKIROOT/templates
, $TWIKIROOT/lib
.
*.html
and *.txt
files in $TWIKIROOT
with the new ones.
$TWIKIROOT/templates
with the new ones.
%WIKIHOMEURL%
with %WIKILOGOURL%
src=%PUBURLPATH%/wikiHome.gif
with src=%WIKILOGOIMG%
alt="TWiki Home"
with alt="%WIKILOGOALT%"
charset=iso-8859-1"
with charset=ISO-8859-1"
%TOPIC%
to form action of GoBox
.../view%SCRIPTSUFFIX%/%WEB%/%TOPIC%"
with .../view%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%/%TOPIC%"}%
$TWIKIROOT/bin
with the new ones.
.cgi
$TWIKIROOT/bin/setlib.cfg
and point $twikiLibPath
to the absolute file path of $TWIKIROOT/lib
$TWIKIROOT/bin/.htaccess
to include a directive for the new manage
script:<Files "manage">
require valid-user
</Files>
chmod 775 $TWIKIROOT/bin/*
TWiki.cfg
configuration file in $TWIKIROOT/lib
with the new one.
TWiki.pm
library in $TWIKIROOT/lib
with the new one.
$TWIKIROOT/lib
with the new ones. Make sure to preserve any extra Plugins you might have in $TWIKIROOT/lib/TWiki/Plugins
chmod -R 664 $TWIKIROOT/lib/*
bin/testenv
script from the browser (e.g. http://localhost/bin/testenv
) to verify if the cgi-scripts are running as user nobody
.
*,v
RCS repository files delivered with the installation package are locked by user nobody
and need to be changed to the user of your cgi-scripts, e.g. www-data
:
twiki/data/*
directories where you unzipped the installation package: A simple way to switch the locker of the RCS files is to use sed in the :
for f in *,v; do sed 's/nobody\:/www-data\:/' $f > x; mv x $f; done
twiki/data/TWiki
directory where you unzipped the installation package:
InterWikis.*
, TwikiRegistration.*
, TwikiRegistrationPub.*
, WebNotify.*
, WebPreferences.*
, WebStatistics.*
and all WebTopic*
files.
$TWIKIROOT/data/TWiki/TWikiPreferences.*
to TWikiPreferencesSave.*
.
*.txt
and *.txt,v
files from the temporary data/TWiki
directory to your $TWIKIROOT/data/TWiki
directory, overwriting the existing ones.
TWikiPreferencesSave.txt
settings into $TWIKIROOT/data/TWiki/TWikiPreferences.txt
.
data/_default
directory from the temporary location to your $TWIKIROOT/data
directory.
data/Sandbox
directory from the temporary location to your $TWIKIROOT/data
directory $TWIKIROOT/data
are writable by your cgi-script user.
TWiki
and _default
):
WebHome.txt
and WebPreferences.txt
of your other webs to make sure, you have the improvements applied also in your other webs.
pub/TWiki
from your temporary directory into your $TWIKIROOT/pub/TWiki
directory.
$TWIKIROOT/pub/TWiki
are writable by your cgi-script user.
pub/icn
directory from the temporary location to your $TWIKIROOT/pub/icn
directory.
ALLOWWEBMANAGE
to the FINALPREFERENCES
list so that nobody can overwrite the setting:
$TWIKIROOT/bin/testenv
script from your browser (e.g. http://localhost/bin/testenv
) to see if it reports any issues; fix any potential problems.
$TWIKIROOT/bin1
, $TWIKIROOT/lib1
, $TWIKIROOT/templates1
, $TWIKIROOT/data/TWiki1
(from data/TWiki
), $TWIKIROOT/pub/TWiki1
(from pub/TWiki
), and configure TWiki.cfg
to point to the same data and pub directory like the existing installation. Once tested and ready to go, reconfigure $TWIKIROOT/bin1/setlib.cfg
and $TWIKIROOT/lib1/TWiki.cfg
, then rename $TWIKIROOT/bin
to $TWIKIROOT/bin2
, $TWIKIROOT/bin1
to $TWIKIROOT/bin
. Do the same with the lib
, templates
and data/TWiki
directories.
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
, preview
, rename
, save
, upload
using the .htaccess file
. The TWikiInstallationGuide has step-by-step instructions.
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.
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. verification and clearer rewrite to follow in a bit. also link to original installation mention.
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.WikiUsername
or%MAINWEB%.WikiUsername
WikiUser
to 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
):
Change password
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.
TWiki/ResetPassword
):
Request for reset of password-- MikeMannix - 19 May 2002
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.
.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.
Authenticating webs is not very secure, as there is a way to circumvent the read access restriction. It can be useful in certain situations - for example, to simplify site organization and clutter, by hiding low traffic webs - but is not recommended for securing sensitive content.
$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 to "stick" the * _ = == signs to the words, that is, take away spaces.
|
_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 and an asterisk. |
* bullet item |
|
|||||||||||||||
Nested List Item: Six, nine, ... spaces and an asterisk. |
* nested stuff |
|
|||||||||||||||
Ordered List: Three spaces and a number. |
1 Sushi 1 Dim Sum |
|
|||||||||||||||
Definition List: Three spaces, the term, a colon, a space, followed by the definition. Note: Terms with spaces are not supported. In case you do have a term with more then one word, separate the words with dashes or with the non-breaking-space entity.
|
Sushi: Japan Dim Sum: S.F. |
|
|||||||||||||||
Table: Optional spaces followed by the cells enclosed in vertical bars. Note: | *bold* | cells are rendered as table headers. Note: | spaced | cells are rendered center aligned. Note: | spaced | cells are rendered right aligned. Note: | 2 colspan || cells are rendered as multi-span columns. Note: In case you have a long row and you want it to be more readable when you edit the table you can split the row into lines that end with a '\' backslash character. |
| *L* | *C* | *R* | | A2 | 2 | 2 | | A3 | 3 | 3 | | multi span ||| | A4 | next | next | |
|
|||||||||||||||
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 Webname.TopicName .
|
WebNotify Know.ReadmeFirst | WebNotify ReadmeFirst | |||||||||||||||
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.
|
[[wiki syntax]] [[Main.TWiki users]] | wiki syntax Main.TWiki users | |||||||||||||||
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.
|
[[WebHome#NotThere]] [[#MyAnchor][Jump]] #MyAnchor To here | WebHome#NotThere Jump To here | |||||||||||||||
Prevent a Link: Prevent a WikiWord from being linked by prepending it with the <nop> tag.
|
<nop>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 |
<...>
- of an HTML tag must be on the same line, or the tag will be broken.
<
, ex: a > b
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: Help, Tip, Alert. For more info see TWikiDocGraphics.
%PLUGINDESCRIPTIONS%
:
*_text_*
as bold italic text.
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 opened. When a topic is rendered for viewing, VARIABLES
are replaced by data, either user-entered, or info automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you configure. You can also define custom variables, with new names and values.
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):
Variable: | Expanded to: | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
%WIKIHOMEURL% |
The base script URL of TWiki, is the link of the Home icon in the upper left corner, is http://your.domain.com/twiki | ||||||||||||||||||||||||||||||||||||||||||||||||
%SCRIPTURL% |
The script URL of TWiki, is http://wiki.arch.ethz.ch/twiki/bin | ||||||||||||||||||||||||||||||||||||||||||||||||
%SCRIPTURLPATH% |
The path of the script URL of TWiki, is /twiki/bin | ||||||||||||||||||||||||||||||||||||||||||||||||
%SCRIPTSUFFIX% |
The script suffix, ex: .pl , .cgi is |
||||||||||||||||||||||||||||||||||||||||||||||||
%PUBURL% |
The public URL of TWiki, is http://wiki.arch.ethz.ch/twiki/pub Example: You can refer to a file attached to another topic as %PUBURL%/%WEB%/OtherTopic/image.gif |
||||||||||||||||||||||||||||||||||||||||||||||||
%PUBURLPATH% |
The path of the public URL of TWiki, is /twiki/pub | ||||||||||||||||||||||||||||||||||||||||||||||||
%ATTACHURL% |
The attachment URL of the current topic, is http://wiki.arch.ethz.ch/twiki/pub/TWiki/TWikiVariables Example: If you attach a file you can refer to it as %ATTACHURL%/image.gif |
||||||||||||||||||||||||||||||||||||||||||||||||
%ATTACHURLPATH% |
The path of the attachment URL of the current topic, is /twiki/pub/TWiki/TWikiVariables | ||||||||||||||||||||||||||||||||||||||||||||||||
%URLPARAM{"name"}% |
Returns the value of a URL parameter. Note that there is a low risk that this variable could be misused for cross-scripting. Ex: %URLPARAM{"skin"}% returns print for a .../view/TWiki/TWikiVariables?skin=print URL. Is |
||||||||||||||||||||||||||||||||||||||||||||||||
%URLENCODE{"string"}% |
Encodes a string for use as a URL parameter. Ex: %URLENCODE{"spaced name"}% returns spaced%20name |
||||||||||||||||||||||||||||||||||||||||||||||||
%WIKITOOLNAME% |
The name of your TWiki site - TWiki | ||||||||||||||||||||||||||||||||||||||||||||||||
%WIKIVERSION% |
Your current TWiki version - 04 Sep 2004 $Rev: 1742 $ | ||||||||||||||||||||||||||||||||||||||||||||||||
%USERNAME% |
Your login username - guest | ||||||||||||||||||||||||||||||||||||||||||||||||
%WIKINAME% |
Your Wiki username. Same as %USERNAME% if not defined in the TWikiUsers topic. Is guest | ||||||||||||||||||||||||||||||||||||||||||||||||
%WIKIUSERNAME% |
Your %WIKINAME% including the Main web name - always use full signatures - Main.guest | ||||||||||||||||||||||||||||||||||||||||||||||||
%MAINWEB% |
The web containing TWikiUsers, OfficeLocations and TWikiGroups is Main | ||||||||||||||||||||||||||||||||||||||||||||||||
%TWIKIWEB% |
The web containing all documentation and site-wide preference settings for TWiki - TWiki | ||||||||||||||||||||||||||||||||||||||||||||||||
%WEB% |
The current web is TWiki | ||||||||||||||||||||||||||||||||||||||||||||||||
%BASEWEB% |
The web name where the includes started, e.g. the web of the first topic of nested includes. Same as %WEB% in case there is no include. |
||||||||||||||||||||||||||||||||||||||||||||||||
%INCLUDINGWEB% |
The web name of the topic that includes the current topic - same as %WEB% if there is no INCLUDE. |
||||||||||||||||||||||||||||||||||||||||||||||||
%HOMETOPIC% |
The home topic in each web - WebHome | ||||||||||||||||||||||||||||||||||||||||||||||||
%NOTIFYTOPIC% |
The notify topic in each web - WebNotify | ||||||||||||||||||||||||||||||||||||||||||||||||
%WIKIUSERSTOPIC% |
The index topic of all registered users - TWikiUsers | ||||||||||||||||||||||||||||||||||||||||||||||||
%WIKIPREFSTOPIC% |
The site-wide preferences topic - TWikiPreferences | ||||||||||||||||||||||||||||||||||||||||||||||||
%WEBPREFSTOPIC% |
The local web preferences topic in each web - WebPreferences | ||||||||||||||||||||||||||||||||||||||||||||||||
%STATISTICSTOPIC% |
The web statistics topic WebStatistics | ||||||||||||||||||||||||||||||||||||||||||||||||
%TOPIC% |
The current topic name - TWikiVariables | ||||||||||||||||||||||||||||||||||||||||||||||||
%BASETOPIC% |
The name of the topic where a single or nested INCLUDE started - same as %TOPIC% if there is no INCLUDE. |
||||||||||||||||||||||||||||||||||||||||||||||||
%INCLUDINGTOPIC% |
The name of the topic that includes the current topic. Same as %TOPIC% in case there is no include. |
||||||||||||||||||||||||||||||||||||||||||||||||
%SPACEDTOPIC% |
The current topic name with added spaces, for regular expression search of Ref-By, is TWiki%20*Variables | ||||||||||||||||||||||||||||||||||||||||||||||||
%TOPICLIST{"format"}% |
Topic index of a web. The "format" defines the format of one topic item. It may include variables: The $name variable gets expanded to the topic name; the $web variable gets expanded to the name of the web.
Parameters are format, separator and 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). |
||||||||||||||||||||||||||||||||||||||||||||||||
%WEBLIST{"format"}% |
Web index, ex: list of all webs. Hidden webs are excluded, e.g. webs with a NOSEARCHALL=on preference variable. The "format" defines the format of one web item. The $name variable gets expanded to the name of the web, $qname gets expanded to double quoted name, $marker to marker where web matches selection .
Parameters are format, separator and 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.
|
||||||||||||||||||||||||||||||||||||||||||||||||
%GMTIME% |
GM time, is 05 May 2009 - 03:22 | ||||||||||||||||||||||||||||||||||||||||||||||||
%GMTIME{"format"}% |
Formatted GM time based on time variables.
%GMTIME{"$day $month, $year - $hour:$min:$sec"}% is 05 May, 2009 - 03:22:40 |
||||||||||||||||||||||||||||||||||||||||||||||||
%SERVERTIME% |
Server time, is 05 May 2009 - 05:22 | ||||||||||||||||||||||||||||||||||||||||||||||||
%SERVERTIME{"format"}% |
Formatted server time. Example: %SERVERTIME{"$hou:$min"}% is 05:22 |
||||||||||||||||||||||||||||||||||||||||||||||||
%HTTP_HOST% |
HTTP_HOST environment variable, is wiki.arch.ethz.ch | ||||||||||||||||||||||||||||||||||||||||||||||||
%REMOTE_ADDR% |
REMOTE_ADDR environment variable, is 129.132.212.2 | ||||||||||||||||||||||||||||||||||||||||||||||||
%REMOTE_PORT% |
REMOTE_PORT environment variable, is 65038 | ||||||||||||||||||||||||||||||||||||||||||||||||
%REMOTE_USER% |
REMOTE_USER environment variable, is | ||||||||||||||||||||||||||||||||||||||||||||||||
%INCLUDE{"page" ...}% |
Server side include to IncludeTopicsAndWebPages:
|
||||||||||||||||||||||||||||||||||||||||||||||||
%STARTINCLUDE% |
If present in included topic, start to include text from this location up to the end, or up to the location of the %STOPINCLUDE% variable. A normal view of the topic shows everyting exept the %STARTINCLUDE% variable itself. |
||||||||||||||||||||||||||||||||||||||||||||||||
%STOPINCLUDE% |
If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the %STOPINCLUDE% variable itself. |
||||||||||||||||||||||||||||||||||||||||||||||||
%TOC% |
Table of Contents of current topic. | ||||||||||||||||||||||||||||||||||||||||||||||||
%TOC{"SomeTopic" ...}% |
Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in WikiSyntax ("---++ text" ) and HTML ("<h2>text</h2>" ) are taken into account. Any heading text after "!!" is excluded from the TOC; for example, write "---+!! text" if you do not want to list a header in the TOC. Parameters are topic name, web and depth:
%TOC{depth="2"}% , %TOC{"TWikiDocumentation" web="TWiki"}%
| ||||||||||||||||||||||||||||||||||||||||||||||||
%SEARCH{"text" ...}% |
Inline search, shows a search result embedded in a topic. Parameters are the search term, web, scope, order and many more: [1]
%SEARCH{"wiki" web="Main" scope="topic"}% Formatted example: %SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"% (displays results in a table with header - details) If the TWiki:Plugins.TablePlugin is installed, you may set a %TABLE{}% variable just before the %SEARCH{}% to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
|
||||||||||||||||||||||||||||||||||||||||||||||||
%METASEARCH{...}% |
Special search of meta data
%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}% , you may want to use this in WebTopicViewTemplate and WebTopicNonWikiTemplate%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
| ||||||||||||||||||||||||||||||||||||||||||||||||
%VAR{"NAME" web="Web"}% |
Get a preference value from a web other then the current one. Example: To get %WEBBGCOLOR% of the Main web write %VAR{"WEBBGCOLOR" web="Main"}% , is #FFFFFF |
[1] Note: The search form uses identical names for input fields. [2] Note: A web can be excluded from aweb="all"
search if you define aNOSEARCHALL=on
variable in its WebPreferences.
Variable: | Level: | What: |
---|---|---|
%WIKIWEBMASTER% |
SL | Webmaster email address (sender of email notifications) , is caad-course@hbt.arch.ethz.ch |
%WIKIWEBLIST% |
SL | List of TWiki webs (in upper right corner of topics) |
%WEBTOPICLIST% |
WL | Common links of web (second line of topics) |
%WEBCOPYRIGHT% |
SL , WL | Copyright notice (bottom right corner of topics) |
%WEBBGCOLOR% |
WL | Background color of web |
%NOSEARCHALL% |
WL | Exclude web from a web="all" search (set variable to on for hidden webs) |
%NEWTOPICBGCOLOR% |
SL , UL | Background color of non existing topic. ( UL needs authentication for topic views ) |
%NEWTOPICFONTCOLOR% |
SL , UL | Font color of non existing topic. ( UL needs authentication for topic views ) |
%EDITBOXWIDTH% |
SL , UL | Horizontal size of edit box, is 70 |
%EDITBOXHEIGHT% |
SL , UL | Vertical size of edit box, is 15 |
%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: checked |
%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: checked |
%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: |
%HTTP_EQUIV_ON_VIEW% |
SL | http-equiv meta tags for view, rdiff, attach, search* scripts. |
%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. |
%DENYWEBCHANGE% |
WL | List of users and groups who are not allowed to change topics in the TWiki web. (More in TWikiAccessControl) |
%ALLOWWEBCHANGE% |
WL | List of users and groups who are allowed to change topics in the TWiki web. (More in TWikiAccessControl) |
%DENYTOPICCHANGE% |
(any topic) | List of users and groups who are not allowed to change the current topic. (More in TWikiAccessControl) |
%ALLOWTOPICCHANGE% |
(any topic) | List of users and groups who are allowed to change the current topic. (More in TWikiAccessControl) |
%DENYWEBRENAME% |
WL | List of users and groups who are not allowed to rename topics in the TWiki web. (More in TWikiAccessControl) |
%ALLOWWEBRENAME% |
WL | List of users and groups who are allowed to rename topics in the TWiki web. (More in TWikiAccessControl) |
%DENYTOPICRENAME% |
(any topic) | List of users and groups who are not allowed to rename the current topic. (More in TWikiAccessControl) |
%ALLOWTOPICRENAME% |
(any topic) | List of users and groups who are allowed to rename the current topic. (More in TWikiAccessControl) |
%FINALPREFERENCES% |
SL , WL | List of preferences that are not allowed to be overridden by next level preferences |
Note: There are some more useful variables defined in the TWikiPreferences like%BR%
for line break, colors like%RED%
for colored text and small icons like%H%
for a Help icon.
Set VARIABLENAME = value
Set VARIABLENAME = value
Example: Create a custom logo variable the TWiki web-- PeterThoeny - 19 Jan 2003
- 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.
Action
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.TrashAttachments
- then, simply move unwanted Attachments to that topic.
Attach
file: Sample.txt
Edit
topic and enter: %ATTACHURL%/Sample.txt
Preview
: %ATTACHURL%/Sample.txt
text appears as: http://wiki.arch.ethz.ch/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 action 30 22 Jul 2000 - 19:37 PeterThoeny Just a sample Smile.gif action 94 22 Jul 2000 - 19:38 PeterThoeny Smiley face
Action
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
.
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.
NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt
.
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* | | Know.TopicClassification | select | 1 | Know.NoDisclosure, Know.PublicSupported, Know.PublicFAQ | blah blah... | | Know.OperatingSystem | checkbox | 3 | Know.OsHPUX, Know.OsLinux, Know.OsSolaris, Know.OsWin | blah blah... | | Know.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
- Know.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 theValues
field blank.
- Know.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: ?ColourRed=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.
-- 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. As an example, twiki/templates/view.tmpl
is the template file for the twiki/bin/view
script. Templates can be overloaded by individual webs. The following search order applies:
twiki/templates/$webName/$scriptName.tmpl
twiki/templates/$scriptName.tmpl
$webName
is the name of the web (ex: Main
)
$scriptName
is the script (ex: view
).
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. 05 May 2009
%WIKIUSERNAME%
User name, e.g. Main.guest
%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="onlywikiname" value="on" /> <input type="submit" value="Create" /> (date format is <nop>YYYYxMMxDD) </form>The
onlywikiname
parameter enforces WikiWords for topic names.
TIP: You can use the %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 |
%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:
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.
-- PeterThoeny - 05 Jan 2003
%SEARCH{...}%
variable documented in TWikiVariables has a fixed format for the search result, that is, a table consisting of topic names and topic summaries. Use the format="..."
parameter to specify a customized format of the search result. The string of the format parameter is typically a bullet list or table row containing variables (such as %SEARCH{ "food" format="| $topic | $summary |" }%
).
header="..."
parameter
Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. header="| *Topic:* | *Summary:* |"
2. format="..."
parameter
Use the format parameter to specify the format of one search hit.
format="| $topic | $summary |"
Variables that can be used in the format string:
Name: | Expands To: |
---|---|
$web | Name of the web |
$topic | Topic name |
$topic(20) | Topic name, "- " hyphenated each 20 characters |
$topic(30, -<br />) | Topic name, hyphenated each 30 characters with separator "-<br />" |
$topic(40, ...) | Topic name, shortended to 40 characters with "..." indication |
$text | Formatted topic text |
$locked | LOCKED flag (if any) |
$date | Time stamp of last topic update, like 05 May 2009 - 03:22 |
$isodate | Time stamp of last topic update, like 2009-05-05T03:22Z |
$rev | Number of last topic revision, like 1.4 |
$wikiusername | Wiki user name of last topic update, like Main.JohnSmith |
$username | User name of last topic update, like JohnSmith |
$summary | Topic summary |
$formfield(name) | The field value of a form field; for example, $formfield(TopicClassification) would get expanded to PublicFAQ . This applies only to topics that have a TWikiForm |
$formfield(name, 10) | Form field value, "- " hyphenated each 10 characters |
$formfield(name, 20, -<br />) | Form field value, hyphenated each 20 characters with separator "-<br />" |
$formfield(name, 30, ...) | Form field value, shortended to 30 characters with "..." indication |
$pattern(reg-exp) | A regular expression pattern to extract some text from a topic. For example, $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ... . |
$n or $n() | New line |
$nop or $nop() | Is a "no operation". This variable gets removed; useful for nested search |
$quot | Double quote (" ). Alternatively write \" to escape it |
$percnt | Percent sign (% ) |
$dollar | Dollar sign ($ ) |
$pattern(reg-exp)
, specify a RegularExpression that scans from start to end and contains the text you want to keep in parenthesis, like $pattern(.*?(from here.*?to here).*)
. You need to make sure that the integrity of a web page is not compromised; for example, if you include a table make sure to include everything including the table end tag.
%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }%
To get this:
| *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" }%
$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\" }$nop%" nosearch="on" nototal="on" }%
To get this:
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, unx 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, unx 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, unx 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, unx 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
text of topic
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.
Current support covers:
Variable usage: | Comment: |
---|---|
%META{"form"}% | Show form data, see TWikiForms. |
%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.
-- 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.
SomePlugin
), there's a separate development page.
Dev
(SomePluginDev
).
twiki/bin
and twiki/lib
directories for the Test version, adjusting the paths in the new lib/TWiki.cfg
, the twiki/data
; the twiki/templates
and twiki/pub
directories are shared.
DISABLEDPLUGINS
variable in TWikiPreferences. Redefine the DISABLEDPLUGINS
variable in the Sandbox
web and do the testing there.
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, CommentPlugin, BatchUploadPlugin, EditTablePlugin, InterwikiPlugin, RenderListPlugin, 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 deprecated
*_text_*
as bold italic text.- CommentPlugin: Allows users to quickly post comments to a page without an edit/preview/save cycle.
- BatchUploadPlugin: Plugin implementing TWiki:Codev.MultipleAttachmentsAtOnce
- EditTablePlugin: Edit TWiki tables using edit fields, date pickers and drop down boxes
- InterwikiPlugin: Link
ExternalSite:Page
text to external sites based on aliases defined in the InterWikis topic.- RenderListPlugin: Render bullet lists in a variety of formats
lib/TWiki/Func.pm
) implements ALL official Plugin functions. Plugins should ONLY use functions published in this module.
If you use functions not in 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.
GetVersion
detection routine are provided for automatic compatibility checking.
$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).
$VERSION='1.000'
is the current setting in TWiki::Plugins.pm
and in the preinstalled system Plugins (DefaultPlugin, EmptyPlugin, InterwikiPlugin).
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 Global 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.txt
MyFirstPlugin.zip
Dev
, ex: MyFirstPluginDev
. This is the discussion page for future development. (User support for Plugins is handled in TWiki:Support.)
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 |
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 |
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 |
Description: | Get protocol, domain and optional port of script URL |
Return: $host | URL host, e.g. "http://example.com:80" |
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" |
Description: | Get script URL path |
Return: $path | URL path of TWiki scripts, e.g. "/cgi-bin" |
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" |
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" |
Description: | Get pub URL path |
Return: $path | URL path of pub directory, e.g. "/pub" |
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 |
Description: | Prints a basic content-type HTML header for text/html to standard out |
Parameter: $query | CGI query object |
Return: | none |
Description: | Redirect to URL |
Parameter: $query | CGI query object |
Parameter: $url | URL to redirect to |
Return: | none, never returns |
Description: | Extract a named or unnamed value from a variable parameter string |
Parameter: $attr | Attribute string |
Parameter: $name | Name, optional |
Return: $value | Extracted value |
%TEST{ "nameless" name1="val1" name2="val2" }%
{...}
to get: "nameless" name1="val1" name2="val2"
my $noname = TWiki::Func::extractNameValuePair( $text );
my $name1 = TWiki::Func::extractNameValuePair( $text, "name1" );
my $name2 = 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 |
* 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 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" ) |
* Set SHOWHELP = off
"MYPLUGIN_SHOWHELP"
for $key
my $showHelp = TWiki::Func::getPreferencesFlag( "MYPLUGIN_SHOWHELP" );
Description: | Get toolname as defined in TWiki.cfg |
Return: $name | Name of tool, e.g. "TWiki" |
Description: | Get name of Main web as defined in TWiki.cfg |
Return: $name | Name, e.g. "Main" |
Description: | Get name of TWiki documentation web as defined in TWiki.cfg |
Return: $name | Name, e.g. "TWiki" |
Description: | Get default user name as defined in TWiki.cfg's $defaultUserName |
Return: $loginName | Default user name, e.g. "guest" |
Description: | Get Wiki name of logged in user |
Return: $wikiName | Wiki Name, e.g. "JohnDoe" |
Description: | Get Wiki name of logged in user with web prefix |
Return: $wikiName | Wiki Name, e.g. "Main.JohnDoe" |
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" |
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" |
Description: | Test if logged in user is a guest |
Return: $flag | "1" if yes, "0" if not |
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 |
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 |
Description: | Test if web exists |
Parameter: $web | Web name, required, e.g. "Sandbox" |
Return: $flag | "1" if web exists, "0" if not |
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 |
Description: | Get revision info of a topic |
Parameter: $web | Web name, optional, e.g. "Main" |
Parameter: $topic | Topic name, required, e.g. "TokyoOffice" |
Return: ( $date, $loginName, $rev ) | List with: ( last update date, login name of last user, minor part of top revision number ), e.g. ( "01 Jan 2003", "phoeny", "5" ) |
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. |
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 |
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 |
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 |
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" ) |
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" ) |
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" |
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>" |
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>" |
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 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 |
Description: | Get data directory (topic file root) |
Return: $dir | Data directory, e.g. "/twiki/data" |
Description: | Get pub directory (file attachment root). Attachments are in $dir/Web/TopicName |
Return: $dir | Pub directory, e.g. "/htdocs/twiki/pub" |
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 |
Description: | Read text file, low level. NOTE: For topics use readTopicText() |
Parameter: $filename | Full path name of file |
Return: $text | Content of file |
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 |
Description: | Log Warning that may require admin intervention to data/warning.txt |
Parameter: $text | Text to write; timestamp gets added |
Return: | none |
Description: | Log debug message to data/debug.txt |
Parameter: $text | Text to write; timestamp gets added |
Return: | none |
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%
* Main.FredBloggs * Main.FredBloggs - secondary@home.com * Main.EngineeringGroupThe first entry is the default form, the notification gets sent to the e-mail address specified in the user's home page. The second entry lists an alternative e-mail address. The third entry specifies a group, the notification gets sent to each member of the group. You can also use
%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 15,45 * * * * (cd ~twiki/public_html/bin; ./mailnotify -q)The above line will call mailnotify at 15 minutes and 45 minutes past every hour. 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
(as of 2001-11-20, none of them free).
%STATISTICSTOPIC%
$doLogTopicView, $doLogTopicSave and $doLogTopicUpload
in TWiki.cfg
are set. This will generate log entries in file twiki/data/log<date>.txt
.
twiki/bin/statistics
script from a cron job, once a day is recommended. This will update the WebStatistics topics in all webs.
nobody
on most 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
SEARCH
. The number of topics listed by the limit
parameter.:
%SEARCH{".*" web="TWiki" regex="on" nosearch="on" order="modified"
reverse="on" limit="50"}%
SEARCH
:
-- MikeMannix - 01 Dec 2001%SEARCH{"\.*" scope="topic" regex="on" nosearch="on"}%
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.
-- MikeMannix - 27 Dec 2001[[Old Topic]] => [[NewTopic][Old Topic]] [[old topic]] => [[NewTopic][old topic]] [[old t opic]] => not changed [[OldTopic]] => [[NewTopic]]
WIKIWEBLIST
. This must be done by hand.
The manage script while creating the new web will update the following variables in the WebPreferences: WEBBGCOLOR
, SITEMAPLIST
, SITEMAPWHAT
, SITEMAPUSETO
and NOSEARCHALL
. These variables are now used to dynamically generate the SiteMap.
%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).
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.
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 |
twiki/bin
File: | Used for: |
---|---|
.htaccess.txt | Authentication. Rename to .htaccess and customize if used |
attach | Shows the attach file page (FileAttachment) |
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 |
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 ) |
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 |
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/Prefs.pm | Preferences handling |
TWiki/Search.pm | Search engine, used by wiki.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/Plugins/DefaultPlugin.pm | Handles some legacy rules |
TWiki/Plugins/EmptyPlugin.pm | Empty plugin, use to create your own |
TWiki/Plugins/InterwikiPlugin.pm | Use aliases as links for predefined URLs |
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 |
Know/IncorrectDllVersionW32PTH10DLL/W32PTH10.DLL | DLL file: sample |
twiki/data
Main
, TWiki
, Know
, 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/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 | Attach (FileAttachments) control screen |
attachagain.tmpl | Attachment control screen |
attachnew.tmpl | Attachment control screen |
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 |
oopsaccesscreateweb.tmpl | Error message |
oopsaccessgroup.tmpl | Error message |
oopsaccessrename.tmpl | Error message |
oopsaccessview.tmpl | Error message |
oopsauth.tmpl | Error message |
oopsbadpwformat.tmpl | Error message |
oopschangepasswd.tmpl | Error message |
oopsempty.tmpl | Error message |
oopslocked.tmpl | Error message |
oopslockedrename.tmpl | Error message |
oopsmanage.tmpl | Error message |
oopsmissing.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 |
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 |
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 |
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 |
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.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 Jan 7 23:56 . drwxrwxr-x 5 twiki twiki 4096 Nov 18 12:21 .. -rw-rw-r-- 1 twiki twiki 979 Aug 3 19:36 .htaccess -rw-rw-r-- 1 twiki twiki 1598 Jun 1 2002 .htaccess.txt -rwxrwxr-x 1 twiki twiki 4986 Jan 4 17:27 attach -rwxrwxr-x 1 twiki twiki 3734 Jan 4 17:27 changes -rwxrwxr-x 1 twiki twiki 9362 Jan 4 18:04 edit -rwxrwxr-x 1 twiki twiki 1878 Jan 4 17:28 geturl -rwxrwxr-x 1 twiki twiki 4587 Jan 4 17:28 installpasswd -rwxrwxr-x 1 twiki twiki 7231 Jan 6 09:04 mailnotify -rwxrwxr-x 1 twiki twiki 6000 Dec 11 01:26 makedistrib -rwxrwxr-x 1 twiki twiki 8228 Jan 4 18:25 manage -rwxrwxr-x 1 twiki twiki 2445 Jan 4 18:08 oops -rwxrwxr-x 1 twiki twiki 6936 Jan 4 18:08 passwd -rwxrwxr-x 1 twiki twiki 5820 Jan 4 17:30 preview -rwxrwxr-x 1 twiki twiki 9235 Jan 4 17:31 rdiff -rwxrwxr-x 1 twiki twiki 10584 Jan 4 18:09 register -rwxrwxr-x 1 twiki twiki 14746 Jan 5 00:14 rename -rwxrwxr-x 1 twiki twiki 4800 Jan 4 18:09 save -rwxrwxr-x 1 twiki twiki 4729 Jan 4 17:32 search -rw-rw-r-- 1 twiki twiki 1446 Jan 8 01:03 setlib.cfg -rwxrwxr-x 1 twiki twiki 19261 Jan 4 17:33 statistics -rwxrwxr-x 1 twiki twiki 30626 Jan 4 17:33 testenv -rwxrwxr-x 1 twiki twiki 14306 Jan 4 18:11 upload -rwxrwxr-x 1 twiki twiki 11414 Jan 5 01:12 view -rwxrwxr-x 1 twiki twiki 2944 Jan 5 00:36 viewfileDirectory
twiki/templates/
:
drwxrwxr-x 2 twiki twiki 4096 Dec 11 00:38 . drwxrwxr-x 4 twiki twiki 4096 Jan 8 01:03 .. -rw-rw-r-- 1 twiki twiki 2590 Jan 7 22:53 attach.tmpl -rw-rw-r-- 1 twiki twiki 1604 Aug 3 2001 attachagain.tmpl -rw-rw-r-- 1 twiki twiki 449 Aug 3 2001 attachnew.tmpl -rw-rw-r-- 1 twiki twiki 1276 Dec 9 21:48 changeform.tmpl -rw-rw-r-- 1 twiki twiki 1620 Dec 9 21:48 changes.tmpl -rw-rw-r-- 1 twiki twiki 12777 Jan 7 22:54 edit.iejs.tmpl -rw-rw-r-- 1 twiki twiki 2801 Jan 7 22:54 edit.tmpl -rw-rw-r-- 1 twiki twiki 975 Dec 9 21:48 mailnotify.tmpl -rw-rw-r-- 1 twiki twiki 1606 Jan 7 22:54 moveattachment.tmpl -rw-rw-r-- 1 twiki twiki 570 Aug 1 2001 oopsaccesschange.tmpl -rw-rw-r-- 1 twiki twiki 596 Apr 13 2002 oopsaccesscreateweb.tmpl -rw-rw-r-- 1 twiki twiki 586 Aug 1 2001 oopsaccessgroup.tmpl -rw-rw-r-- 1 twiki twiki 573 Aug 1 2001 oopsaccessrename.tmpl -rw-rw-r-- 1 twiki twiki 573 Aug 1 2001 oopsaccessview.tmpl -rw-rw-r-- 1 twiki twiki 997 Nov 11 22:21 oopsauth.tmpl -rw-rw-r-- 1 twiki twiki 405 Aug 1 2001 oopsbadpwformat.tmpl -rw-rw-r-- 1 twiki twiki 344 Jul 31 2001 oopschangepasswd.tmpl -rw-rw-r-- 1 twiki twiki 624 Jul 31 2001 oopsempty.tmpl -rw-rw-r-- 1 twiki twiki 891 Dec 30 15:51 oopslocked.tmpl -rw-rw-r-- 1 twiki twiki 589 Dec 30 15:55 oopslockedrename.tmpl -rw-rw-r-- 1 twiki twiki 678 Apr 12 2002 oopsmanage.tmpl -rw-rw-r-- 1 twiki twiki 328 Jul 31 2001 oopsmissing.tmpl -rw-rw-r-- 1 twiki twiki 2352 Apr 13 2002 oopsmngcreateweb.tmpl -rw-rw-r-- 1 twiki twiki 2322 Jan 7 22:55 oopsmore.tmpl -rw-rw-r-- 1 twiki twiki 407 Aug 1 2001 oopsmoveerr.tmpl -rw-rw-r-- 1 twiki twiki 1132 Nov 30 2001 oopsnoformdef.tmpl -rw-rw-r-- 1 twiki twiki 520 Jan 4 18:21 oopsnotwikiuser.tmpl -rw-rw-r-- 1 twiki twiki 1495 Apr 7 2002 oopsnoweb.tmpl -rw-rw-r-- 1 twiki twiki 393 Aug 1 2001 oopspreview.tmpl -rw-rw-r-- 1 twiki twiki 340 Dec 10 14:14 oopsregemail.tmpl -rw-rw-r-- 1 twiki twiki 475 Jun 10 2002 oopsregexist.tmpl -rw-rw-r-- 1 twiki twiki 345 Aug 1 2001 oopsregpasswd.tmpl -rw-rw-r-- 1 twiki twiki 356 Aug 1 2001 oopsregrequ.tmpl -rw-rw-r-- 1 twiki twiki 540 Aug 1 2001 oopsregthanks.tmpl -rw-rw-r-- 1 twiki twiki 679 Aug 1 2001 oopsregwiki.tmpl -rw-rw-r-- 1 twiki twiki 502 Mar 24 2002 oopsrenameerr.tmpl -rw-rw-r-- 1 twiki twiki 433 May 19 2002 oopsrenamenotwikiword.tmpl -rw-rw-r-- 1 twiki twiki 506 Jun 10 2002 oopsresetpasswd.tmpl -rw-rw-r-- 1 twiki twiki 957 Jan 7 22:55 oopsrev.tmpl -rw-rw-r-- 1 twiki twiki 774 Aug 1 2001 oopssave.tmpl -rw-rw-r-- 1 twiki twiki 477 Aug 1 2001 oopssaveerr.tmpl -rw-rw-r-- 1 twiki twiki 465 Jun 10 2002 oopssendmailerr.tmpl -rw-rw-r-- 1 twiki twiki 379 Aug 1 2001 oopstopicexists.tmpl -rw-rw-r-- 1 twiki twiki 342 Jul 31 2001 oopsupload.tmpl -rw-rw-r-- 1 twiki twiki 364 Aug 1 2001 oopswrongpassword.tmpl -rw-rw-r-- 1 twiki twiki 2603 Jan 7 22:55 preview.tmpl -rw-rw-r-- 1 twiki twiki 1719 Jan 7 22:56 rdiff.tmpl -rw-rw-r-- 1 twiki twiki 1160 Dec 9 21:48 registernotify.tmpl -rw-rw-r-- 1 twiki twiki 993 Jun 23 2002 rename.tmpl -rw-rw-r-- 1 twiki twiki 2369 Jan 7 22:56 renamebase.tmpl -rw-rw-r-- 1 twiki twiki 471 May 31 2002 renameconfirm.tmpl -rw-rw-r-- 1 twiki twiki 595 May 31 2002 renamerefs.tmpl -rw-rw-r-- 1 twiki twiki 1818 Jan 7 22:56 search.tmpl -rw-rw-r-- 1 twiki twiki 1676 Jan 7 22:57 searchbookview.tmpl -rw-rw-r-- 1 twiki twiki 980 Jan 7 22:57 searchformat.tmpl -rw-rw-r-- 1 twiki twiki 149 Sep 13 2001 searchmeta.tmpl -rw-rw-r-- 1 twiki twiki 2071 Jan 7 22:57 searchrenameview.tmpl -rw-rw-r-- 1 twiki twiki 2284 Dec 9 21:48 twiki.tmpl -rw-rw-r-- 1 twiki twiki 419 Dec 9 21:48 view.plain.tmpl -rw-rw-r-- 1 twiki twiki 827 Dec 9 21:48 view.print.tmpl -rw-rw-r-- 1 twiki twiki 300 Dec 14 17:16 view.rss.tmpl -rw-rw-r-- 1 twiki twiki 1629 Jan 7 22:58 view.tmplDirectory
twiki/data/
:
drwxrwxr-x 8 nobody nobody 4096 Jan 3 23:50 . drwxrwxr-x 4 twiki twiki 4096 Jan 8 01:03 .. -rw-rw-rw- 1 twiki twiki 210 Jan 11 15:58 .htpasswd drwxrwxr-x 2 nobody nobody 4096 Dec 11 02:15 Know drwxrwxr-x 2 nobody nobody 4096 Jan 11 17:45 Main drwxrwxr-x 2 nobody nobody 4096 Dec 11 02:15 Sandbox drwxrwxr-x 2 nobody nobody 8192 Jan 11 22:45 TWiki drwxrwxr-x 2 nobody nobody 4096 Dec 11 02:15 Trash drwxrwxr-x 2 nobody nobody 4096 Dec 11 01:01 _default -rw-rw-rw- 1 twiki twiki 0 Aug 2 14:16 debug.txt -rw-rw-r-- 1 nobody nobody 36630 Jan 11 22:26 log200301.txt -rw-rw-r-- 1 twiki twiki 3419 Aug 13 2001 mime.types -rw-rw-rw- 1 twiki twiki 1320 Dec 11 00:18 warning.txtPartial file list for
twiki/data/Main
:
.txt,v
.
drwxrwxr-x 2 nobody nobody 4096 Jan 11 17:45 . drwxrwxr-x 8 nobody nobody 4096 Jan 3 23:50 .. -rw-rw-rw- 1 twiki twiki 3662 Jan 11 16:29 .changes -rw-rw-rw- 1 twiki twiki 9 Oct 25 2001 .mailnotify -rw-r--r-- 1 nobody nobody 280 Dec 15 2000 TokyoOffice.txt -rw-r--r-- 1 nobody nobody 774 Dec 15 2000 TokyoOffice.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 1721 Jun 28 2002 WebHome.txt -r--r--r-- 1 nobody nobody 11314 Jun 28 2002 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 729 Mar 24 2001 WebNotify.txt -r--r--r-- 1 nobody nobody 2981 Mar 24 2001 WebNotify.txt,v -rw-r--r-- 1 nobody nobody 3670 Apr 12 2002 WebPreferences.txt -r--r--r-- 1 nobody nobody 8203 Apr 12 2002 WebPreferences.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 850 Dec 11 00:58 WebStatistics.txt -r--r--r-- 1 nobody nobody 1690 Dec 11 00:58 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 3 nobody nobody 4096 Nov 18 12:31 Know 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-- PeterThoeny - 11 Jan 2003
/bin/view/Web.TopicName
topic view URL (besides the default /bin/view/Web/TopicName
URL); useful for InterwikiPlugin links like TWiki:Codev.ReadmeFirst
readTopicText
, saveTopicText
, setTopicEditLock
, checkTopicEditLock
%NOAUTOLINK%
setting in the TWikiPreferences to disable the auto-linking of WikiWords
registrationHandler
, beforeEditHandler
, afterEditHandler
, beforeSaveHandler
, writeHeaderHandler
, redirectCgiQueryHandler
, getSessionValueHandler
, setSessionValueHandler
%INCLUDE{ "OtherTopic" rev="1.2" }%
%NOP{}%
variable in TWikiTemplates topic gets removed at topic creation time; useful to write protect template topics
%URLPARAM{}%
variable in TWikiTemplates topic gets expanded at topic creation time; useful for dynamic content creation
$logDir
introduced in TWiki.cfg to set the log directory
setlib.cfg
file in the bin directory to set the TWiki library path
%PROXYHOST
and %PROXYPORT%
settings in the TWikiPreferences
%WIKILOGOIMG%
, %TWIKILOGOURL%
and %WIKILOGOALT%
variables in TWikiPreferences; replacing $wikiHomeUrl
in TWiki.cfg
%WIKITOOLNAME%
variable in TWikiPreferences; replacing $wikiToolName
in TWiki.cfg
%EDITBOXSTYLE%
preferences variable which sets the edit box width automatically to the window width
%URLENCODE{}%
variable to encodes a string for using in a URL parameter, e.g. %URLENCODE{"spaced name"}%
returns spaced%20name
/twiki/templates/register.tmpl
template file
%TOC%
table of content, e.g. ---+!! This heading
is not shown in a TOC
%SEARCH{}%
variable, FormattedSearch and WebSearch
<verbatim>
tags are no longer expanded
%SEARCH{}%
variable for database like reporting.
TWiki.cfg
notedited.tmpl
, notext.tmpl
and notwiki.tmpl
templates. More in TWikiTemplates.
%TOPICLIST{"format"}%
and %WEBLIST{"format"}%
variables to get a formatted topic index and web index, respectively. More in TWikiVariables.
%URLPARAM{"name"}%
variable to query URL parameters. More in TWikiVariables.
| *bold* |
cells as table headers, (ii) render space padded cells | center aligned |
and | right aligned |
, (iii) span multiple columns using | empty cells |||
. More in TextFormattingRules.
.htaccess
files that are attached to a topic get a .txt
suffix appended to the file name. See also TWiki:Codev/FileAttachmentFilterSecurityAlert
---++ My Title
; and new %TOC%
variable to build a table of content from headings in a topic. More in TWikiVariables.
[[http://TWki.org][TWiki]]
) and internal links (i.e [[WikiSyntax][syntax]]
). More in TWikiVariables.
#MyAnchor
at the beginning of a line, and link to it with [[#MyAnchor]]
. More in TWikiVariables.
Net::SMTP
module instead of sendmail
if installed.
<verbatim>
... </verbatim>
tags to show source code "as is". Unlike the <pre>
... </pre>
tags, it also shows <
, >
, &
characters "as is".
==Bold Fixed==
to get Bold Fixed
.
%GMTIME{"..."}%
and %SERVERTIME{"..."}%
variables. Format is now "$hour:$min"
instead of "hour:min"
. More in TWikiVariables. Attention: Check your existing topics when you upgrade TWiki!
%STARTINCLUDE%
and %STOPINCLUDE%
variables to control what gets included of a topic. More in TWikiVariables.
print
skin for a printable view of a topic. More in TWikiSkins and TWiki:Codev/TWikiSkins.
%BASEWEB%
, %INCLUDINGWEB%
, %BASETOPIC%
and %INCLUDINGTOPIC%
to have more control over include handling. More in TWikiVariables and TWiki:Codev/IncludeHandlingImprovements.
noheader="on"
switch in %SEARCH{...}%
to suppress table header. More in TWikiVariables.
$doHidePasswdInRegistration
in wikicfg.pm
to hide plain text password in registration email.
%VAR{"NAME" web="Web"}%
to get web specific preferences. More in TWikiVariables.
view
"knows" the user once authenticated in edit
. More in TWikiUserAuthentication.
png
image support.
%INCLUDE{"%TWIKIWEB%.TWikiWebsTable"}%
. More in TWiki:Codev/BetterTWikiTagTemplateProcessing.
mailnotify
to suppress all normal output.
[[text formatting FAQ]]
to get the link text formatting FAQ that points to topic TextFormattingFAQ.
%HTTP_EQUIV_ON_VIEW%
, %HTTP_EQUIV_ON_EDIT%
and %HTTP_EQUIV_ON_PREVIEW%
that define the <meta http-equiv="...">
meta tags for the TWiki templates. This can be used for example to set a document expiration time.
%GMTIME{"..."}%
and %SERVERTIME{"..."}%
. More in TWikiVariables.
%INCLUDE{"Web/TopicName.txt"}%
to %INCLUDE{"Web.TopicName"}%
. Legacy syntax still supported.
*bold*, italic, __bold italic__
and fixed
, where it is not necessary anymore to have a trailing space before .,;:?!
characters.
%INCLUDE%
of arbitrary files.
%GMTIME%
variable that shows the current GM time.
%HTTP_HOST%
, %REMOTE_ADDR%
, %REMOTE_PORT%
and %REMOTE_USER%
.
%ATTACHLINKBOX%
controls the default state of the link check box in the attach file page.
Perl -T
option )
%EDITBOXWIDTH%
and %EDITBOXHEIGHT%
to specify the edit box size.
wikiwebs.inc
, wikiwebtable.inc
, weblist.inc
, webcopyright.inc
and webcolors.inc
files.
%SCRIPTSUFFIX%
/ $scriptSuffix containing an optional file extension of the TWiki Perl script. Templates have been changed to use this variable. This allows you to rename the Perl script files to have a file extension like for example ".cgi".
%SCRIPTURLPATH%
/ $scriptUrlPath containing the script URL without the domain name. Templates have been changed to use this variable instead of %SCRIPTURL%
. This is for performance reasons.
%INCLUDE:"filename.ext"%
to %INCLUDE{"filename.ext"}%
. (Previous syntax still supported. Change was done because of inline search syntax)
%SEARCH{"str" ...}%
to show a search result embedded in a topic text. TWikiVariables has more on the syntax. Inline search combined with the category table feature can be used for example to create a simple bug tracking system.
initialize
in wiki.pm
did not handle $thePathInfo
correctly.
$doLogTopic*
in wikicfg.pm to selectively log topic view, edit, save, rdiff, attach, search and changes to monthly log file.
$doRemovePortNumber
in wikicfg.pm to optionally remove the port number from the TWiki URL. Example www.some.domain:1234/twiki
gets www.some.domain/twiki
.
%INCLUDE:"file.inc"%
variable. Search first in the current web, then in parent data directory. Useful to overload default include text in the data directory by web-specific text, like for example webcopyright.inc
text.
TestVersion
/ TestVersions
, TestPolicy
/ TestPolicies
, TestAddress
/ TestAddresses
, TestBox
/ TestBoxes
.
webcopyright.inc
file. This is to easily customize the copyright text.
%WIKIHOMEURL%
(link when pressing the icon on the upper left corner) and %WIKITOOLNAME%
(the name of the wiki tool TWiki
).
%PUBURL%
(Public directory URL) and %ATTACHURL%
(URL of topic file attachment).
fixed font text
. Words get showns in fixed font
by enclosing them in "=" equal signs. Example Writing =fixed font= will show up as fixed font
.
Diffs
link at the bottom of each topic, e.g. Topic TWikiHistory . { Edit Ref-By Diffs r1.3 > r1.2 > r1.1 }
Revision r1.3 1998/11/10 01:34 by PeterThoeny
data/logYYYYMM.txt
, where YYYYMM
the year and month in numeric format is. Intended for auditing only, not accessible from the web.
r1.3
) and differences thereof (e.g. >
) at the bottom Topic TWikiHistory . { Edit Ref-By r1.3 > r1.2 > r1.1 }
Revision r1.3 1998/11/10 01:34 by PeterThoeny
Topic TWikiHistory . { Edit Ref-By r1.3 r1.2 r1.1 }
Revision r1.3 1998/10/26 01:34:00 by PeterThoeny
AaA
sequence, e.g. AaA1
is a valid WikiTopic name, but not Aa1
.
%INCLUDE:"filename.ext"%
%TOPIC%
(Topic name), %WEB%
(web name), %SCRIPTURL%
(script URL), %DATE%
(current date), %WIKIWEBMASTER%
(Wiki webmaster address), %WIKIVERSION%
(Wiki version), %USERNAME%
(user name), %WIKIUSERNAME%
(Wiki user name).
PeterThoeny
instead of thoeny
in case the Wiki username exists. Implementation Automatic lookup of Wiki username in topic TWikiUsers.
Know.WebSeach
.
Topic TWikiDocumentation . { |
Copyright © 1999-2003 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.
|
This website has been archived and is no longer maintained.