Änderungen von Dokument View File Macro
Zuletzt geändert von xwikiadmin am 2025/01/07 12:27
Von Version 1.1
bearbeitet von xwikiadmin
am 2022/05/10 12:01
am 2022/05/10 12:01
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.2.2]
Auf Version 5.1
bearbeitet von xwikiadmin
am 2023/10/26 10:38
am 2023/10/26 10:38
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.12]
Zusammenfassung
-
Objekte (1 geändert, 0 hinzugefügt, 0 gelöscht)
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}}