How to get page id in Confluence programmatically?
Here is how I was able to resolve this:
import com.atlassian.confluence.core.ContentEntityObject;
import com.atlassian.confluence.content.render.xhtml.ConversionContext;
...
public class MyClass (...
...
public String execute(...
ContentEntityObject contentEntityObject = conversionContext.getEntity();
System.out.println("pageId : " + contentEntityObject.getId());
...
}
}
Hi, George!
Could you show the whole code of page id execution, please?
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 template that might help:
public String execute(Map<String, String> map, String body, ConversionContext conversionContext) throws MacroExecutionException {
pageBuilderService.assembler().resources().requireWebResource("com.xxx.confluence.plugins.myplugin:webresources");
AttachmentManager attachmentManager = (AttachmentManager) ContainerManager.getComponent("attachmentManager");
//
// Get page ID
//
ContentEntityObject contentEntityObject = conversionContext.getEntity();
Long contentId = contentEntityObject.getId();
String pageId = contentId.toString();
//
// Get Base URL
//
BootstrapManager bootstrapManager = (BootstrapManager) ContainerManager.getComponent("bootstrapManager");
String baseUrl = bootstrapManager.getBaseUrl();
//
// Build output and return it
//
String output = "<p>Page ID: " + pageId + "</p><p>Base URL: " + baseUrl + "</p>";
return output;
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
George, thank you very much! you are my hero!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Matti,
did you figure this one out? I have the same challenge, getting the page ID in a plugin macro. How can I retrieve it in the Java class file?
Best regards,
George
Edit: Sorry, this should have been a reply to the first answer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The answer to that depends on where you are starting from! Imagine asking someone "how do I get to London?". When they don't know where you are now.
Where is your code running basically? A script? A user macro? A search result function? An add-on that's adding some form of interface (like the admin fuctions)? Another way to ask that is "in what context"?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
To the macro Java code:
<macro name='grid-user-timesheet' class='${project.groupId}.GridEditorUserMain' key='agile-application-stack-user'> <description>Creates a editable Timesheet to Confluence Page.</description> <resource type="velocity" name="help" location="templates/extra/editor/grideditoruser-help.vm"> <param name="help-section" value="advanced"/> </resource> </macro>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
So, this is an add-on for Confluence that provides a macro?
From memory, there should be a "context" variable, which gets an id via context.entity.id
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes this is an Add-on for Confluence.
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.
That looks right to me. Not tested it, but it should do it.
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.