2011-10-24 116 views
2

我想分享DocumentLibrary用新的行动,提供一个链接基础上,nodeRef ID某些URL(通过共享配置,custom.xml)延长在Alfresco Share中,如何在自定义配置文件中引用nodeRef ID?

<action id="blabla" type="link" label="label"> 
     <param name="page">../../alfresco/wcs/myPlugin/editor/{node.nodeRef.id}/param> 
     <param name="target">_blank</param> 
</action> 

但份额不解释{node.nodeRef.id}

它不正确解释{node.nodeRef}但我并不需要完整的URI

像:workspace://SpacesStore/158f0ed4-a575-40c2-a6ef-7e7ed386ba94 我只想节点参考编号:158f0ed4-a575-40c2-a6ef-7e7ed386ba94

任何人都可以解释我背后的逻辑和建议的解决方案?由于

回答

1

首先,我假设你看到所要求的露天4.0。行动的扩展方式在4.0中是全新的,我们大多数人还没有使用过。

创建占位符的逻辑可能是共享web应用程序中的Java代码(未找到确切位置)。 node.nodeRef是一个String,所以你不能调用nodeRef.id。在我看来,你有两个选择:

  • 你可以保持TYPE =“链接”和node.nodeRef但你链接到一个自定义的库侧webscript然后生成正确的URL和转发(HTTP状态301)到正确的目的地。
  • 您将类型更改为type =“javascript”并在Javascript中实现回调函数。当链接被点击并且可以建立正确的Url时,这将被调用。若要包括自定义JavaScript,你可以在共​​享配置使用依赖

据我所知可用于扩展新的行动的唯一文档:

1

只需使用node.id作为JavaScript API中Wiki

+0

我试过它已经不起作用了。这是一个不是javascript的配置文件 –

+0

但是你已经定义了一个自定义操作了吗?您可以在那里选择NodeRef并将其转换为Node并执行node.id.因此,在Freemarker中提供Freemarker语言和/或Javascript可用 –

+0

的操作后,如何将NodeRef转换为共享Web应用程序中的节点?导致它无法识别companyhome例如 –

相关问题