Änderungen von Dokument Content Report Table Macro
Zuletzt geändert von xwikiadmin am 2024/06/24 14:35
Von Version 3.1
bearbeitet von xwikiadmin
am 2023/04/25 10:54
am 2023/04/25 10:54
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.7.1]
Auf Version 1.1
bearbeitet von xwikiadmin
am 2022/02/23 10:52
am 2022/02/23 10:52
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.2.1]
Zusammenfassung
-
Objekte (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- XWiki.WikiMacroClass[0]
-
- Makro-Code
-
... ... @@ -1,62 +1,45 @@ 1 -{{velocity output="false"}} 2 -#macro (executeMacro) 3 - ## Used parameters : 4 - #set($labels = $wikimacro.parameters.get('labels')) 5 - #set($spaces = $wikimacro.parameters.get('spaces')) 6 - #set($maxResults = $wikimacro.parameters.get('maxResults')) 7 - #if("$!maxResults" == '') 8 - #set($maxResults = 20) 9 - #end 10 - ## Searching for the matching pages 11 - #set($statement = 'select distinct doc.fullName, doc.title, doc.creator, doc.date from XWikiDocument doc, BaseObject as obj, DBStringListProperty as prop 12 - join prop.list item where obj.className = :className and obj.name = doc.fullName and obj.id = prop.id.id 13 - and prop.id.name = :propName and lower(item) in (:labelsList)') 14 - #set($lowerCaseLabelList = []) 15 - #foreach($label in $labels.split(',')) 16 - #set($discard = $lowerCaseLabelList.add($label.toLowerCase())) 17 - #end 18 - #set($params = { 19 - 'className': 'XWiki.TagClass', 20 - 'propName': 'tags', 21 - 'labelsList': $lowerCaseLabelList 22 - }) 23 - #if("$!spaces" != '') 24 - #set ($statement = $statement + ' and (') 25 - #foreach($space in $spaces.split('(?<!\\\\), ')) 26 - #if($foreach.index > 0) 27 - #set($statement = $statement + ' or ') 28 - #end 29 - #set($statement = $statement + "doc.space like :space$foreach.index") 30 - #set($discard = $params.put("space$foreach.index", $space.replaceAll('([%_!])', '!$1').concat('%'))) 1 +{{velocity}} 2 +## Used parameters : 3 +#set($labels = $wikimacro.parameters.get('labels')) 4 +#set($spaces = $wikimacro.parameters.get('spaces')) 5 +#set($maxResults = $wikimacro.parameters.get('maxResults')) 6 +#if("$!maxResults" == '') 7 + #set($maxResults = 20) 8 +#end 9 +## Searching for the matching pages 10 +#set($statement = 'select distinct doc.fullName, doc.title, doc.creator, doc.date from XWikiDocument doc, BaseObject as obj, DBStringListProperty as prop 11 + join prop.list item where obj.className = :className and obj.name = doc.fullName and obj.id = prop.id.id 12 + and prop.id.name = :propName and lower(item) in (:labelsList)') 13 +#set($lowerCaseLabelList = []) 14 +#foreach($label in $labels.split(',')) 15 + #set($discard = $lowerCaseLabelList.add($label.toLowerCase())) 16 +#end 17 +#set($params = { 18 + 'className': 'XWiki.TagClass', 19 + 'propName': 'tags', 20 + 'labelsList': $lowerCaseLabelList 21 +}) 22 +#if("$!spaces" != '') 23 + #set ($statement = $statement + ' and (') 24 + #foreach($space in $spaces.split('(?<!\\\\), ')) 25 + #if($foreach.index > 0) 26 + #set($statement = $statement + ' or ') 31 31 #end 32 - #set($statement = $statement + ')') 28 + #set($statement = $statement + "doc.space like :space$foreach.index") 29 + #set($discard = $params.put("space$foreach.index", $space.replaceAll('([%_!])', '!$1').concat('%'))) 33 33 #end 34 - #set ($statement = $statement + ' order by doc.date desc') 35 - #set($query = $services.query.hql($statement)) 36 - #set($discard = $query.bindValues($params)) 37 - #if("$!maxResults" != '') 38 - #set($discard = $query.setLimit($mathtool.toNumber($maxResults)).addFilter('currentlanguage')) 39 - #end 40 - #set($results = $query.execute()) 41 - ## Table display 42 - |=$services.localization.render('titlefield')|=$services.localization.render('creator')|=$services.localization.render('contentReportTable.header.modified') 43 - #foreach($result in $results) 44 - |[[$result.get(1)>>$result.get(0)]]|{{html clean="false"}}$xwiki.getUserName($result.get(2), true){{/html}}|$datetool.format('MMM dd, yyyy', $result.get(3)) 45 - #end 31 + #set($statement = $statement + ')') 46 46 #end 47 -{{/velocity}} 48 - 49 -{{include reference="Licenses.Code.VelocityMacros"/}} 50 - 51 -{{velocity}} 52 -## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right 53 -## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that 54 -## don't have view right on those pages. 55 -#if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference)) 56 - #executeMacro 57 -#else 58 - {{error}} 59 - #getMissingLicenseMessage('proMacros.extension.name') 60 - {{/error}} 33 +#set ($statement = $statement + ' order by doc.date desc') 34 +#set($query = $services.query.hql($statement)) 35 +#set($discard = $query.bindValues($params)) 36 +#if("$!maxResults" != '') 37 + #set($discard = $query.setLimit($mathtool.toNumber($maxResults)).addFilter('currentlanguage')) 61 61 #end 39 +#set($results = $query.execute()) 40 +## Table display 41 +|=$services.localization.render('titlefield')|=$services.localization.render('creator')|=$services.localization.render('contentReportTable.header.modified') 42 +#foreach($result in $results) 43 + |[[$result.get(1)>>$result.get(0)]]|{{html clean="false"}}$xwiki.getUserName($result.get(2), true){{/html}}|$datetool.format('MMM dd, yyyy', $result.get(3)) 44 +#end 62 62 {{/velocity}}