Hi,
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?
Source-Page: Target-Page:
Link(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.
thanks
martin
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.
$helper.renderConfluenceMacro("{referring_content}")
Is this what you are looking for?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is this all possible by a user macro or do i need to create a normal macro?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
If you want something that does everything you want you will probably have to brush up on your Java and Velocity and roll your own.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Martin.
There is not a way to add a reciprocal link in the page content. You could check the Page information (Tools > Page Information) where a list with the incoming list is displayed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.