In this question about incoming links I was able to find a macro to enumerate incoming links on a specified page.
I now have a heirarchy of pages that refer to each other and it is important that I know which pages don't have any incoming links at all since this implies that they have not been set up properly in the cross-reference web being created.
Does anyone know how I can search for pages that don't have incoming links?
Possibly a more generalised search based on existing incoming links would also be useful (say, all pages with incoming links from a specified page, or space).
Thanks for your help.
Hi Russell,
The following user macro lists all pages without any incoming links of a given space:
## @param Space:title=Space|type=string|required=true
#set($space = $spaceManager.getSpace($paramSpace))
#set($pages = $pageManager.getPages($space, true))
#set($containerManagerClass = $content.class.forName('com.atlassian.spring.container.ContainerManager'))
#set($getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null))
#set($containerManager = $getInstanceMethod.invoke(null,null))
#set($containerContext = $containerManager.containerContext)
#set($linkManager = $containerContext.getComponent('linkManager'))
<h1>Pages without incoming links in space "$space.getName()"</h1>
<ul>
#foreach ( $page in $pages )
#set($links = $linkManager.getIncomingLinksToContent($page.getContentEntityObject()))
#if($links.size() == 0)
<li>
<a href="$req.contextPath/pages/viewpage.action?pageId=$page.getId()">$page.getTitle()</a>
</li>
#end
#end
</ul>
Cheers,
Thomas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.