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.