Wiki-Quellcode von ResourceDispatcher
Zuletzt geändert von admin am 2025/02/23 19:33
Verstecke letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 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}} |