2011-09-19 48 views
1

我开始使用Liferay Portal,我有两个基本需求,我希望通过Liferay实现。通过API向Liferay添加内容

  1. 是否可以通过API级别向CMS添加内容?我想插入一些“来自代码”的数据。
  2. 更重要。如何实现这样的情况,即对于每个创建的用户,都会生成自己的主页,并在其上生成一些预定义的模板元素?

我曾尝试谷歌到目前为止,但我没有觉得有帮助。也许有些关键字?


经过对专门用于服务和ServiceBuilder的文档的一些分析后,我意识到这不是我想要的。

让我来展示一个基于Websphere的例子。 在Websphere中,我们有大量的EJB组件可用于执行某些操作,与门户交换信息,易于使用。 Liferay中没有任何类似的机制不涉及Web服务?在this page from the documentation

回答

1

展望:它闻起来像一个SOAP接口(他们提到某种文件上传服务的,​​我读过)。

你会发现一些应该给出可用web服务列表的url示例。

+0

我不确定我是否理解。您是否意指通过执行Liferay提供的一些Web服务可以实现这些“程序性”活动? – leramy

+0

这就是我的理解。实施SOAP客户端并使用Liferay Web服务来添加内容(从任何地方)。看看Apache的轴(库)和工具soapUI(用于玩弄liferay服务) –

1

对于数字1,你可以使用的一个:

JournalArticleLocalServiceUtil.addArticle() 

方法以编程方式从一个portlet添加Liferay的网页内容。如果您下载Liferay Portal Source,您可以看到这些方法的结构。

对于2号,可以创建他们预先配置的portlet(通过插件-SDK)页面模板,然后使用API​​以编程方式创建使用的一个页面:

LayoutLocalServiceUtil.addLayout() 

方法。

如果您对这些评论有任何更具体的疑问,我希望这可以帮助!

4

我对这类问题的建议是看看sevencogs-hook源代码。这个钩子的结构基本上只是一个运行一次的长脚本,它建立了一个包含用户,站点,页面,内容等的完整演示站点。代码只运行一次(在第一次部署之后),然后再也不会再运行。没有(明显的)条件,没有上下文理解等。

你基本上可以简单地贯穿一切,并且 - 在该过程中 - 了解如何创建和定位内容(以及页面,图像,博客文章等)在Liferay的页面上。

该钩子访问Java API,通过Webservices可以使用非常类似的API。基本上Liferay的所有portlet都使用相同的API来完成他们的业务。

编辑:其他信息,以保持这个答案宝贵/当前:Sevencogs已停产,但旧版本仍然可用(来源&二进制)。 API稍有改变,因此编译/运行它需要一些工作。 James Falkner has blogged关于剩菜和吸取的经验教训 - 这些片段是从sevencogs中提取的,并包含相关代码片段以与API一起工作。

+0

这是很好的提示 – denu

+0

从Liferay 6.2开始,一些旧的API(在博客文章中提到)也被弃用(如JournalTemplateLocalServiceUtil) 。而是使用动态数据映射框架(DDM)。 – Elbonian