如何获取当前工具SitePage和/或其属性?

时间:2014-08-13 01:50:06

标签: sakai

使用ToolManager我可以通过SiteService获取当前展示位置,背景信息以及网站。但我想获取用户当前正在访问的当前SitePage属性。

  

这个疑问可以扩展到当前的工具属性   考虑到一旦我拥有了工具,我就无法做到这一点   找到涵盖其属性的任何方法。

我可以通过Properties使用sitepage.getTool(TOOLID).getConfig()来获取工具属性并使用它(通过实例)。要保存属性,我使用ToolConfiguration方法并在使用ToolConfiguration.save()方法进行编辑后保存数据。这是正确的做法吗?

1 个答案:

答案 0 :(得分:4)

您可以通过获取当前工具会话然后从此向后工作来完成此操作。这是一个应该这样做的方法。

public SitePage findCurrentPage() {
  SitePage sp = null;
  ToolSession ts = SessionManager.getCurrentToolSession();
  if (ts != null) {
    ToolConfiguration tool = SiteService.findTool(ts.getPlacementId());
    if (tool != null) {
      String sitePageId = tool.getPageId();
      sp = s.getPage(sitePageId);
    }
  }
  return sp;
}

或者,您可以使用当前工具来实现它,但我认为这种方法更难。

String toolId = toolManager.getCurrentTool().getId();
String context = toolManager.getCurrentPlacement().getContext();
Site s = siteService.getSite( context );
ToolConfiguration tc = s.getTool(toolId);
String sitePageId = tc.getPageId();
SitePage sp = s.getPage(sitePageId);

注意:我尚未测试此代码以确保其有效。