Changes for page View File Macro

Last modified by Yana Oksner on 2025/04/30 10:28

From version 1.1
edited by Yana Oksner
on 2023/11/13 11:24
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.9.2]
To version 2.1
edited by Yana Oksner
on 2023/11/13 12:07
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.12]

Summary

Details

XWiki.WikiMacroClass[0]
Macro code
... ... @@ -2,19 +2,20 @@
2 2  #macro (executeMacro)
3 3   #set($hasPDFViewer = $xwiki.exists("XWiki.PDFViewerMacro"))
4 4   #set($officeExtensions = [ 'ppt', 'pptx', 'odp', 'doc', 'docx', 'odt', 'xls', 'xlsx', 'ods' ])
5 - #set($filename = $xcontext.macro.params.get('att--filename'))
6 - #if(!$filename)
7 - #set($filename = $xcontext.macro.params.get('name'))
5 + #set($unescapedFilename = $xcontext.macro.params.get('att--filename'))
6 + #if(!$unescapedFilename)
7 + #set($unescapedFilename = $xcontext.macro.params.get('name'))
8 8   #end
9 - #set($extension = $filename.substring($mathtool.add($filename.lastIndexOf('.'), 1)).toLowerCase())
9 + #set($extension = $unescapedFilename.substring($mathtool.add($unescapedFilename.lastIndexOf('.'), 1)).toLowerCase())
10 + #set($escapedFilename = $services.rendering.escape($unescapedFilename, $xwiki.currentContentSyntaxId))
10 10   #if($extension == 'pdf' && $hasPDFViewer)
11 11  
12 - {{pdfviewer file="${filename}" /}}
13 + {{pdfviewer file="$escapedFilename" /}}
13 13   #elseif($officeExtensions.contains($extension))
14 14  
15 - {{office reference="attach:${filename}" /}}
16 - #elseif($doc.getAttachment($filename))
17 - [[attach:${filename}]]
16 + {{office reference="attach:$escapedFilename" /}}
17 + #elseif($doc.getAttachment($unescapedFilename))
18 + [[attach:$escapedFilename]]
18 18   #end
19 19  #end
20 20  {{/velocity}}