Changes for page 3D Printing

Last modified by Josh McGee on 2026/01/21 13:23

From version 37.1
edited by Josh McGee
on 2025/11/19 10:36
Change comment: There is no comment for this version
To version 53.1
edited by Josh McGee
on 2025/11/19 10:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -15,36 +15,44 @@
15 15  
16 16  
17 17  {{velocity}}
18 -##
19 -## Velocity macro to list all subpages of the "Areas" page
20 -##
21 -#macro(listAreasSubpages)
22 - ## Full name of the parent document (top-level page "Areas")
23 - #set($parentDocFullName = 'Areas.WebHome')
18 +## List all direct subpages of Areas > Upstairs > 3D Printers
19 +#macro(list3DPrintersSubpages)
20 + ## Current wiki name
21 + #set($wikiName = $xcontext.database)
24 24  
25 - ## HQL: get all non-hidden children whose parent is Areas.WebHome
26 - #set($hql =
27 - "select doc.fullName " +
28 - "from XWikiDocument doc " +
29 - "where doc.parent = :parent and doc.hidden <> true " +
30 - "order by doc.name asc"
31 - )
23 + ## Build a document reference for Areas.Upstairs."3D Printers"
24 + ## (nested page, NOT WebHome of another space)
25 + #set($parentRef = $services.model.createDocumentReference(
26 + $wikiName,
27 + ['Areas', 'Upstairs', '3D%20Printing'],
28 + 'WebHome'
29 + ))
32 32  
33 - #set($children = $services.query.hql($hql)
34 - .bindValue('parent', $parentDocFullName)
35 - .execute())
31 + ## Get the parent document
32 + #set($parentDoc = $xwiki.getDocument($parentRef))
36 36  
37 - #if($children.isEmpty())
38 - No subpages found under **Areas**.
34 + ## Optional sanity check: ensure the parent exists
35 + #if(!$parentDoc.exists())
36 + Parent page not found: $parentRef
39 39   #else
40 - #foreach($childFullName in $children)
41 - #set($childDoc = $xwiki.getDocument($childFullName))
42 - * [[$childDoc.displayTitle>>$childDoc.getURL('view')]]
38 + ## Get its direct children
39 + #set($children = $parentDoc.getChildren())
40 +
41 + #if(!$children || $children.isEmpty())
42 + No subpages found under 3D Printers.
43 + #else
44 + #foreach($childRef in $children)
45 + ## Resolve each child reference to a document
46 + #set($childDoc = $xwiki.getDocument($childRef))
47 + * [[$childDoc.getDisplayTitle()>>$childDoc]]
48 + #end
43 43   #end
44 44   #end
45 45  #end
46 46  
47 47  ## Call the macro
48 -#listAreasSubpages()
54 +#list3DPrintersSubpages()
49 49  {{/velocity}}
50 50  
57 +
58 +