Änderungen von Dokument View File Macro

Zuletzt geändert von xwikiadmin am 2025/01/07 12:27

Von Version 2.1
bearbeitet von xwikiadmin
am 2022/08/11 17:13
Änderungskommentar: Migrated property [defaultCategories] from class [XWiki.WikiMacroClass]
Auf Version 5.1
bearbeitet von xwikiadmin
am 2023/10/26 10:38
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.12]

Zusammenfassung

Details

XWiki.WikiMacroClass[0]
Makro-Code
... ... @@ -1,18 +1,36 @@
1 -{{velocity}}
2 -#set($hasPDFViewer = $xwiki.exists("XWiki.PDFViewerMacro"))
3 -#set($officeExtensions = [ 'ppt', 'pptx', 'odp', 'doc', 'docx', 'odt', 'xls', 'xlsx', 'ods' ])
4 -#set($filename = $xcontext.macro.params.get('att--filename'))
5 -#if(!$filename)
6 - #set($filename = $xcontext.macro.params.get('name'))
1 +{{velocity output="false"}}
2 +#macro (executeMacro)
3 + #set($hasPDFViewer = $xwiki.exists("XWiki.PDFViewerMacro"))
4 + #set($officeExtensions = [ 'ppt', 'pptx', 'odp', 'doc', 'docx', 'odt', 'xls', 'xlsx', 'ods' ])
5 + #set($unescapedFilename = $xcontext.macro.params.get('att--filename'))
6 + #if(!$unescapedFilename)
7 + #set($unescapedFilename = $xcontext.macro.params.get('name'))
8 + #end
9 + #set($extension = $unescapedFilename.substring($mathtool.add($unescapedFilename.lastIndexOf('.'), 1)).toLowerCase())
10 + #set($escapedFilename = $services.rendering.escape($unescapedFilename, $xwiki.currentContentSyntaxId))
11 + #if($extension == 'pdf' && $hasPDFViewer)
12 +
13 + {{pdfviewer file="$escapedFilename" /}}
14 + #elseif($officeExtensions.contains($extension))
15 +
16 + {{office reference="attach:$escapedFilename" /}}
17 + #elseif($doc.getAttachment($unescapedFilename))
18 + [[attach:$escapedFilename]]
19 + #end
7 7  #end
8 -#set($extension = $filename.substring($mathtool.add($filename.lastIndexOf('.'), 1)).toLowerCase())
9 -#if($extension == 'pdf' && $hasPDFViewer)
21 +{{/velocity}}
10 10  
11 - {{pdfviewer file="${filename}" /}}
12 -#elseif($officeExtensions.contains($extension))
23 +{{include reference="Licenses.Code.VelocityMacros"/}}
13 13  
14 - {{office reference="attach:${filename}" /}}
15 -#elseif($doc.getAttachment($filename))
16 - [[attach:${filename}]]
25 +{{velocity}}
26 +## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
27 +## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
28 +## don't have view right on those pages.
29 +#if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference))
30 + #executeMacro
31 +#else
32 + {{error}}
33 + #getMissingLicenseMessage('proMacros.extension.name')
34 + {{/error}}
17 17  #end
18 18  {{/velocity}}