露天分享 |以编程方式将 Dashlet 使用到自定义页面中



我对Alfresco很陌生。我的问题是,我们如何将 Dashlet(从头开始创建)使用到页面(也是从头开始创建)中?要处理哪些文件和配置,以便将 Dashlet 包含在页面中。

此外,新创建的页面必须类似于仪表板页面,但没有身份验证。这里的想法是取消默认的"共享"仪表板登录流程。

谢谢。

Dashlet 只是一种特殊类型的 Web 脚本,所以是的,通过将相同的 Web 脚本绑定到组件区域,很有可能将相同的 Web 脚本放入自定义页面中。

如果您不熟悉共享开发,页面、模板、组件和区域之间的关系可能有点复杂,因此我建议您查看 Dave Draper 和 Erik Winlof 去年 11 月的 DevCon 的共享自定义实时演示,他们介绍了一个示例项目,其中包括一个 Ant 构建脚本,其中包括一个自定义 Web 脚本和页面定义。可以从此 Git 存储库下载代码,作为你自己的项目的基础。

您不应该发现需要对 Dashlet Web 脚本进行太多更改才能使其在自定义页面中工作,但请记住,如果用户未经身份验证,那么您将无法访问有关他们的任何信息,也无法从存储库中检索任何数据。

让我尝试用一些例子来回答这个问题:

露天页面

要创建一个Alfresco共享页面(你使用share?),你需要创建三个文件:

<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/site-data/pages/my-page.xml
<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/site-data/template-instances/my-page.xml
<TOMCAT>/webapps/share/WEB-INF/classes/alfresco/templates/org/alfresco/my-page.ftl

第一个定义你的页面,第二个定义你将在页面上使用的组件(Dashlet),最后一个是排列组件的HTML模板(在Freemarker中)。

前两个文件是XML,有点户外特定,但简单的XML,最后一个你可以放静态HTML,它可以工作,或者你可以放一些freemark宏。每个文件(示例)中的内容,您可以在此页面上阅读,专门为您编写,这个问题:)(别问了,我想写一下)

无身份验证

若要不使用身份验证,只需将<身份验证>none放在页面定义文件(第一个 XML 文件)中。

Dashlet 文件

基本上,一个 Dashlet 至少可以有两个文件,通常是 4-5 个或类似的东西。dashlet.get.desc.xml 文件表示两件事:desc.xml part 表示它用于新组件 (dashlet),get 部分表示该组件将响应 HTTP GET 调用。通常放置在下面的某个地方/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components。波纹管的位置并不重要,但您希望将其放在某个文件夹中以更轻松地管理所有代码。这个文件包含一个重要的东西:url。网址定义了您的 Dashlet 将回答的网址。当您在上面的页面定义中定义页面时,您将把这个 url 放在那里以访问 Dashlet。

您甚至可以使用链接直接访问 Dashlet http://localhost:8080/share/my/url/to/dashlet.

另一个文件Dashlet.get.html.ftl再次是一个freemarker模板文件。你把HTML放在那里。你也可以有一个Dashlet的控制器文件,dashlet.get.js它准备一些动态内容(它是用服务器端javascript编写的,可以访问一些AlfrescoJavascript API)。

最后,您可以将一些国际化文本(翻译)放入捆绑包中(基本上,通过浏览器语言,dashlet.get.properties,dashlet.get_DE.properties,dashlet.get_ES.properties等)。

还有一些选项可以将客户端 javascript 或 css 文件包含到此 Dashlet 中。

要了解如何准确组装所有这些,您可以尝试阅读此页面。可能不是一本好书,但它有望澄清一些事情。

抱歉,为了清楚起见,您想在Alfresco存储库上重现共享界面,但没有登录名?Dashlet 和界面组件是 Web 脚本,Web 脚本存储在存储库中,因此为了访问它们,您需要进行身份验证。您可以在 webscript xml 描述中使用 runas="admin" 或 runas="guest" 的标签来实现某些目标。如果我误会了,请告诉我,我会尽力提供帮助。

最新更新