在Liferay插件中打包文档结构和模板

在Liferay插件中打包文档结构和模板,liferay,portlet,liferay-6,Liferay,Portlet,Liferay 6,是否有一种方法可以将Liferay文档或web内容结构和模板包含在portlet插件war文件中,并使其像标准文件一样可供用户使用 用例是您正在编写一个portlet,它利用您提供的自定义文档库结构。但是,您不希望将此结构作为一个单独的东西分发给它自己的安装过程(例如仅为该结构提供LAR),您只希望您的插件使自定义结构在安装时可用。我希望我正确地回答了您的问题;) 部署portlet时,您可以通过DLFolderService创建文件夹结构。 要在服务器启动时运行方法,我认为您必须使用Custo

是否有一种方法可以将Liferay文档或web内容结构和模板包含在portlet插件war文件中,并使其像标准文件一样可供用户使用


用例是您正在编写一个portlet,它利用您提供的自定义文档库结构。但是,您不希望将此结构作为一个单独的东西分发给它自己的安装过程(例如仅为该结构提供LAR),您只希望您的插件使自定义结构在安装时可用。

我希望我正确地回答了您的问题;)
部署portlet时,您可以通过DLFolderService创建文件夹结构。

要在服务器启动时运行方法,我认为您必须使用CustomAction,请查看它:

您可以通过向portlet的WEB-INF/classes目录添加portal.properties文件来实现您的目标。此文件应包含以下行:

application.startup.events=com.yourcompany.whatever.YourCustomStartupAction
此自定义启动操作应该是从com.liferay.portal.kernel.events.SimpleAction扩展而来的类。在它中,您将能够在启动portlet时利用所有Liferay服务UTIL在Liferay中执行操作。使用Liferay文档库需要使用的类是。此util类具有处理文档库中的文件/文件夹所需的所有方法


对于与web内容相关的内容,如结构、模板和文章,只需使用和。

因此,我认为您建议我创建一个启动操作,使用服务层创建结构的XML并将其直接存储到JournalStructure表中。对于Web内容结构,这似乎值得一试。因此,我认为您建议我创建一个启动操作,该操作使用服务层创建并将我的结构的XSD直接存储到JournalStructure表中。这似乎值得一试,至少对于Web内容结构来说是这样。对于自定义文档库元数据,我想类似的是DDMSStructureLocalService和DDMTemplateLocalService。这是一种通用的方法,可以在WAR启动期间对Liferay执行任何操作,在本例中是portlet(通常我们使用一个钩子,让portlet依赖于要部署的钩子)。唯一需要考虑的是钩子被部署和重新部署的结果,等等。这意味着您必须引入执行一些检查的代码,例如,如果结构存在,那么更新是,用portlet中的版本覆盖它,不管您真正想要什么。