TWiki Reference Manual (03 Sep 2004 $Rev: 1742 $)TWiki Reference Manual (03 Sep 2004 $Rev: 1742 $) | |||||||||||||||||||||||||||||
| > > |
document.ondblclick=dblclick; --> | ||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||
| < < |
This page contains all documentation topics as one long, complete reference sheet. | ||||||||||||||||||||||||||||
| > > |
This page contains all documentation topics as one long, complete reference sheet. | ||||||||||||||||||||||||||||
| Doubleclick anywhere to return to the top of the page. TOC: No TOC in "TWiki.TWikiDocumentation" | |||||||||||||||||||||||||||||
| Line: 22 to 25 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TWiki Installation GuideInstallation instructions for the TWiki 01-Sep-2004 production release. If you are reading this on your own TWiki installation, please get the latest installation guide (TWiki:TWiki.TWikiInstallationGuide), as this often has important updates to resolve installation issues. These installation steps are based on the Apache web server on Linux. TWiki runs on other web servers and Unix systems, and should be fine with any web server and OS that meet the system requirements. Official documentation for platforms other than Linux is somewhat limited, so please check the topics listed below, they include some important tips for HP-UX, Solaris, OS/390, and many other platforms.
Standard InstallationDownload the TWiki 01-Sep-2004 distribution in Unix ZIP format from http://TWiki.org/download.html. Please review the AdminSkillsAssumptions before you install TWiki.Step 1: Create & Configure the Directories
Example
Aletrnative Step 1: Create & Configure the Directories for Non-Root AccountsTo install TWiki on a system where you don't have Unix/Linux root (administrator) privileges, for example, on a hosted Web account or an intranet server administered by someone else:
Note: Don't worry if you are not able to put the twiki/lib directory at the same level as the twiki/bin directory (e.g. because CGI bin directories can't be under your home directory and you don't have root access). You can create this directory elsewhere and configure the /twiki/bin/setlib.cfg file (done in Step 3)
Step 2: Set File Permissions
Step 3: Edit the Configuration Files
Step 4: Internationalisation Setup (Optional)By default, TWiki is configured to support US ASCII letters (no accents) in WikiWords, and ISO-8859-1 (Western European) characters in page contents. If that's OK for you, skip this step. If your Wiki will be used by non-English speakers, TWiki can be configured for Internationalisation ('I' followed by 18 letters, then 'N', or I18N). Specifically, TWiki will support suitable accented characters in WikiWords (as well as languages such as Japanese or Chinese in which WikiWords do not apply), and will support virtually any character set in the contents of pages. NOTE: TWiki does not currently support UTF-8, so you are advised not to use this - however, improved UTF-8 support is under development, see TWiki:Codev/ProposedUTF8SupportForI18N. To configure internationalisation suppport:
Trouble with I18N?If international characters in WikiWords do not seem to work, and you are on Perl 5.6 or higher, you may need to set theTWiki.cfg parameter $localeRegexes to 0 - this disables some features but enables TWiki to work even if your system has locales that do not work. Then, set the $upperNational and $lowerNational parameters to the valid upper and lower case accented letters for your locale.
$useLocale set to 1 and set $localeRegexes to 0, then set $upperNational and $lowerNational - if testenv generates the lists of characters for you, your locales are working so there is no need to set $localeRegexes to 0 in this case. See the comments in TWiki.cfg for more information.
Step 5: Configure Site-Wide Email Preferences
Step 6: Finish Up from Your Browser
Additional Server-Level OptionsWith your new TWiki installation up and running, you can manage most aspects of your site from the browser interface. Only a few functions require access to the server file system, via Telnet or FTP. You can make these server-level changes during installation, and at any time afterwards.Enabling Authentication of Users
WYSIWYG EditorAt this time, TWiki does not ship with an "what you see is what you get" editor. TWiki:Codev/IntegrateHtmlAreaEditor describes how to integrate an HTML editor.Public.UserName or %MAINWEB%.UserName format. (The %MAINWEB% variable is an advantage if you ever change the Public web name, but the standard Public.UserName is easier for users to enter, which is the bottom line!)
TWiki File System InfoSee Appendix A: TWiki File System for an installed system snapshot and descriptions of all files in the TWiki 01-Sep-2004 distribution. -- TWiki:Main/PeterThoeny - 29 Aug 2004-- TWiki:Main/MikeMannix - 16 May 2002 | |||||||||||||||||||||||||||||
| Added: | |||||||||||||||||||||||||||||
| > > |
Windows Install CookbookIntroductionThis cookbook is intended to get you up and running with TWiki on Windows quickly, with as few problems as possible. The 'cookbook' approach is simply to restrict the many choices that someone installing TWiki must make, so that a reasonably well-defined procedure can be followed - new users can simply follow the steps, while experts can use this as more of a guideline.
SummaryRecent updates
ScopeThis document covers installation of the TWiki 01-Sep-2004 production release (TWiki:Codev/TWikiRelease01Sep2004) in the following environment - if you want to use a different environment, feel free to use this as a guideline only.
CGI.pm. Even though the Apache group says that Apache 2.0 is the best version, that's not true for TWiki at present. For more information, see TWiki:Codev.IssuesWithApache2dot0 and TWiki:Codev.IssuesWithPerl5dot8.
AlternativesThe following Windows operating systems have been tested following the instructions given here:
mod_perl, you may want to try TWiki:Codev.WindowsModPerlInstallCookbook.
Checking versionsIf you already have some of these add-ons installed, here's how to check the versions - this assumes you have TWiki:Codev.CygWin already installed:$ : Cygwin DLL version is the number in 1.3.x format $ uname -r $ less c:/your-apache-dir/Announcement $ perl -v $ rcs -VIf you have an older version of any component, do yourself a favour and upgrade it as part of the install process. Pre-requisites and upgradesYou will need to have local administrator rights and be comfortable with Windows administration. This cookbook is intended for a clean install, i.e. none of these components are already installed. However, since Cygwin and Apache's installation process is fairly upgrade-friendly, upgrades should work as well - take backups of all your data and config files first, though!Text editingEditing Cygwin files should be done with an editor that can handle Unix file format (see the Cygwin binary mode section below). The installation process suggests:
The Unix/Windows EnvironmentIt's a little known fact that you can use pathnames such asc:/apache almost everywhere in Windows - try it in a File Open dialogue box. The main exception is the Windows "DOS" command line shell - here, you must use double quotes around forward slashes, e.g. dir "c:/apache" will work fine.
The reason this matters is that '\' is a special character to Perl and other tools, so it's much easier to use '/' everywhere.
The Cygwin environmentTWiki:Codev.CygWin is a Unix-like environment for Windows - many of its tools support thec:/apache format, but it also provides a more Unixlike syntax, e.g. /usr/bin/rcs.exe, because some Unix tools ported onto Cygwin only support the Unix format.
When you launch a Cygwin shell, your existing PATH variable is translated from the Windows format to the Unix format, and the ';' separators in the Windows PATH are changed into ':' separators as required by Unix. A Cygwin tool (e.g. Cygwin Perl or Cygwin RCS) will always use the Unix PATH format, and will accept Unix format pathnames.
The Apache environmentApache runs as a native Windows process and has nothing to do with Cygwin (at least the version used in this cookbook doesn't). Hence it supports c:/ pathnames in its config files and the first line of Perl CGI scripts. If you need to use spaces in file names (not recommended), put double quotes around the file name in thehttpd.conf file. There have been some security-related bugs in Apache with long pathnames, which are a bit more likely if you use spaces, so it's best to just avoid long names and using spaces.
The Perl environmentOnce Perl has been launched by Apache, it is in Cygwin mode, and so is everything it launches, includingls, egrep, and the RCS tools that it (typically) launches with the bash shell.
If you need to use spaces in file names (not recommended), you may be able to put double quotes around the file name in the TWiki.cfg file - however, it's not clear whether all the TWiki code would work with this.
Installing ComponentsEnough background, let's get on with the installation.TWiki (part 1)Head to http://twiki.org, click the download link, and fill in the form to request a URL for download. You'll get an automated email, which should arrive by the time you need it.ApacheSteps 1 and 2 can be shortcut by opening the self-installing executable on the Apache website that installs Apache 1.3.x. The painful details below are mainly helpful when detecting where things are going wrong..... 1. Download Apache
apache -k stop.
Cygwin, Unix tools, Perl and RCS4. Install Cygwin Head to http://cygwin.com, and click thesetup.exe in a directory, e.g. c:\download\cygwin-dist.
Now run the Cygwin setup.exe file - this will also install Perl and RCS in one fell swoop.
$ mkdir /twiki /c c:/twiki $ mount -b -s c:/twiki /twiki $ mount -b -s c:/ /c $ mount -b -c /cygdrive $ mount Device Directory Type Flags C:\cygwin\bin /usr/bin system binmode C:\cygwin\lib /usr/lib system binmode C:\cygwin / system binmode c:\twiki /twiki system binmode c: /c system binmode
.profile file. For more information on binary vs text mode, see this User Guide section and this FAQ entry.
TWiki (part 2)7. Download TWiki Download the latest TWiki release from http://twiki.org/ and save it in thec:/twiki directory.
8. Install TWiki
Unzip the ZIP file under c:/twiki using WinZip, or by going into Cygwin and doing the following - you can hit the TAB key to complete filenames after you've typed the first part:
$ cd /twiki $ unzip TWiki20011201.zip Configuring componentsNow that all the components are installed, you need to configure them.Configuring ApacheThe setup given here is fairly simple, in that it allows only TWiki to be served by the web server. For more complex setups, you can investigate the Alias and ScriptAlias commands that are left commented out in this configuration.
c:/apache/conf/httpd.conf as follows - this tells Apache where TWiki lives, and removes the need to tinker with the Windows environment settings.
# Change this to point to the Apache administrator (e.g. you) ServerAdmin you@yourdomain.com # Replaces DocumentRoot "C:/apache/htdocs" DocumentRoot "C:/twiki" # Replaces <Directory "C:/apache/htdocs"> <Directory "C:/twiki">
# Alias /twiki/ "C:/twiki/"
# ScriptAlias /twiki/bin/ "C:/twiki/bin/"
<Directory "C:/twiki/bin/">
# RD: Changed None to All in next line, to enable .htaccess
AllowOverride All
Allow From All
Options ExecCGI
SetHandler cgi-script
</Directory>
# Environment setup required to run Apache as service or as a
# standalone process.
<IfModule mod_env.c>
# Adjust TZ for your server timezone, e.g. EST5EDT - put the non-daylight-savings
# timezone code first (e.g. EST or GMT), followed by the number of hours that it's behind GMT
# during non-daylight-savings time (use '-5' for timezones in advance of GMT).
SetEnv TZ GMT0BST
SetEnv RCSINIT -x,v/
# Adjust TEMP and TMP for your server and create directories if necessary
SetEnv TEMP c:/temp
SetEnv TMP c:/temp
SetEnv LOGNAME system
SetEnv HOME c:/twiki
</IfModule>
2. Configure Apache (part 2)
Add an AddHandler line to the <IfModule mod_mime.c> section of httpd.conf - this removes the need to rename all the TWiki CGI scripts later in the installation.
#
# Document types
#
<IfModule mod_mime.c>
# TWiki setup - avoid renaming scripts
AddHandler cgi-script .
...
Configuring TWiki3. Configure TWiki Edit the TWiki config file,c:/twiki/lib/TWiki.cfg (or in Cygwin terms, /twiki/lib/TWiki.cfg) as follows:
# variables that need to be changed when installing on a new server: # ================================================================== # http://www.coho.org/twiki-public : link of TWiki icon in upper left corner : $wikiHomeUrl = "http://yourdomain.com/bin/view"; # Host of TWiki URL : (Example "http://myhost.com:123") $defaultUrlHost = "http://yourdomain.com"; # /twiki-public/bin : cgi-bin path of TWiki URL: $scriptUrlPath = "/bin"; # /twiki-public/pub : Public data path of TWiki URL (root of attachments) : $pubUrlPath = "/pub"; # NOTE: Next three settings should be valid absolute pathnames using Cygwin; if using # TWiki:Codev.ActiveState Perl, use z:/twiki format pathnames if your TWiki directory is not on C:. # Public data directory, must match $pubUrlPath : $pubDir = "/twiki/pub"; # Template directory : $templateDir = "/twiki/templates"; # Data (topic files) root directory : $dataDir = "/twiki/data"; .... # Set ENV{'PATH'} explicitly for taint checks ( #!perl -T option ) : # (Note: PATH environment variable is not changed if set to "") # On Windows, $safeEnvPath needs only one component, the directory where RCS is installed # - used by 'rcsdiff' to run 'co' program, so PATH must be correct. # Unix/Linux setting: # $safeEnvPath = "/bin:/usr/bin"; # Using Cygwin perl, so can use Unix-like paths, with ':' as separator. # Note that /usr/bin and /bin are identical due to default /usr/bin mount # in Cygwin. Must NOT use 'c:/foo' type paths, as ':' is taken as separator # meaning that 'c' is interpreted as a pathname, giving Perl taint error. $safeEnvPath = "/bin"; # If using ActiveState perl, use Windows paths instead # $safeEnvPath = "c:/cygwin/bin"; ... # RCS directory (find out by 'which rcs') : $rcsDir = "c:/cygwin/bin"; ... # Unix egrep command : $egrepCmd = "/bin/grep -E"; # Unix fgrep command : $fgrepCmd = "/bin/grep -F";For the cookbook install using Cygwin Perl, there's no more TWiki.cfg editing to be done, so you can get onto the next section.
# NOTE: When using ActiveState Perl, you must specify # a full Windows-style pathname, using '\\' for backslashes, # for the ls, egrep and fgrep commands, because Cygwin's shell # is not used - forward slashes are OK in Windows everywhere # except in the cmd.exe shell. Drive letters are OK - e.g. # 'c:\\foo\\ls' will work. When using Cygwin perl, just # use the default '/bin/ls' type settings. # # Unix ls command : $lsCmd = "c:\\cygwin\\bin\\ls"; # Unix egrep command : $egrepCmd = "c:\\cygwin\\bin\\grep"; # Unix fgrep command : $fgrepCmd = "c:\\cygwin\\bin\\grep"; Editing the CGI scripts4. Editing the Shebang lines Now to edit the curiously named 'shebang lines' at the top of the TWiki CGI scripts. This is required so the Apache server knows what interpreter (perl) to use with the scripts.
$ cd /twiki/bin $ ls attach geturl oops rdiff save testenv viewfile changes installpasswd passwd register search upload edit mailnotify preview rename statistics view $ mkdir .backup $ cp * .backup $ head -1 view #!/usr/bin/perl -wT $ perl -pi~ -e 's;#!/usr/bin/perl;#!c:/cygwin/bin/perl;' *[a-z] $ head -1 view #!c:/cygwin/bin/perl -wT $ ls attach geturl oops rdiff save testenv viewfile~ attach~ geturl~ oops~ rdiff~ save~ testenv~ view~ changes installpasswd passwd register search upload changes~ installpasswd~ passwd~ register~ search~ upload~ edit mailnotify preview rename statistics view edit~ mailnotify~ preview~ rename~ statistics~ viewfileIf for some reason the edit goes wrong, just type cp .backup/* . (while within the bin directory) to restore the original distribution files. Use ls -a to see the .backup directory, and ls -a .backup to view its contents.
Optional step: you can do 'rm *~' to clean out the backups made by Perl, but that's not essential as all the original files cannot be executed. If you do this, type the command very carefully, as a space after the '*' will wipe out all files in this directory!
5. Minor changes to TWiki scripts
TWiki Dec 2001 release only - fixed in Feb 2003 release
If using the Dec 2001 release, you now need to make some minor edits to files in the c:/twiki/bin directory, using a suitable editor (remember to use nano -w filename if you prefer nano to vi - or just use the Windows PFE editor).
return $user . ':{SHA}' . MIME::Base64::encode_base64(Digest::SHA1::sha1($passwd));
Perl module installation6. Installing required Perl modules Some additional Perl modules are needed, above and beyond the standard modules installed with Cygwin. Fortunately, there is an automated tool that makes it easy to do this - it's calledcpan, and goes to the Perl module archive site, http://www.cpan.org/, to download all required modules, and then build and install them.
Note: if you are unable to get cpan working in your environment, don't panic; you can still install the modules manually. In this case, follow the instructions in CPAN: The Hard Way.
First of all, you need to get the cpan tool configured and working - this is only necessary once. From the Cygwin shell, type the following (putting the export command in ~/.profile is recommended to make this setting persistent). Without the TEMP variable, some modules may fail to install on Windows 2000 and higher.
$ export TEMP=/c/temp $ cpanLots of questions about configuration and preferences - just hit Enter until you get to the questions about mirror sites, but answer the questions about FTP proxies etc if you are behind a proxy-based firewall. The CPAN tool will fetch a series of files, some quite large, as part of this setup process, so be patient... NOTE: If you are behind a non-proxy-based firewall that requires the use of passive FTP, the initial downloads of files using Net::FTP may appear to hang - just wait 5 or more minutes, however, and the CPAN tool should eventually hit on ncftpget, which is part of Cygwin and does work OK. If this doesn't work and you are behind a typical NAT-based firewall, try doing the following at the Cygwin shell before running cpan - this forces Net::FTP to use passive FTP, letting it get through such firewalls:
$ export FTP_PASSIVE=1If this works, add this line to your ~/.profile file for future use.
Once some initial files are downloaded, you are asked to select your continent and country, and then mirror sites - just type the number of the mirror sites you want to use (pick a few in case one is down):
... (28) Turkey (29) Ukraine (30) United Kingdom Select your country (or several nearby countries) [] 30 (1) ftp://cpan.teleglobe.net/pub/CPAN (2) ftp://ftp.clockerz.net/pub/CPAN/ (3) ftp://ftp.demon.co.uk/pub/CPAN/ (4) ftp://ftp.flirble.org/pub/languages/perl/CPAN/ (5) ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/ (6) ftp://ftp.plig.org/pub/CPAN/ (7) ftp://mirror.uklinux.net/pub/CPAN/ (8) ftp://sunsite.doc.ic.ac.uk/packages/CPAN/ (9) ftp://usit.shef.ac.uk/pub/packages/CPAN/ Select as many URLs as you like, put them on one line, separated by blanks [] 4 7 8 Enter another URL or RETURN to quit: [] New set of picks: ftp://ftp.flirble.org/pub/languages/perl/CPAN/ ftp://mirror.uklinux.net/pub/CPAN/ ftp://sunsite.doc.ic.ac.uk/packages/CPAN/Eventually, you'll get to the cpan installer's shell prompt, where you need to install a few modules - the tool will do all the work for you.
cpan shell -- CPAN exploration and modules installation (v1.59_54) cpan> install Net::SMTP May already be installed - if it is, try 'force install', since it's useful to be able to set firewall and passive FTP configuration when using Net::FTP. Make sure you answer 'Y' to the question about whether you want to configure this package. cpan> install Digest::SHA1 Lots of output about how CPAN finds, builds and installs the module - watch for any errors, though it should work fine if you have installed the Cygwin packages listed above (particularly 'gcc' and 'make'). cpan> install MIME::Base64 May already be installed. CPAN: The Hard WayIf you find thatcpan doesn't work for you, perhaps because you are behind an uncooperative corporate firewall, you may have to fall back on installing modules manually. In this case, you need to read the CPAN INSTALL page and visit the CPAN search site to search for each module you require. Usually installation simply involves downloading the module distribution into a temporary directory and unpacking it (a .tar.gz or .tgz file is unpacked using tar zxvf file). Then do the following:
$ perl Makefile.PL $ make $ make test $ make installThe make test step should not be skipped - for example, one known problem is with the Digest::SHA1 module on Windows NT, which does not pass its tests and does not work. This causes problems with password encoding. In this event you can use another encoding scheme or switch to unencoded passwords. There may be other problems on the various Windows configurations, and you can save yourself a lot of time.
Re-locking RCS files7. Re-locking files First, some testing: in your browser, go to http://yourdomain.com/bin/testenv - this provides a lot of detail, including warnings. Write down the Apache server's userid that is given by this script - typically either 'system' or 'administrator' - I'll assume 'system' from now on.
rcs -u and rcs -l, but it's a painfully manual process. Instead, just use Perl again to mass-edit all the RCS files, as follows:
$ cd /twiki/data $ : Make a backup of all files $ tar czvf all-files.tar.gz */* $ : Test edit a single file to check your typing $ perl -pi~~~ -e 'NR <= 10 && s/nobody:/system:/ ' Main/WebIndex.txt,v $ diff Main/WebIndex.txt,v Main/WebIndex.txt,v~~~ 5c5 < system:1.2; strict; --- > nobody:1.2; strict; $ : Now edit all the RCS files at once - use cursor-up to recall previous command $ perl -pi~~~ -e 'NR <= 10 && s/nobody:/system:/ ' */*,v $ : Check for any remaining files not edited $ grep 'strict;$' */*,v | grep -v system $ : Clean up - type this very carefully $ rm */*~~~
Email setup8. Email setup for notification and registration You need to set theSMTPMAILHOST in TWikiPreferences to an SMTP email host that is reachable and currently working. Otherwise you may get a confusing message from TWiki (fixed in TWiki:Codev.TWikiRelease01Feb2003) when registering new users or running mailnotify (for WebNotify), along the lines of:
Software Error: Can't call method "mail" on an undefined value at ../lib/TWiki/Net.pm line 187.There are other settings to be made in TWikiPreferences, e.g. the WIKIWEBMASTER and (probably) the SMTPSENDERHOST (normally your mail server or TWiki server). See the TWikiInstallationGuide for more details, what's listed here is just enough to let you run the basic tests.
Testing your TWiki installationIt is important to test your TWiki installation before you release it to other users or put any significant data into it. Here are the main things to test:
TroubleshootingIf anything doesn't work, go back and check the configuration of the Apachehttpd.conf file, and TWiki.cfg. Have a look at the Apache error log, c:/apache/logs/error_log, and the TWiki error log, /twiki/data/log*.txt, and if necessary enable debugging on selected scripts (the commands are right at the top of each script) - the results go into /twiki/data/debug.txt. There is also a /twiki/data/warning.txt file that contains less serious messages.
See TWiki:Codev.TWikiPatches in case there are patches (i.e. specific code changes) for particular problems that may affect you (e.g. TWiki:Codev.ChangePasswordOnWin2K).
If you find that the Index feature doesn't work, or topic name searches fail, you should check you have set $egrepCmd and $fgrepCmd correctly, as mentioned above.
PermissionsTWiki:Codev.CygWin has several models for how it does security:
Next StepsSee the TWikiInstallationGuide for other setup. In particular, you'll probably want to refer to the section on basic authentication - remember to usec:/twiki type filenames (i.e. Windows format) since you are using Apache for Windows.
Improved authenticationYou may want to investigate TWiki:Codev.WindowsInstallModNTLM, which describes how to add an Apache module so that TWiki:Codev.InternetExplorer users are automatically authenticated based on their Windows domain login - this avoids TWiki:Codev.GettingTheUsernameWrong and TWiki:Codev.ForgettingPasswords, which are usually very common among TWiki users. As of the TWiki:Codev.TWikiRelease01Sep2004, there is built in support for several apache based authentication modes. The TWikiInstallationGuide has step-by-step instructions.Improved performanceSee TWiki:Codev.WindowsModPerlInstallCookbook and TWiki:Codev.ModPerl for information on installing TWiki under Apache'smod_perl - this is somewhat more complex and follows a different model, so it's best to get some experience with TWiki, Apache and Perl first.
Format of filenamesIn your TWiki on Windows installation, it's worth remembering that:
CreditsMaterial in this cookbook is heavily based on the enormous number of contributions in TWiki:Codev.TWikiOnWindowsArchive and related topics - too many people to thank, but have a look at the contributor list to TWiki:Codev.TWikiOnWindowsArchive to get an idea! People who've tested or reviewed this document and provided valuable feedback include: -- TWiki:Main.BernardFarrell-- TWiki:Main.BerndSchiffer -- TWiki:Main.ChrisKeith -- TWiki:Main.CrawfordCurrie -- TWiki:Main.DavideBaroncelli -- TWiki:Main.DavidLeBlanc -- TWiki:Main.JerryWard -- TWiki:Main.MartinWittmann -- TWiki:Main.MaryDeMarco -- TWiki:Main.MattWilkie -- TWiki:Main.MikeBytnar -- TWiki:Main.PeterThoeny -- TWiki:Main.RossC -- TWiki:Main.TorbenGB -- TWiki:Main.VictorGoh -- TWiki:Main.WolframJahn | ||||||||||||||||||||||||||||
TWiki Upgrade GuideUpgrade from the previous TWiki 01-Feb-2003 production release to TWiki 01-Sep-2004OverviewThis guide describes how to upgrade from TWiki 01-Feb-2003 to TWiki 01-Sep-2004. This is a major new release. You can chose between an automated upgrade using a script or a manual update.Upgrade Requirements
Major Changes Compared to TWiki 01-Feb-2003
Automated Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 ReleaseWith the 01-Sep-2004 Release, for the first time, comes a helper script for upgrading from a previous version. This feature is currently at beta stage, it has only been sanity tested under Unix. It should be worth giving it a try, it won't mess up your existing TWiki installation because it leaves that untouched. If you would prefer to do things manually than trust a beta script, skip to the manual upgrade procedure below. The upgrade script is called"UpgradeTwiki", and is found in the root of the distribution.
It will:
UpgradeTwiki will give you the final instructions.
There are a few points worth noting:
UpgradeTwiki more robust.
Manual Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 ReleaseThe following steps describe the upgrade assuming that$TWIKIROOT is the root of your current 01-Feb-2003 release. As written this will require some downtime. A process for switching over without downtime is described at the end of this section.
$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.
Known Issues
| |||||||||||||||||||||||||||||
| Changed: | ||||||||
| < < |
TWiki Reference Manual (01-Dec-2001) | |||||||
| > > |
TWiki Reference Manual (03 Sep 2004 $Rev: 1742 $) | |||||||
|
This page contains all documentation topics as one long, complete reference sheet. Doubleclick anywhere to return to the top of the page. | ||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
TWiki Reference Manual (01-Sep-2001) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
TWiki Reference Manual (01-Dec-2001) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This page contains all documentation topics as one long, complete reference sheet. Doubleclick anywhere to return to the top of the page. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Line: 15 to 15 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Related Topics: TWikiSite, TWikiHistory, TWikiPlannedFeatures, TWikiEnhancementRequests | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Note: Included topic TWikiImplementationNotes? does not exist yet | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki Installation GuideInstallation instructions for the TWiki 01-Sep-2004 production release. If you are reading this on your own TWiki installation, please get the latest installation guide (TWiki:TWiki.TWikiInstallationGuide), as this often has important updates to resolve installation issues. These installation steps are based on the Apache web server on Linux. TWiki runs on other web servers and Unix systems, and should be fine with any web server and OS that meet the system requirements. Official documentation for platforms other than Linux is somewhat limited, so please check the topics listed below, they include some important tips for HP-UX, Solaris, OS/390, and many other platforms.
Standard InstallationDownload the TWiki 01-Sep-2004 distribution in Unix ZIP format from http://TWiki.org/download.html. Please review the AdminSkillsAssumptions before you install TWiki.Step 1: Create & Configure the Directories
Example
Aletrnative Step 1: Create & Configure the Directories for Non-Root AccountsTo install TWiki on a system where you don't have Unix/Linux root (administrator) privileges, for example, on a hosted Web account or an intranet server administered by someone else:
Note: Don't worry if you are not able to put the twiki/lib directory at the same level as the twiki/bin directory (e.g. because CGI bin directories can't be under your home directory and you don't have root access). You can create this directory elsewhere and configure the /twiki/bin/setlib.cfg file (done in Step 3)
Step 2: Set File Permissions
Step 3: Edit the Configuration Files
Step 4: Internationalisation Setup (Optional)By default, TWiki is configured to support US ASCII letters (no accents) in WikiWords, and ISO-8859-1 (Western European) characters in page contents. If that's OK for you, skip this step. If your Wiki will be used by non-English speakers, TWiki can be configured for Internationalisation ('I' followed by 18 letters, then 'N', or I18N). Specifically, TWiki will support suitable accented characters in WikiWords (as well as languages such as Japanese or Chinese in which WikiWords do not apply), and will support virtually any character set in the contents of pages. NOTE: TWiki does not currently support UTF-8, so you are advised not to use this - however, improved UTF-8 support is under development, see TWiki:Codev/ProposedUTF8SupportForI18N. To configure internationalisation suppport:
Trouble with I18N?If international characters in WikiWords do not seem to work, and you are on Perl 5.6 or higher, you may need to set theTWiki.cfg parameter $localeRegexes to 0 - this disables some features but enables TWiki to work even if your system has locales that do not work. Then, set the $upperNational and $lowerNational parameters to the valid upper and lower case accented letters for your locale.
$useLocale set to 1 and set $localeRegexes to 0, then set $upperNational and $lowerNational - if testenv generates the lists of characters for you, your locales are working so there is no need to set $localeRegexes to 0 in this case. See the comments in TWiki.cfg for more information.
Step 5: Configure Site-Wide Email Preferences
Step 6: Finish Up from Your Browser
Additional Server-Level OptionsWith your new TWiki installation up and running, you can manage most aspects of your site from the browser interface. Only a few functions require access to the server file system, via Telnet or FTP. You can make these server-level changes during installation, and at any time afterwards.Enabling Authentication of Users
WYSIWYG EditorAt this time, TWiki does not ship with an "what you see is what you get" editor. TWiki:Codev/IntegrateHtmlAreaEditor describes how to integrate an HTML editor.Public.UserName or %MAINWEB%.UserName format. (The %MAINWEB% variable is an advantage if you ever change the Public web name, but the standard Public.UserName is easier for users to enter, which is the bottom line!)
TWiki File System InfoSee Appendix A: TWiki File System for an installed system snapshot and descriptions of all files in the TWiki 01-Sep-2004 distribution. -- TWiki:Main/PeterThoeny - 29 Aug 2004-- TWiki:Main/MikeMannix - 16 May 2002 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki Upgrade GuideUpgrade from the previous TWiki 01-Feb-2003 production release to TWiki 01-Sep-2004OverviewThis guide describes how to upgrade from TWiki 01-Feb-2003 to TWiki 01-Sep-2004. This is a major new release. You can chose between an automated upgrade using a script or a manual update.Upgrade Requirements
Major Changes Compared to TWiki 01-Feb-2003
Automated Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 ReleaseWith the 01-Sep-2004 Release, for the first time, comes a helper script for upgrading from a previous version. This feature is currently at beta stage, it has only been sanity tested under Unix. It should be worth giving it a try, it won't mess up your existing TWiki installation because it leaves that untouched. If you would prefer to do things manually than trust a beta script, skip to the manual upgrade procedure below. The upgrade script is called"UpgradeTwiki", and is found in the root of the distribution.
It will:
UpgradeTwiki will give you the final instructions.
There are a few points worth noting:
UpgradeTwiki more robust.
Manual Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 ReleaseThe following steps describe the upgrade assuming that$TWIKIROOT is the root of your current 01-Feb-2003 release. As written this will require some downtime. A process for switching over without downtime is described at the end of this section.
$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.
Known Issues
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki User AuthenticationTWiki site access control and user activity tracking options TWiki does not authenticate users internally, it depends on theREMOTE_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.
Authentication OptionsNo special installation steps are required if the server is already authenticated. If it isn't, you have these options for controlling user access:
Partial AuthenticationTracking by IP address is an experimental feature, enabled inlib/TWiki.cfg. It lets you combine open access to some functions, with authentication on others, with full user activity tracking:
TWiki Username vs. Login UsernameThis section applies only if your TWiki site is installed on a server that is both authenticated and on an intranet. TWiki internally manages two usernames: Login Username and TWiki Username.
NOTE: To correctly enter a WikiName - your own or someone else's - be sure to include the Public web name in front of the Wiki username, followed by a period, and no spaces. Ex: Changing PasswordsChange and reset passwords using forms on regular pages. Use TWikiAccessControl to restrict use as required.
Forgot your old password? Then use ResetPassword instead. Please only use ResetPassword in case you really forgot your password. Thank you. After submitting this form your password will be changed. If you have questions please contact the TWiki webmaster pete@coho.org.
Please only use this ResetPassword form in case you really forgot your password. Otherwise just change it using ChangePassword. Thank you. After submitting this form you will see a page with your new password appearing encrypted. You will have to e-mail this information to the Wiki webmaster, pete@coho.org, who will set your account to use the new password.-- TWiki:Main.MikeMannix - 19 May 2002 -- TWiki:Main.PeterThoeny - 25 Apr 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki Access ControlRestricting read and write access to topics and webs, by Users and groups TWikiAccessControl allows you restrict access to single topics and entire webs, by individual user and by user Groups, in three areas: view; edit & attach; and rename/move/delete. Access control, combined with TWikiUserAuthentication, lets you easily create and manage an extremely flexible, fine-grained privilege system.An Important Control ConsiderationOpen, freeform editing is the essence of WikiCulture - what makes TWiki different and often more effective than other collaboration tools. For that reason, it is strongly recommended that decisions to restrict read or write access to a web or a topic are made with care - the more restrictions, the less Wiki in the mix. Experience shows that unrestricted write access works very well because:
Authentication vs. Access ControlAuthentication: Identifies who a user is based on a login procedure. See TWikiUserAuthentication. Access control: Restrict access to content based on users and groups once a user is identified.Users and GroupsAccess control is based on the familiar concept of Users and Groups. Users are defined by their WikiNames. They can then be organized in unlimited combinations by inclusion in one or more user Groups. For convenience, Groups can also be included in other Groups.Managing UsersA user can create an account in TWikiRegistration. The following actions are performed:
Managing GroupsGroups are defined by group topics created in thePublic web, like the TWikiAdminGroup?. To create a new group:
Restricting Write AccessYou can define who is allowed to make changes to a web or a topic.Deny Editing by TopicDenying editing of a topic also restricts file attachment; both privileges are assigned together.
Deny Editing by WebRestricting web-level editing blocks creating new topics, changing topics or attaching files.
Restricting Rename AccessYou can define who is allowed to rename, move or delete a topic, or rename a web.Deny Renaming by TopicTo allow a user to rename, move or delete a topic, they also need write (editing) permission. They also need write access to change references in referring topics.
Deny Renaming by WebYou can define restrictions of who is allowed to rename a TWiki web.
Restricting Read AccessYou can define who is allowed to see a web.Deny Viewing by TopicDENYTOPICVIEW / 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.
Deny Viewing by WebYou can define restrictions of who is allowed to view a TWiki web. You can restrict access to certain webs to selected Users and Groups, by:
Obfuscate WebsThe idea is to keep a web hidden by not publishing its URL and by preventing theall webs search option from accessing obfuscated webs. Do so by enabling the NOSEARCHALL variable in WebPreferences:
Authenticate all Webs and Restrict Selected WebsUse the following setup to authenticate users for topic viewing in all webs and to restrict access to selected webs:
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.
Authenticate and Restricting Selected Webs OnlyUse the following setup to provide unrestricted viewing access to open webs, with authentication only on selected webs:
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.
Hiding Control SettingsThe SuperAdminGroupBy mistyping a user or group name in the ALLOWTOPICCHANGE setting, it's possible to lock a topic so that no-one can edit it from a browser. To avoid this, you can create Web-based superusers:
$superAdminGroup = "TWikiAdminGroup";
-- TWiki:Main.MikeMannix - 12 May 2002 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
TWiki TemplatesDefinition of the templates used to render all HTML pages displayed in TWikiOverviewThe new modular template system offers flexible, easy control over the layout of all TWiki pages. The master template approach groups parts that are shared by several templates - like headers and footers - in a common file. Special variables allow individual layouts to include parts from a master template - variables are mixed with regular HTML markup for template-specific content. Templates are used to define page layout, and also to supply default content for new pages.Major changes from the previous template systemWhere the old templates were each complete HTML documents, the new templates are defined using variables to include template parts from a master file. You can now change one instance of a common element to update all occurrences; previously, every affected template had to be updated. This simplifies the conversion of templates into XHTML format, and provides a more versatile solution for templates and for TWikiSkins. The new system:
How Template Variables Work
Types of TemplateThere are three types of template:
Master TemplatesCommon parts, appearing in two or more templates, can be defined in a master template and then shared by others:twiki.tmpl is the default master template.
HTML Page TemplatesTWiki uses HTML template files for all actions, like topic view, edit, and preview. This allows you to change the look and feel of all pages by editing just a few template files. Templates are stored either in thetwiki/templates directory or in user topics. As an example, twiki/templates/view.tmpl is the template file for the twiki/bin/view script.
Additionally (and primarily for use in %TMPL:INCLUDE{}%) the template name may be a wiki topic name, specified as Web.Topic, in which case the search is:
If Web is not specified in the INCLUDE, it defaults to TWiki, and the search to the first type. Special variables are used in templates, especially in view, to display meta data.
Template TopicsTemplate topics define the default text for new topics. There are three types of template topic: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:
Edit Template Topics and Variable ExpansionThe following variables get expanded when a user creates a new topic based on a template topic:Notes:
Template Topics in ActionHere is an example for creating new topics based on a specific template topic: The above form asks for a topic name. A hidden input tag namedtemplatetopic specifies ExampleTopicTemplate as the template topic to use. Here is the HTML source of the form:
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
* New example topic:
<input type="text" name="topic" value="ExampleTopic%SERVERTIME{$yearx$mox$day}%" size="23" />
<input type="hidden" name="templatetopic" value="ExampleTopicTemplate" />
<input type="hidden" name="topicparent" value="%TOPIC%" />
<input type="hidden" name="onlywikiname" value="on" />
<input type="hidden" name="onlynewtopic" value="on" />
<input type="submit" value="Create" />
(date format is <nop>YYYYxMMxDD)
</form>
The edit scipt understands the following parameters, typically supplied by HTML input fields:
%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%
Templates by ExampleAttached is an example of an oops based templateoopsbase.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.
Base template oopsbase.tmplThe first line declares a delimiter variable called "sep", used to separate multiple link items. The variable can be called anywhere by writing%TMPL:P{"sep"}%
Test template oopstest.tmplEach oops template basically just defines some variables and includes the base template that does the layout work.
Sample screen shot of oopstest.tmplWith URL:.../bin/oops/Sandbox/TestTopic2?template=oopstest¶m1=WebHome¶m2=WebNotify
Known Issues
-- TWiki:Main.PeterThoeny - 15 Aug 2004 -- TWiki:Main.MikeMannix - 14 Sep 2001 -- TWiki:Main.DavidLeBlanc - 11 Mar 2002 TWiki SkinsSkins overlay regular templates with alternate header/footer layouts; topic text is not affectedOverviewSkins are customized TWikiTemplates files. You can use skins to change the look of a TWiki topic, for example, the layout of the header and footer. Rendered text between header and footer does not change. You can also use skins to define an alternate view, like a view optimized for printing.Defining SkinsSkin files are located in thetwiki/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.
Variables in SkinsYou can use template variables, TWikiVariables, and other predefined variables to compose your skins. Some commonly used variables in skins:
The "Go" Box and Navigation BoxThe%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:
Using Cascading Style SheetsAlthough work is underway at TWiki:Codev.CssClassNames, the regular templates files currently do not use style sheets. Many skin developers, however, choose to use them; it helps in separating style from content. Example: To use a style sheet for the broadcast message, add this toview.myskin.tmpl:
<style type="text/css">
.broadcastmessage {
background: yellow; display:block;
border-style:solid;border-width: 2px;border-color:red;
}
.broadcastmessage strong {color: red}
</style>
Then add a div tag to the %BROADCASTMESSAGE% variable located after the #PageTop anchor or after the opening form tag:
<div class="broadcastmessage"> %BROADCASTMESSAGE% </div> Attachment TablesControlling the look and feel of attachment tables is a little bit more complex than for the rest of a skin. By default the attachment table is a standard TWiki table, and the look is controlled in the same ay as other tables. In a very few cases you may want to change the content of the table as well. The format of standard attachment tables is defined through the use of special TWiki template macros which by default are defined in thetemplates/twiki.tmpl template using the %TMPL:DEF macro syntax described in TWikiTemplates. These macros are:
ATTACH:row macros are expanded for each file in the attachment table, using the following special tags:
twiki.tmpl template file. However, to simplify upgrading, you should avoid doing this. Instead, write a skin-specific template file e.g. attach.myskin.tmpl and use %TMPL:INCLUDE{attach.myskin.tmpl}% to include it in each of your skin files. As long as it it included after twiki.tmpl, your macro definitions will override the defaults defined there.
Packaging and Publishing SkinsSee TWiki:Plugins/SkinPackagingHowTo and TWiki:Plugins/SkinDeveloperFAQBrowsing Installed SkinsYou can try all installed skins in TWikiSkinBrowser.Activating SkinsA skin can be activated in two ways:
?skin=name URL parameter overrides the SKIN Preference value.
-- TWiki:Main.PeterThoeny - 25 Jul 2004 -- TWiki:Main.CrawfordCurrie - 30 Jun 2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
TWiki Text FormattingWorking in TWiki is as easy as typing in text - exactly like email. You don't need to know HTML, though you can use it if you prefer. Links to topics are created automatically when you enter WikiWords. And TWiki shorthand gives you all the power of HTML with a simple coding system that takes no time to learn. It's all laid out below - refer back to this page in a pop-up window from the Edit screen.TWiki Editing Shorthand
Using HTMLYou can use just about any HTML tag without a problem - however, there are a few usability and technical considerations to keep in mind.HTML and TWiki Usability
TWiki HTML Rendering
TWiki and JavaScriptYou can use JavaScript for your TWiki applications. Since TWiki rendering might interfere with JavaScript code you need to escape it with HTML comments and<pre> tags:
<script type="text/javascript"> <!-- Hide JavaScript and <pre> escape TWiki rendering ... put your JavaScript code here... // Stop hiding and stop </pre> escaping TWiki rendering --> </script> HyperlinksBeing able to create links without any formatting required is a core TWiki feature, made possible with WikiWords. New TWiki linking rules are a simple extension of the syntax that provide a new set of flexible options.Internal Links
External Links
TWiki VariablesVariables are names that are enclosed in percent signs% that are expanded on the fly.
TWikiPlugin Formatting ExtensionsPlugins provide additional text formatting capabilities and can extend the functionality of TWiki into many other areas. For example, the optional SpreadSheetPlugin lets you create a spreadsheet with the same basic notation used in TWiki tables. Available Plugins are located in the Plugins web on TWiki.org. Currently enabled plugins on this TWiki installation, as listed by%PLUGINDESCRIPTIONS%:
Common Editing ErrorsTWiki formatting rules are fairly simple to use and quick to type. However, there are some things to watch out for, taken from the TextFormattingFAQ:
-- TWiki:Main.PeterThoeny - 01 Aug 2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki VariablesSpecial text strings expand on the fly to display user data or system info TWikiVariables are text strings -%VARIABLE% - that expand into content whenever a page is rendered for viewing. VARIABLES are replaced by data, either user-entered or automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you can configure. You can also define custom variables, with new names and values.
Notes:
Predefined VariablesMost predefined variables return values that were either set in thelib/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.
% percent signs):
ATTACHURL -- full URL for attachments in the current topic
ATTACHURLPATH -- path of the attachment URL of the current topic
BASETOPIC -- base topic where an INCLUDE started
BASEWEB -- base web where an INCLUDE started
DISPLAYTIME -- display time
DISPLAYTIME{"format"} -- formatted display time
ENCODE{"string"} -- encodes a string
FORMFIELD{"format"} -- renders a field in the form attached to some topic
GMTIME -- GM time
GMTIME{"format"} -- formatted GM time
HOMETOPIC -- home topic in each web
HTTP_HOST -- environment variable
ICON{"type"} -- small icon of common attachment types
INCLUDE{"page"} -- include other topics or web pages
INCLUDINGTOPIC -- name of topic that includes current topic
INCLUDINGWEB -- web that includes current topic
MAINWEB -- name of Main web
METASEARCH -- special search of meta data
NOTIFYTOPIC -- name of the notify topic
PLUGINVERSION -- the version of the TWiki Plugin API
PLUGINVERSION{"name"} -- the version of an installed Plugin
PUBURL -- the base URL of attachments
PUBURLPATH -- the base URL path of attachments
REMOTE_ADDR -- environment variable
REMOTE_PORT -- environment variable
REMOTE_USER -- environment variable
REVINFO -- revision information of current topic
REVINFO{"format"} -- formatted revision information of topic
SCRIPTURL -- script URL of TWiki
SCRIPTURLPATH -- script URL path of TWiki
SCRIPTSUFFIX -- script suffix
SEARCH{"text"} -- search content
SERVERTIME -- server time
SERVERTIME{"format"} -- formatted server time
SPACEDTOPIC -- topic name, spaced and encoded
STARTINCLUDE -- start position of topic text if included
STATISTICSTOPIC -- name of statistics topic
STOPINCLUDE -- end position of topic text if included
TOC -- table of contents of current topic
TOC{"Topic"} -- table of contents
TOPIC -- name of current topic
TOPICLIST{"format"} -- topic index of a web
TWIKIWEB -- name of TWiki documentation web
URLPARAM{"name"} -- get value of a URL parameter
USERNAME -- your login username
VAR{"NAME" web="Web"} -- get a preference value from another web
WEB -- name of current web
WEBLIST{"format"} -- index of all webs
WEBPREFSTOPIC -- name of web preferences topic
WIKIHOMEURL -- site home URL
WIKINAME -- your Wiki username
WIKIPREFSTOPIC -- name of site-wide preferences topic
WIKITOOLNAME -- name of your TWiki site
WIKIUSERNAME -- your Wiki username with web prefix
WIKIUSERSTOPIC -- name of topic listing all registers users
WIKIVERSION -- the version of the installed TWiki engine
Preferences VariablesAdditional variables are defined in the preferences topics:
%BR% for line break, colors like %RED% for colored text and small icons like %H% for a Setting Preferences
Creating Custom Variables
Example: Create a custom logo variable the TWiki web-- TWiki:Main.PeterThoeny - 14 Aug 2004 -- TWiki:Main.MikeMannix - 12 May 2002 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
TWiki Formatted Search ResultsInline search feature allows flexible formatting of search result The%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 |" }%).
SyntaxTwo parameters can be used to specify a customized search result: 1.header="..." parameter
Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. Example: header="| *Topic:* | *Summary:* |"
2. format="..." parameter
Use the format parameter to specify the format of one search hit.
Example: format="| $topic | $summary |"
Variables that can be used in the format string:
ExamplesBullet list showing topic name and summaryWrite this:%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }%
To get this:
Table showing form field values of topics with a formIn a web where there is a form that contains aTopicClassification field, an OperatingSystem field and an OsVersion field we could write:
| *Topic:* | *OperatingSystem:* | *OsVersion:* | %SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%
To get this:
Extract some text from a topic using regular expressionWrite this:%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%
To get this:
TWiki FAQs:
Nested SearchSearch can be nested. For example, search for some topics, then form a new search for each topic found in the first search. The idea is to build the nested search string using a formatted search in the first search. Here is an example. Let's search for all topics that contain the word "culture" (first search), and let's find out where each topic found is linked from (second search).
%SEARCH{ "culture" format=" * $topic is referenced by:$n * $percntSEARCH{ \"$topic\" format=\"$dollartopic\" nosearch=\"on\" nototal=\"on\" separator=\", \" }$nop%" nosearch="on" nototal="on" }%
To get this:
$dollarpercntSEARCH{ for level three, $dollardollarpercntSEARCH{ for level four, etc.
Most recently changed pagesWrite this:%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="| [[$topic]] | $wikiusername | $date |" limit="7" }%
To get this:
Search with conditional outputA regular expression search is flexible, but there are limitations. For example, you cannot show all topics that are up to exactly one week old, or create a report that shows all records with invalid form fields or fields within a certain range, etc. You need some additional logic to format output based on a condition:
%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}% %SEARCH{ "." scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) < $GET(weekold), <nop>, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%
Embedding search forms to return a formatted resultUse an HTML form and an embedded formatted search on the same topic. You can link them together with an%URLPARAM{"..."}% variable. Example:
Write this:
<form action="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%">
Find Topics:
<input type="text" name="q" size="32" value="%URLPARAM{"q"}%" />
<input type="submit" value="Search" />
</form>
Result:
%SEARCH{ search="%URLPARAM{"q"}%" format=" * $web.$topic: %BR% $summary" nosearch="on" }%
To get this:
Result:
Number of topics: 0
-- TWiki:Main.PeterThoeny - 26 Jul 2004
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki FormsForm-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web & topicOverviewBy adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved. Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see #FormsVsCategoryTablesDefining a Form TemplateA Form Template is simply a page containing your form, defined as a table where each row is one form field.Form Template Elements
Defining a Form in One Topic
Example: Defining a Form with Multiple TopicsForms can also be defined by using form templates that retrieve field values from one or more separate topics:
Example: WebFormTemplate
Enabling Forms by WebForms are enabled on a per web basis. TheWEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:
Including Forms in New Topics
Setting Up Multiple Form Options
Form Data StorageThe form topic name, fields and values are stored as TWikiMetaData - the order of the field/value pairs is the same as in the template.Using Form DataTWikiForms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData,SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
Main Changes from Category TablesThe Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
Importing Category Table DataOn upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the oldtwikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.
The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
data/warning.txt.
Using Forms For SettingsExample process to change your WebPreferences to use forms instead of{3 spaces}* Set statements:
S attribute has been specified (S for Setting).
If you change the form, the changes will not take affect until you edit and save the preferences' topics again.
Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.
A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.
Another example, this one using EditTablePlugin, source:
%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%
Result (after some editing):
-- TWiki:Main.JohnTalintyre - 16 Aug 2001 -- TWiki:Main.MikeMannix - 05 Jan 2002 -- TWiki:Main.PeterThoeny - 25 Apr 2004 -- TWiki:Main.MattWilkie - 27 Jul 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
TWiki PluginsPlug-in enhanced feature add-ons, with a Plugin API for developersOverviewYou can add Plugins to extend TWiki's functionality, without altering the core program code. A plug-in approach lets you:
Preinstalled PluginsTWiki comes with a set of Plugins as part of the standard installation.
Installing PluginsEach TWikiPlugin comes with full documentation: step-by-step installation instructions, a detailed description of any special requirements, version details, and a working example for testing. Most Plugins can be installed in three easy steps, with no programming skills required:
SomePlugin), there's a separate development page.
On-Site PretestingTo test new Plugins on your installation before making them public, you may want to use one of these two approaches:
Checking that Plugins are Working on a Live ServerInstalledPlugins shows which Plugins are: 1) installed, 2) loading properly and 3) what TWiki:Codev.PluginHandlers they invoke. Any failures are shown in the Errors section.A Note on Plugin PerformanceThe performance of the system depends on the number of Plugins installed and on the Plugin implementation. Some Plugins impose no measurable performance decrease, some do. For example,outsidePREHandler is an expensive callback function, or a Plugin might use many Perl libraries that need to be initialized with each page view (unless you run mod_perl). It is recommended to measure the performance with and without a new Plugin. Example for Unix:time wget -qO /dev/null http://www.coho.org/twiki-public/bin/view/TWiki/AbcPlugin
In case you need to install an "expensive" Plugin and you need its functionality only in one web you can place the Plugin topic into that web. TWiki will initialize the Plugin only if the Plugin topic is found (which won't be the case for other webs.)
Managing PluginsWhen you finish installing a Plugin, you should be able to read the user instructions and go. In fact, some Plugins require additional settings or offer extra options that you have to select. Also, you may want to make a Plugin available only in certain webs, or temporarily disable it. And may want to list all available Plugins in certain topics. You can handle all of these management tasks with simple procedures.Setting PreferencesInstalled Plugins can be toggled on or off, site-wide or by web, through TWikiPreferences and individual WebPreferences:
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:
Listing Active PluginsPlugin status variables let you list all active Plugins wherever needed. There are two list formats:
DEMO: Automatically List Active Plugins Using Variables Using The TWiki Plugin APIThe Application Programming Interface (API) for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module. The Plugin API is new to the Production version of TWiki with the 01-Sep-2001 release.Available Core FunctionsThe TWikiFuncModule (lib/TWiki/Func.pm) implements ALL official Plugin functions. Plugins should ONLY use functions published in this module.
Func.pm, you run the risk of creating security holes. Also, your Plugin will likely break and require updating when you upgrade to a new version of TWiki.
Predefined HooksIn addition to TWiki core functions, Plugins can use predefined hooks, or call backs, listed in thelib/TWiki/Plugins/EmptyPlugin.pm module.
commonTagsHandler or startRenderingHandler for rendering tasks:
Hints on Writing Fast Plugins
Plugin Version DetectionTo eliminate the incompatibility problems bound to arise from active open Plugin development, a Plugin versioning system is provided for automatic compatibility checking.
Creating PluginsWith a reasonable knowledge of the Perl scripting language, you can create new Plugins or modify and extend existing ones. Basic plug-in architecture uses an Application Programming Interface (API), a set of software instructions that allow external code to interact with the main program. The TWiki Plugin API Plugins by providing a programming interface for TWiki.The DefaultPlugin Alternative
Anatomy of a PluginA basic TWiki Plugin consists of two elements:
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.
Creating the Perl ModuleCopy filelib/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(); Writing the Documentation TopicThe Plugin documentation topic contains usage instructions and version details. It serves the Plugin files as FileAttachments for downloading. (The doc topic is also included in the distribution package.) To create a documentation topic:
OUTLINE: Doc Topic Contents Packaging for DistributionA minimum Plugin release consists of a Perl module with a WikiName that ends inPlugin, ex: MyFirstPlugin.pm, and a documentation page with the same name(MyFirstPlugin.txt).
Publishing for Public UseYou can release your tested, packaged Plugin to the TWiki community through the TWiki:Plugins web. All Plugins submitted to TWiki.org are available for download and further development in TWiki:Plugins/PluginPackage. Publish your Plugin in these steps:
Recommended Storage of Plugin DataPlugins sometimes need to store data. This can be Plugin internal data like cache data, or generated data for the browser like images. The following is a recommendation where to store the data.Where to store Plugin Internal DataIn case the Plugin generates data just for internal use, or data which is not specific to a topic, store it in the Plugin's attachment directory.
Where to Store Data for Topics using the PluginIn case the Plugin generates data which is specific to a topic, store it in the topic's attachment directory.
sub _make_filename
{
my ( $web, $topic, $name ) = @_;
# Create web directory "pub/$web" if needed
my $dir = TWiki::Func::getPubDir() . "/$web";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
# Create topic directory "pub/$web/$topic" if needed
$dir .= "/$topic";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
return "$dir/_FooBarPlugin_$name";
}
-- TWiki:Main/PeterThoeny - 14 Aug 2004 -- TWiki:Main/AndreaSterbini - 29 May 2001 -- TWiki:Main/MikeMannix - 03 Dec 2001 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
File AttachmentsEach topic can have one or more files of any type attached to it by using the Attach screen to upload (or download) files from your local PC. Attachments are stored under revision control: uploads are automatically backed up; all previous versions of a modified file can be retrieved.What Are Attachments Good For?File Attachments can be used to create powerful customized groupware solutions, like file sharing and document management systems, and quick Web page authoring.Document Management System
File Sharing
Web Authoring
Uploading Files
Downloading Files
Moving Attachment FilesAn attachment can be moved between topics.
Deleting AttachmentsMove unwanted Attachments to webTrash, topic TrashAttachment.
Linking to Attached Files
File Attachment Contents TableFiles attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click Attach.
File Attachment ControlsClicking on aManage link takes you to a new page that looks like this:
Known Issues
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
Note: Included topic MonitoringSiteActivity? does not exist yet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
TWiki TemplatesDefinition of the templates used to render all HTML pages displayed in TWikiOverviewThe new modular template system offers flexible, easy control over the layout of all TWiki pages. The master template approach groups parts that are shared by several templates - like headers and footers - in a common file. Special variables allow individual layouts to include parts from a master template - variables are mixed with regular HTML markup for template-specific content. Templates are used to define page layout, and also to supply default content for new pages.Major changes from the previous template systemWhere the old templates were each complete HTML documents, the new templates are defined using variables to include template parts from a master file. You can now change one instance of a common element to update all occurrences; previously, every affected template had to be updated. This simplifies the conversion of templates into XHTML format, and provides a more versatile solution for templates and for TWikiSkins. The new system:
How Template Variables Work
Types of TemplateThere are three types of template:
Master TemplatesCommon parts, appearing in two or more templates, can be defined in a master template and then shared by others:twiki.tmpl is the default master template.
HTML Page TemplatesTWiki uses HTML template files for all actions, like topic view, edit, and preview. This allows you to change the look and feel of all pages by editing just a few template files. Templates are stored either in thetwiki/templates directory or in user topics. As an example, twiki/templates/view.tmpl is the template file for the twiki/bin/view script.
Additionally (and primarily for use in %TMPL:INCLUDE{}%) the template name may be a wiki topic name, specified as Web.Topic, in which case the search is:
If Web is not specified in the INCLUDE, it defaults to TWiki, and the search to the first type. Special variables are used in templates, especially in view, to display meta data.
Template TopicsTemplate topics define the default text for new topics. There are three types of template topic: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:
Edit Template Topics and Variable ExpansionThe following variables get expanded when a user creates a new topic based on a template topic:Notes:
Template Topics in ActionHere is an example for creating new topics based on a specific template topic: The above form asks for a topic name. A hidden input tag namedtemplatetopic specifies ExampleTopicTemplate as the template topic to use. Here is the HTML source of the form:
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
* New example topic:
<input type="text" name="topic" value="ExampleTopic%SERVERTIME{$yearx$mox$day}%" size="23" />
<input type="hidden" name="templatetopic" value="ExampleTopicTemplate" />
<input type="hidden" name="topicparent" value="%TOPIC%" />
<input type="hidden" name="onlywikiname" value="on" />
<input type="hidden" name="onlynewtopic" value="on" />
<input type="submit" value="Create" />
(date format is <nop>YYYYxMMxDD)
</form>
The edit scipt understands the following parameters, typically supplied by HTML input fields:
%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%
Templates by ExampleAttached is an example of an oops based templateoopsbase.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.
Base template oopsbase.tmplThe first line declares a delimiter variable called "sep", used to separate multiple link items. The variable can be called anywhere by writing%TMPL:P{"sep"}%
Test template oopstest.tmplEach oops template basically just defines some variables and includes the base template that does the layout work.
Sample screen shot of oopstest.tmplWith URL:.../bin/oops/Sandbox/TestTopic2?template=oopstest¶m1=WebHome¶m2=WebNotify
Known Issues
-- TWiki:Main.PeterThoeny - 15 Aug 2004 -- TWiki:Main.MikeMannix - 14 Sep 2001 -- TWiki:Main.DavidLeBlanc - 11 Mar 2002 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
File AttachmentsEach topic can have one or more files of any type attached to it by using the Attach screen to upload (or download) files from your local PC. Attachments are stored under revision control: uploads are automatically backed up; all previous versions of a modified file can be retrieved.What Are Attachments Good For?File Attachments can be used to create powerful customized groupware solutions, like file sharing and document management systems, and quick Web page authoring.Document Management System
File Sharing
Web Authoring
Uploading Files
Downloading Files
Moving Attachment FilesAn attachment can be moved between topics.
Deleting AttachmentsMove unwanted Attachments to webTrash, topic TrashAttachment.
Linking to Attached Files
File Attachment Contents TableFiles attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click Attach.
File Attachment ControlsClicking on aManage link takes you to a new page that looks like this:
Known Issues
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
TWiki SkinsSkins overlay regular templates with alternate header/footer layouts; topic text is not affectedOverviewSkins are customized TWikiTemplates files. You can use skins to change the look of a TWiki topic, for example, the layout of the header and footer. Rendered text between header and footer does not change. You can also use skins to define an alternate view, like a view optimized for printing.Defining SkinsSkin files are located in thetwiki/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.
Variables in SkinsYou can use template variables, TWikiVariables, and other predefined variables to compose your skins. Some commonly used variables in skins:
The "Go" Box and Navigation BoxThe%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:
Using Cascading Style SheetsAlthough work is underway at TWiki:Codev.CssClassNames, the regular templates files currently do not use style sheets. Many skin developers, however, choose to use them; it helps in separating style from content. Example: To use a style sheet for the broadcast message, add this toview.myskin.tmpl:
<style type="text/css">
.broadcastmessage {
background: yellow; display:block;
border-style:solid;border-width: 2px;border-color:red;
}
.broadcastmessage strong {color: red}
</style>
Then add a div tag to the %BROADCASTMESSAGE% variable located after the #PageTop anchor or after the opening form tag:
<div class="broadcastmessage"> %BROADCASTMESSAGE% </div> Attachment TablesControlling the look and feel of attachment tables is a little bit more complex than for the rest of a skin. By default the attachment table is a standard TWiki table, and the look is controlled in the same ay as other tables. In a very few cases you may want to change the content of the table as well. The format of standard attachment tables is defined through the use of special TWiki template macros which by default are defined in thetemplates/twiki.tmpl template using the %TMPL:DEF macro syntax described in TWikiTemplates. These macros are:
ATTACH:row macros are expanded for each file in the attachment table, using the following special tags:
twiki.tmpl template file. However, to simplify upgrading, you should avoid doing this. Instead, write a skin-specific template file e.g. attach.myskin.tmpl and use %TMPL:INCLUDE{attach.myskin.tmpl}% to include it in each of your skin files. As long as it it included after twiki.tmpl, your macro definitions will override the defaults defined there.
Packaging and Publishing SkinsSee TWiki:Plugins/SkinPackagingHowTo and TWiki:Plugins/SkinDeveloperFAQBrowsing Installed SkinsYou can try all installed skins in TWikiSkinBrowser.Activating SkinsA skin can be activated in two ways:
?skin=name URL parameter overrides the SKIN Preference value.
-- TWiki:Main.PeterThoeny - 25 Jul 2004 -- TWiki:Main.CrawfordCurrie - 30 Jun 2004 TWiki PluginsPlug-in enhanced feature add-ons, with a Plugin API for developersOverviewYou can add Plugins to extend TWiki's functionality, without altering the core program code. A plug-in approach lets you:
Preinstalled PluginsTWiki comes with a set of Plugins as part of the standard installation.
Installing PluginsEach TWikiPlugin comes with full documentation: step-by-step installation instructions, a detailed description of any special requirements, version details, and a working example for testing. Most Plugins can be installed in three easy steps, with no programming skills required:
SomePlugin), there's a separate development page.
On-Site PretestingTo test new Plugins on your installation before making them public, you may want to use one of these two approaches:
Checking that Plugins are Working on a Live ServerInstalledPlugins shows which Plugins are: 1) installed, 2) loading properly and 3) what TWiki:Codev.PluginHandlers they invoke. Any failures are shown in the Errors section.A Note on Plugin PerformanceThe performance of the system depends on the number of Plugins installed and on the Plugin implementation. Some Plugins impose no measurable performance decrease, some do. For example,outsidePREHandler is an expensive callback function, or a Plugin might use many Perl libraries that need to be initialized with each page view (unless you run mod_perl). It is recommended to measure the performance with and without a new Plugin. Example for Unix:time wget -qO /dev/null http://www.coho.org/twiki-public/bin/view/TWiki/AbcPlugin
In case you need to install an "expensive" Plugin and you need its functionality only in one web you can place the Plugin topic into that web. TWiki will initialize the Plugin only if the Plugin topic is found (which won't be the case for other webs.)
Managing PluginsWhen you finish installing a Plugin, you should be able to read the user instructions and go. In fact, some Plugins require additional settings or offer extra options that you have to select. Also, you may want to make a Plugin available only in certain webs, or temporarily disable it. And may want to list all available Plugins in certain topics. You can handle all of these management tasks with simple procedures.Setting PreferencesInstalled Plugins can be toggled on or off, site-wide or by web, through TWikiPreferences and individual WebPreferences:
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:
Listing Active PluginsPlugin status variables let you list all active Plugins wherever needed. There are two list formats:
DEMO: Automatically List Active Plugins Using Variables Using The TWiki Plugin APIThe Application Programming Interface (API) for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module. The Plugin API is new to the Production version of TWiki with the 01-Sep-2001 release.Available Core FunctionsThe TWikiFuncModule (lib/TWiki/Func.pm) implements ALL official Plugin functions. Plugins should ONLY use functions published in this module.
Func.pm, you run the risk of creating security holes. Also, your Plugin will likely break and require updating when you upgrade to a new version of TWiki.
Predefined HooksIn addition to TWiki core functions, Plugins can use predefined hooks, or call backs, listed in thelib/TWiki/Plugins/EmptyPlugin.pm module.
commonTagsHandler or startRenderingHandler for rendering tasks:
Hints on Writing Fast Plugins
Plugin Version DetectionTo eliminate the incompatibility problems bound to arise from active open Plugin development, a Plugin versioning system is provided for automatic compatibility checking.
Creating PluginsWith a reasonable knowledge of the Perl scripting language, you can create new Plugins or modify and extend existing ones. Basic plug-in architecture uses an Application Programming Interface (API), a set of software instructions that allow external code to interact with the main program. The TWiki Plugin API Plugins by providing a programming interface for TWiki.The DefaultPlugin Alternative
Anatomy of a PluginA basic TWiki Plugin consists of two elements:
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.
Creating the Perl ModuleCopy filelib/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(); Writing the Documentation TopicThe Plugin documentation topic contains usage instructions and version details. It serves the Plugin files as FileAttachments for downloading. (The doc topic is also included in the distribution package.) To create a documentation topic:
OUTLINE: Doc Topic Contents Packaging for DistributionA minimum Plugin release consists of a Perl module with a WikiName that ends inPlugin, ex: MyFirstPlugin.pm, and a documentation page with the same name(MyFirstPlugin.txt).
Publishing for Public UseYou can release your tested, packaged Plugin to the TWiki community through the TWiki:Plugins web. All Plugins submitted to TWiki.org are available for download and further development in TWiki:Plugins/PluginPackage. Publish your Plugin in these steps:
Recommended Storage of Plugin DataPlugins sometimes need to store data. This can be Plugin internal data like cache data, or generated data for the browser like images. The following is a recommendation where to store the data.Where to store Plugin Internal DataIn case the Plugin generates data just for internal use, or data which is not specific to a topic, store it in the Plugin's attachment directory.
Where to Store Data for Topics using the PluginIn case the Plugin generates data which is specific to a topic, store it in the topic's attachment directory.
sub _make_filename
{
my ( $web, $topic, $name ) = @_;
# Create web directory "pub/$web" if needed
my $dir = TWiki::Func::getPubDir() . "/$web";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
# Create topic directory "pub/$web/$topic" if needed
$dir .= "/$topic";
unless( -e "$dir" ) {
umask( 002 );
mkdir( $dir, 0775 );
}
return "$dir/_FooBarPlugin_$name";
}
-- TWiki:Main/PeterThoeny - 14 Aug 2004 -- TWiki:Main/AndreaSterbini - 29 May 2001 -- TWiki:Main/MikeMannix - 03 Dec 2001 TWiki Site ToolsUtilities for searching, navigation, and monitoring site activity TWikiSiteTools include utilities for navigating, searching and keeping up with site activity. Preferences can be configured by web or site-wide. You are currently in the TWiki web. In particular, TWiki provides two highly configurable, automated site monitoring tools, WebNotify, to email alerts when topics are edited, and WebStats, to generate detailed activity reports.WebNotify Recent Changes AlertEach TWiki web has an automatic email alert service that sends a list of recent changes on a preset schedule, like once a day. Users can subscribe and unsubscribe using WebNotify in each web. The Perl scriptmailnotify 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.
<space><space><space>*) format containing the WikiName of a user; a WikiName with e-mail address; or a TWikiGroup?. Examples:
%MAINWEB% instead of Main, but this is not necessary even if you have renamed the main web by configuring $mainWebname in TWiki.cfg.
Configuring Outgoing MailTWiki will use theNet::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.
Setting the Automatic Email ScheduleFor Unix platforms: Edit thecron table so that mailnotify is called in an interval of your choice. Please consult man crontab of how to modify the table that schedules program execution at certain intervals. Example:
% crontab -e 0 2 * * * (cd /path/to/twiki/bin; ./mailnotify -q)The above line will run mailnotify nightly at 02:00. The -q switch suppresses all normal output.
For ISP installations: Many ISPs don't allow hosted accounts direct cron access, as it's often used for things that can heavily load the server. Workaround scripts are available.
On Windows NT/2000: You can use a scheduled task if you have administrative privileges.
Note: AT on an NT machine is pretty limited.
Microsoft lists several third-party
replacements. TWiki:Codev/CronTabWin is a free scheduler for Windows.
WebStatistics Site Usage LogYou can generate a listing manually, or on an automated schedule, of visits to individual pages, on a per web basis. Compiled as a running total on a monthly basis. Includes totals for Topic Views, Topic Saves, Attachment Uploads, Most Popular Topics with number of views, and Top Contributors showing total of saves and attachment uploads. Previous months are saved.
Configuring for Automatic Operation
Generating Statistics Manually by URL
Log File DetailsTWiki generates monthly log files which are used by the statistics
WebSearchWebSearch is an extremely fast and flexible search facility, part of the core TWiki feature set. Options include:
WebChangesTo check for the most recently edited topics while on-site, use the WebChanges link, usually located on the upper toolbar. It lists the most recently modified topics, newest first, along with the first couple of lines of the page content. This is simply a presetSEARCH. The number of topics listed by the limit parameter.:
WebIndexWebIndex lists all web topics in alphabetical order, with the first couple of lines of text. This is simply a presetSEARCH:
-- TWiki:Main.MikeMannix - 01 Dec 2001 -- TWiki:Main.PeterThoeny - 28 Aug 2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Managing TopicsBrowser-based rename, move, and delete for individual topicsOverviewYou can use browser-based controls to change a topic's name, move it to another TWiki web, or delete it to a hiddenTrash web.
How to Rename/Move/Delete a Topic
Deleted Topics: How to Clear the TrashDeleted topics are moved to a specialTrash 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.
Redirecting from an Old TopicYou can use TWikiMetaData to place a command in the WebTopicViewTemplate and WebTopicNonWikiTemplate that will indicate that a topic has been moved by searching for the tag %META:TOPICMOVED{...}%. Customize something like this:
How Rename/Move Works
How Referring Topics Are FoundReferring topics are found using the %SEARCH% variable - see the templatesearchrenameview.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.
Effect of User Access SettingsUser permissions affect the Rename function in various ways. To rename a topic, you need bothALLOWTOPICCHANGE and ALLOWTOPICRENAME permission for that topic. To alter referring topics, you need change permission. See TWikiAccessControl for information on setting up access permissions.
Special ConsiderationsConsider carefully whether to make browser-based Rename/Move/Delete widely available, or to restrict it to an administrator/moderator group. Allowing all users to easily manipulate topics can be extremely useful in refactoring a busy web or site. However, there are at least two significant potential drawbacks to take into account:
Known IssuesRename/Move is fairly complicated due to the dynamic generation of links. Ideally, it would be possible to run the required part of rendering in a way that would allow identification of the text to be changed. Unfortunately, these hooks don't exist in TWiki at present. Instead, %SEARCH% is used with a special template to show the text to be changed, and the selected topics are then altered. One drawback is thatsearch can show matches that will not be updated due to case differences. Other mismatches with actual rendered output are also possible as the approaches are so different.
The following shows some limitations of square bracket processing.
-- TWiki:Main.MikeMannix - 27 Dec 2001[[Old Topic]] => [[NewTopic][Old Topic]] [[old topic]] => [[NewTopic][old topic]] [[old t opic]] => not changed [[OldTopic]] => [[NewTopic]] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Line: 63 to 69 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki Meta DataAdditional topic data, program-generated or from TWikiForms, is stored inMETA variable name/value pairs
OverviewTWikiMetaData usesMETA 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 Data Syntax
Example of Format
Meta Data SpecificationsThe current version of Meta Data is 1.0, with support for the following variables.META:TOPICINFO
META:TOPICMOVEDThis is optional, exists if topic has ever been moved. If a topic is moved more than once, only the most recent META:TOPICMOVED meta variable exists in the topic, older ones are to be found in the rcs history.%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%
META:TOPICPARENT
META:FILEATTACHMENT
META:FORM
META:FIELDShould only be present if there is a META:FORM entry. Note that this data is used when viewing a topic, the form template definition is not read.
Recommended SequenceThere is no absolute need for Meta Data variables to be listed in a specific order within a topic, but it makes sense to do so a couple of good reasons:
Viewing Meta Data in Page SourceWhen viewing a topic theRaw 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
Rendering Meta DataMeta Data is rendered with the %META% variable. This is mostly used in theview, preview and edit scripts.
Note: Rendering meta data is currently not supported in topic text. As a workaround, use FormattedSearch on the current topic only to render form fields.
Current support covers:
Known IssuesAt present, there is no Meta Data support for Plugins. However, the format is readily extendable and theMeta.pm code that supports the format needs only minor alteration.
-- TWiki:Main.JohnTalintyre - 29 Aug 2001 -- TWiki:Main.MikeMannix - 03 Dec 2001 -- TWiki:Main.PeterThoeny - 15 Aug 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
TWiki Text FormattingWorking in TWiki is as easy as typing in text - exactly like email. You don't need to know HTML, though you can use it if you prefer. Links to topics are created automatically when you enter WikiWords. And TWiki shorthand gives you all the power of HTML with a simple coding system that takes no time to learn. It's all laid out below - refer back to this page in a pop-up window from the Edit screen.TWiki Editing Shorthand
Using HTMLYou can use just about any HTML tag without a problem - however, there are a few usability and technical considerations to keep in mind.HTML and TWiki Usability
TWiki HTML Rendering
TWiki and JavaScriptYou can use JavaScript for your TWiki applications. Since TWiki rendering might interfere with JavaScript code you need to escape it with HTML comments and<pre> tags:
<script type="text/javascript"> <!-- Hide JavaScript and <pre> escape TWiki rendering ... put your JavaScript code here... // Stop hiding and stop </pre> escaping TWiki rendering --> </script> HyperlinksBeing able to create links without any formatting required is a core TWiki feature, made possible with WikiWords. New TWiki linking rules are a simple extension of the syntax that provide a new set of flexible options.Internal Links
External Links
TWiki VariablesVariables are names that are enclosed in percent signs% that are expanded on the fly.
TWikiPlugin Formatting ExtensionsPlugins provide additional text formatting capabilities and can extend the functionality of TWiki into many other areas. For example, the optional SpreadSheetPlugin lets you create a spreadsheet with the same basic notation used in TWiki tables. Available Plugins are located in the Plugins web on TWiki.org. Currently enabled plugins on this TWiki installation, as listed by%PLUGINDESCRIPTIONS%:
Common Editing ErrorsTWiki formatting rules are fairly simple to use and quick to type. However, there are some things to watch out for, taken from the TextFormattingFAQ:
-- TWiki:Main.PeterThoeny - 01 Aug 2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
Appendix D: TWiki Development Timeline01-Sep-2004 Release (Cairo)Major New Features
01-Feb-2003 Release (Beijing)
01-Dec-2001 Release (Athens)
01-Sep-2001 Release
01-Dec-2000 Release
01-May-2000 Release
01-Sep-1999 Release
01-Jul-1999 Release
1998 Releases
Dev FlowThe typical TWiki development flow...
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
document.ondblclick=dblclick; //--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TWiki Reference Manual (01-Sep-2001) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Line: 40 to 39 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TWiki VariablesSpecial text strings expand on the fly to display user data or system info TWikiVariables are text strings -%VARIABLE% - that expand into content whenever a page is rendered for viewing. VARIABLES are replaced by data, either user-entered or automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you can configure. You can also define custom variables, with new names and values.
Notes:
Predefined VariablesMost predefined variables return values that were either set in thelib/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.
% percent signs):
ATTACHURL -- full URL for attachments in the current topic
ATTACHURLPATH -- path of the attachment URL of the current topic
BASETOPIC -- base topic where an INCLUDE started
BASEWEB -- base web where an INCLUDE started
DISPLAYTIME -- display time
DISPLAYTIME{"format"} -- formatted display time
ENCODE{"string"} -- encodes a string
FORMFIELD{"format"} -- renders a field in the form attached to some topic
GMTIME -- GM time
GMTIME{"format"} -- formatted GM time
HOMETOPIC -- home topic in each web
HTTP_HOST -- environment variable
ICON{"type"} -- small icon of common attachment types
INCLUDE{"page"} -- include other topics or web pages
INCLUDINGTOPIC -- name of topic that includes current topic
INCLUDINGWEB -- web that includes current topic
MAINWEB -- name of Main web
METASEARCH -- special search of meta data
NOTIFYTOPIC -- name of the notify topic
PLUGINVERSION -- the version of the TWiki Plugin API
PLUGINVERSION{"name"} -- the version of an installed Plugin
PUBURL -- the base URL of attachments
PUBURLPATH -- the base URL path of attachments
REMOTE_ADDR -- environment variable
REMOTE_PORT -- environment variable
REMOTE_USER -- environment variable
REVINFO -- revision information of current topic
REVINFO{"format"} -- formatted revision information of topic
SCRIPTURL -- script URL of TWiki
SCRIPTURLPATH -- script URL path of TWiki
SCRIPTSUFFIX -- script suffix
SEARCH{"text"} -- search content
SERVERTIME -- server time
SERVERTIME{"format"} -- formatted server time
SPACEDTOPIC -- topic name, spaced and encoded
STARTINCLUDE -- start position of topic text if included
STATISTICSTOPIC -- name of statistics topic
STOPINCLUDE -- end position of topic text if included
TOC -- table of contents of current topic
TOC{"Topic"} -- table of contents
TOPIC -- name of current topic
TOPICLIST{"format"} -- topic index of a web
TWIKIWEB -- name of TWiki documentation web
URLPARAM{"name"} -- get value of a URL parameter
USERNAME -- your login username
VAR{"NAME" web="Web"} -- get a preference value from another web
WEB -- name of current web
WEBLIST{"format"} -- index of all webs
WEBPREFSTOPIC -- name of web preferences topic
WIKIHOMEURL -- site home URL
WIKINAME -- your Wiki username
WIKIPREFSTOPIC -- name of site-wide preferences topic
WIKITOOLNAME -- name of your TWiki site
WIKIUSERNAME -- your Wiki username with web prefix
WIKIUSERSTOPIC -- name of topic listing all registers users
WIKIVERSION -- the version of the installed TWiki engine
Preferences VariablesAdditional variables are defined in the preferences topics:
%BR% for line break, colors like %RED% for colored text and small icons like %H% for a Setting Preferences
Creating Custom Variables
Example: Create a custom logo variable the TWiki web-- TWiki:Main.PeterThoeny - 14 Aug 2004 -- TWiki:Main.MikeMannix - 12 May 2002 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Deleted: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| < < |
TWiki Meta DataAdditional topic data, program-generated or from TWikiForms, is stored inMETA variable name/value pairs
OverviewTWikiMetaData usesMETA 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 Data Syntax
Example of Format
Meta Data SpecificationsThe current version of Meta Data is 1.0, with support for the following variables.META:TOPICINFO
META:TOPICMOVEDThis is optional, exists if topic has ever been moved. If a topic is moved more than once, only the most recent META:TOPICMOVED meta variable exists in the topic, older ones are to be found in the rcs history.%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%
META:TOPICPARENT
META:FILEATTACHMENT
META:FORM
META:FIELDShould only be present if there is a META:FORM entry. Note that this data is used when viewing a topic, the form template definition is not read.
Recommended SequenceThere is no absolute need for Meta Data variables to be listed in a specific order within a topic, but it makes sense to do so a couple of good reasons:
Viewing Meta Data in Page SourceWhen viewing a topic theRaw 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
Rendering Meta DataMeta Data is rendered with the %META% variable. This is mostly used in theview, preview and edit scripts.
Note: Rendering meta data is currently not supported in topic text. As a workaround, use FormattedSearch on the current topic only to render form fields.
Current support covers:
Known IssuesAt present, there is no Meta Data support for Plugins. However, the format is readily extendable and theMeta.pm code that supports the format needs only minor alteration.
-- TWiki:Main.JohnTalintyre - 29 Aug 2001 -- TWiki:Main.MikeMannix - 03 Dec 2001 -- TWiki:Main.PeterThoeny - 15 Aug 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWiki FormsForm-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web & topicOverviewBy adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved. Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see #FormsVsCategoryTablesDefining a Form TemplateA Form Template is simply a page containing your form, defined as a table where each row is one form field.Form Template Elements
Defining a Form in One Topic
Example: Defining a Form with Multiple TopicsForms can also be defined by using form templates that retrieve field values from one or more separate topics:
Example: WebFormTemplate
Enabling Forms by WebForms are enabled on a per web basis. TheWEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:
Including Forms in New Topics
Setting Up Multiple Form Options
Form Data StorageThe form topic name, fields and values are stored as TWikiMetaData - the order of the field/value pairs is the same as in the template.Using Form DataTWikiForms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData,SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
Main Changes from Category TablesThe Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
Importing Category Table DataOn upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the oldtwikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.
The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
data/warning.txt.
Using Forms For SettingsExample process to change your WebPreferences to use forms instead of{3 spaces}* Set statements:
S attribute has been specified (S for Setting).
If you change the form, the changes will not take affect until you edit and save the preferences' topics again.
Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.
A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.
Another example, this one using EditTablePlugin, source:
%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%
Result (after some editing):
-- TWiki:Main.JohnTalintyre - 16 Aug 2001 -- TWiki:Main.MikeMannix - 05 Jan 2002 -- TWiki:Main.PeterThoeny - 25 Apr 2004 -- TWiki:Main.MattWilkie - 27 Jul 2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Line: 52 to 48 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Note: Included topic MonitoringSiteActivity? does not exist yet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Added: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > |
File AttachmentsEach topic can have one or more files of any type attached to it by using the Attach screen to upload (or download) files from your local PC. Attachments are stored under revision control: uploads are automatically backed up; all previous versions of a modified file can be retrieved.What Are Attachments Good For?File Attachments can be used to create powerful customized groupware solutions, like file sharing and document management systems, and quick Web page authoring.Document Management System
File Sharing
Web Authoring
Uploading Files
Downloading Files
Moving Attachment FilesAn attachment can be moved between topics.
Deleting AttachmentsMove unwanted Attachments to webTrash, topic TrashAttachment.
Linking to Attached Files
File Attachment Contents TableFiles attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click Attach.
File Attachment ControlsClicking on aManage link takes you to a new page that looks like this:
Known Issues
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Managing TopicsBrowser-based rename, move, and delete for individual topicsOverviewYou can use browser-based controls to change a topic's name, move it to another TWiki web, or delete it to a hiddenTrash web.
How to Rename/Move/Delete a Topic
Deleted Topics: How to Clear the TrashDeleted topics are moved to a specialTrash 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.
Redirecting from an Old TopicYou can use TWikiMetaData to place a command in the WebTopicViewTemplate and WebTopicNonWikiTemplate that will indicate that a topic has been moved by searching for the tag %META:TOPICMOVED{...}%. Customize something like this:
How Rename/Move Works
How Referring Topics Are FoundReferring topics are found using the %SEARCH% variable - see the templatesearchrenameview.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.
Effect of User Access SettingsUser permissions affect the Rename function in various ways. To rename a topic, you need bothALLOWTOPICCHANGE and ALLOWTOPICRENAME permission for that topic. To alter referring topics, you need change permission. See TWikiAccessControl for information on setting up access permissions.
Special ConsiderationsConsider carefully whether to make browser-based Rename/Move/Delete widely available, or to restrict it to an administrator/moderator group. Allowing all users to easily manipulate topics can be extremely useful in refactoring a busy web or site. However, there are at least two significant potential drawbacks to take into account:
Known IssuesRename/Move is fairly complicated due to the dynamic generation of links. Ideally, it would be possible to run the required part of rendering in a way that would allow identification of the text to be changed. Unfortunately, these hooks don't exist in TWiki at present. Instead, %SEARCH% is used with a special template to show the text to be changed, and the selected topics are then altered. One drawback is thatsearch can show matches that will not be updated due to case differences. Other mismatches with actual rendered output are also possible as the approaches are so different.
The following shows some limitations of square bracket processing.
-- TWiki:Main.MikeMannix - 27 Dec 2001[[Old Topic]] => [[NewTopic][Old Topic]] [[old topic]] => [[NewTopic][old topic]] [[old t opic]] => not changed [[OldTopic]] => [[NewTopic]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Line: 60 to 59 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Appendix A: TWiki FilesystemAnnotated directory and file listings, for the 01-Sep-2004 TWiki production release.Who and What is This Good For?Interested Users and Site Administrators can find out in simple terms what each part of TWiki actually does. Adventurous Adminstrators with server access to files (via telnet, ssh or ftp) can also figure out where to look to make minor modifications, like changing hardcode text or color. Software Developers can get an at-a-glance overview of TWiki code architecture.Directory StructureYou can rename the root TWiki directory -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:
File DescriptionsA rundown of the individual files included in the current distribution, organized by TWiki root directories. Files in
Application info and the current reference documentation. Full file list:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| File | Used for |
|---|---|
index.html | Links to launch TWiki after install and for files in this directory |
license.txt | GNU General Public License and TWiki-specific info |
readme.txt | General TWiki start-up info with relevant URLs |
TWikiDocumentation.html | All documentation packaged as a single page |
TWikiHistory.html | TWiki development timeline: versions, features, developers |
TwikiUpgrade | TWiki upgrade script (Beta state) |
twiki/bin | File: | Used for: |
|---|---|
.htaccess.txt | Authentication. Rename to .htaccess and customize if used |
attach | Shows the attach file page (FileAttachment) |
changes | a simple WebChanges query |
edit | Edit a topic |
geturl | Fetch URL data |
installpasswd | Install new password by admin |
mailnotify | Script called by cron job to notify users of changes |
manage | Manage script to create new webs |
oops | Shows an OK or oops dialog |
passwd | Reset and change password |
preview | Preview topic after edit |
rdiff | See differences of topics |
rdiffauth | Copy of rdiff script (ideally a link). The .htaccess file sets this as requiring authorisation |
register | Register new users |
rename | Rename/move topics and move attachments |
save | Saves a topic, called by preview |
search | Displays search results |
setlib.cfg | Location of the TWiki libraries. Customize if needed |
statistics | Create statistics topic |
testenv | Test CGI environment variables |
upload | Does file upload (FileAttachment) |
view | View a topic (the script) |
viewauth | Copy of view script (ideally a link). The .htaccess file sets this as requiring authorisation |
viewfile | View a file attachment |
twiki/lib lib/TWiki/Plugins directories contain configuration, library and function files, and TWikiPlugins. Full file list:
| File: | Used for: |
|---|---|
TWiki.cfg | Main configuration, used by TWiki.pm |
TWiki.pm | Main TWiki library |
Algorithm/Diff.pm | Diff library |
Text/Diff.pm | Diff library, used by TwikiUpgrade script |
TWiki/Access.pm | Access control |
TWiki/Attach.pm | Attachment handling |
TWiki/Form.pm | Form handling |
TWiki/Func.pm | Public functions that Plugins may use |
TWiki/Meta.pm | Meta data in topics |
TWiki/Net.pm | SMTP mail handling |
TWiki/Plugins.pm | Plugin handling |
TWiki/Plugins/CommentPlugin.pm | Plugin handling a comment box |
TWiki/Plugins/CommentPlugin/Attrs.pm | Supporting module for Comment Plugin |
TWiki/Plugins/CommentPlugin/Comment.pm | Supporting module for Comment Plugin |
TWiki/Plugins/CommentPlugin/Templates.pm | Supporting module for Comment Plugin |
TWiki/Plugins/DefaultPlugin.pm | Handles some legacy rules |
TWiki/Plugins/EditTablePlugin.pm | Plugin to edit tables |
TWiki/Plugins/EmptyPlugin.pm | Empty plugin, use to create your own |
TWiki/Plugins/InterwikiPlugin.pm | Use aliases as links for predefined URLs |
TWiki/Plugins/RenderListPlugin.pm | Plugin to render lists as nice trees |
TWiki/Plugins/SlideShowPlugin.pm | Plugin turning headings into slides |
TWiki/Plugins/SmiliesPlugin.pm | Plugin rendering smilies like :-) |
TWiki/Plugins/SpreadSheetPlugin.pm | Plugin resolving spreadsheet formulae |
TWiki/Plugins/TablePlugin.pm | Plugin to render tables nicely |
TWiki/Prefs.pm | Preferences handling |
TWiki/Render.pm | TWiki markup to HTML rendering |
TWiki/Search.pm | Search engine, used by TWiki.pm |
TWiki/Store.pm | Back-end storage, *.txt text file and *.txt,v RCS repository file handling |
TWiki/Store/RcsFile.pm | Generic file handling code, a class |
TWiki/Store/RcsWrap.pm | Wrappers around RCS executables, a class that inherits from RcsFile |
TWiki/Store/RcsLite.pm | A Perl RCS implemention, a class that inherits from RcsFile |
TWiki/UI.pm | User interface handling |
TWiki/UI/Changes.pm | Functionality of changes script |
TWiki/UI/Edit.pm | Functionality of edit script |
TWiki/UI/Manage.pm | Functionality of manage script |
TWiki/UI/Oops.pm | Functionality of oops script |
TWiki/UI/Preview.pm | Functionality of preview script |
TWiki/UI/RDiff.pm | Functionality of rdiff script |
TWiki/UI/Save.pm | Functionality of save script |
TWiki/UI/Search.pm | Functionality of search script |
TWiki/UI/Statistics.pm | Functionality of statistics script |
TWiki/UI/Upload.pm | Functionality of upload script |
TWiki/UI/View.pm | Functionality of view script |
TWiki/UI/Viewfile.pm | Functionality of viewfile script |
TWiki/Upgrade/TWikiCfg.pm | Supporting module of TwikiUpgrade script |
TWiki/Upgrade/UpdateTopics.pm | Supporting module of TwikiUpgrade script |
TWiki/Upgrade/UpdateTopicsManualSymlinks.pm | Supporting module of TwikiUpgrade script |
TWiki/User.pm | Abstraction package to allow plugable user authentication systems |
TWiki/User/HtPasswdUser.pm | Apache Htpasswd file implementation (the default) |
TWiki/User/NoPasswdUser.pm | simple, no users authentication (totally wiki) |
twiki/pub pub directory stores topic-related files, including images used by TWiki and FileAttachments. Attachments are stored in subdirectories created with the related topic name. You can also upload files directly for and link manually (but not through Attach) Partial file list:
| File: | Used for: |
|---|---|
favicon.ico | ICO file |
wikiHome.gif | GIF file |
icn/_filetypes.txt | Lookup table to translate file extension to file type |
icn/bat.gif | GIF file for file type |
icn/bmp.gif | GIF file for file type |
| ... | ... |
TWiki/FileAttachment/Sample.txt | TEXT file: sample |
TWiki/FileAttachment/Smile.gif | GIF image: sample |
TWiki/FileAttachment/Smile.gif,v | RCS repository for GIF file |
TWiki/PreviewBackground/blankltgraybg.gif | GIF image |
TWiki/PreviewBackground/blankwhitebg.gif | GIF image |
TWiki/PreviewBackground/previewbg.gif | GIF image: Preview view background |
TWiki/PreviewBackground/preview2bg.gif | GIF image: Alternate preview view background |
TWiki/TWikiLogos/twikiRobot121x54.gif | GIF image: TWiki logo |
| ... | ... |
TWiki/TWikiTemplates/testscreen.gif | GIF image: Screen shot |
TWiki/WabiSabi/wabisabi.gif | GIF image: illustration |
twiki/data Main, TWiki, and Sandbox - with documentation and demo content, a Trash web for browser-based, recoverable topic deletion, and a _default directory containing a core topic set required to start a new web. Partial file list:
| File: | Used for: |
|---|---|
.htpasswd | Basic Authentication (htaccess) users file with username and encrypted password pairs |
debug.txt | Program-generated messages useful for debugging |
mime.types | Recognized file formats |
warning.txt | Diagnostic messages for identifying problems |
_default/.changes | Per web record of topic changes |
_default/.mailnotify | Per web timestamp of most recent email notification |
_default/WebChanges.txt | Display most recent topic changes in web |
_default/WebChanges.txt,v | Revisions history (RCS) |
_default/WebHome.txt | Default web home page |
_default/WebHome.txt,v | Revisions history (RCS) |
_default/WebIndex.txt | Lists all topics in a web |
_default/WebIndex.txt,v | Revisions history (RCS) |
_default/WebLeftBar.txt | Left navigation bar for PatternSkin |
_default/WebLeftBar.txt,v | Revisions history (RCS) |
_default/WebNotify.txt | Subscribe/unsubscribe to web changes email alert |
_default/WebNotify.txt,v | Revisions history (RCS) |
_default/WebPreferences.txt | Per web Preference Settings |
_default/WebPreferences.txt,v | Revisions history (RCS) |
_default/WebSearch.txt | Per web search options |
_default/WebSearch.txt,v | Revisions history (RCS) |
_default/WebStatistics.txt | Generates web usage statistics |
_default/WebStatistics.txt,v | Revisions history (RCS) |
_default/WebTopicList.txt | Lists all topics in a web in compact format |
_default/WebTopicList.txt,v | Revisions history (RCS) |
| ... | ... |
twiki/templates | File: | Used for: |
|---|---|
attach.tmpl | Attachment (FileAttachments) control screen |
attachagain.tmpl | Attachment control screen for updating an existing attachment |
attachnew.tmpl | Attachment control screen for adding a new attachment |
attachtables.tmpl | Macros for definition of attachment tables |
changeform.tmpl | Control screen to change the form in edit mode |
changes.tmpl | Displays list of recently changed topics |
edit.iejs.tmpl | Edit window with IE-specific JavaScript |
edit.tmpl | Main edit window |
mailnotify.tmpl | Email notification |
moveattachment.tmpl | Move attachment control screen |
oopsaccesschange.tmpl | Error message |
oopsaccessgroup.tmpl | Error message |
oopsaccessmanage.tmpl | Error message |
oopsaccessrename.tmpl | Error message |
oopsaccessview.tmpl | Error message |
oopsattachnotopic.tmpl | Error message |
oopsauth.tmpl | Error message |
oopsbadcharset.tmpl | Error message |
oopsbadpwformat.tmpl | Error message |
oopschangepasswd.tmpl | Error message |
oopscreatenewtopic.tmpl | Error message |
oopsempty.tmpl | Error message |
oopslocked.tmpl | Error message |
oopslockedrename.tmpl | Error message |
oopsmanage.tmpl | Error message |
oopsmissing.tmpl | Error message |
oopsmngcreateweb.tmpl | Error message |
oopsmore.tmpl | More topic actions message |
oopsmoveerr.tmpl | Error message |
oopsnoformdef.tmpl | Error message |
oopsnotwikiuser.tmpl | Error message |
oopsnoweb.tmpl | Error message |
oopspreview.tmpl | Error message |
oopsregemail.tmpl | Error message |
oopsregexist.tmpl | Error message |
oopsregpasswd.tmpl | Error message |
oopsregrequ.tmpl | Error message |
oopsregthanks.tmpl | Error message |
oopsregwiki.tmpl | Error message |
oopsremoveuserdone.tmpl | Error message |
oopsrenameerr.tmpl | Error message |
oopsrenamenotwikiword.tmpl | Error message |
oopsresetpasswd.tmpl | Error message |
oopsrev.tmpl | Error message |
oopssave.tmpl | Error message |
oopssaveerr.tmpl | Error message |
oopssendmailerr.tmpl | Error message |
oopstopicexists.tmpl | Error message |
oopsupload.tmpl | Error message |
oopsuploadlimit.tmpl | Error message |
oopswrongpassword.tmpl | Error message |
preview.tmpl | Preview Changes screen |
rdiff.tmpl | Displays text changes before & after Diffs |
registernotify.tmpl | Registration notification |
rename.tmpl | Rename/move control screen (choose web & new topic tile |
renamebase.tmpl | Used by other rename templates |
renameconfirm.tmpl | Confirms a pre-specified rename, ex: undoing a rename |
renamedelete.tmpl | Confirms a delete |
renamerefs.tmpl | Display if rename done, but some references not changed (topics were locked) |
search.tmpl | Search screen |
searchbookview.tmpl | Search results with full topic content |
searchformat.tmpl | Search screen for formatted search |
searchmeta.tmpl | Search screen |
searchrenameview.tmpl | Used by rename to list references to topic being renamed |
twiki.tmpl | Master template: definitions are used by other templates |
view.plain.tmpl | Skin for bare bone topic view without header/footer but with HTML head and body tags |
view.print.tmpl | Skin for printable topic view with a simple header/footer |
view.rss.tmpl | Skin for topic view in RDF XML format |
view.text.tmpl | Skin for topic text only, without HTML head and body tags, and no form and attachments |
view.tmpl | Main topic view - the standard regular Web page |
twiki twiki - will probably be your domain or login name, eg: yourdomain yourdomain and can't be changed; same for nobody nobody files further down. Also, in the bin directory, scripts might need a .cgi (sometimes .pl) extension.
twiki/bin:
drwxrwxr-x 2 twiki twiki 4096 May 9 00:08 . drwxrwxr-x 5 twiki twiki 4096 Nov 18 2002 .. -rw-rw-r-- 1 twiki twiki 3145 Jul 25 00:31 .htaccess.txt -rwxrwxr-x 1 twiki twiki 1459 May 28 23:51 attach -rwxrwxr-x 1 twiki twiki 1721 May 28 23:51 changes -rwxrwxr-x 1 twiki twiki 1994 May 28 23:51 edit -rwxrwxr-x 1 twiki twiki 1878 May 28 23:51 geturl -rwxrwxr-x 1 twiki twiki 6689 May 28 23:51 installpasswd -rwxrwxr-x 1 twiki twiki 7313 May 28 23:51 mailnotify -rwxrwxr-x 1 twiki twiki 3557 Jul 25 15:00 manage -rwxrwxr-x 1 twiki twiki 1448 May 28 23:51 oops -rwxrwxr-x 1 twiki twiki 4062 May 28 23:51 passwd -rwxrwxr-x 1 twiki twiki 1506 May 28 23:51 preview -rwxrwxr-x 2 twiki twiki 1490 May 28 23:51 rdiff -rwxrwxr-x 2 twiki twiki 1490 May 28 23:51 rdiffauth -rwxrwxr-x 1 twiki twiki 7635 May 28 23:51 register -rwxrwxr-x 1 twiki twiki 1774 May 28 23:51 rename -rwxrwxr-x 1 twiki twiki 1654 Jul 25 00:31 save -rwxrwxr-x 1 twiki twiki 1728 May 28 23:51 search -rw-rw-r-- 1 twiki twiki 2131 Aug 7 21:13 setlib.cfg -rwxrwxr-x 1 twiki twiki 2596 May 28 23:51 statistics -rwxrwxr-x 1 twiki twiki 39926 Jul 25 15:00 testenv -rwxrwxr-x 1 twiki twiki 1478 May 28 23:51 upload -rwxrwxr-x 2 twiki twiki 1689 May 28 23:51 view -rwxrwxr-x 2 twiki twiki 1689 May 28 23:51 viewauth -rwxrwxr-x 1 twiki twiki 1438 May 28 23:51 viewfileDirectory
twiki/templates/:
drwxrwxr-x 2 twiki twiki 4096 Aug 7 19:09 . drwxrwxr-x 4 twiki twiki 4096 Aug 7 21:13 .. -rw-rw-r-- 1 twiki users 2077 Aug 13 22:21 attachagain.pattern.tmpl -rw-rw-r-- 1 twiki users 1650 Aug 13 22:21 attachagain.tmpl -rw-rw-r-- 1 twiki twiki 2556 Jul 27 10:47 attach.dragon.tmpl -rw-rw-r-- 1 twiki users 567 Jul 28 19:52 attachnew.pattern.tmpl -rw-rw-r-- 1 twiki users 470 Jul 28 19:52 attachnew.tmpl -rw-rw-r-- 1 twiki users 2855 Aug 8 03:40 attach.pattern.tmpl -rw-rw-r-- 1 twiki users 1991 Aug 3 13:09 attachtables.pattern.tmpl -rw-rw-r-- 1 twiki users 1869 Jul 27 22:03 attachtables.tmpl -rw-rw-r-- 1 twiki users 2355 Jul 28 19:52 attach.tmpl -rw-rw-r-- 1 twiki twiki 1324 Jul 27 10:47 changeform.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1441 Aug 6 11:47 changeform.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1032 Jul 28 19:52 changeform.tmpl -rw-rw-r-- 1 twiki twiki 1870 Jul 27 10:47 changes.dragon.tmpl -rw-rw-r-- 1 twiki twiki 433 Jul 31 12:39 changes.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1196 May 28 23:51 changes.tmpl -rw-rw-r-- 1 twiki twiki 35 May 21 03:56 comments.tmpl -rw-rw-r-- 1 twiki twiki 526 Jul 27 10:47 dragoncssvars.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1645 Jul 31 00:57 dragonmenu.dragon.tmpl -rw-rw-r-- 1 twiki twiki 4207 Jul 27 10:47 edit.dragon.tmpl -rw-rw-r-- 1 twiki twiki 12608 Jul 28 19:52 edit.iejs.tmpl -rw-rw-r-- 1 twiki twiki 4904 Aug 7 17:48 edit.pattern.tmpl -rw-rw-r-- 1 twiki twiki 3975 Aug 8 03:40 edit.tmpl -rw-rw-r-- 1 twiki twiki 993 May 28 23:51 mailnotify.tmpl -rw-rw-r-- 1 twiki twiki 1640 Jul 27 10:47 moveattachment.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1968 Aug 7 17:48 moveattachment.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1342 Jul 28 19:52 moveattachment.tmpl -rw-rw-r-- 1 twiki twiki 571 May 28 23:51 oopsaccesschange.tmpl -rw-rw-r-- 1 twiki twiki 587 May 28 23:51 oopsaccessgroup.tmpl -rw-rw-r-- 1 twiki twiki 597 Aug 2 11:10 oopsaccessmanage.tmpl -rw-rw-r-- 1 twiki twiki 572 May 28 23:51 oopsaccessrename.tmpl -rw-rw-r-- 1 twiki twiki 574 May 28 23:51 oopsaccessview.tmpl -rw-rw-r-- 1 twiki twiki 571 Aug 2 11:10 oopsattachnotopic.tmpl -rw-rw-r-- 1 twiki twiki 998 May 28 23:51 oopsauth.tmpl -rw-rw-r-- 1 twiki twiki 646 May 28 23:51 oopsbadcharset.tmpl -rw-rw-r-- 1 twiki twiki 406 May 28 23:51 oopsbadpwformat.tmpl -rw-rw-r-- 1 twiki twiki 345 May 28 23:51 oopschangepasswd.tmpl -rw-rw-r-- 1 twiki twiki 382 May 28 23:51 oopscreatenewtopic.tmpl -rw-rw-r-- 1 twiki twiki 627 Jul 7 23:11 oopsempty.tmpl -rw-rw-r-- 1 twiki twiki 927 Aug 3 13:09 oopslocked.pattern.tmpl -rw-rw-r-- 1 twiki twiki 612 Aug 2 11:10 oopslockedrename.pattern.tmpl -rw-rw-r-- 1 twiki twiki 596 Aug 2 11:10 oopslockedrename.tmpl -rw-rw-r-- 1 twiki twiki 910 Aug 3 13:09 oopslocked.tmpl -rw-rw-r-- 1 twiki twiki 679 May 28 23:51 oopsmanage.tmpl -rw-rw-r-- 1 twiki twiki 329 May 28 23:51 oopsmissing.tmpl -rw-rw-r-- 1 twiki twiki 2353 May 28 23:51 oopsmngcreateweb.tmpl -rw-rw-r-- 1 twiki twiki 2987 Aug 3 13:09 oopsmore.tmpl -rw-rw-r-- 1 twiki twiki 418 May 28 23:51 oopsmoveerr.tmpl -rw-rw-r-- 1 twiki twiki 1133 May 28 23:51 oopsnoformdef.tmpl -rw-rw-r-- 1 twiki twiki 521 May 28 23:51 oopsnotwikiuser.tmpl -rw-rw-r-- 1 twiki twiki 1516 Jul 28 19:52 oopsnoweb.tmpl -rw-rw-r-- 1 twiki twiki 394 May 28 23:51 oopspreview.tmpl -rw-rw-r-- 1 twiki twiki 341 May 28 23:51 oopsregemail.tmpl -rw-rw-r-- 1 twiki twiki 411 May 28 23:51 oopsregerr.tmpl -rw-rw-r-- 1 twiki twiki 476 May 28 23:51 oopsregexist.tmpl -rw-rw-r-- 1 twiki twiki 346 May 28 23:51 oopsregpasswd.tmpl -rw-rw-r-- 1 twiki twiki 357 May 28 23:51 oopsregrequ.tmpl -rw-rw-r-- 1 twiki twiki 541 May 28 23:51 oopsregthanks.tmpl -rw-rw-r-- 1 twiki twiki 680 May 28 23:51 oopsregwiki.tmpl -rw-rw-r-- 1 twiki twiki 587 May 28 23:51 oopsremoveuserdone.tmpl -rw-rw-r-- 1 twiki twiki 503 May 28 23:51 oopsrenameerr.tmpl -rw-rw-r-- 1 twiki twiki 434 May 28 23:51 oopsrenamenotwikiword.tmpl -rw-rw-r-- 1 twiki twiki 507 May 28 23:51 oopsresetpasswd.tmpl -rw-rw-r-- 1 twiki twiki 962 Jul 28 19:52 oopsrev.tmpl -rw-rw-r-- 1 twiki twiki 483 May 28 23:51 oopssaveerr.tmpl -rw-rw-r-- 1 twiki twiki 777 Jul 7 23:11 oopssave.tmpl -rw-rw-r-- 1 twiki twiki 466 May 28 23:51 oopssendmailerr.tmpl -rw-rw-r-- 1 twiki twiki 385 May 28 23:51 oopstopicexists.tmpl -rw-rw-r-- 1 twiki twiki 344 May 28 23:51 oopsuploadlimit.tmpl -rw-rw-r-- 1 twiki twiki 343 May 28 23:51 oopsupload.tmpl -rw-rw-r-- 1 twiki twiki 365 May 28 23:51 oopswrongpassword.tmpl -rw-rw-r-- 1 twiki twiki 3590 Jul 27 10:47 preview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 2855 Aug 6 11:47 preview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2253 Aug 8 03:40 preview.tmpl -rw-rw-r-- 1 twiki twiki 1739 Jul 27 10:47 rdiff.dragon.tmpl -rw-rw-r-- 1 twiki users 1529 Aug 13 22:21 rdiff.pattern.tmpl -rw-rw-r-- 1 twiki users 1299 May 28 23:51 rdiff.tmpl -rw-rw-r-- 1 twiki twiki 1159 Jul 31 12:39 registernotify.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1160 May 28 23:51 registernotify.tmpl -rw-rw-r-- 1 twiki twiki 2561 Jul 27 10:47 renamebase.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3363 Aug 8 03:40 renamebase.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2279 Jul 28 20:54 renamebase.tmpl -rw-rw-r-- 1 twiki twiki 718 Jul 31 12:39 renameconfirm.pattern.tmpl -rw-rw-r-- 1 twiki twiki 570 Jul 28 19:52 renameconfirm.tmpl -rw-rw-r-- 1 twiki twiki 1046 Jul 31 12:39 renamedelete.pattern.tmpl -rw-rw-r-- 1 twiki twiki 932 Jul 28 19:52 renamedelete.tmpl -rw-rw-r-- 1 twiki twiki 1147 Jul 31 12:39 rename.pattern.tmpl -rw-rw-r-- 1 twiki twiki 766 Jul 28 19:52 renamerefs.pattern.tmpl -rw-rw-r-- 1 twiki twiki 616 Jul 28 19:52 renamerefs.tmpl -rw-rw-r-- 1 twiki twiki 1041 Jul 28 19:52 rename.tmpl -rw-rw-r-- 1 twiki twiki 1397 Jul 27 10:47 searchbookview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 723 Jul 31 12:39 searchbookview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1230 May 28 23:51 searchbookview.tmpl -rw-rw-r-- 1 twiki twiki 1705 Jul 27 10:47 search.dragon.tmpl -rw-rw-r-- 1 twiki twiki 722 Jul 27 10:47 searchformat.dragon.tmpl -rw-rw-r-- 1 twiki twiki 157 Jul 31 12:39 searchformat.pattern.tmpl -rw-rw-r-- 1 twiki twiki 529 May 28 23:51 searchformat.tmpl -rw-rw-r-- 1 twiki twiki 149 Jul 7 23:03 searchmeta.pattern.tmpl -rw-rw-r-- 1 twiki twiki 149 May 28 23:51 searchmeta.tmpl -rw-rw-r-- 1 twiki twiki 1638 Aug 7 17:48 search.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1892 Jul 27 10:47 searchrenameview.dragon.tmpl -rw-rw-r-- 1 twiki twiki 1208 Aug 3 13:09 searchrenameview.pattern.tmpl -rw-rw-r-- 1 twiki twiki 1615 May 28 23:51 searchrenameview.tmpl -rw-rw-r-- 1 twiki twiki 1364 May 28 23:51 search.tmpl -rw-rw-r-- 1 twiki twiki 3836 Jul 27 10:47 twiki.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3175 Aug 7 17:48 twiki.pattern.tmpl -rw-rw-r-- 1 twiki twiki 2798 Jul 27 22:57 twiki.tmpl -rw-rw-r-- 1 twiki twiki 1324 Jul 27 10:47 view.dragon.tmpl -rw-rw-r-- 1 twiki twiki 3577 Aug 8 03:40 view.pattern.tmpl -rw-rw-r-- 1 twiki twiki 425 May 28 23:51 view.plain.tmpl -rw-rw-r-- 1 twiki twiki 1056 Jul 31 12:39 view.print.pattern.tmpl -rw-rw-r-- 1 twiki twiki 845 May 28 23:51 view.print.tmpl -rw-rw-r-- 1 twiki twiki 300 May 28 23:51 view.rss.tmpl -rw-rw-r-- 1 twiki twiki 8 May 28 23:51 view.text.tmpl -rw-rw-r-- 1 twiki twiki 1281 Jul 31 12:39 view.tmplDirectory
twiki/data/:
drwxrwxr-x 7 nobody twiki 4096 Aug 7 21:13 . drwxrwxr-x 4 twiki twiki 4096 Aug 7 21:13 .. -rw-rw-rw- 1 twiki twiki 0 Feb 1 2003 debug.txt drwxrwxr-x 2 nobody twiki 4096 Jul 16 00:36 _default -rw-rw-r-- 1 twiki twiki 25 Dec 16 2003 .htpasswd.txt -rw-rw-r-- 1 nobody nobody 11811 Aug 13 23:10 log200408.txt drwxrwxr-x 2 nobody twiki 4096 Aug 4 21:03 Main -rw-rw-r-- 1 twiki twiki 3419 Aug 13 2001 mime.types drwxrwxr-x 2 nobody twiki 4096 Aug 7 21:03 Sandbox drwxrwxr-x 2 nobody twiki 4096 Jul 20 18:15 Trash drwxrwxr-x 2 nobody twiki 12288 Aug 13 23:10 TWiki -rw-rw-rw- 1 twiki twiki 0 Aug 7 18:03 warning.txtPartial file list for
twiki/data/Main:
.txt,v.
drwxrwxr-x 2 nobody twiki 4096 Aug 4 21:03 . drwxrwxr-x 7 nobody twiki 4096 Aug 7 21:13 .. -rw-rw-rw- 1 twiki twiki 3743 Aug 4 21:03 .changes -rw-rw-rw- 1 twiki twiki 9 Oct 25 2001 .mailnotify -rw-r--r-- 1 nobody nobody 518 Dec 16 2003 TWikiAdminGroup.txt -r--r--r-- 1 nobody nobody 2453 Dec 16 2003 TWikiAdminGroup.txt,v -rw-r--r-- 1 nobody nobody 1668 Aug 4 21:03 TWikiGroups.txt -r--r--r-- 1 nobody nobody 3421 Aug 4 21:03 TWikiGroups.txt,v -rw-r--r-- 1 nobody nobody 686 Dec 13 2000 TWikiGuest.txt -rw-r--r-- 1 nobody nobody 1995 Dec 13 2000 TWikiGuest.txt,v -rw-r--r-- 1 nobody nobody 319 Dec 20 2003 TWikiPreferences.txt -r--r--r-- 1 nobody nobody 508 Dec 20 2003 TWikiPreferences.txt,v -rw-r--r-- 1 nobody nobody 1812 Feb 20 13:54 TWikiUsers.txt -r--r--r-- 1 nobody nobody 9222 Feb 20 13:54 TWikiUsers.txt,v -rw-r--r-- 1 nobody nobody 119 Jan 11 2003 TWikiVariables.txt -r--r--r-- 1 nobody nobody 742 Jan 11 2003 TWikiVariables.txt,v -rw-r--r-- 1 nobody nobody 124 Aug 16 2001 WebChanges.txt -r--r--r-- 1 nobody nobody 526 Aug 16 2001 WebChanges.txt,v -rw-r--r-- 1 nobody nobody 1842 Feb 1 2003 WebHome.txt -r--r--r-- 1 nobody nobody 11862 Feb 1 2003 WebHome.txt,v -rw-r--r-- 1 nobody nobody 176 Nov 24 2001 WebIndex.txt -r--r--r-- 1 nobody nobody 483 Nov 24 2001 WebIndex.txt,v -rw-r--r-- 1 nobody nobody 922 Feb 3 2003 WebNotify.txt -r--r--r-- 1 nobody nobody 4303 Feb 3 2003 WebNotify.txt,v -rw-r--r-- 1 nobody nobody 3738 Dec 25 2003 WebPreferences.txt -r--r--r-- 1 nobody nobody 10697 Dec 25 2003 WebPreferences.txt,v -rw-r--r-- 1 nobody nobody 416 Jan 30 2003 WebRss.txt -r--r--r-- 1 nobody nobody 605 Jan 30 2003 WebRss.txt,v -rw-r--r-- 1 nobody nobody 164 Jan 18 2004 WebSearchAdvanced.txt -r--r--r-- 1 nobody nobody 353 Jan 18 2004 WebSearchAdvanced.txt,v -rw-r--r-- 1 nobody nobody 158 Aug 7 2001 WebSearch.txt -r--r--r-- 1 nobody nobody 18332 Aug 7 2001 WebSearch.txt,v -rw-r--r-- 1 nobody nobody 825 Jul 16 00:32 WebStatistics.txt -r--r--r-- 1 nobody nobody 4226 Jul 16 00:32 WebStatistics.txt,v -rw-r--r-- 1 nobody nobody 182 Nov 24 2001 WebTopicList.txt -r--r--r-- 1 nobody nobody 371 Nov 24 2001 WebTopicList.txt,vDirectory
twiki/pub/:
drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 . drwxrwxr-x 3 twiki twiki 4096 Nov 18 12:31 .. drwxrwxr-x 2 nobody nobody 4096 Apr 7 2002 Main drwxrwxr-x 2 nobody nobody 4096 Apr 20 2002 Sandbox drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 TWiki drwxrwxr-x 2 nobody nobody 4096 Dec 3 2001 Trash -rw-rw-r-- 1 twiki twiki 1078 Jan 14 2000 favicon.ico drwxrwxr-x 2 twiki twiki 4096 Nov 18 12:31 icn -rw-rw-r-- 1 twiki twiki 2877 Jun 7 1999 wikiHome.gifPartial file list for
twiki/pub/icn/:
drwxrwxr-x 2 twiki twiki 4096 Nov 18 12:31 . drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 .. -rw-rw-r-- 1 twiki twiki 801 Mar 26 1999 _filetypes.txt -rw-rw-r-- 1 twiki twiki 143 Mar 9 1999 bat.gif -rw-rw-r-- 1 twiki twiki 926 Mar 9 1999 bmp.gif -rw-rw-r-- 1 twiki twiki 141 Mar 25 1999 c.gif -rw-rw-r-- 1 twiki twiki 144 Mar 9 1999 dll.gif -rw-rw-r-- 1 twiki twiki 152 Mar 9 1999 doc.gifDirectory
twiki/pub/TWiki:
drwxrwx--x 8 nobody nobody 4096 Nov 18 12:31 . drwxrwxr-x 8 nobody nobody 4096 Nov 18 12:31 .. drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 FileAttachment drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 PreviewBackground drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiDocGraphics drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiLogos drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 TWikiTemplates drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 WabiSabiDirectory
twiki/pub/TWiki/FileAttachment:
drwxrwxr-x 2 nobody nobody 4096 Nov 18 12:31 . drwxrwx--x 8 nobody nobody 4096 Nov 18 12:31 .. -rw-rw-r-- 1 nobody nobody 30 Jul 22 1999 Sample.txt -rw-rw-r-- 1 nobody nobody 94 Jun 7 1999 Smile.gif -r--r--r-- 1 nobody nobody 81 Aug 15 10:14 Smile.gif,v-- TWiki:Main.PeterThoeny - 29 Aug 2004
META variable name/value pairs
META variables to store topic data that's separate from the main free-form content. This includes program-generated info like FileAttachment and topic movement data, and user-defined TWikiForms info. Use META variables to format and display Meta Data.
%META:<type>{key1="value1" key2="value2" ...}%
name, this appears first for easier searching (note the order of the variables themselves is defined).
\n (new line) is represented in values by %_N_ and " (double-quotes) by %_Q_%.
Example of Format
%META:TOPICINFO{version="1.6" date="976762663" author="PeterThoeny" format="1.0"}%
text of the topic
%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName"
by="JohnTalintyre" date="976762680"}%
%META:TOPICPARENT{name="NavigationByTopicContext"}%
%META:FILEATTACHMENT{name="Sample.txt" version="1.3" ... }%
%META:FILEATTACHMENT{name="Smile.gif" version="1.1" ... }%
%META:FORM{name="WebFormTemplate"}%
%META:FIELD{name="OperatingSystem" value="OsWin"}%
%META:FIELD{name="TopicClassification" value="PublicFAQ"}%
| Key | Comment |
|---|---|
| version | Same as RCS version |
| date | integer, unix time, seconds since start 1970 |
| author | last to change topic, is the REMOTE_USER |
| format | Format of this topic, will be used for automatic format conversion |
%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%
| Key | Comment |
|---|---|
| from | Full name, i.e., web.topic |
| to | Full name, i.e., web.topic |
| by | Who did it, is the REMOTE_USER, not WikiName |
| date | integer, unix time, seconds since start 1970 |
| Key | Comment |
|---|---|
| name | The topic from which this was created, WebHome if done from Go, othewise topic where ? or form used. Normally just topic, but is full web.topic format if parent is in a different Web. Renaming a Web will then only break a few of these references or they can be scanned and fixed. |
| Key | Comment |
|---|---|
| name | Name of file, no path. Must be unique within topic |
| version | Same as RCS revision |
| path | Full path file was loaded from |
| size | In bytes |
| date | integer, unix time, seconds since start 1970 |
| user | the REMOTE_USER, not WikiName |
| comment | As supplied when file uploaded |
| attr | h if hidden, optional |
| Key | Comment |
|---|---|
| movedfrom | full topic name - web.topic |
| movedby | the REMOTE_USER, not WikiName |
| movedto | full topic name - web.topic |
| moveddate | integer, unix time, seconds since start 1970 |
| Key | Comment |
|---|---|
| name | A topic name - the topic represents one of the TWikiForms. Can optionally include the web name (i.e., web.topic), but doesn't normally |
| Key | Name |
|---|---|
| name | Ties to entry in TWikiForms template, is title with all bar alphanumerics and . removed |
| title | Full text from TWikiForms template |
| value | Value user has supplied via form |
diff function output appears in a logical order
META:TOPICINFO
META:TOPICPARENT (optional)
META:TOPICMOVED (optional)
META:FILEATTACHMENT (0 or more entries)
META:FORM (optional)
META:FIELD (0 or more entries; FORM required)
Raw Text link can be clicked to show the text of a topic (i.e., as seen when editing). This is done by adding raw=on to URL. raw=debug shows the meta data as well as the topic data, ex: debug view for this topic
view, preview and edit scripts.
Note: Rendering meta data is currently not supported in topic text. As a workaround, use FormattedSearch on the current topic only to render form fields.
Current support covers:
| Variable usage: | Comment: |
|---|---|
%META{"form"}% | Show form data, see TWikiForms. |
%META{"formfield"}% | Show form field value. Parameter: name="field_name". Example:%META{ "formfield" name="TopicClassification" }% |
%META{"attachments"}% | Show attachments, except for hidden ones. Options: all="on": Show all attachments, including hidden ones. |
%META{"moved"}% | Details of any topic moves. |
%META{"parent"}% | Show topic parent. Options: dontrecurse="on": By default recurses up tree, at some cost. nowebhome="on": Suppress WebHome. prefix="...": Prefix for parents, only if there are parents, default "". suffix="...": Suffix, only appears if there are parents, default "". separator="...": Separator between parents, default is " > ". |
Meta.pm code that supports the format needs only minor alteration.
-- TWiki:Main.JohnTalintyre - 29 Aug 2001 | Formatting Command: | Example: You write: | You get: | |||||||||||||||||||
|
Paragraphs: Blank lines will create new paragraphs. |
1st paragraph 2nd paragraph | 1st paragraph 2nd paragraph | |||||||||||||||||||
|
Headings: At least three dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a level 1 heading (most important), two pluses a level 2 heading; the maximum is level 6. Note: A Table of Content can be created automatically with the %TOC% variable, see TWikiVariables. Any heading text after !! is excluded from the TOC; for example, write ---+!! text if you do not want to list a header in the TOC.
|
---++ Sushi ---+++ Maguro |
SushiMaguro |
|||||||||||||||||||
|
Bold Text: Words get bold by enclosing them in * asterisks.
|
*Bold* | Bold | |||||||||||||||||||
|
Italic Text: Words get italic by enclosing them in _ underscores.
|
_Italic_ | Italic | |||||||||||||||||||
|
Bold Italic: Words get _bold italic by enclosing them in _ double-underscores.
|
__Bold italic__ | Bold italic | |||||||||||||||||||
|
Fixed Font: Words get shown in fixed font by enclosing them in = equal signs.
|
=Fixed font= |
Fixed font
|
|||||||||||||||||||
|
Bold Fixed Font: Words get shown in bold fixed font by enclosing them in double equal signs.
|
==Bold fixed== |
Bold fixed
|
|||||||||||||||||||
Note: Make sure there is no space between the text and the bold, italic, or other indicators (* _ __ = ==).
|
_This works_, _this not _ |
This works, _this not _ |
|||||||||||||||||||
|
Verbatim Mode: Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags. Note: Use <pre> and </pre> tags instead if you want that HTML code is interpreted. Note: Each tag must be on a line by itself. |
<verbatim>
class CatAnimal {
void purr() {
<code here>
}
}
</verbatim>
|
class CatAnimal {
void purr() {
<code here>
}
}
|
|||||||||||||||||||
|
Separator: At least three dashes at the beginning of a line. |
------- |
|
|||||||||||||||||||
|
List Item: Three spaces, an asterisk, and another space. |
* bullet item |
|
|||||||||||||||||||
|
Nested List Item: Six, nine, ... spaces, an asterisk, and another space. |
* level 1
* level 2
|
|
|||||||||||||||||||
|
Ordered List: Three spaces, a number, a dot, and another space. Several types are available besides a number:
|
1. Sushi 1. Dim Sum A. Sushi A. Dim Sum i. Sushi i. Dim Sum |
|
|||||||||||||||||||
|
Definition List: Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. |
$ Sushi: Japan $ Dim Sum: S.F. |
|
|||||||||||||||||||
|
Table: Any number of lines of text. Each line is one row of the table consisting of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored. Notes: • | *bold* | cells are displayed as table headers.• | center-spaced | cells are displayed center aligned.• | right-spaced | cells are displayed right aligned.• | 2 colspan || cells are displayed as multi-span columns (i.e., a cell with no text spans a column).• |^| cells with a caret indicate follow-up rows of multi-span rows (this functionality is provided by TablePlugin).• If a row contains a large amount of text, and you want it to be more readable while editing the table, split the row into multiple text lines by ending each line with a backslash character '\'.• Table cells wrap automatically as determined by the browser. |
| *L* | *C* | *R* | | A2 | 2 | 2 | | A3 | 3 | 3 | | multi span ||| | A4-6 | four | four | |^| five | five | |^| six | six | |
|
|||||||||||||||||||
|
WikiWord Links: CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically. Note: In case you want to link to a topic in a different TWiki web write Otherweb.TopicName. (The link label is the the name of the web in case the is WebHome, else it is the topic name)
|
WebNotify Public.TWikiUsers | WebNotify TWikiUsers? | |||||||||||||||||||
|
Forced Links: You can create a forced internal link by enclosing words in double square brackets. Note: Text within the brackets may contain optional spaces; the topic name is formed by capitalizing the initial letter and by removing the spaces; for example, [[text formatting FAQ]] links to topic TextFormattingFAQ. You can also refer to a different web and use anchors.
Note: To "escape" double square brackets that would otherwise be a correct link, prefix the leading left square brackets with an exclamation point, that is, begin with ![[....
|
[[wiki syntax]] [[Public.TWiki users]] escaped: ![[wiki syntax]] | wiki syntax Public.TWiki users? escaped: [[wiki syntax]] | |||||||||||||||||||
|
Specific Links: Create a link where you can specify the link text and the link reference separately, using nested square brackets like [[reference][text]]. Internal link references (e.g. WikiSyntax) and external link references (e.g. http://TWiki.org/) are supported.
Note: The same Forced Links rules apply for internal link references. Note: For external link references, you can simply use a space instead of ][ to separate the link URL from the descriptive text.
Note: Anchor names can be added as well, like [[WebHome#MyAnchor][go home]] and [[http://gnu.org/#Action][GNU Action]].
|
[[WikiSyntax][syntax]] [[http://gnu.org][GNU]] [[http://xml.org XML]] | syntax GNU XML | |||||||||||||||||||
|
Anchors: You can define a link reference inside a TWiki topic (called an anchor name) and link to that. To define an anchor write #AnchorName at the beginning of a line. The anchor name must be a WikiWord. To link to an anchor name use the [[MyTopic#MyAnchor]] syntax. You can omit the topic name if you want to link within the same topic.
|
[[WikiWord#NotThere]] [[#MyAnchor][Jump]] #MyAnchor To here | WikiWord#NotThere Jump To here | |||||||||||||||||||
|
Prevent a Link: Prevent a WikiWord from being linked by prepending it with an exclamation point. |
!SunOS | SunOS | |||||||||||||||||||
|
Disable Links: You can disable automatic linking of WikiWords by surrounding text with <noautolink> and </noautolink> tags.
Note: Each tag must be on a line by itself. Note: This also works for TWiki tables, but only if you add a blank line between the end of the table and the closing </noautolink> tag (known issue of the TablePlugin).
|
<noautolink> RedHat & SuSE </noautolink> | RedHat & SuSE | |||||||||||||||||||
|
Mailto: Links: To create 'mailto:' links that have more descriptive link text, specify subject lines or message bodies, or omit the email address, you can write [[mailto:user@domain descriptive text]].
|
[[mailto:a@z.com Mail]] [[mailto:?subject=Hi Hi]] | Mail Hi | |||||||||||||||||||
<p /> paragraph tags on empty lines, which causes problems if done between tags that do not allow paragraph tags, like for example between table tags.
<...> - of an HTML tag must be on the same line, or the tag will be broken.
<, ex: a < b
<pre> tags:
<script type="text/javascript"> <!-- Hide JavaScript and <pre> escape TWiki rendering ... put your JavaScript code here... // Stop hiding and stop </pre> escaping TWiki rendering --> </script>
http://..., https://..., ftp://..., gopher://..., news://..., file://..., telnet://...
and mailto:...@... are linked automatically.
name@domain.com are linked automatically.
[[Square bracket rules]] let you easily create non-WikiWord links.
[[http://yahoo.com Yahoo home page]] as an easier way of doing external links with descriptive text for the link, such as Yahoo home page.
% that are expanded on the fly.
%TOC% : Automatically generates a table of contents based on headings in a topic - see the top of this page for an example.
%WEB% : The current web, is TWiki.
%TOPIC% : The current topic name, is TextFormattingRules.
%ATTACHURL% : The attachment URL of the current topic. Example usage: If you attach a file to a topic you can refer to it as %ATTACHURL%/image.gif to show the URL of the file or the image in your text.
%INCLUDE{"SomeTopic"}% : Server side include, includes another topic. The current TWiki web is the default web. Example: %INCLUDE{"TWiki.SiteMap"}%
%SEARCH{"sushi"}% : Inline search showing the search result embedded in a topic. FormattedSearch gives you control over formatting, used to create web-based applications.
%BR% to start a new line.
%RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors to get: Red and blue colors.
%H% Help, %T% Tip, %X% Alert to get: !%SOMEVARIABLE% to get: %SOMEVARIABLE%.
%PLUGINDESCRIPTIONS%:
*_text_* as bold italic text.
"$SUM( $ABOVE() )" to tables located in TWiki topics.
ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic
:-) for
or :cool: for
<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'.