is there a way or a macro, which allows to create a link to a target-page and creates automatically a back link to the source-page on the target page?
<---------------- Link (source-page)
I need this to create a very simple kind of database. Each database entry has a confluence page with page-properties and sometimes a page can have a link (like a database relation) to another page.
I can do this by hand but this is a lot of work.
Here is a user macro that will make a list of the referring links to a page. You can tweak it to fit your needs.
## 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) <li><a href="$page.getUrlPath()">$page.getTitle()</a></li> #end </ul> #end
You can put this into your Page Layout decorator (Confluence Admin -> Look and Feel -> Layouts) if you want it to show on every page.
Well, it is a first step. As i am a developer but do not have any knowledge of the macro language, it seems hard to get to the result. As the reciprocal linkin would be inside the key-value table of page properties, the macro should check wether the link on the refering page is also placed inside a key-value table, or better, is the value of a specific key in the table. Is there a way to do this with the macro language?
It's might be possible ... you'd have to parse the page xml to do it though. Check the below links for information regarding the Velocity Templating Language and the Confluence API. https://confluence.atlassian.com/display/DOC/User+Macro+Template+Syntax https://developer.atlassian.com/display/CONFDEV/Confluence+Objects+Accessible+From+Velocity
Without trying to develop it my self I can't be certain if it could all be done in a user macro. Honestly, it probably would not be very performant in a user macro as you would first have to get this list of pages link to a page then for each link you would have to get the page xml and parse it. If you had lots of links that could get VERY slow.
Atlassian Summit is an excellent opportunity for in-person support, training, and networking.Learn more
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG