
| Line: 1 to 1 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | |||||||||||||
| Line: 8 to 8 | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
| CGI ScriptsDetails on CGI scripts located in thetwiki/bindirectory. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
| General Information | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
| CGI environmentIn 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 (usuallyguest). | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
| Command-lineYou must have thetwiki/bindirectory 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 asnobodyorwww. | |||||||||||||
| Line: 25 to 29 | |||||||||||||
| Parameters are passed on the command line using '-name' - for example, $ cd /usr/local/twiki/bin | |||||||||||||
| Changed: | |||||||||||||
| < < | $ save -topic MyTopic -user admin -action save -text "New text of the topic" | ||||||||||||
| > > | $ save -topic 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. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
| Common parametersAll 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:
 | |||||||||||||
| Changed: | |||||||||||||
| < < | 
 | ||||||||||||
| > > | 
 | ||||||||||||
| 
 | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  Despite the name, this script doesn't actually attach a file to a topic - for that, use | |||||||||||||
| Line: 46 to 53 | |||||||||||||
| 
 | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  Shows all the changes in the given web. | |||||||||||||
| Line: 59 to 67 | |||||||||||||
| Note: The result from changesscript and the topic WebChanges can be different, if thechangesfile is deleted from a web. In particular, in new installations thechangesscript will return no results while the WebChanges topic will. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|   | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  The | |||||||||||||
| Line: 87 to 97 | |||||||||||||
| Note: Most skins support the definition of EDIT_SKIN, which is used as the value of thecoverparameter ineditURLs. This allows you to override the default edit skin on a web, topic or user basis. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  Used for logging in when TWiki login is being used (e.g TemplateLoginManager). | |||||||||||||
| Line: 95 to 106 | |||||||||||||
| 
 | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  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. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|  Performs a range of management functions. | |||||||||||||
| Line: 107 to 120 | |||||||||||||
| Note: The managescript can only be called via http POST method forcreatewebrenameweb, anddeleteUserAccount. | |||||||||||||
| Added: | |||||||||||||
| > > | |||||||||||||
|   | |||||||||||||
| Parameter | Description | Default | 
|---|
| sitemapwhat | Value for SITEMAPWHAT | '' | 
| nosearchall | Value for NOSEARCHALL | '' | 
action=renameweb | Parameter | Description | Default | 
|---|
| newparentweb | New parent web name | '' | 
| confirm | If defined, requires a second level of confirmation. Supported values are "getlock", "continue", and "cancel" | '' | 
action=editSettings action=saveSettings | Parameter | Description | Default | 
|---|
| redirectto | If the savesettings process is successful, save will redirect to this topic or URL. The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Security setup > Miscellaneous{AllowRedirectUrl}). | 
action=bulkRegister | 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 | 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 action=deleteUserAccount | Parameter | Description | Default | 
|---|---|---|
| password | Users' password | none | 
oops | def | Optional, can be set to the name of a single definition within template. This definition will be instantiated in thetemplatewherever%INSTANTIATE%is seen. This lets you use a single template file for many messages. For an example, seeoopsmanagebad.tmpl. | |
| paramN | Where N is an integer from 1 upwards. These values will be substituted into templatefor%PARAM1%etc. | 
preview save script.rdiff register | Parameter | Description | Default | 
|---|
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 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 | 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 rest  ) 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
) 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.configure.save save script performs a range of save-related functions, as selected by the action parameter.save from an <a href=""> link. search %SEARCH% functionality driven by the following CGI parameters:| Parameter: | Description: | Default: | 
|---|---|---|
| "text" | Search term. Is a keyword search, literal search or regular expression search, depending on the typeparameter. 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 TWikiVariables#VarSEARCH for more details. | Current web | 
| 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 likeweb service; or RegularExpression search likesoap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE%preferences setting (literal) | 
| 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 upload 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 | 
| 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 | 
| updatefield | If defined and if the value matches the name of a form field, it will update that form field with the name of the uploaded file. | 
| 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 | 
| 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 updateformatparameter. | |
| updateformat | Format of the value of the form field indicated by the updatefieldparameter. 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 | 
curl to upload files from the command line using this script.
 Note: The
 Note: The upload script can only be called via http POST method, not GET.view skin=text this way is DEPRECATED, use raw=text instead.viewfile pub) directory using a URL. However if it contains sensitive information, you will want to protect attachments using TWikiAccessControls. In this case, you can use the viewfile script to give access to attachments while still checking access controls.| Parameter | Description | Default | 
|---|---|---|
| filename | name of attachment | |
| rev | Revision to view | 
| debug | Put debug info to the debug log | 
filename parameter, you can append the attachment name
to the end of the URL path (after the topic) e.g. https://obelix.beims.me/twiki/bin/viewfile/Webname/TopicName/Attachment.gifdebug=1 URL parameter is supplied.twiki/tools directory.geturl.pl wget and curl commands.geturl.pl some.domain /some/dir/file.html 80
http://some.domain:80/some/dir/file.html
rewriteshebang.pl #!/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 | Line: 1 to 1 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||||||||||||||
| Line: 35 to 35 | ||||||||||||||||||||||
| 
 | ||||||||||||||||||||||
| Changed: | ||||||||||||||||||||||
| < < | 
 | |||||||||||||||||||||
| > > | 
 | |||||||||||||||||||||
| 
 | ||||||||||||||||||||||
| Line: 174 to 174 | ||||||||||||||||||||||
| 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). | ||||||||||||||||||||||
| Changed: | ||||||||||||||||||||||
| < < | oopstemplates are used with theoopsscript to generate system messages. This is done to make internationalisation or other local customisations simple. | |||||||||||||||||||||
| > > | oopstemplates are used with theoopsscript to generate system messages. This is done to make internationalization or other local customizations simple. | |||||||||||||||||||||
| The oopsscript supports the following parameters: | ||||||||||||||||||||||
| Line: 222 to 222 | ||||||||||||||||||||||
| 
 | ||||||||||||||||||||||
| Added: | ||||||||||||||||||||||
| > > | 
 | |||||||||||||||||||||
| Note: The renamescript can only be called via http POST method, not GET. Make sure you specifymethod="post"if you call therenamescript via a form action. | ||||||||||||||||||||||
| Added: | ||||||||||||||||||||||
| > > |  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 this topic or URL. The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Security setup > Miscellaneous{AllowRedirectUrl}). | |
| 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 rest  ) 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
) 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.| 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 likeweb service; or RegularExpression search likesoap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE%preferences setting (literal) | 
| scope="topic"scope="text"scope="all" | Search topic name (title); the text (body) of topic; or all (both) | "text" | 
| order="topic"order="created"order="modified"order="editby"order= | Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort | Sort by topic name | 
| limit="all"limit="16" | Limit the number of results returned. This is done after sorting if orderis specified | All results | 
| sort="topic"sort="created"sort="modified"sort="editby"sort="parent"sort= | 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 sortis 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 | 
| 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=textbut 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 /twiki/bin/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialised templates for a TWiki Application. | 
| 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 /twiki/bin/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 createifnotexistis set to1and 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, theviewscript redirects first to thesavescript, passing along all URL parameters. Thus all URL parameters of thesavescript can be used, such astemplatetopic,topicparentandredirectto. Next, thesavescript creates the topic and redirects back to theviewscript (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. | 
| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||
| Line: 394 to 394 | ||||||||||
| 
 | ||||||||||
| Added: | ||||||||||
| > > | 
 | |||||||||
|  Example use of createifnotexistto 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]] | ||||||||||
| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||
| Line: 20 to 20 | ||||||||||
| Command-line | ||||||||||
| Changed: | ||||||||||
| < < | You must be have the twiki/bindirectory 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 asnobodyorwww. | |||||||||
| > > | You must have the twiki/bindirectory 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 asnobodyorwww. | |||||||||
| Parameters are passed on the command line using '-name' - for example, | ||||||||||
| Line: 78 to 78 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 Statusthe parameter name isStatus. | ||||||||||
| Line: 131 to 131 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| All other parameters may be interpreted as form fields, depending on the current form definition in the topic.   | ||||||||||
| Line: 221 to 221 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| Note: The renamescript can only be called via http POST method, not GET. Make sure you specifymethod="post"if you call therenamescript via a form action. | ||||||||||
| Line: 281 to 281 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| Any errors will cause a redirect to an oopspage. | ||||||||||
| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||
| Line: 204 to 204 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| Note: The registerscript can only be called via http POST method, not GET. Make sure to specify the"post"method if you call theregisterscript via a form action. | ||||||||||
| Line: 373 to 373 | ||||||||||
| 
 | ||||||||||
| Added: | ||||||||||
| > > | 
 | |||||||||
| You can use a tool like curlto upload files from the command line using this script. | ||||||||||
| Line: 391 to 392 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| Changed: | ||||||||||
| < < |  For historical reasons, the view script has a special interpretation of the textskin. In earlier TWiki versions theskin=textparameter was used like this: | |||||||||
| > > |  Example use of createifnotexistto 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 viewscript has a special interpretation of thetextskin. In earlier TWiki versions theskin=textparameter was used like this: | |||||||||
| http://.../view/MyWeb/MyTopic?skin=text&contenttype=text/plain&raw=onwhich shows the topic as plain text; useful for those who want to download plain text for the topic.
Usingskin=textthis way is DEPRECATED, useraw=textinstead. | ||||||||||
| Line: 434 to 439 | ||||||||||
| Related Topics: AdminDocumentationCategory, DeveloperDocumentationCategory | ||||||||||
| Changed: | ||||||||||
| < < | -- 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  | |||||||||
| > > | -- 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  | |||||||||
| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||
| Line: 204 to 204 | ||||||||||
| 
 | ||||||||||
| Added: | ||||||||||
| > > | 
 | |||||||||
| Note: The registerscript can only be called via http POST method, not GET. Make sure to specify the"post"method if you call theregisterscript via a form action. | ||||||||||
| Line: 390 to 391 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
|  For historical reasons, the view script has a special interpretation of the textskin. In earlier TWiki versions theskin=textparameter was used like this:http://.../view/MyWeb/MyTopic?skin=text&contenttype=text/plain&raw=on | ||||||||||
| Line: 1 to 1 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||||||||
| Line: 69 to 79 | ||||||||||||||||
| 
 | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | 
 | |||||||||||||||
| Form field values are passed in parameters named 'field' - for example, if I have a field Statusthe parameter name isStatus.
 | ||||||||||||||||
| Line: 93 to 107 | ||||||||||||||||
| Note: The managescript can only be called via http POST method forcreatewebrenameweb, anddeleteUserAccount.  | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | ||||||||||||||||
| 
 | ||||||||||||||||
| Deleted: | ||||||||||||||||
| < < | 
 | |||||||||||||||
| 
   | ||||||||||||||||
| Line: 316 to 344 | ||||||||||||||||
| 
   | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | ||||||||||||||||
| Refresh the WebStatistics topics in range of webs. | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | ||||||||||||||||
| 
 | ||||||||||||||||
| Changed: | ||||||||||||||||
| < < | for example: | |||||||||||||||
| > > | For example: | |||||||||||||||
| 
 | ||||||||||||||||
| Line: 329 to 359 | ||||||||||||||||
| 
 | ||||||||||||||||
| Changed: | ||||||||||||||||
| < < | see TWikiSiteTools#WebStatistics_site_statistics for updating statistics using cron. | |||||||||||||||
| > > | See TWikiSiteTools#WebStatistics_site_statistics for updating statistics using cron. | |||||||||||||||
|   | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | ||||||||||||||||
| Uploads an attachment to a topic. The HTTP request is expected to be in multipart/form-dataformat. | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | ||||||||||||||||
| 
 | ||||||||||||||||
| Line: 394 to 431 | ||||||||||||||||
| Note: The script has to be run by a user who can write files created by the webserver user. | ||||||||||||||||
| Deleted: | ||||||||||||||||
| < < | ||||||||||||||||
| Related Topics: AdminDocumentationCategory, DeveloperDocumentationCategory | ||||||||||||||||
| Added: | ||||||||||||||||
| > > | -- 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  | |||||||||||||||
| Line: 1 to 1 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | |||||||||||||
| Line: 49 to 49 | |||||||||||||
| The main difference between invoking this script and using WebChanges is that WebChanges is based on a %SEARCH%, while this script reads thechangesfile in each web, making it much faster. | |||||||||||||
| Changed: | |||||||||||||
| < < | NOTE: The result from changesscript and the topic WebChanges can be different, if thechangesfile is deleted from a web. In particular, in new installations thechangesscript will return no results while the WebChanges topic will. | ||||||||||||
| > > | Note: The result from changesscript and the topic WebChanges can be different, if thechangesfile is deleted from a web. In particular, in new installations thechangesscript will return no results while the WebChanges topic will. | ||||||||||||
|   | |||||||||||||
| Line: 73 to 73 | |||||||||||||
| Form field values are passed in parameters named 'field' - for example, if I have a field Statusthe parameter name isStatus.
 | |||||||||||||
| Changed: | |||||||||||||
| < < | NOTE: most skins support the definition of EDIT_SKIN, which is used as the value of thecoverparameter ineditURLs. This allows you to override the default edit skin on a web, topic or user basis. | ||||||||||||
| > > | Note: Most skins support the definition of EDIT_SKIN, which is used as the value of thecoverparameter ineditURLs. This allows you to override the default edit skin on a web, topic or user basis. | ||||||||||||
|  Used for logging in when TWiki login is being used (e.g TemplateLoginManager). | |||||||||||||
| Line: 88 to 88 | |||||||||||||
|  Performs a range of management functions. | |||||||||||||
| Parameter | Description | Default | 
|---|
| action | One of createweb,deleteUserAccount,editSettingsorsaveSettings | none | 
| action | One of createweb,renameweb,deleteUserAccount,editSettingsorsaveSettings | none | 
manage script can only be called via http POST method for createweb renameweb, and deleteUserAccount.action=createweb | Parameter | Description | Default | 
|---|
| sitemapuseto | Value for SITEMAPUSETO | '' | 
| 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 | Parameter | Description | Default | 
|---|---|---|
| action | registerorverifyorresetPasswordorapprove | 
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 | Parameter | Description | Default | 
|---|---|---|
| skin | skin(s) to use | 
| nonwikiword | if defined, a non-wikiword is acceptable for the new topic name | |
| redirectto | If the rename process is successful, rename will redirect to this topic or URL. The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Miscellaneous{AllowRedirectUrl}). | 
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.rest  ) 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
) 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
 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. Note: The
 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.Status the parameter name is Status. Note: The
 Note: 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>
It is not possible to call save from an <a href=""> link. search %SEARCH% functionality driven by the following CGI parameters:curl to upload files from the command line using this script. Note: The
 Note: The upload script can only be called via http POST method, not GET.view | Line: 1 to 1 | ||||||||
|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||
| Line: 193 to 193 | ||||||||
| The restscript supports the following parameters:
 | ||||||||
| Changed: | ||||||||
| < < | 
 | |||||||
| > > | 
 | |||||||
| 
 | ||||||||
| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TWiki CGI and Command Line Scripts | ||||||||||
| Line: 55 to 55 | ||||||||||
| configureis the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose exceptconfigure. See configure.  | ||||||||||
| Changed: | ||||||||||
| < < | The editscipt understands the following parameters, typically supplied by HTML input fields: | |||||||||
| > > | The editscript understands the following parameters, typically supplied by HTML input fields: | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Line: 232 to 232 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Line: 250 to 250 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Line: 1 to 1 | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Deleted: | |||||||||||||||||||||||||||||||
| < < | |||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||
| < < | TWiki CGI and Command Line Scripts | ||||||||||||||||||||||||||||||
| > > | 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/binandtwiki/toolsdirectories. This topic describes the interfaces to some of those scripts. All scripts in thetwiki/bindirectory can be called from the CGI (Common Gateway Interface ) environment or from the command line. The scripts in the twiki/toolsdirectory can only be called from the command line. | |||||||||||||||||||||||||||||||
| Added: | |||||||||||||||||||||||||||||||
| > > | |||||||||||||||||||||||||||||||
| CGI ScriptsDetails on CGI scripts located in thetwiki/bindirectory. | |||||||||||||||||||||||||||||||
| Line: 67 to 68 | |||||||||||||||||||||||||||||||
| 
 | |||||||||||||||||||||||||||||||
| Changed: | |||||||||||||||||||||||||||||||
| < < | 
 | ||||||||||||||||||||||||||||||
| > > | 
 | ||||||||||||||||||||||||||||||
| Form field values are passed in parameters named 'field' - for example, if I have a field Statusthe parameter name isStatus.
 | |||||||||||||||||||||||||||||||
| Line: 98 to 99 | |||||||||||||||||||||||||||||||
| 
 | |||||||||||||||||||||||||||||||
| Deleted: | |||||||||||||||||||||||||||||||
| < < |  Unregisters (removes) the currently logged-in user. | ||||||||||||||||||||||||||||||
| Parameter | Description | Default | 
|---|---|---|
| password | Users' password | none | 
action=editSettings 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 this topic or URL. The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Miscellaneous{AllowRedirectUrl}). | 
action=bulkRegister | Parameter | Description | Default | 
|---|
| EmailUsersWithDetails | Whether to mail registered users or not | false | 
| LogTopic | Topic to save the log in | Same as topic name, with 'Result' appended. | 
action=saveSettings action=changePassword | Parameter | Description | Default | 
|---|
| text | Text of the topic | '' | 
| originalrev | Revision that the edit started on | Most recent revision | 
| 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 | 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. | '' | 
action=deleteUserAccount | Parameter | Description | Default | 
|---|---|---|
| password | Users' password | none | 
oops | def | Optional, can be set to the name of a single definition within template. This definition will be instantiated in thetemplatewherever%INSTANTIATE%is seen. This lets you use a single template file for many messages. For an example, seeoopsmanagebad.tmpl. | |
| paramN | Where N is an integer from 1 upwards. These values will be substituted into templatefor%PARAM1%etc. | 
passwd | Parameter | Description | Default | 
|---|---|---|
| action | one of changePasswordorresetPassword | none | 
manage, action=changePassword.
action=changePassword | Parameter | Description | Default | 
|---|---|---|
| username | Username | |
| oldpassword | Existing password (plain text) | |
| password | New password (plain text) | |
| passwordA | New password confirmation (plain text) | |
| TopicName | ? | 
preview save script.| 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 | 
resetpasswd | 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. | '' | 
| redirectto | If the rename process is successful, rename will redirect to this topic or URL. The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Miscellaneous{AllowRedirectUrl}). | 
rest  ) 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
) 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.| 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 a member of TWikiAdminGroup 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 textparameter.textmust included embedded meta-data tags. All other parameters are ignored. You have to be a member of TWikiAdminGroup to use this, and not all store implementations will support it. | 
| 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 textparameter.textmust 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 | 
| Parameter: | Description: | Default: | 
|---|---|---|
| "text" | Search term. Is a keyword search, literal search or regular expression search, depending on the typeparameter. 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 TWikiVariables#VarSEARCH for more details. | Current web | 
| web="Name"web="Main, Know"web="all" | Comma-separated list of webs to search. See TWikiVariables#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 likeweb service; or RegularExpression search likesoap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE%preferences setting (literal) | 
| scope="topic"scope="text"scope="all" | Search topic name (title); the text (body) of topic; or all (both) | "text" | 
| order="topic"order="created"order="modified"order="editby"order= | Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort | Sort by topic name | 
| limit="all"limit="16" | Limit the number of results returned. This is done after sorting if orderis specified | All results | 
| date="..." | limits the results to those pages with latest edit time in the given TimeInterval. | 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 | 
twiki upload multipart/form-data format.
| Parameter | Description | Default | 
|---|
| 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=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. | 
| 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 /twiki/bin/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialised templates for a TWiki Application. | 
| topic | redirects (at the beging of the cgi script running) to show the spcified Web.Topic, or, redirects to a URL, if allowed by {AllowRedirectUrl} and {PermittedRedirectHostUrls} | 
 For historical reasons, the view script has a special interpretation of the
 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| filename | name of attachment | |
| rev | Revision to view | 
filename parameter, you can append the attachment name
to the end of the URL path (after the topic) e.g. https://obelix.beims.me/twiki/bin/viewfile/Webname/TopicName/Attachment.giftwiki/tools directory.| Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| On this page:  
 TWiki CGI and Command Line Scripts | ||||||||||
| Line: 14 to 14 | ||||||||||
| CGI environmentIn 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 (usuallyguest).Command-line | ||||||||||
| Changed: | ||||||||||
| < < | You must be cd'd to the twiki/bindirectory to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such asnobodyorwww. | |||||||||
| > > | You must be have the twiki/bindirectory 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 asnobodyorwww. | |||||||||
| Parameters are passed on the command line using '-name' - for example, $ cd /usr/local/twiki/bin $ save -topic MyWeb.MyTopic -user admin -action save -text "New text of the topic" | ||||||||||
| Changed: | ||||||||||
| < < | All parameters require a value. | |||||||||
| > > | All parameters require a value, even if that is the empty string. | |||||||||
| Common parametersAll 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: | ||||||||||
| Line: 51 to 51 | ||||||||||
| NOTE: The result from changesscript and the topic WebChanges can be different, if thechangesfile is deleted from a web. In particular, in new installations thechangesscript will return no results while the WebChanges topic will.  | ||||||||||
| Changed: | ||||||||||
| < < | configureis the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose exceptconfigure. | |||||||||
| > > | configureis the browser script used for inspection and configuration of the TWiki configuration. None of the parameters to this script are useable for any purpose exceptconfigure. See configure. | |||||||||
|  The | ||||||||||
| Line: 67 to 67 | ||||||||||
| 
 | ||||||||||
| Added: | ||||||||||
| > > | 
 | |||||||||
| Form field values are passed in parameters named 'field' - for example, if I have a field Statusthe parameter name isStatus.
 | ||||||||||
| Line: 188 to 189 | ||||||||||
| 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.   | ||||||||||
| Changed: | ||||||||||
| < < | This REST (Representational State Transfer  ) script can be invoked via http in a similar way as the view script (see Invocation Examples, below) to execute a function that is associated to a "subject" and a "verb" (see below). It'll print the result directly to the stream unless the endPointparameter is specified, in which case the control is redirected to the given topic.
Therestscript itself uses one parameter: | |||||||||
| > > | 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::registerRESTHandlermethod. Therestscript will print the result directly to the browser unless theendPointparameter is specified, in which case it will output a redirect to the given topic. | |||||||||
| Added: | ||||||||||
| > > | The restscript supports the following parameters:
 | |||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | Any additional parameters are passed directly to the function (i.e: The function can get any other parameter using the CGI $query object) | |||||||||
| > > | The function is free to use any other query parameters for its own purposes.  The restscript 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 usingApacheLogin. | |||||||||
| Invocation Examples | ||||||||||
| Line: 202 to 207 | ||||||||||
| http://my.host/bin/rest/<subject>/<verb> | ||||||||||
| Changed: | ||||||||||
| < < | where <subject>must be the WikiWord name of one of the installed TWikiPlugins, and the<verb>is the alias for the function registered using theregisterRESTHandler. The<subject>and<verb>are then used to lookup and call the registered function.
Functions outside the Plugins also can be registered, but please consider the security implications of allowing URL access, as functions can sidestep TWiki Authentication & Authorisation settings. | |||||||||
| > > | where <subject>must be the WikiWord name of one of the installed TWikiPlugins, and the<verb>is the alias for the function registered using theTWiki::Func::registerRESTHandlermethod. 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. | ||||||||||
| Line: 212 to 215 | ||||||||||
| Call the Plugin | ||||||||||
| Changed: | ||||||||||
| < < | You can also call the function from the command line, but this will be run as the TWikiAdminGroup (as it is assumed that shell access is secure) - eg: ./rest EmptyPlugin.exampleNote that for calls to Plugins, they must be enabled in configure. | |||||||||
| > > | Note that for Plugins to register REST handlers, they must be enabled in configure. | |||||||||
|  The | ||||||||||
| Parameter | Description | Default | 
|---|
| action_save=1 | default; save, return to view, dontnotify is OFF | |
| action_quietsave=1 | save, and return to view, dontnotifyis ON | |
| action_checkpoint | save and redirect to the edit script, dontnotifyis ON | 
| action_save=1 | default; save, return to view, dontnotify is off | |
| action_quietsave=1 | save, and return to view, dontnotifyison | |
| action_checkpoint | save and redirect to the edit script, dontnotifyison | 
| action_cancel | exit without save, return to view | |
| action_preview | preview edited text | |
| action_addform | Redirect to the "change form" page. | 
| formtemplate | if defined, use the named template for the form | |
| editaction | When action is checkpoint,add formorreplace form..., this is used as theactionparameter to theeditscript 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 this topic or URL if it is successful. (Typically this would be the URL that was being viewed when edit was invoked). The parameter value can be a TopicName, aWeb.TopicName, or a URL.Note: Redirect to a URL only works if it is enabled in configure(Miscellaneous{AllowRedirectUrl}). | view topic being edited | 
oops page.| webs | comma-separated list of webs to run stats on | all accessible webs | 
| logdate | YYYYMM to generate statistics for | current month | 
twiki | 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=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 /twiki/bin/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialised templates for a TWiki Application. | 
geturl.pl wget and curl commands.geturl <host> <path> [<port> [<header>]]
geturl some.domain /some/dir/file.html 80
geturl.pl <host> <path> [<port> [<header>]]
geturl.pl some.domain /some/dir/file.html 80
http://some.domain:80/some/dir/file.html
rewriteshebang.pl | Line: 1 to 1 | ||||||||
|---|---|---|---|---|---|---|---|---|
| On this page:  
 TWiki CGI and Command Line Scripts | ||||||||
| Line: 16 to 16 | ||||||||
| Command-lineYou must be cd'd to thetwiki/bindirectory to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such asnobodyorwww. | ||||||||
| Changed: | ||||||||
| < < | Parameters are passed using '-name' - for example, | |||||||
| > > | Parameters are passed on the command line using '-name' - for example, | |||||||
| $ cd /usr/local/twiki/bin $ save -topic MyWeb.MyTopic -user admin -action save -text "New text of the topic" | ||||||||
| Line: 295 to 295 | ||||||||
|  Refresh the WebStatistics topics in range of webs. | ||||||||
| Parameter | Description | Default | 
|---|
| webs | list of webs to run stats on | none | 
| webs | comma-separated list of webs to run stats on | all accessible webs | 
| logdate | YYYYMM to generate statistics for | current month | 
twiki | Line: 1 to 1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| On this page:  
 TWiki CGI and Command Line Scripts | ||||||||||
| Line: 154 to 154 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 
 | ||||||||||
| Line: 268 to 268 | ||||||||||
| 
 | ||||||||||
| Changed: | ||||||||||
| < < | 
 | |||||||||
| > > | 
 | |||||||||
| 
 | ||||||||||
| Line: 1 to 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Added: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > > | On this page:  
 TWiki CGI and Command Line ScriptsPrograms on the TWiki server performing actions such as rendering, saving and renaming topics. The TWiki scripts are located in thetwiki/binandtwiki/toolsdirectories. This topic describes the interfaces to some of those scripts. All scripts in thetwiki/bindirectory can be called from the CGI (Common Gateway Interface ) environment or from the command line. The scripts in the twiki/toolsdirectory can only be called from the command line.CGI ScriptsDetails on CGI scripts located in thetwiki/bindirectory.General InformationCGI environmentIn 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 (usuallyguest).Command-lineYou must be cd'd to thetwiki/bindirectory to run the scripts from the command line. To avoid issues with file permissions, run the scripts as the web server user such asnobodyorwww.
Parameters are passed using '-name' - for example,$ cd /usr/local/twiki/bin $ save -topic MyWeb.MyTopic -user admin -action save -text "New text of the topic"All parameters require a value. Common parametersAll 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:
  Despite the name, this script doesn't actually attach a file to a topic - for that, use | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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) | 
changes changes script can receive one parameter:
| Parameter | Description | Default | 
|---|---|---|
| minor | If 0, show only major changes. If 1, show all the changes (both minor and major) | 0 | 
%SEARCH%, while this script reads the changes file in each web, making it 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.
edit edit scipt understands the following parameters, typically supplied by HTML input fields:
| Parameter | Description | Default | 
|---|---|---|
| action | Optional. Use the editaction template instead of the standard edit. If action=text, then hide the form. If action=form hide the normal text area and only edit the form. | |
| onlynewtopic | If set, error if topic already exists | |
| onlywikiname | If set, error if topic name is not a WikiWord | |
| templatetopic | The name of the template topic, copied to get the initial content | |
| text | Initial text for the topic | |
| topicparent | The parent topic | |
| formtemplate | Name of the form to instantiate in the topic. Overrides the form set in the templatetopicif defined. | |
| contenttype | Optional parameter that defines the application type to write into the CGI header. Defaults to text/html. May be used to invoke alternative client applications | |
| anyname | Any parameter can passed to the new topic; if the template topic contains %URLPARAM{"anyname"}%, it will be replaced by its value | |
| breaklock | If set, any lease conflicts will be ignored, and the edit will proceed even if someone is already editing the topic. | 
Status the parameter name is Status. X characters in the topic name will be converted on save to a number such that the resulting topic name is unique in the target web.
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.
login | 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 manage | Parameter | Description | Default | 
|---|---|---|
| action | One of createweb,deleteUserAccount,editSettingsorsaveSettings | none | 
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 | '' | 
| sitemapuseto | Value for SITEMAPUSETO | '' | 
| nosearchall | Value for NOSEARCHALL | '' | 
action=deleteUserAccount | Parameter | Description | Default | 
|---|---|---|
| password | Users' password | none | 
action=editSettings action=bulkRegister | 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=saveSettings | Parameter | Description | Default | 
|---|---|---|
| text | Text of the topic | '' | 
| originalrev | Revision that the edit started on | Most recent revision | 
oops oops templates are used with the oops script to generate system messages. This is done to make internationalisation or other local customisations simple. 
The oops script supports the following parameters:
| Parameter | Description | Default | 
|---|---|---|
| template | Name of the template file to display | |
| def | Optional, can be set to the name of a single definition within template. This definition will be instantiated in thetemplatewherever%INSTANTIATE%is seen. This lets you use a single template file for many messages. For an example, seeoopsmanagebad.tmpl. | |
| paramN | Where N is an integer from 1 upwards. These values will be substituted into templatefor%PARAM1%etc. | 
passwd | Parameter | Description | Default | 
|---|---|---|
| action | one of changePasswordorresetPassword | none | 
manage, action=changePassword.
action=changePassword | Parameter | Description | Default | 
|---|---|---|
| username | Username | |
| oldpassword | Existing password (plain text) | |
| password | New password (plain text) | |
| passwordA | New password confirmation (plain text) | |
| TopicName | ? | 
preview save script.
rdiff | Parameter | Description | Default | 
|---|---|---|
| rev1 | the higher revision | |
| rev2 | the lower revision | |
| render | the rendering style {sequential, sidebyside, raw, debug} | DIFFRENDERSTYLE, sequential | 
| type | history, diff, last} history diff, version to version, last version to previous | diff | 
| context | number of lines of context | 
register | Parameter | Description | Default | 
|---|---|---|
| action | registerorverifyorresetPasswordorapprove | 
rename | Parameter | Description | Default | 
|---|---|---|
| skin | skin(s) to use | |
| newweb | new web name | |
| newtopic | new topic name | |
| breaklock | ||
| attachment | ||
| confirm | if defined, requires a second level of confirmation | |
| currentwebonly | if defined, searches current web only for links to this topic | |
| nonwikiword | if defined, a non-wikiword is acceptable for the new topic name | 
resetpasswd | 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. | '' | 
rest  ) script can be invoked via http in a similar way as the view script (see Invocation Examples, below) to execute a function that is associated to a "subject" and a "verb" (see below). It'll print the result directly to the stream unless the
) script can be invoked via http in a similar way as the view script (see Invocation Examples, below) to execute a function that is associated to a "subject" and a "verb" (see below). It'll print the result directly to the stream unless the endPoint parameter is specified, in which case the control is redirected to the given topic.
The rest script itself uses one parameter:
| endPoint | Where to redirect the response once the request is served, in the form "Web.Topic" | 
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 registerRESTHandler. The <subject> and <verb> are then used to lookup and call the registered function.
Functions outside the Plugins also can be registered, but please consider the security implications of allowing URL access, as functions can sidestep TWiki Authentication & Authorisation settings.
<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
You can also call the function from the command line, but this will be run as the TWikiAdminGroup (as it is assumed that shell access is secure) - eg: ./rest EmptyPlugin.exampleNote that for calls to Plugins, they must be enabled in
configure.
save save script performs a range of save-related functions, as selected by the action parameter.
| Parameter | Description | Default | 
|---|---|---|
| action_save=1 | default; save, return to view, dontnotify is OFF | |
| action_quietsave=1 | save, and return to view, dontnotifyis ON | |
| action_checkpoint | save and redirect to the edit script, dontnotifyis 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 a member of TWikiAdminGroup 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 textparameter.textmust included embedded meta-data tags. All other parameters are ignored. You have to be a member of TWikiAdminGroup 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 | |
| text | New text of the topic | |
| forcenewrevision | if set, forces a revision even if TWiki thinks one isn't needed | |
| topicparent | If 'none' remove any current topic parent. If the name of a topic, set the topic parent to this. | |
| formtemplate | if defined, use the named template for the form | |
| editaction | When action is checkpoint,add formorreplace form..., this is used as theactionparameter to theeditscript that is redirected to after the save is complete. | |
| originalrev | Revision on which the edit started. | 
oops page.
The parameters are interpreted in according to the following rules.
 X characters in the topic name will be converted to a number such that the resulting topic name is unique in the target web.
save, checkpoint, quietsave, or preview: text parameter, if it is defined, templatetopic, if it is defined,
formtemplate, if defined templatetopic, if defined,
templatetopic, if defined,
text and originalrev is > 0 and is not the same as the revision number of the most recent revision. If merging is enabled both the topic and the meta-data are merged.
Form field values are passed in parameters named 'field' - for example, if I have a field Status the parameter name is Status.
search %SEARCH% functionality driven by the following CGI parameters:
| Parameter: | Description: | Default: | 
|---|---|---|
| "text" | Search term. Is a keyword search, literal search or regular expression search, depending on the typeparameter. SearchHelp has more | required | 
| search="text" | (Alternative to above) | N/A | 
| web="Name"web="Main, Know"web="all" | Comma-separated list of webs to search. The special word allmeans all webs that doe not have theNOSEARCHALLvariable set toonin their WebPreferences. You can specifically exclude webs from anallsearch using a minus sign - for example,web="all,-Secretweb". | Current web | 
| topic="WebPreferences"topic="*Bug" | Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | All topics in a web | 
| excludetopic="Web*"excludetopic="WebHome, WebChanges" | Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. | None | 
| type="keyword"type="literal"type="regex" | Do a keyword search like soap "web service" -shampoo; a literal search likeweb service; or RegularExpression search likesoap;web service;!shampoo | %SEARCHVAR- DEFAULTTYPE%preferences setting (literal) | 
| scope="topic"scope="text"scope="all" | Search topic name (title); the text (body) of topic; or all (both) | "text" | 
| order="topic"order="created"order="modified"order="editby"order= | Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort | Sort by topic name | 
| limit="all"limit="16" | Limit the number of results returned. This is done after sorting if orderis specified | All results | 
| date="..." | limits the results to those pages with latest edit time in the given TimeInterval. | All results | 
| reverse="on" | Reverse the direction of the search | Ascending search | 
| casesensitive="on" | Case sensitive search | Ignore case | 
| bookview="on" | BookView search, e.g. show complete topic text | Show topic summary | 
| nonoise="on" | Shorthand for nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" | Off | 
| nosummary="on" | Show topic title only | Show topic summary | 
| nosearch="on" | Suppress search string | Show search string | 
| noheader="on" | Suppress search header Topics: Changed: By: | Show search header | 
| nototal="on" | Do not show number of topics found | Show number | 
| zeroresults="off" | Suppress all output if there are no hits | zeroresults="on", displays: "Number of topics: 0" | 
| noempty="on" | Suppress results for webs that have no hits. | Show webs with no hits | 
| header="..."format="..." | Custom format results: see FormattedSearch for usage, variables & examples | Results in table | 
| expandvariables="on" | Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin %CALC{}%instead of the formula | Raw text | 
| multiple="on" | Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search | Only one hit per topic | 
| nofinalnewline="on" | If on, the search variable does not end in a line by itself. Any text continuing immediately after the search tag on the same line will be rendered as part of the table generated by the search, if appropriate. | off | 
| separator=", " | Line separator between hits | Newline "$n" | 
statistics | Parameter | Description | Default | 
|---|---|---|
| webs | list of webs to run stats on | none | 
twiki upload 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 | 
curl to upload files from the command line using this script.
view | Parameter | Description | Default | 
|---|---|---|
| raw=on | Shows the text of the topic in a scrollable textarea | |
| raw=debug | As raw=on, but also shows the metadata (forms etc) associated with the topic. | |
| raw=text | Shows only the source of the topic, as plain text (Content-type: text/plain). Only shows the body text, not the form or other meta-data. | |
| 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. | |
| 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 /twiki/bin/view/TWiki/TWikiScripts?template=edit. This is mainly useful when you have specialised templates for a TWiki Application. | 
 For historical reasons, the view script has a special interpretation of the
 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 pub) directory using a URL. However if it contains sensitive information, you will want to protect attachments using TWikiAccessControls. In this case, you can use the viewfile script to give access to attachments while still checking access controls.
| Parameter | Description | Default | 
|---|---|---|
| filename | name of attachment | |
| rev | Revision to view | 
twiki/tools directory.
geturl.pl wget and curl commands. geturl <host> <path> [<port> [<header>]]
geturl some.domain /some/dir/file.html 80
http://some.domain:80/some/dir/file.html
rewriteshebang.pl #!/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 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 
  Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.