Wiki source code of Standard URL Format
Last modified by Vincent Massol on 2025/02/03
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{box cssClass="floatinginfobox" title="**Contents**"}} | ||
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
5 | The general format of XWiki URLs is {{code language="none"}}<protocol>://<server>/<context path>/<type>/<path>{{/code}}, where: | ||
6 | |||
7 | * ##<protocol>##: by default it's ##http##. It's possible to use ##https##. It's generally deduced from the URL used by the client but it's possible to control it using [[the wiki descriptor>>https://extensions.xwiki.org/xwiki/bin/view/Extension/Wiki+Application#HConfigureWiki]] | ||
8 | * ##<server>##: the XWiki instance address and port, e.g. ##localhost:8080##, ##xwiki.org##. In domain-mode the server also contains the subwiki name. See [[Accessing a wiki>>xwiki:Documentation.AdminGuide.AccessWiki]]. In path-based mode, the server is the address of the main wiki. Since 10.7 it's possible to customize the port to use in the [[the wiki descriptor>>https://extensions.xwiki.org/xwiki/bin/view/Extension/Wiki+Application#HConfigureWiki]]. | ||
9 | * ##<context path>##: the name under which the XWiki web application is deployed in your Servlet Container, e.g. ##xwiki##. See [[Short URLs>>xwiki:Documentation.AdminGuide.ShortURLs#HI.Applicationname]] if you wish to deploy XWiki as ROOT. | ||
10 | * ##<type>##: the type of URL depending on the XWiki subsystem accessed. The following types are supported: | ||
11 | ** ##bin##: points to a dynamic resource. Examples: an Entity to display (wiki, page, space, attachment, object, property, etc), a dynamic skin resource (image, css, js), a dynamic template resource (image, js, css, icon, etc) and more. By dynamic we mean that some computation needs to happen to compute the resource (for example some Velocity needs to be evaluated). | ||
12 | ** ##wiki##: this is similar to ##bin## but specifying the subwiki to access, in path-based mode (See [[Accessing a wiki>>xwiki:Documentation.AdminGuide.AccessWiki]]). | ||
13 | ** ##rest##: points to a [[REST Resource>>xwiki:Documentation.UserGuide.Features.XWikiRESTfulAPI]] | ||
14 | ** ##skins##: points to a static filesystem skin resource (image, js, css, etc), i.e. a resource located inside a skin directory on the filesystem. | ||
15 | ** ##resources##: points to a static template resource (image, js, css, etc) on the filesystem. | ||
16 | ** ##xmlrpc##: points to the now deprecated XMLRPC API (see [[extensions:Extension.XML-RPC Integration]] for more details). | ||
17 | ** ##webdav##: points to a WebDAV resource (see [[Web DAV>>xwiki:Documentation.UserGuide.Features.WebDAV]] for more details). | ||
18 | * ##<path>##: the path completely depends on the ##<type>## used. See below for more details. | ||
19 | |||
20 | {{info}} | ||
21 | If you're interested in configuring the XWiki URLs, check the [[URL Architecture page>>Documentation.DevGuide.Architecture.URL Architecture.WebHome]]. | ||
22 | {{/info}} | ||
23 | |||
24 | = Type: ##bin## = | ||
25 | |||
26 | {{info}} | ||
27 | XWiki 7.2: Added support for Nested Spaces | ||
28 | {{/info}} | ||
29 | |||
30 | There are various ##bin## URLs. The generic format of ##bin## URLs is ##bin/<action>/<path>##. | ||
31 | There is two ways to inject actions: | ||
32 | |||
33 | * by implementing an [[Entity Resource Reference Handler>>extensions:Extension.Resource API#HAddinganewEntityResourceTypeHandler]] | ||
34 | * {{warning}}deprecated{{/warning}} implementing a ##com.xpn.xwiki.internal.web.LegacyAction## since 13.0 or before 13.0 by listing a Struts action in the Strut Configuration file (located in ##WEB-INF/struts-config.xml##). | ||
35 | |||
36 | Here are some well-known actions: | ||
37 | |||
38 | * [[##skin##>>#HAction:skin]]: Dynamic Skin resource, e.g. ##http:~/~/<server>/xwiki/bin/skin/resources/uicomponents/search/searchSuggest.css## | ||
39 | * ##jsx##: [[Javascript Skin Extension>>xwiki:Documentation.DevGuide.Tutorials.SkinExtensionsTutorial]] URL, e.g. ##http:~/~/<server>/xwiki/bin/jsx/AnnotationCode/Settings?language=en## | ||
40 | * ##ssx##: [[StyleSheet Skin Extension>>xwiki:Documentation.DevGuide.Tutorials.SkinExtensionsTutorial]] URL, e.g. ##http:~/~/<server>/xwiki/bin/ssx/AnnotationCode/Style?language=en## | ||
41 | * [[##download##>>#HAction:download]]: URL to access an attachment from a wiki page, e.g. ##http:~/~/<server>/xwiki/bin/download/XWiki/JohnDoe/john.png?width=30&height=30&keepAspectRatio=true## | ||
42 | * [[##view##>>#HAction:view]]: Display Entity content (wiki, page, space, attachment, object, property, etc) with the skin applied, e.g. ##http:~/~/<server>/xwiki/bin/view/Sandbox/WebHome## | ||
43 | * [[##edit##>>#HAction:edit]]: Edits wiki content (page, object, property, etc), e.g. ##http:~/~/<server>/xwiki/bin/edit/Sandbox/WebHome## | ||
44 | * [[##get##>>#HAction:get]]: Accessing Entity content (wiki, page, space, attachment, object, property, etc) without any skin applied, e.g. ##http:~/~/<server>/xwiki/bin/get/Main/WebHome?xpage=xpart&vm=commentsinline.vm##. The ##get## action should be used to render the content of the page and nothing else (mainly used for code pages). This action is similar to the ##view## action, but without the UI and with "text/plain" mime type set by default for the response. | ||
45 | * ##export##: Exports wiki pages to various formats (PDF, HTML, etc). See [[xwiki:Documentation.UserGuide.Features.Exports]]. | ||
46 | * [[##create##>>#HAction:create]]: Provides the UI for creating new documents, e.g. ##http:~/~/<server>/xwiki/bin/create/Space/NewDocument## | ||
47 | * [[##objectadd##>>#HAction:objectadd]]: Adds an XObject, e.g. ##http:~/~/<server>/xwiki/bin/objectadd/Space/Page?classname=Some.XClass## | ||
48 | |||
49 | == Action: ##view## == | ||
50 | |||
51 | The additional URL paths for the ##view## action is ##<space1>/.../<spaceN>/<page>?<query string>## or ##<space1>/.../<spaceN>?<query string>## | ||
52 | |||
53 | Examples: | ||
54 | |||
55 | * ##http:~/~/<server>/xwiki/bin/view/Sandbox/WebHome##: Views the ##Sandbox.WebHome## page. | ||
56 | * ##http:~/~/<server>/xwiki/bin/view/Sandbox##: Views the ##Sandbox.WebHome## page. | ||
57 | * ##http:~/~/<server>/xwiki/bin/view/Space1/Space2##: Views the ##Space1.Space2.WebHome## page (if the ##Space2## page doesn't exist. If it exists then it views the ##Space1.Space2## page). | ||
58 | * ##http:~/~/<server>/xwiki/bin/view/Space1/Space2/##: Force to always views the ##Space1.Space2.WebHome## page (even if the ##Space2## page exists in the ##Space1## space. Note the ##/## at the end). | ||
59 | * ##http:~/~/<server>/xwiki/bin/view/Space1/Space2?spaceRedirect=false##: Force to always view the ##Space1.Space2## terminal page (even if the ##Space1.Space2.WebHome## page exists and even if the ##Space1.Space2## page may not exist). | ||
60 | |||
61 | Here are some of the supported query string parameters. | ||
62 | |||
63 | === Parameter: ##xpage## === | ||
64 | |||
65 | * ##plain##: this value indicates that only the content of the page is printed (no UI). With a document that's not using the XWiki Syntax 1.0 you can control the output syntax using ##outputSyntax## and ##outputSyntaxVersion##. You can also pass other parameters to allow fine-grained control: | ||
66 | ** ##raw=1##: Returns the page source as is without any formatting but XML-escaped | ||
67 | ** ##raw=2##: Returns the page source as is without any formatting (without any escaping) | ||
68 | ** ##htmlHeaderAndFooter=true##: {{info}}Since 6.3RC1{{/info}} Display the HTML headers (##<html>##,##<head>##,##<body>##, etc...) and footers (##</body>##, ##</html>##, etc...). | ||
69 | ** ##outputTitle##: {{info}}Since 7.3M2{{/info}} If ##true## then also display the title in addition to the content. Defaults to ##false## if not specified. | ||
70 | * ##xml##: print the exported form of a document. This is what you can find in the xar for each document. | ||
71 | * ##rev##: when specified, redirects to the ##viewrev## action (see below) | ||
72 | * ##children##: {{info}}Since 7.2M3{{/info}} display a page that lists all the children of the document. You can also add the following parameters: | ||
73 | ** ##hierarchy=parentchild##: do the same but display the children according to the (old) parent/child mechanism | ||
74 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
75 | * ##backlinks##: {{info}}Since 7.2M3{{/info}} display a page that lists all the documents having a link to the current document. You can also add the following parameters: | ||
76 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
77 | * ##siblings##: {{info}}Since 7.2RC1{{/info}} display a page that lists all the children of the parent of the document. You can also add the following parameter: | ||
78 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
79 | * ##hierarchy_reference##: {{info}}Since 7.3M2{{/info}} display the hierarchy of the page, as raw HTML, without any style. You can also add the following parameters: | ||
80 | ** ##id=someId##: add an HTML id to the hierarchy breadcrumb. | ||
81 | ** ##displayTitle=true|false##: display the title of the elements in the breadcrumb (default: true) | ||
82 | ** ##excludeSelf=true|false##: display the hierarchy without the page itself (default: false) | ||
83 | ** ##limit=##: maximum number of hierarchy elements displayed (default: none) | ||
84 | ** ##local=true|false##: do not display the main wiki reference for documents located in sub-wikis. (default: false) | ||
85 | |||
86 | === Parameter: ##outputSyntax## and ##outputSyntaxVersion## === | ||
87 | |||
88 | With a document that's not using the XWiki 1.0 syntax it's possible to explicitly indicate the renderer to use for the page content. For example with ##outputSyntax=plain## you will get the result in plain text. ##outputSyntaxVersion## is an optional parameter, if it's not provided XWiki will search for the last version of the renderer for the given ##outputSyntax## syntax name. Note that ##outputSyntax## controls only the document content output syntax. If you only want the document content you can use ##xpage=plain##. | ||
89 | |||
90 | See [[extensions:Extension.Rendering Module]] for more details on renderers. | ||
91 | |||
92 | In XWiki Standard the following renderer are expected to be presents: | ||
93 | * **xwiki** in version 2.0 and 2.1 | ||
94 | * **plain** in version 1.0 | ||
95 | * **xhtml** and **annotatedxhtml** in version 1.0 | ||
96 | * **html** and **annotatedhtml** in version 5.0 | ||
97 | |||
98 | === Parameter: ##viewer## === | ||
99 | |||
100 | Note: if the document does not exist, you will have a 404 error page, and the following parameters will not be taken into account. Use ##xpage## if you need to have the desired behavior even if the document does not exist. | ||
101 | |||
102 | * ##attachments##: Display the attachment list (e.g. ##http:~/~/playground.xwiki.org/xwiki/bin/view/Sandbox/?viewer=attachments##) | ||
103 | * ##history##: Display the version history (e.g. ##http:~/~/playground.xwiki.org/xwiki/bin/view/Sandbox/?viewer=history##) | ||
104 | * ##comments##: Display the comments (e.g. ##http:~/~/playground.xwiki.org/xwiki/bin/view/Sandbox/?viewer=comments##) | ||
105 | * ##information##: Display the page information (e.g. ##http:~/~/playground.xwiki.org/xwiki/bin/view/Sandbox/?viewer=information##) | ||
106 | * ##children##: {{info}}Since 7.2RC1{{/info}} display a page that lists all the children of the document. You can also add the following parameters: | ||
107 | ** ##hierarchy=parentchild##: do the same but display the children according to the (old) parent/child mechanism | ||
108 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
109 | * ##backlinks##: {{info}}Since 7.2RC1{{/info}} display a page that lists all the documents having a link to the current document. You can also add the following parameter: | ||
110 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
111 | * ##siblings##: {{info}}Since 7.2RC1{{/info}} display a page that lists all the children of the parent of the document. You can also add the following parameter: | ||
112 | ** ##displayHidden=true##: display the hidden documents (no matter what the user's configuration is) | ||
113 | |||
114 | === Parameter: ##spaceRedirect## === | ||
115 | |||
116 | Accepted values: | ||
117 | |||
118 | * ##true## (default): By default, an URL not ending in ##/## resolves to a non-terminal page, unless the equivalent terminal page already exists. | ||
119 | * ##false##: An URL not ending in ##/## will always resolve to a terminal page. | ||
120 | |||
121 | Not applicable (i.e. no effect) for top-level pages and URLs ending in ##/##. | ||
122 | |||
123 | Examples: | ||
124 | |||
125 | * ##http:~/~/<server>/xwiki/bin/view/Space1/Space2[?spaceRedirect=true]##: Views the ##Space1.Space2.WebHome## page (if the ##Space2## page doesn't exist. If it exists then it views the ##Space1.Space2## page). | ||
126 | * ##http:~/~/<server>/xwiki/bin/view/Space1/Space2?spaceRedirect=false##: Force to always view the ##Space1.Space2## terminal page (even if the ##Space1.Space2.WebHome## page exists and even if the ##Space1.Space2## page may not exist). | ||
127 | * ##http:~/~/<server>/xwiki/bin/view/Space1[?spaceRedirect=false|?spaceRedirect=true|/]##: Will always view the ##Space1.WebHome## non-terminal page because it is a top level page and we can never have a top-level terminal page. | ||
128 | |||
129 | === Parameter: ##restricted## === | ||
130 | |||
131 | {{info}} | ||
132 | Since 11.5RC1 | ||
133 | {{/info}} | ||
134 | |||
135 | Accepted values: | ||
136 | |||
137 | * ##false## (default): the macro transformations are normally executed | ||
138 | * ##true##: macro transformations are executed in degraded mode or not executed at all, depending on the macro implementation. | ||
139 | |||
140 | In particular, various scripting macro such as [[Velocity Macro>>extensions:Extension.Velocity Macro]] or [[Groovy Macro>>extensions:Extension.Groovy Macro]] are not executed in restricted mode. | ||
141 | This parameter might be then use to check if a page is well displayed for user who cannot execute those scripts for example. | ||
142 | |||
143 | === Parameter: ##rev## === | ||
144 | |||
145 | {{info}} | ||
146 | Since 13.0. | ||
147 | {{/info}} | ||
148 | |||
149 | The version to get, e.g. ##2.3## in ##http:~/~/<server>/xwiki/bin/viewrev/MySpace/MyPage?rev=2.3## | ||
150 | |||
151 | === Parameter: ##transformations## === | ||
152 | |||
153 | {{version since="12.10.4,13.1RC1"}} | ||
154 | Allows controlling precisely which Rendering Transformations to execute. | ||
155 | |||
156 | For example to only execute the Macro transformation: ##http:~/~/localhost:8080/xwiki/bin/view/Sandbox/WebHome?transformations=macro## | ||
157 | {{/version}} | ||
158 | |||
159 | === Special Anchors === | ||
160 | |||
161 | When viewing a wiki page you can also specify an anchor ([[fragment identifier>>https://en.wikipedia.org/wiki/URI_fragment]]) in the URL to trigger some browser or JavaScript behavior. Here's a list of known anchors for view action: | ||
162 | |||
163 | * ##Hxxx##: anchors that start with ##H## are normally used to scroll the page to the specified heading (section of the page content) | ||
164 | * ##edit##: triggers the [[in-place editor>>Documentation.UserGuide.Features.PageEditing#HIn-placeeditingmode]] on page load, if in-place editing is enabled | ||
165 | * ##translate##: triggers the in-place editor for a missing page translation; the wiki needs to be multilingual and in-place editing enabled | ||
166 | |||
167 | == Action: ##viewrev## == | ||
168 | |||
169 | === Parameter: ##rev## === | ||
170 | |||
171 | {{warning}} | ||
172 | Deprecated since 13.0. Use ##view## action instead. | ||
173 | {{/warning}} | ||
174 | |||
175 | The version to get, e.g. ##2.3## in ##http:~/~/<server>/xwiki/bin/viewrev/MySpace/MyPage?rev=2.3## | ||
176 | |||
177 | == Action: ##save## == | ||
178 | |||
179 | The additional URL paths for the ##save## action is ##<space>/<page>?<query string>##. | ||
180 | |||
181 | Examples: | ||
182 | |||
183 | * ##http:~/~/<server>/xwiki/bin/save/Sandbox/WebHome##: Save the ##Sandbox.WebHome## page. | ||
184 | |||
185 | Here are some of the supported query string parameters. | ||
186 | |||
187 | === Parameter: ##creator## === | ||
188 | |||
189 | Change the creator of the current page. Should be a string as a Document Reference like ##JohnDoe##, ##XWiki.JohnDoe## or ##xwiki:XWiki.JohnDoe## which is a page containing an ##XWiki.Users## object. | ||
190 | |||
191 | === Parameter: ##language## === | ||
192 | |||
193 | Will target a specific language. You must use a specific 2-letters code (see [[I18N>>xwiki:Documentation.UserGuide.Features.I18N]]). | ||
194 | |||
195 | === Parameter: ##objectPolicy## === | ||
196 | |||
197 | {{info}}Since 7.1M1{{/info}} The ##objectPolicy## parameter is a request configuration parameter that will decide how to handle custom query string parameters (see [[Custom Parameters>>#HCustomParameters]]): | ||
198 | |||
199 | * ##update## | ||
200 | ** Each custom parameter will update a property in an existing object of the current page. | ||
201 | ** If the custom parameter refers to a property or an object that don't exist, it will simply ignore it. | ||
202 | * ##updateOrCreate## | ||
203 | ** Each custom parameter will update a property in an existing object of the current page. | ||
204 | ** If the custom parameter refers to a property that doesn't exist, it will ignore it. | ||
205 | ** If the custom parameter refers to an object that doesn't exist, it will create it (and pad will ##null## objects if needed).((( | ||
206 | //Example//: If there is already 2 objects ##XWiki.XWikiRights## in the page, ##XWiki.XWikiRights_0_levels## and ##XWiki.XWikiRights_1_levels## will update these existing objects. ##XWiki.XWikiRights_2_levels## and ##XWiki.XWikiRights_3_levels## will create 2 new objects. ##XWiki.XWikiRights_42_levels## will be created and 37 empty objects too (42 minus the 4 already existing and minus the 42th which will be created). | ||
207 | //Note//: All this information about empty/null objects is currently an implementation detail of how we currently handle object numbers and it may be subject to future change so, as much as possible, do not rely on it and, instead, use the public available APIs to handle these things. | ||
208 | ))) | ||
209 | |||
210 | === Parameter: ##addedObjects## === | ||
211 | |||
212 | {{info}}Since XWiki 12.4RC1{{/info}} The ##addedObjects## parameter allows to create new xobjects in a document without having to specify the value of its properties contrary to ##updateOrCreate## ##objectPolicy##. It can be useful in particular to create xobjects that don't have any property values (special xclass AppWithinMinutes.Content for example). The value of this parameter is an array of xobjects name on the form ##xclass_xobjectNumber##: for example, ##XWiki.XWikiRights_2##. | ||
213 | |||
214 | === Parameter: ##deletedObjects## === | ||
215 | |||
216 | {{info}}Since XWiki 12.4RC1{{/info}} The ##deletedObjects## parameter allows to delete xobjects in a document while saving. The value of this parameter is an array of xobjects name on the form ##xclass_xobjectNumber##: for example, ##XWiki.XWikiRights_2##. | ||
217 | |||
218 | === Parameter: ##parent## === | ||
219 | |||
220 | Allows you to set the parent of the page. Should be a string as a Document Reference like ##WebHome##, ##Main.WebHome## or ##xwiki:Main.WebHome##. | ||
221 | |||
222 | === Parameter: ##syntaxId## === | ||
223 | |||
224 | Specify which syntax is used for the content of the current page (see [[Supported syntaxes>>http://rendering.xwiki.org/xwiki/bin/view/Main/#HSupportedSyntaxes]]). | ||
225 | |||
226 | === Parameter: ##template## === | ||
227 | |||
228 | Allows you to have a specific template to apply for the current page. Should be a string as a Document Reference like ##MyTemplate##, ##Main.MyTemplate## or ##xwiki:Main.MyTemplate##. | ||
229 | |||
230 | === Parameter: ##title## === | ||
231 | |||
232 | Allows you to modify the title of the page. | ||
233 | |||
234 | === Parameter: ##form_token## === | ||
235 | |||
236 | A mandatory anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. | ||
237 | |||
238 | === Custom Parameters === | ||
239 | |||
240 | Custom parameters have the format ##<Space>.<ClassPage>_<number>_<propertyname>## (e.g. ##XWiki.XWikiUsers_0_password## or ##XWiki.WatchListClass_3_interval##): | ||
241 | |||
242 | * ##<Space>## must refer to an existing space of the wiki | ||
243 | * ##<ClassPage>## must refer to a class | ||
244 | * ##<number>## is a positive number | ||
245 | * ##<propertyname>## is a name of a property of the class ##<Space>.<ClassPage>## | ||
246 | |||
247 | == Action: ##edit## == | ||
248 | |||
249 | === Parameter: ##editor## === | ||
250 | |||
251 | The type of editor to be used on the page: | ||
252 | |||
253 | * ##inline##: to edit as an inline form | ||
254 | * ##class##: to open the class editor | ||
255 | * ##object:## to open the object editor | ||
256 | * ##wiki##: to open the wiki editor | ||
257 | * ##wysiwyg##: to open the WYSIWYG editor | ||
258 | |||
259 | When the editor parameter is not set, the default editor is automatically computed based on the type of page that is being edited. | ||
260 | |||
261 | === Parameter: ##template## === | ||
262 | |||
263 | Optional, only applies if the page does not already exist: Allows you to have a specific template to apply for the current page, before it's loaded in edit mode. Should be a string as a Document Reference like ##MyTemplate##, ##Main.MyTemplate## or ##xwiki:Main.MyTemplate##. | ||
264 | |||
265 | === Parameter: ##title## === | ||
266 | |||
267 | Optional, allows to have the passed title loaded in the title field of the edit form, if present. | ||
268 | |||
269 | === Parameter: (% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)content(%%) === | ||
270 | |||
271 | Optional, allows to have the passed title loaded in the title field of the edit form, if present. | ||
272 | |||
273 | === Parameter: ##section## === | ||
274 | |||
275 | Optional, number allowing to [[edit a specific section>>Documentation.UserGuide.Features.PageEditing#HSectionEditing]] of the document. Applies to edit modes wiki and wysiwyg. | ||
276 | |||
277 | === Custom Parameters === | ||
278 | |||
279 | Opitional custom parameters have the format ##<Space>.<ClassPage>_<number>_<propertyname>## (e.g. ##XWiki.XWikiUsers_0_password## or ##XWiki.WatchListClass_3_interval##): | ||
280 | |||
281 | * ##<Space>## must refer to an existing space of the wiki | ||
282 | * ##<ClassPage>## must refer to a class | ||
283 | * ##<number>## is a positive number | ||
284 | * ##<propertyname>## is a name of a property of the class ##<Space>.<ClassPage>## | ||
285 | |||
286 | If these parameters are set and the edit form contains form inputs for the properties of these classes, the edit form will load the passed values in the form inputs (like for title or content). | ||
287 | |||
288 | === Parameter: ##form_token## === | ||
289 | |||
290 | Optional; the anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. The token is mandatory when any of the content-modifying parameters above are used (template, title, content or any of the custom parameters), in order to enable full display of the template, title or content used. When no parameters are sent to the edit action, this parameter is not mandatory. | ||
291 | |||
292 | == Action: ##inline## == | ||
293 | |||
294 | {{warning}} | ||
295 | Deprecated since 3.2. | ||
296 | {{/warning}} | ||
297 | |||
298 | The additional URL paths for the ##inline## action is ##<space>/<page>?<query string>##. | ||
299 | |||
300 | Examples: | ||
301 | |||
302 | * ##http:~/~/<server>/xwiki/bin/inline/Sandbox/WebHome##: Edit in inline mode the ##Sandbox.WebHome## page. | ||
303 | |||
304 | For the supported query string parameters, you can refer to the [[##save## action>>#HAction:save]]. | ||
305 | |||
306 | == Action: ##get## == | ||
307 | |||
308 | === Parameter: ##htmlHeaderAndFooter## === | ||
309 | |||
310 | {{info}}Since 6.3RC1{{/info}} If ##htmlHeaderAndFooter=true## is passed then display the HTML headers (##<html>##,##<head>##,##<body>##, etc...) and footers (##</body>##, ##</html>##, etc...). | ||
311 | |||
312 | == Action: ##download## == | ||
313 | |||
314 | The additional URL paths for the ##download## action is ##<space1>/.../<spaceN>/<page>/<attachment>?<query string>##. | ||
315 | |||
316 | Example: | ||
317 | |||
318 | * ##http:~/~/<server>/xwiki/bin/download/Space1/Space2/WebHome/image.png##: Views the ##image.png## attachment located in the ##Space1.Space2.WebHome## page. | ||
319 | |||
320 | === Parameter: ##force-download## === | ||
321 | |||
322 | If set, force the attachment to be downloaded instead of being opened in the browser (it sets the ##Content-Disposition## header to ##attachment## instead of ##inline##). | ||
323 | |||
324 | == Action: ##downloadrev## == | ||
325 | |||
326 | The additional URL paths for the ##downloadrev## action is ##<space1>/.../<spaceN>/<page>/<attachment>?<query string>##. | ||
327 | |||
328 | Example: | ||
329 | |||
330 | * ##http:~/~/<server>/xwiki/bin/downloadrev/Space1/Space2/WebHome/image.png?rev=1.2##: Views the revision ##1.2## of ##image.png## attachment located in the ##Space1.Space2.WebHome## page. | ||
331 | |||
332 | === Parameter: ##rev## === | ||
333 | |||
334 | The version to get, e.g. ##1.2## in ##http:~/~/<server>/xwiki/bin/downloadrev/Space1/Space2/WebHome/image.png?rev=1.2## | ||
335 | |||
336 | === Parameter: ##force-download## === | ||
337 | |||
338 | If set, force the attachment to be downloaded instead of being opened in the browser (it sets the ##Content-Disposition## header to ##attachment## instead of ##inline##). | ||
339 | |||
340 | == Action: ##create## == | ||
341 | |||
342 | The additional URL paths for the create action is ##<space1>/.../<spaceN>/<page>?<query string>##. | ||
343 | |||
344 | Examples: | ||
345 | |||
346 | http:~/~/<server>/xwiki/bin/create/Space1/Space2/NewPage: UI for creating the Space1.Space2.NewPage document (also known as a terminal document). | ||
347 | http:~/~/<server>/xwiki/bin/create/Space1/Space2/WebHome: UI for creating the Space1.Space2.WebHome document (which is also known as a space homepage or a non-terminal document). | ||
348 | http:~/~/<server>/xwiki/bin/create/Main/WebHome: Generic UI for creating a new document (asking for location and document name since Main.WebHome already exists) | ||
349 | |||
350 | Here are some of the supported query string parameters. | ||
351 | |||
352 | === Parameter: ##spaceReference## === | ||
353 | |||
354 | {{info}}Since 7.2M1{{/info}} A local reference string serialization of the space in which to create the new document, e.g. "Space1.Space2" | ||
355 | |||
356 | //Note//: Since it's a serialized string reference, entity names need to be already escaped. For a space name "A.B", the equivalent local space reference would be "A\.B". Another example of serialized local space reference would be "A\.B.C\.D", meaning space "C.D" inside space "A.B". See the [[extensions:Extension.Model Module]]'s documentation for more information on EntityReferences. | ||
357 | |||
358 | === Parameter: ##name## === | ||
359 | |||
360 | {{info}}Since 7.2M1{{/info}} A string representing the name of the new entity, e.g. "NewDocument". | ||
361 | |||
362 | Depending on the type of document to create, this will be used as: | ||
363 | |||
364 | * a space name, when creating non-terminal documents, e.g. spaceReference=Space&name=Page results in creating "Space.Page.WebHome" | ||
365 | * a document name, when creating terminal documents, e.g. spaceReference=Space&name=Page&tocreate=terminal results in creating "Space.Page" | ||
366 | |||
367 | === Parameter: ##tocreate## === | ||
368 | |||
369 | Accepted values: | ||
370 | |||
371 | * empty or not specified: | ||
372 | ** if the current document does not exist, a terminal document will be created having the current document's reference, e.g. ##/create/Space/NewPage## creates "Space.NewPage" | ||
373 | ** if the current document exists, the new document (specified using the ##spaceReference## + ##name## parameters pair) is created as a non-terminal document, e.g. ##/create/Main/WebHome?spaceReference=Space&name=NewPage## creates "Space.NewPage.WebHome". | ||
374 | ** {{warning}}Deprecated since 7.2M1{{/warning}} if the current document exists, the new document (specified using the deprecated ##space## + ##pageName## parameters pair) is created as a terminal document, e.g. ##/create/Main/WebHome?space=Space&page=NewPage## creates "Space.NewPage". | ||
375 | * "terminal" - forces the new document to be a terminal document. | ||
376 | ** Example: If "Space1.Space2.Page" is to be created, then it is already a terminal document and is not affected in any way by this setting, but if "Space1.Space2.WebHome" is to be created then it would be a non-terminal document by default. In this later case, specifying the tocreate=terminal parameter would force the creation of a terminal document instead, result in the creation of ##Space1.Space2## (i.e. the page named "Space2" in the space "Space1"), effectively going up one level in the Nested Spaces hierarchy. | ||
377 | ** In the case of a top level space's WebHome document (e.g. "Space.WebHome"), this setting is ignored, since the top limit of the hierarchy is reached and there is nowhere else to go up. The resulting document to be created is thus "Space.WebHome". | ||
378 | * "space" - {{warning}}Deprecated since 7.2M1{{/warning}} The document to be created will always be a space WebHome (a.k.a a non-terminal document). This value is considered only when used in conjunction with the deprecated ##space## parameter. In this case, the deprecated ##page## parameter is completely ignored. For example: ##tocreate=space&space=MySpace## will result in "MySpace.WebHome". | ||
379 | |||
380 | === Parameter: ##template## === | ||
381 | |||
382 | A string serialized document reference of the document to use as template when creating the new document. | ||
383 | |||
384 | If empty, the new document will be a blank page. | ||
385 | |||
386 | If not specified, and existing template providers are available to choose from in the current space and the ##templateprovider## parameter is also not specified, no document will be created yet and the create UI will show up asking the user to choose a template provider from a list. | ||
387 | |||
388 | This parameter has precedence over the ##templateprovider## parameter, meaning that if both are specified, the ##templateprovider## will be ignored. | ||
389 | |||
390 | === Parameter: ##templateprovider## === | ||
391 | |||
392 | A string serialized document reference of the template provider document to use when creating the new document. The actual template document to use will be extracted from the specified template provider. | ||
393 | |||
394 | If the specified template provider is not allowed to be used in the space where the new document is created, then the create UI will be displayed with an error. | ||
395 | //Note//: This check is done for the ##spaceReference## of the new document to be created. Example: If we are creating the terminal document "Space.NewPage", the check is done for the space "Space". However, if we are creating the non-terminal document "Space.NewPage.WebHome", the check is done for the non-terminal document's space "Space" and not for actual document's reference space "NewPage". | ||
396 | |||
397 | If empty, the new document will be a blank page. | ||
398 | |||
399 | If not specified, and existing template providers are available to choose from in the current space and the ##template parameter is also not specified, no document will be created yet and the create UI will show up asking the user to choose a template provider from a list.## | ||
400 | |||
401 | If both this parameter and the ##template## parameter are specified, the ##template## parameter will be used instead of and this parameter will be ignored. | ||
402 | |||
403 | === Parameter: ##title## === | ||
404 | |||
405 | A string to use as the title of the new document. | ||
406 | |||
407 | === Parameter: ##form_token## === | ||
408 | |||
409 | A mandatory anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. | ||
410 | |||
411 | === Parameter: ##parent## === | ||
412 | |||
413 | {{warning}}Deprecated since 7.2M1{{/warning}} A string serialized document reference of the document to use as parent for the new document. | ||
414 | |||
415 | === Parameter: ##space## === | ||
416 | |||
417 | {{warning}}Deprecated since 7.2M1{{/warning}} A string representing an unescaped space name where the new document will be created, Example: "MySpace", "SpaceNameWith.Dots", etc. | ||
418 | |||
419 | //Note//: Because this is just a space name and not a space local reference, only top level space documents can be created, i.e. "TopLevelSpace.Document" is possible but not "TopLevelSpace.SecondLevelSpace.Document". | ||
420 | |||
421 | === Parameter: ##pageName## === | ||
422 | |||
423 | {{warning}}Deprecated since 7.2M1{{/warning}} A string representing the name of the new document. Example: "NewDocument" | ||
424 | |||
425 | //Note//: When using ##tocreate=space## in conjunction with the ##space## parameter, this parameter will be ignored and the document "<space>.WebHome" will be created. | ||
426 | |||
427 | == Action: ##skin## == | ||
428 | |||
429 | Right now dynamic Skin Resources are handled as Entity Resources ([[which is not correct>>https://jira.xwiki.org/browse/XWIKI-12449]]). | ||
430 | |||
431 | The additional URL paths for the ##skin## action is | ||
432 | |||
433 | * ##<filesystem path to resource>?<optional query string>## for Filesystem-based Skins | ||
434 | * ##<space1>/.../<spaceN>/<page>/<attachment name>## for a resource attached to a wiki page. Note that Velocity is executed only if the attachment has a CSS or Javascript extension name. | ||
435 | * ##<space1>/.../<spaceN>/<page>/<xobject property name>## for Skins defined in wiki pages and having an ##XWiki.XWikiSkins## xobject with a property named ##<xobject property name>##. Note that Velocity is executed only if the ##<xobject property name>## name has a CSS or Javascript extension name. | ||
436 | |||
437 | Examples: | ||
438 | |||
439 | * ##http:~/~/<server>/xwiki/bin/skin/skins/flamingo/style.css?skin=XWiki.DefaultSkin&colorTheme=playground%3AFlamingoThemes.Charcoal##: Points to the ##style.css## resource located in the ##[xwiki webapp location]/skins/flamingo## directory on the filesystem (and if not found look for the resource in the base skin and default base skin). | ||
440 | * ##http:~/~/<server>/xwiki/bin/skin/resources/uicomponents/search/searchSuggest.css##: Points to the ##searchSuggest.css## resource located in the ##[xwiki webapp location]/resources/uicomponents/search## directory on the filesystem. | ||
441 | * ##http:~/~/<server>/xwiki/bin/skin/uicomponents/search/searchSuggest.css##: Similar as just above except that the ##resources## part has been omitted and if the resource doesn't exist in ##[xwiki webapp location]/uicomponents/search## then it's also searched for in ##[xwiki webapp location]/resources/uicomponents/search## | ||
442 | * ##http:~/~/<server>/xwiki/bin/skin/XWiki/DefaultSkin/somefile.css##: Points to the ##somefile.css## attachment in the ##XWiki.DefaultSkin## wiki page (and if not found look for the resource in the base skin and default base skin). | ||
443 | * ##http:~/~/<server>/xwiki/bin/skin/XWiki/DefaultSkin/edit.vm##: Points to the content of the ##edit.vm## property in the ##XWiki.XWikiSkins## xobject in the ##XWiki.DefaultSkin## wiki page (and if not found look for the resource in the base skin and default base skin). | ||
444 | |||
445 | == Action: ##objectadd## == | ||
446 | |||
447 | Adds an XObject to the referenced page. | ||
448 | |||
449 | Examples: | ||
450 | |||
451 | * ##http:~/~/<server>/xwiki/bin/objectadd/Space/Page?classname=Some.XClass## | ||
452 | * ##http:~/~/<server>/xwiki/bin/objectadd/Space/Page?classname=XWiki.XWikiGroups&XWiki.XWikiGroups_member=XWiki.JohnDoe## | ||
453 | |||
454 | === Parameter: ##classname## === | ||
455 | |||
456 | The full name of the document that holds the class which the object to be added should be instance of. Example: ##XWiki.XWikiGroups##. | ||
457 | |||
458 | === Parameter: ##<classname>_<fieldname>## === | ||
459 | |||
460 | This is an optional parameter. You can initialize the XObject properties by passing parameter names of the form ##<classname>_<fieldname>##, where ##classname## is the value given in the ##classname## parameter above and ##fieldname## is the name of the xproperty field to initialize. For example: ##XWiki.XWikiGroups_member## (provided that ##XWiki.XWikiGroups## has been given for the mandatory ##classname## parameter). | ||
461 | |||
462 | === Parameter: ##xredirect## === | ||
463 | |||
464 | Optional parameter indicating the URL to redirect to once the object has been added. | ||
465 | |||
466 | For example: ##xredirect=/xwiki/bin/view/SomeSpace/SomePage##. | ||
467 | |||
468 | When not specified, you're redirected to the current page (the page specified in the URL) and using the object editor (##edit## action and ##editor=object## parameter). | ||
469 | |||
470 | === Parameter: ##form_token## === | ||
471 | |||
472 | A mandatory anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. | ||
473 | |||
474 | == Action: ##objectremove## == | ||
475 | |||
476 | Removes an XObject from the referenced page. | ||
477 | |||
478 | Examples: | ||
479 | |||
480 | * ##http:~/~/<server>/xwiki/bin/objectremove/Space/Page?classname=Some.XClass## | ||
481 | * ##http:~/~/<server>/xwiki/bin/objectremove/Space/Page?classname=XWiki.XWikiGroups&XWiki.XWikiGroups_member=XWiki.JohnDoe## | ||
482 | |||
483 | === Parameter: ##classname## === | ||
484 | |||
485 | The full name of the document that holds the class which the object to be removed should be instance of. Example: ##XWiki.XWikiGroups##. | ||
486 | |||
487 | === Parameter: ##classid## === | ||
488 | |||
489 | The number of the object to remove from the class (starts at 0). | ||
490 | |||
491 | === Parameter: ##xredirect## === | ||
492 | |||
493 | Optional parameter indicating the URL to redirect to once the object has been removed. | ||
494 | |||
495 | For example: ##xredirect=/xwiki/bin/view/SomeSpace/SomePage##. | ||
496 | |||
497 | When not specified, you're redirected to the current page (the page specified in the URL) in ##edit## mode (##/edit/## action). | ||
498 | |||
499 | === Parameter: ##form_token## === | ||
500 | |||
501 | A mandatory anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. | ||
502 | |||
503 | == Action: ##delete## == | ||
504 | |||
505 | Bring to a screen to delete a page. | ||
506 | |||
507 | The additional URL paths for the ##delete## action is ##<space1>/.../<spaceN>/<page>?<query string>## or ##<space1>/.../<spaceN>?<query string>## | ||
508 | |||
509 | Examples: | ||
510 | |||
511 | * ##http:~/~/<server>/xwiki/bin/delete/Sandbox/WebHome##: Brings to a screen to delete the ##Sandbox.WebHome## page. | ||
512 | |||
513 | === Parameter: ##confirm## === | ||
514 | |||
515 | ##confirm=1##: avoids displaying the screen and deletes the page immediately. Requires the parameter ##form_token##. | ||
516 | |||
517 | === Parameter: ##affectChildren## === | ||
518 | |||
519 | ##affectChildren=(anyValue)##: delete also the children of the page. | ||
520 | |||
521 | === Parameter: ##newBacklinkTarget## === | ||
522 | |||
523 | The reference of the page concerned by ##autoRedirect## and ##updateLinks## parameters | ||
524 | |||
525 | === Parameter: ##autoRedirect## === | ||
526 | |||
527 | ##autoRedirect=true##: redirect the user to the new page when accessing the old page. Needs ##newBacklinkTarget## to work. | ||
528 | |||
529 | === Parameter: ##updateLinks## === | ||
530 | |||
531 | ##updateLinks=true##: update the target of the wiki to this page. Needs ##newBacklinkTarget## to work. | ||
532 | |||
533 | === Parameter: ##form_token## === | ||
534 | |||
535 | Optional; the anti-CSRF token string which can be provided by the [[CSRF API>>extensions:Extension.XWiki Platform - CSRF.WebHome]]. The token is mandatory when using the ##confirm## parameter. | ||
536 | |||
537 | == Action: ##preview## == | ||
538 | |||
539 | Preview changes before they're saved. | ||
540 | |||
541 | Examples: | ||
542 | |||
543 | * ##http:~/~/<server>/xwiki/bin/preview/Sandbox/WebHome##: Shows the ##Sandbox.WebHome## page rendered with local changes (but without the changes saved in XWiki) | ||
544 | |||
545 | = Type: ##vfs## = | ||
546 | |||
547 | See [[VFS Resource>>extensions:Extension.VFS API]]. | ||
548 | |||
549 | = Type: ##webjars## = | ||
550 | |||
551 | See [[WebJar Resource>>extensions:Extension.WebJars Integration]] | ||
552 | |||
553 | = Type: ##wiki## = | ||
554 | |||
555 | {{info}} | ||
556 | XWiki 7.2: Added support for Nested Spaces | ||
557 | {{/info}} | ||
558 | |||
559 | The format is ##wiki/<wiki name>/<bin subpath>## where: | ||
560 | |||
561 | * ##<wiki name>##: the name of the subwiki, e.g. ##platform##. | ||
562 | * ##<bin subpath>##: the same path as for the ##bin## action (see above). For example, if you use ##http:~/~/<main wiki server>/xwiki/bin/download/XWiki/JohnDoe/john.png## you would use ##http:~/~/<main wiki server>/xwiki/wiki/<subwiki name>/download/XWiki/JohnDoe/john.png## to access the same attachment but located in a subwiki named ##<subwiki>##. | ||
563 | |||
564 | = Type: ##resources## = | ||
565 | |||
566 | Static template resources, e.g. ##http:~/~/<server>/xwiki/resources/js/prototype/prototype.js##. | ||
567 | |||
568 | = Type: ##skins## = | ||
569 | |||
570 | Static skin resources, e.g. ##http:~/~/<server>/xwiki/skins/flamingo/logo.png##. | ||
571 | |||
572 | = Type: ##temp## = | ||
573 | |||
574 | {{warning}} | ||
575 | Deprecated since 8.3. Use the ##tmp## resource handler instead. | ||
576 | {{/warning}} | ||
577 | |||
578 | Dynamic temporary resources, bound to a specific document and a specific module. | ||
579 | |||
580 | The format is ##temp/<Space>/<Document>/<module>/<file.ext>##, where: | ||
581 | |||
582 | * ##<Space>## and ##<Document>## identify the target document; currently only the last part of the space is supported | ||
583 | * ##<module>## is the name of the module that generated the resource, a short string used for avoiding conflicts between different modules generating temporary files with the same name | ||
584 | * ##<file.ext>## is the name of the temporary file | ||
585 | |||
586 | == Parameter: ##force-download## == | ||
587 | |||
588 | If set to ##1##, force the file to be downloaded instead of being opened in the browser (it sets the ##Content-Disposition## header to ##attachment##). | ||
589 | |||
590 | == Parameter: ##force-filename## == | ||
591 | |||
592 | [since 9.0RC1] | ||
593 | |||
594 | If ##force-download## is set, the value of ##force-filename## is used in the ##Content-disposition## HTTP header to indicate the name of the file to the browser. | ||
595 | |||
596 | = Type: ##tmp## = | ||
597 | |||
598 | See [[Temporary Resource>>extensions:Extension.Temporary Resource API]] | ||
599 | |||
600 | = Type: ##authenticate## = | ||
601 | |||
602 | {{version since="13.1RC1"}} | ||
603 | See [[Authentication Security Module>>extensions:Extension.Authentication Security Module||anchor="HAuthenticateURLresourcetype"]] | ||
604 | {{/version}} |