Изменения документа Document Tree Macros
Редактировал(а) Георгий Глущенко 2026/07/02 17:46
От версии 8.1
отредактировано Андрей Ганьков
на 2026/01/23 10:50
на 2026/01/23 10:50
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.10.2]
К версии 10.1
отредактировано Георгий Глущенко
на 2026/07/02 17:46
на 2026/07/02 17:46
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/18.5.0]
Сводка
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Автор документа
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.g av1 +XWiki.ggv - Содержимое
-
... ... @@ -30,7 +30,9 @@ 30 30 #end 31 31 #end 32 32 ## Handle relative references 33 - #makeNodeReferencesAbsolute($docTreeConfig ['root', 'openTo']) 33 + #foreach ($key in ['root', 'openTo']) 34 + #set ($docTreeConfig[$key] = $services.index.tree.normalizeEntityTreeNodeId($docTreeConfig[$key])) 35 + #end 34 34 ## FIXME: The 'orderBy' property of the tree API is shared by all tree node types, which means we can't indicate a 35 35 ## different sort field per tree node type (e.g. sort wiki nodes by name and document nodes by last modification 36 36 ## date). At the same time, this property is currently taken into account only for sorting document tree nodes, so for ... ... @@ -56,29 +56,6 @@ 56 56 #set ($discard = $tree.properties.putAll($docTreeConfig)) 57 57 #end 58 58 59 -#set ($documentPseudoNodeTypes = ['translations', 'attachments', 'classProperties', 'objects', 'addDocument', 60 - 'addAttachment']) 61 -#macro (makeNodeReferencesAbsolute $map $keys) 62 - #foreach ($key in $keys) 63 - #set ($nodeId = $map.get($key)) 64 - #set ($parts = $nodeId.split(':', 2)) 65 - #if ($parts && $parts.size() == 2) 66 - #set ($nodeType = $parts[0].toLowerCase()) 67 - #set ($nodeReference = $parts[1]) 68 - #set ($entityType = $nodeType) 69 - #if ($documentPseudoNodeTypes.contains($nodeType)) 70 - #set ($entityType = 'document') 71 - #end 72 - #set ($discard = "#evaluate(""${escapetool.h}set (${escapetool.d}entityReference = 73 - ${escapetool.d}services.model.resolve$stringtool.capitalize($entityType)(${escapetool.d}nodeReference))"")") 74 - #if ($entityReference) 75 - #set ($nodeReference = $services.model.serialize($entityReference, 'default')) 76 - #end 77 - #set ($discard = $map.put($key, "$nodeType:$nodeReference")) 78 - #end 79 - #end 80 -#end 81 - 82 82 #macro (handleDocumentTreeRequest) 83 83 #if ($request.action) 84 84 #if ($services.csrf.isTokenValid($request.form_token)) ... ... @@ -173,8 +173,39 @@ 173 173 #if ($parts && $parts.size() == 2) 174 174 #set ($nodeType = $parts[0]) 175 175 #set ($nodeReference = $parts[1]) 176 - #set ($discard = "#evaluate(""${escapetool.h}maybeAdd$stringtool.capitalize($nodeType)Node( 177 - ${escapetool.d}nodeReference ${escapetool.d}siblings ${escapetool.d}placeholder)"")") 155 + #if ($nodeType == 'farm') 156 + #maybeAddFarmNode($nodeReference $siblings) 157 + #elseif ($nodeType == 'wiki') 158 + #maybeAddWikiNode($nodeReference $siblings $placeholder) 159 + #elseif ($nodeType == 'space') 160 + #maybeAddSpaceNode($nodeReference $siblings $placeholder) 161 + #elseif ($nodeType == 'document') 162 + #maybeAddDocumentNode($nodeReference $siblings $placeholder) 163 + #elseif ($nodeType == 'addDocument') 164 + #maybeAddAddDocumentNode($nodeReference $siblings) 165 + #elseif ($nodeType == 'translations') 166 + #maybeAddTranslationsNode($nodeReference $siblings) 167 + #elseif ($nodeType == 'translation') 168 + #maybeAddTranslationNode($nodeReference $siblings) 169 + #elseif ($nodeType == 'attachments') 170 + #maybeAddAttachmentsNode($nodeReference $siblings) 171 + #elseif ($nodeType == 'attachment') 172 + #maybeAddAttachmentNode($nodeReference $siblings) 173 + #elseif ($nodeType == 'addAttachment') 174 + #maybeAddAddAttachmentNode($nodeReference $siblings) 175 + #elseif ($nodeType == 'classProperties') 176 + #maybeAddClassPropertiesNode($nodeReference $siblings) 177 + #elseif ($nodeType == 'classProperty') 178 + #maybeAddClassPropertyNode($nodeReference $siblings) 179 + #elseif ($nodeType == 'objects') 180 + #maybeAddObjectsNode($nodeReference $siblings) 181 + #elseif ($nodeType == 'objectsOfType') 182 + #maybeAddObjectsOfTypeNode($nodeReference $siblings) 183 + #elseif ($nodeType == 'object') 184 + #maybeAddObjectNode($nodeReference $siblings) 185 + #elseif ($nodeType == 'objectProperty') 186 + #maybeAddObjectPropertyNode($nodeReference $siblings) 187 + #end 178 178 #end 179 179 #end 180 180 ... ... @@ -1304,6 +1304,8 @@ 1304 1304 #end 1305 1305 1306 1306 #macro (addCommonDocTreeSolrParams $params) 1317 + ## Enable prefix matching, besides standard language-dependent matching. 1318 + #set ($discard = $params.add('q=__INPUT__ __INPUT__*')) 1307 1307 #if ($rootType == 'wiki') 1308 1308 ## Limit the search to the specified wiki. 1309 1309 #addWikiLocationSolrParams($rootReference $params)