我对 Alfresco 很陌生。我的问题是,我们如何将 dashlet(从头开始创建)用于页面(也从头开始创建)?要处理哪些文件和配置,以将 dashlet 包含到页面中。
此外,新创建的页面必须类似于仪表板页面,但无需身份验证。这里的想法是取消默认的“共享”仪表板登录流程。
谢谢。
我对 Alfresco 很陌生。我的问题是,我们如何将 dashlet(从头开始创建)用于页面(也从头开始创建)?要处理哪些文件和配置,以将 dashlet 包含到页面中。
此外,新创建的页面必须类似于仪表板页面,但无需身份验证。这里的想法是取消默认的“共享”仪表板登录流程。
谢谢。
让我试着用一些例子来回答这个问题:
露天页面
要创建一个 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
第一个定义您的页面,第二个定义您将在页面上使用的组件(dashlets),最后一个是一个 HTML 模板(在 Freemarker 中)排列您的组件。
前两个文件是 XML,有点露天专用,但简单的 XML,最后一个你可以放置静态 HTML 并且它可以工作,或者你可以放置一些 freemarker 宏。每个文件(示例)中的内容,您可以在此页面上阅读,专门为您和这个问题编写:)(不要问,我想写它)
无身份验证
要不使用身份验证,您只需将 <authentication>none</authentication> 放在页面定义文件(第一个 XML 文件)中。
Dashlet 文件
基本上,一个 dashlet 至少可以包含两个文件,通常是 4-5 个或类似的文件。dashlet.get.desc.xml文件表示两件事: desc.xml部分表示它用于新组件(dashlet),get 部分表示该组件将响应 HTTP GET 调用。通常放置在/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components 下面的某个地方。在下面的位置并不重要,但是您希望将其放在某个文件夹中以更轻松地管理所有代码。这个文件包含一个重要的东西:url。Url 定义了您的 dashlet 将响应的 url。当你在上面的页面定义中定义你的页面时,你可以把这个 url 放在那里以访问 dashlet。
您甚至可以使用链接直接访问 dashlethttp://localhost:8080/share/my/url/to/dashlet.
另一个文件dashlet.get.html.ftl 同样是一个 freemarker 模板文件。你把 HTML 放在那里。您还可以拥有一个用于 dashlet 的控制器文件 dashlet.get.js,它准备了一些动态内容(它是用服务器端 javascript 编写的,并且可以访问一些 Alfresco Javascript API)。
最后,您可以将一些国际化文本(翻译)放入包中(基本上,通过浏览器语言, dashlet.get.properties、dashlet.get_DE.properties、dashlet.get_ES.properties 等)。
还有一些选项可以将客户端 javascript 或 css 文件包含到此 dashlet 中。
要了解如何准确组装所有这些,您可以尝试阅读此页面。可能不是一本好书,但希望它能澄清一些事情。
dashlet 只是一种特殊类型的 Web 脚本,所以是的,很可能通过将相同的 Web 脚本绑定到组件区域中来将其放入自定义页面中。
如果您不熟悉 Share 开发,页面、模板、组件和区域之间的关系可能会有点复杂,因此我建议您查看去年 11 月 DevCon 上Dave Draper 和 Erik Winlof 的Share Customizations Live演示文稿,他们在其中介绍了一个示例项目包括一个 Ant 构建脚本,其中包括一个自定义 Web 脚本和页面定义。可以从此Git 存储库下载代码,作为您自己项目的基础。
如果您的 dashlet Web 脚本需要进行太多更改以使其在自定义页面中运行,您不应该发现太多更改,但请记住,如果用户未经身份验证,那么您将无法访问有关他们的任何信息,您也不会能够从存储库中检索任何数据。
抱歉,为了清楚起见,您想在 Alfresco 存储库上重现共享界面,但没有登录?Dashlet 和界面组件是 webscript,而 webscript 存储在存储库中,因此为了访问它们,您需要进行身份验证。您可以在 webscript xml 描述中使用标签 runas="admin" 或 runas="guest" 来实现某些目标。如果我误解了,请告诉我,我会尽力帮助..