Create a Change Displayer
Last modified by Vincent Massol on 2026/08/28 22:09
Steps
A displayer is one wiki page rendering a list of changes; the four bundled ones are described in Change Displayers.
- Create a page named ChangeDisplayer<Name> in the Code.Change space of the application, for example ChangeDisplayerCards.

- Include the shared Velocity macros and loop over the $changeItems binding, reading each change from its ChangeClass object.
{{include reference="ReleaseNotes.Code.Change.ChangeDisplayerVelocityMacros"/}} {{velocity}} #set ($topSpace = $doc.documentReference.extractFirstReference('SPACE').getName()) #foreach ($item in $changeItems) #set ($changeDoc = $xwiki.getDocument($item)) #set ($changeObject = $changeDoc.getObject("${topSpace}.Code.Change.ChangeClass")) #generateDisplayEditLink($displayEditLink, $changeDoc) {{info}} **$changeObject.getValue('title')**${displayEditLinkMarkup} $changeObject.getValue('summary') {{/info}} #end {{/velocity}} - Pass the lowercase name to the displayer parameter, here displayer="cards", from a report or from the displayChanges macro.
- The changes are rendered by your displayer.

FAQ
Which bindings does a displayer receive?
$changeItems, the list of change page references, plus $displayEditLink and $columns as they were passed to displayChanges.
How does the displayer parameter map to the page name?
displayChanges includes ChangeDisplayer followed by the displayer value with its first letter capitalised, resolved in the Code.Change space of the wiki the page runs on.
How do I render a change's screenshots and videos?
Call displayScreenshots from the shared Velocity macros page, passing the change object, whether to use a gallery, and whether to fall back to a placeholder picture.