Wiki-Quellcode von ResourceDispatcher

Zuletzt geändert von admin am 2025/02/23 19:33

Zeige letzte Bearbeiter
1 {{velocity wiki="false"}}
2 #set ($resourceType = $request.type)
3 #set ($resourceReference = $request.reference)
4 #set ($resourceURL = $NULL)
5 #if ($resourceType == 'attach')
6 #set ($attachmentReference = $services.model.resolveAttachment($resourceReference))
7 #set ($documentFullName = $services.model.serialize($attachmentReference.parent))
8 #set ($resourceURL = $xwiki.getAttachmentURL($documentFullName, $attachmentReference.name))
9 #elseif ($resourceType == 'doc')
10 #set ($resourceURL = $xwiki.getURL($resourceReference))
11 #elseif ($resourceType == 'icon')
12 #set ($resourceURL = $xwiki.getSkinFile("icons/silk/${resourceReference}.png"))
13 #elseif ($resourceType == 'user')
14 #set ($userReference = $services.model.resolveDocument($resourceReference, 'user'))
15 #set ($resourceURL = $xwiki.getURL($userReference))
16 #end
17 #if ("$!resourceType" != '')
18 #if ($resourceURL)
19 #set ($parts = $resourceURL.split('#', 2))
20 #set ($resourceURL = $parts.get(0))
21 #set ($anchor = "$!request.getParameter('parameters[anchor]')")
22 #if ($parts.size() == 2 && $anchor == '')
23 ## Keep the original anchor.
24 #set ($anchor = $parts.get(1))
25 #end
26 #set ($parts = $resourceURL.split('\?', 2))
27 #set ($resourceURL = $parts.get(0))
28 #set ($queryString = "$!request.getParameter('parameters[queryString]')")
29 #if ($parts.size() == 2)
30 ## Insert the new query string before the original one so that the new parameter values take precedence.
31 #set ($queryString = "$queryString&$parts.get(1)")
32 #end
33 $response.sendRedirect("$resourceURL?$queryString#$anchor")
34 #else
35 $response.sendError(404)
36 #end
37 #end
38 {{/velocity}}