TWiki CGI and Command Line Scripts
Programs on the TWiki server performing actions such as rendering, saving and renaming topics.
The TWiki scripts are located in the
twiki/bin
and
twiki/tools
directories. This topic describes the interfaces to some of those scripts. All scripts in the
twiki/bin
directory can be called from the CGI (
Common Gateway Interface) environment or from the command line. The scripts in the
twiki/tools
directory can only be called from the command line.
CGI Scripts
Details on CGI scripts located in the
twiki/bin
directory.
General Information
CGI environment
In the CGI environment parameters are passed to the scripts via the URL and URL parameters. Environment variables are also used to determine the user performing the action. If the environment is not set up, the default TWiki user is used (usually
guest
).
Command-line
You
must have the
twiki/bin
directory on the perl path to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such as
nobody
or
www
.
Parameters are passed on the command line using '-name' - for example,
$ cd /usr/local/twiki/bin
$ save -topic MyWeb.MyTopic -user admin -method POST -action save -text "New text of the topic"
All parameters require a value, even if that is the empty string.
Common parameters
All the scripts accept a number of common parameters. The first two components of the URL after the script name are taken as the web and the topic, respectively. Standard URL parameters are:
Parameter |
Description |
Default |
topic |
If this is set to a URL, TWiki will immediately redirect to that URL. Otherwise it overrides the URL and is taken as the topic name (you can pass Web.TopicName) |
|
user |
Command-line only; set the name of the user performing the action. Note: this usage is inherently insecure, as it bypasses webserver login constraints. For this reason only authorized users should be allowed to execute scripts from the command line. |
TWikiAdminGroup |
method |
Commad-line only; set the HTTP request method. Some scripts requires the POST method under certain circumstances. In such a case, you need to specify the POST method to run the script from a command line. |
GET |
skin |
Overrides the default skin path (see TWikiSkins) |
|
cover |
Specifies temporary skin path to prepend to the skin path for this script only (see TWikiSkins) |
|
redirectto parameter
Some scripts take the
redirectto
parameter.
Since the parameter's effect is not simple, it's described here.
The parameter value can either be a
TopicName
, a
Web.TopicName
(optionally with parameters e.g.
FooBar?param1=value1
), or a URL.
Please note that redirect to a URL only works if it is enabled in
configure
(Security setup > Miscellaneous
{AllowRedirectUrl}
).
If the parameter value contains a
${field}
or
$field
, it's replaced with the value of the specified field of the page (URL-encoded).
To know what fields are there on the page, please look into the HTML of the page.
For the
save
script, special variables are available as below:
Parameter |
Value |
$web and $topic |
The names of the web/topic of the topic that has just been saved. It is useful when the redirectto parameter is passed around over multiple redirections or form submissions, where the topic name is dynamically determined (e.g. using AUTOINC, custom topic creation form, and JavaScript) |
$dontnotify |
When "Quiet Save" is used, this value is set to "checked". |
attach
Despite the name, this script doesn't actually attach a file to a topic - for that, use
upload
. This script is part of the transactions sequence executed when a file is uploaded from the browser. it just generates the "new attachment" page for a topic.
Parameter |
Description |
Default |
filename |
Name of existing attachment (if provided, this is a "manage attachment" action) |
none (in which case this is a "new attachment" action) |
redirectto |
The attach script itself does not do anything special with this parameter. But the attach template is written so that the parameter's value is propagated to upload , which is called when attachments are uploaded. |
|
changes
Shows all the changes in the given web.
The
changes
script can receive one parameter:
The main difference between invoking this script and using
WebChanges is that
WebChanges is based on a
%SEARCH%
, while this script reads the
changes
file in each web, making it much faster.
Note: The result from
changes
script and the topic
WebChanges can be different, if the
changes
file is deleted from a web. In particular, in new installations the
changes
script will return no results while the
WebChanges topic will.
configure
configure
is the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose except
configure
. See
configure.
edit
The
edit
script understands the following parameters, typically supplied by HTML input fields:
Parameter |
Description |
Default |
action |
Optional. Use the editaction template instead of the standard edit. If action=text, then hide the form. If action=form hide the normal text area and only edit the form. You can change the Edit/Edit Raw buttons to always append the action parameter in skins like Pattern and Classic by setting the topic or preference variable EDITACTION to the value text or form . To edit the topic once the EDITACTION is defined as form simply remove the action=form from the browser URL of the edit script and reload the edit window |
|
onlynewtopic |
If set, error if topic already exists |
|
onlywikiname |
If set, error if topic name is not a WikiWord |
|
templatetopic |
The name of the template topic, copied to get the initial content (new topic only) |
|
text |
Initial text for the topic |
|
topicparent |
The parent topic |
|
formtemplate |
Name of the form to instantiate in the topic. Overrides the form set in the templatetopic if defined. (will remove the form is set to 'none') |
|
template |
Specify a different skin template, overriding the 'edit' template the edit script would normally use. Use this for specialized templates in a TWiki Application. This parameter is not commonly used. |
|
contenttype |
Optional parameter that defines the application type to write into the CGI header. Defaults to text/html . May be used to invoke alternative client applications |
|
anyname |
Any parameter can passed to the new topic; if the template topic contains %URLPARAM{"anyname"}% , it will be replaced by its value |
|
breaklock |
If set, any lease conflicts will be ignored, and the edit will proceed even if someone is already editing the topic. |
|
redirectto |
The edit script itself does not do anything special with this parameter. But the edit template is written so that the parameter's value is propagated to save , which is called when a topic is saved. |
|
t |
Provide a unique URL each time a topic is edited, typically specifying parameter t=%SERVERTIME{$epoch}% in an edit link. This is done to prevent browsers from caching an edit session, which could result in editing outdated content. The parameter name and value is arbitrary, but must be unique each time. |
|
Form field values are passed in parameters named 'field' - for example, if I have a field
Status
the parameter name is
Status
.
- The first sequence of ten or more
X
characters in the topic name will be converted on save to a number such that the resulting topic name is unique in the target web.
Notes:
- Most skins support the definition of
EDIT_SKIN
, which is used as the value of the cover
parameter in edit
URLs. This allows you to override the default edit skin on a web, topic or user basis.
- This is not a behavior of the
edit
script, but most skins' view template refers to the SAVEREDIRECTTO
preference variable. If it's defined, the edit links on the view page gets redirectto
parameter with the value of SAVEREDIRECTTO
.
login
Used for logging in when TWiki login is being used (e.g TemplateLoginManager).
Parameter |
Description |
Default |
origurl |
URL that was being accessed when an access violation occurred. the login process will redirect to this URL if it is successful |
none |
username |
username of user logging in |
none |
password |
password of user logging in |
none |
logon
Used for logging in when Web Server authentication is being used (e.g. ApacheLoginManager). The script does nothing; it is purely a placeholder for triggering the login process. The webserver will be set up to require a valid user to access this script, thus triggering the webserver login process.
manage
Performs a range of management functions.
Note: The
manage
script can only be called via http POST method for
createweb
renameweb
, and
deleteUserAccount
.
action=createweb
Parameter |
Description |
Default |
newweb |
Name of the new web |
'' |
baseweb |
Name of the web to copy to create the new web |
'' |
webbgcolor |
value for WEBBGCOLOR |
'' |
sitemapwhat |
Value for SITEMAPWHAT |
'' |
nosearchall |
Value for NOSEARCHALL |
'' |
action=renameweb
Parameter |
Description |
Default |
newsubweb |
Name of the web after move |
'' |
newparentweb |
New parent web name |
'' |
confirm |
If defined, requires a second level of confirmation. Supported values are "getlock", "continue", and "cancel" |
'' |
action=editSettings
No parameters
action=saveSettings
Parameter |
Description |
Default |
text |
Text of the topic |
'' |
originalrev |
Revision that the edit started on |
Most recent revision |
redirectto |
If the savesettings process is successful, save will redirect to the topic or URL specified by this parameter. Please read here for details. |
|
All other parameters may be interpreted as form fields, depending on the current form definition in the topic.
action=bulkRegister
See
BulkRegistration.
Parameter |
Description |
Default |
OverwriteHomeTopics |
Whether to overwrite existing home topics or not |
false |
EmailUsersWithDetails |
Whether to mail registered users or not |
false |
LogTopic |
Topic to save the log in |
Same as topic name, with 'Result' appended. |
action=changePassword
Change password, email address, or both, of a user.
Parameter |
Description |
Default |
username |
god alone knows |
none |
oldpassword |
current password |
none |
password |
new password |
none |
passwordA |
new password confirmation |
none |
email |
new email address |
none |
password, =passwordA
and
email
are optional. If neither or
password
and
passwordA
is set, then the user password is left unchanged. If
email
is unset, their email is left unchanged.
action=resetPassword
Reset the password for a single or multiple users
Parameter |
Description |
Default |
LoginName |
list of usernames to reset |
none - error if not set |
Introduction |
message to be sent alongside the reset, most often used to announce to the user that they have been given an account. |
'' |
This is used by
BulkResetPassword and
ResetPassword. Only administrators can provide a list of
LoginNames, non-admins can only provide a single
LoginName.
BulkRegistration provides the means to create multiple accounts but it does not announce those accounts to the users who own them.
BulkResetPassword is used to assign the passwords, the Introduction is used to explain why they are receiving the mail.
action=deleteUserAccount
Unregisters (removes) the currently logged-in user.
oops
This script is mainly used for rendering pages containing error messages, though it is also used for some functional actions such as manage pages (move topic etc).
oops
templates are used with the
oops
script to generate system messages. This is done to make internationalization or other local customizations simple.
The
oops
script supports the following parameters:
Parameter |
Description |
Default |
template |
Name of the template file to display |
|
def |
Optional, can be set to the name of a single definition within template . This definition will be instantiated in the template wherever %INSTANTIATE% is seen. This lets you use a single template file for many messages. For an example, see oopsmanagebad.tmpl . |
|
paramN |
Where N is an integer from 1 upwards. These values will be substituted into template for %PARAM1% etc. |
|
preview
This script is
deprecated. Its functions are covered by the
save
script.
rdiff
Renders the differences between version of a TWiki topic
Parameter |
Description |
Default |
rev1 |
the higher revision |
|
rev2 |
the lower revision |
|
render |
the rendering style {sequential, sidebyside, raw, debug} |
DIFFRENDERSTYLE, sequential |
type |
{history, diff, last} history diff, version to version, last version to previous |
diff |
context |
number of lines of context |
|
TODO:
- add a {word} render style
register
Parameter |
Description |
Default |
action |
register or verify or resetPassword or approve |
|
topicparent |
The parent topic of the new user profile page |
{UsersTopicName} configure setting |
Note: The
register
script can only be called via http POST method, not GET. Make sure to specify the
"post"
method if you call the
register
script via a form action.
rename
Used for renaming topics and attachments.
Parameter |
Description |
Default |
skin |
skin(s) to use |
|
newweb |
new web name |
|
newtopic |
new topic name |
|
breaklock |
|
|
attachment |
|
|
confirm |
if defined, requires a second level of confirmation |
|
currentwebonly |
if defined, searches current web only for links to this topic |
|
nonwikiword |
if defined, a non-wikiword is acceptable for the new topic name |
|
redirectto |
If the rename process is successful, rename will redirect to the topic or URL specified by this parameter. Please read here for details. |
|
disablefixlinks |
Bypass fixing WikiWord links in the rename destination topic if rename is done across webs. Fixing links in the renamed topic such as from SomeLink to Otherweb.SomeLink is usually desirable so that links in the copied topic still point to the same target |
off (links are fixed) |
Note: The
rename
script can only be called via http POST method, not GET. Make sure you specify
method="post"
if you call the
rename
script via a form action.
copy
Used for copying the current topic in its entirety including its history and attachments.
Parameter |
Description |
Default |
newweb |
destination web name |
current web |
newtopic |
destination topic name |
current topic |
nonwikiword |
if defined, a non-wikiword is acceptable for the destination topic name |
|
redirectto |
If the copy process is successful, copy will redirect to the topic or URL specified by this parameter. Please read here for details. |
|
overwrite |
By default, copy does not happen if the destination topic already exists. If this parameter is 'on' , the destination topic is deleted if exists before copying takes place |
off (no overwrite) |
disablefixlinks |
Bypass fixing WikiWord links in the copy destination topic if copy is done across webs. Fixing links in the copied topic such as from SomeLink to Otherweb.SomeLink is usually desirable so that links in the copied topic still point to the same target |
off (links are fixed) |
mdrepo
Used to retrieve and update data in
MetadataRepository.
Please read
MetadataRepository#mdrepo_script_from_command_line and
MetadataRepository#mdrepo_script_from_browser.
rest
This REST (
Representational State Transfer) script can be invoked via http in the same way as the other TWiki scripts (see
Invocation Examples, below) to execute a function that is associated to a "subject" and a "verb" (see below). These functions are usually registered by plugins using the
TWiki::Func::registerRESTHandler
method. The
rest
script will print the result directly to the browser unless the
endPoint
parameter is specified, in which case it will output a redirect to the given topic.
The
rest
script supports the following parameters:
username |
If TemplateLogin , or a similar login manager not embedded in the web server, is used, then you need to pass a username and password to the server. The username and password parameters are used for this purpose. |
password |
See username |
topic |
If defined as the full name (including web) of a topic, then when the script starts up plugins will be passed this as the "current" topic. If not defined, then Main.WebHome will be passed to plugins. |
endPoint |
Where to redirect the response once the request is served, in the form "Web.Topic" |
The function is free to use any other query parameters for its own purposes.
Note: The
rest
script should
always require authentication in any TWiki that has logins. Otherwise there is a risk of opening up major security holes. So make sure you add it to the list of authenticated scripts if you are using
ApacheLogin
.
Invocation Examples
The
rest
script assumes that it will be called with URL in the form:
http://my.host/bin/rest/<subject>/<verb>
where
<subject>
must be the
WikiWord name of one of the installed
TWikiPlugins, and the
<verb>
is the alias for the function registered using the
TWiki::Func::registerRESTHandler
method. The
<subject>
and
<verb>
are then used to lookup and call the registered function.
<subject>
and
<verb>
are checked for illegal characters exactly in the same way as the web and topic names.
As an example, the
EmptyPlugin has registered a function to be used with the
rest
script under the subject
EmptyPlugin and the verb
example. Click below to see the
rest
script in action (run as
TWikiGuest).
Call the Plugin
Note that for Plugins to register REST handlers, they must be enabled in
configure
.
save
The
save
script performs a range of save-related functions, as selected by the
action
parameter.
Parameter |
Description |
Default |
action_save=1 |
default; save, return to view, dontnotify is off |
|
action_quietsave=1 |
save, and return to view, dontnotify is on |
|
action_checkpoint |
save and redirect to the edit script, dontnotify is on |
|
action_cancel |
exit without save, return to view |
|
action_preview |
preview edited text |
|
action_addform |
Redirect to the "change form" page. |
|
action_replaceform... |
Redirect to the "change form" page. |
|
action_delRev |
Administrators only delete the most recent revision of the topic - all other parameters are ignored. You have to be an administrator to use this, and not all store implementations will support it. |
|
action_repRev |
Administrators only replace the text of the most recent revision of the topic with the text in the text parameter. text must included embedded meta-data tags. All other parameters are ignored. You have to be an administrator to use this, and not all store implementations will support it. |
|
onlynewtopic |
If set, error if topic already exists |
|
onlywikiname |
If set, error if topic name is not a WikiWord |
|
dontnotify |
if defined, suppress change notification |
|
templatetopic |
Name of a topic to use as a template for the text and form (new topic only) |
|
text |
New text of the topic |
|
forcenewrevision |
if set, forces a revision even if TWiki thinks one isn't needed |
|
topicparent |
If 'none' remove any current topic parent. If the name of a topic, set the topic parent to this. |
|
formtemplate |
if defined, use the named template for the form (will remove the form is set to 'none') |
|
editaction |
When action is checkpoint , add form or replace form... , this is used as the action parameter to the edit script that is redirected to after the save is complete. |
|
originalrev |
Revision on which the edit started. |
|
edit |
The script to use to edit the topic when action is checkpoint |
edit |
editparams |
The parameter string to use to edit the topic |
|
redirectto |
The save process will redirect to the topic or URL specified by this parameter if it is successful. Please read here for details. Please read notes on redirectto below as well. |
view topic being saved |
Notes:
- Any errors will cause a redirect to an
oops
page.
- It is possible to get auto-incremented topic names: Add
AUTOINC<n>
(such as AUTOINC0001
, <n>
being one or more consecutive digits) to the topic name; it will be converted to a number to make a unique topic name in the web. For example, ItemAUTOINC0001
makes Item0001
, Item0002
, Item0003
, ... (detail)
- When the action is
save
, checkpoint
, quietsave
, or preview
:
- The new text is taken from the
text
parameter, if it is defined,
- otherwise it is taken from the
templatetopic
, if it is defined, (new topic only)
- otherwise it is taken from the previous version of the topic, if any,
- The name of the new form is taken from the
formtemplate
, if defined
- otherwise it is taken from the
templatetopic
, if defined, (new topic only)
- otherwise it is taken from the previous version of the topic, if any,
- otherwise no form is attached.
- The value for each field in the form is taken from the query, if it is defined
- otherwise it is taken from the
templatetopic
, if defined, (new topic only)
- otherwise it is taken from the previous version of the topic, if any,
- otherwise it defaults to the empty string.
- Merging is only enabled if the topic text comes from
text
and originalrev
is > 0 and is not the same as the revision number of the most recent revision. If merging is enabled both the topic and the meta-data are merged.
- Form field values are passed in parameters with names matching the field names - for example, if the form has a field named
Status
, specify a parameter named Status
.
- As a security precaution, it is not possible to use
save
in an <a href="">
link. The save
script can only be called via http POST method, not GET. Make sure to specify the "post"
method if you call the save
script via a form action. Example:
<form name="new" action="%SCRIPTURLPATH{save}%/Sandbox/" method="post">
...
</form>
- There are two things to mention about the
redirectto
parameter.
- You may create a new topic name containing
AUTOINC<n>
and you may want to redirect to a URL containing the newly created topic's name. This is tricky but you can achieve that by putting AUTOINC
in the redirectto
parameter. Let's say you create new topics by specifying ItemAUTOINC000
as the topic name, then ItemAUTOINC
in redirectto
is replaced with the appropriate ItemNNN. For example, if the latest existing topic is Item012
, a new topic named Item013
is created, and the web client is redirected to a URL having Item013
.
- When the "Quiet save" button is clicked, TWiki processes as if the
dontnotify
field has the value checked
. Here's a concrete example. Let's say redirectto=WebHome?t=$dontnotify
parameter is present to an edit URL.
- If "Save" button is clicked, you are redirected to
WebHome?t=
- If "Quiet save" button is clicked, you are redirect to
WebHome?t=checked
search
CGI gateway to the
%SEARCH%
functionality driven by the following CGI parameters:
Parameter: |
Description: |
Default: |
"text" |
Search term. Is a keyword search, literal search or regular expression search, depending on the type parameter. SearchHelp has more |
required |
search="text" |
(Alternative to above) |
N/A |
web="Name" web="Main, Know" web="all" |
Comma-separated list of webs to search. See VarSEARCH for more details. |
Current web |
topic="WebPreferences" topic="*Bug" |
Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. |
All topics in a web |
excludetopic="Web*" excludetopic="WebHome, WebChanges" |
Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. |
None |
type="keyword" type="literal" type="regex" |
Do a keyword search like soap "web service" -shampoo ; a literal search like web service ; or RegularExpression search like soap;web service;!shampoo |
%SEARCHVAR- DEFAULTTYPE% preferences setting (literal) |
scope="topic" scope="text" scope="all" |
Search topic name (title); the text (body) of topic; or all (both) |
"text" |
sort="topic" sort="created" sort="modified" sort="editby" sort="parent" sort= "formfield(name)" |
Sort the results of search by the topic names, topic creation time, last modified time, last editor, parent topic name, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort |
Sort by topic name |
limit="all" limit="16" |
Limit the number of results returned. This is done after sorting if sort is specified |
All results |
date="..." |
limits the results to those pages with latest edit time in the given time interval. |
All results |
reverse="on" |
Reverse the direction of the search |
Ascending search |
casesensitive="on" |
Case sensitive search |
Ignore case |
bookview="on" |
BookView search, e.g. show complete topic text |
Show topic summary |
nonoise="on" |
Shorthand for nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" |
Off |
nosummary="on" |
Show topic title only |
Show topic summary |
nosearch="on" |
Suppress search string |
Show search string |
noheader="on" |
Suppress search header Topics: Changed: By: |
Show search header |
nototal="on" |
Do not show number of topics found |
Show number |
zeroresults="off" |
Suppress all output if there are no hits |
zeroresults="on" , displays: "Number of topics: 0" |
noempty="on" |
Suppress results for webs that have no hits. |
Show webs with no hits |
header="..." format="..." |
Custom format results: see FormattedSearch for usage, variables & examples |
Results in table |
expandvariables="on" |
Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin %CALC{}% instead of the formula |
Raw text |
multiple="on" |
Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search |
Only one hit per topic |
nofinalnewline="on" |
If on , the search variable does not end in a line by itself. Any text continuing immediately after the search tag on the same line will be rendered as part of the table generated by the search, if appropriate. |
off |
separator=", " |
Line separator between hits |
Newline "$n" |
statistics
Refresh the
WebStatistics topics in range of webs.
Parameter |
Description |
Default |
webs |
comma-separated list of webs to run stats on |
all accessible webs |
logdate |
YYYYMM to generate statistics for |
current month |
For example:
- from browser https://lanis.nl/do/statistics updates all user webs
- from browser https://lanis.nl/do/statistics?webs=TWiki,Main,Sandbox updates TWiki,Main,Sandbox
- from browser https://lanis.nl/do/statistics/TWiki updates TWiki
- from command line twiki/bin/statistics updates all user webs
- from command line twiki/bin/statistics -webs=TWiki,Main,Sandbox updates TWiki,Main,Sandbox
- from command line twiki/bin/statistics TWiki.WebHome updates TWiki
See
TWikiSiteTools#WebStatistics_site_statistics for updating statistics using cron.
upload
Uploads an attachment to a topic. The HTTP request is expected to be in
multipart/form-data
format.
Parameter |
Description |
Default |
hidefile |
If defined, will not show file in attachment table |
|
filepath |
Local (client) path name of the file being uploaded. This is used to look up the data for the file in the HTTP query. |
|
filename |
Deprecated, do not use |
|
filecomment |
Comment to associate with file in attachment table |
|
createlink |
If defined, will create a link to file at end of topic |
|
changeproperties |
If defined, this is a property change operation only - no file will be uploaded. |
null |
redirectto |
The upload process will redirect to the topic or URL specified by this parameter. Please read here for details. Even if an error or warning ocurrs, clicking the OK link below the message redirects you to the specified topic or URL. |
|
updatefield |
If defined and if the value matches the name of a form field, it will update that form field with the format defined by the updateformat parameter. |
|
updateformat |
Format of the value of the form field indicated by the updatefield parameter. The default is the name of the attached file, but can be set to include more, such as the path to the image, %PUBURL%/%BASEWEB%/%BASETOPIC%/$filename . |
$filename |
You can use a tool like
curl
to upload files from the command line using this script.
Note: The
upload
script can only be called via http POST method, not GET.
view
Used for viewing topics.
Parameter |
Description |
Default |
raw=on |
Shows the text of the topic in a scrollable textarea |
|
raw=debug |
As raw=on , but also shows the metadata (forms etc) associated with the topic. |
|
raw=text |
Shows only the source of the topic, as plain text (Content-type: text/plain). Only shows the body text, not the form or other meta-data. |
raw=expandvariables |
Similar to raw=text but TWiki variables are expanded. |
|
raw=all |
Shows only the source of the topic, as plain text (Content-type: text/plain), with embedded meta-data. This may be useful if you want to extract the source of a topic to a local file on disc. |
|
section |
Allows to view only a part of the topic delimited by a named section (see VarSTARTSECTION). If the given section is not present, no topic content is displayed. |
|
contenttype |
Allows you to specify a different Content-Type: (e.g. contenttype=text/plain ) |
|
rev |
Revision to view (e.g. rev=45 ) |
|
template |
Allows you to specify a different skin template, overriding the 'view' template the view script would normally use. The default template is view . For example, you could specify /do/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialized templates for a TWiki Application. |
|
topic |
redirects to show the specified Web.Topic, or, redirects to a URL, if allowed by {AllowRedirectUrl} and {PermittedRedirectHostUrls} configure settings |
|
createifnotexist |
If createifnotexist is set to 1 and in case the topic does not exist, it is created automatically on view. Useful to create topics automatically based on a specific template (see example below). Behind the scene, the view script redirects first to the save script, passing along all URL parameters. Thus all URL parameters of the save script can be used, such as templatetopic , topicparent and redirectto . Next, the save script creates the topic and redirects back to the view script (or displays an error in case there were any issues creating the topic). |
|
extralog |
Add additional text to TWiki log, next to the user agent string. Useful to log actions by cache scripts and crawlers. |
|
Example use of
createifnotexist
to link to the bookmark page of a user, and to create the page on the fly if needed:
[[%SCRIPTURL{view}%/%USERSWEB%/%WIKINAME%Bookmarks?createifnotexist=1&templatetopic=%SYSTEMWEB%.UserBookmarksTemplate&topicparent=%WIKINAME%][Bookmarks]]
For historical reasons, the
view
script has a special interpretation of the
text
skin. In earlier TWiki versions the
skin=text
parameter was used like this:
http://.../view/MyWeb/MyTopic?skin=text&contenttype=text/plain&raw=on
which shows the topic as plain text; useful for those who want to download plain text for the topic.
Using
skin=text
this way is
DEPRECATED, use
raw=text
instead.
viewfile
Used for viewing attachments. Normally, a site will publish the attachments (
pub
) directory using a URL. However if it contains sensitive information, you will want to protect attachments using
TWikiAccessControls. In this case, you can use the
viewfile
script to give access to attachments while still checking access controls.
Instead of using the
filename
parameter, you can append the attachment name
to the end of the URL path (after the topic) e.g.
https://lanis.nl/do/viewfile/Webname/TopicName/Attachment.gif
In that case, determining the attachment file name is non-trivial -- please consider a file name having multiple dots and a file name having no dots.
As such, the process of determining the file name is put on the debug log if
debug=1
URL parameter is supplied.
Command Line Scripts
Details on command line scripts located in the
twiki/tools
directory.
geturl.pl
This is a very simple script to get the content of a web site. It is marked as
deprecated and might be removed (or enhanced) in a future TWiki release. Its functions are covered by the standard
wget
and
curl
commands.
- Usage:
geturl.pl <host> <path> [<port> [<header>]]
- Example:
geturl.pl some.domain /some/dir/file.html 80
- Will get:
http://some.domain:80/some/dir/file.html
rewriteshebang.pl
Simple script to rewrite the
#!/usr/bin/perl
shebang lines specific to your local Perl installation. It will rewrite the first line of all your TWiki cgi scripts so they use a different shebang line. Use it if your perl is in a non-standard location, or you want to use a different interpreter (such as 'speedy').
tick_twiki.pl
This script executes a number of non-essential regular administration tasks that will help keep your TWiki healthy and happy, such as removing expired sessions and lease files.
It is intended to be run as a cron job or a scheduled task once a week. Example crontab entry:
0 0 * * 0 cd /usr/twiki/bin && perl ../tools/tick_twiki.pl
Note: The script has to be run by a user who can write files created by the webserver user.
Related Topics: AdminDocumentationCategory,
DeveloperDocumentationCategory
--
Contributors: TWiki:Main.ArthurClemens,
TWiki:Main.CrawfordCurrie,
TWiki:Main.MichaelDaum,
TWiki:Main.PeterThoeny,
TWiki:Main.RafaelAlvarez,
TWiki:Main.SvenDowideit,
TWiki:Main.ThomasWeigert,
TWiki:Main.WillNorris