You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
Next: Root
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
The Atlassian Community can help you and your team get more value out of Atlassian products and practices.
I try to use the User Macro given in this question : https://community.atlassian.com/t5/Answers-Developer-Questions/Get-incoming-links-with-in-a-user-macro/qaq-p/538128
It works fine on the page but if I put the macro in a [Page Property] macro, the links are not visible on the page properties report.
I modify the code to display the content of $incLinks variable : it contains links on the page (even inside Page Property macro) but it's empty in the page properties index.
Anyone has an idea ?
Thanks !
This is one I wrote a couple years ago. I works for me with page properties and the report macro.
Macro Name:
referring_content
Macro Title:
Referring Content
Macro Body Processing:
No macro body
Template:
## Developed by: Davin Studer ## Date created: 06/26/2014 ## @noparams #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')) #set($pages = $linkManager.getReferringContent($content)) #if($pages.size() > 0) <ul class="referring-content-links"> #foreach($page in $pages) #if (!$page.isDeleted()) <li><a href="$page.getUrlPath()">$page.getTitle()</a></li> #end #end </ul> #end
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Davin,
since I also have the problem that the Incoming links are not displayed in the Page Properties Report when using the solution provided in another thread, I was very happy to see your solution. Unfortunately, it doesn't seem to work in the Confluence version I'm using (7.13.0 DC).
It seems, that already the first #set command does not work. I added some lines to the code after the first five #set commands which all result in "... not defined!".
#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'))
#if (!$containerManagerClass) <div>containerManagerClass is not defined!</div> #end
#if (!$getInstanceMethod) <div>getInstanceMethod is not defined!</div> #end
#if (!$containerContext) <div>containerContext is not defined!</div> #end
#if (!$containerManager) <div>containerManager is not defined!</div> #end
#if (!$linkManager) <div>linkManager is not defined!</div> #end
Thanks a lot and best regards,
Ulrik
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Davin,
I'm afraid I've just found the root cause by myself:
According to issue CONFSERVER-59935, as of Confluence version 7.0.1, the security settings have been tightened. After that the use of class.forName() is no longer possible.
This is really frustrating... :-(
Regards,
Ulrik
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is a user macro solution to get incoming links based on the page property reports - where you can show the metadata that has been identified from the source page on the destination page of a link. It is a little hacky as it relies on matching the page title with the contents of the source page:
This could be enhanced by adding parameters to identify the labels, but I haven't tested that yet.
## Macro title: Incoming link with page properties
## Macro has a body: Y
## Body processing: Rendered
## Output: A list of incoming pages including the identified page properties from the source pages
##
## Developed by: Roberte
## Date created: 20/01/2021
## Installed by: Roberte
##
<p>
<ac:structured-macro ac:name="detailssummary" ac:schema-version="2" ac:macro-id="39fcccb8-78b8-4341-afb1-e5fd86a9f38e">
<ac:parameter ac:name="firstcolumn">Page title</ac:parameter>
<ac:parameter ac:name="headings">YOUR DESIRED PAGE PROPERY FIELDS</ac:parameter>
<ac:parameter ac:name="cql">label = "LABELNAME" and text ~ "$content.title"</ac:parameter>
</ac:rich-text-body>
</ac:structured-macro>
</p>
Just wanted to share this as I have often used solutions from within this forum. Hope it will be useful for others!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.