有没有办法在 portlet 插件 war 文件中包含 Liferay 文档或 Web 内容结构和模板,并使它们像标准的一样可供用户使用?
用例是您正在编写一个利用您提供的自定义文档库结构的 portlet。但是您不想将此结构作为具有自己的安装过程的单独事物分发(例如仅为该结构提供 LAR),您只希望您的插件在安装时使自定义结构可用。
您可以通过将portal.properties文件添加到portlet 的WEB-INF/classes目录来实现您的目标。该文件应包含以下行:
application.startup.events=com.yourcompany.whatever.YourCustomStartupAction
这个自定义启动操作应该是一个扩展自com.liferay.portal.kernel.events.SimpleAction的类。在其中,您将能够在您的 portlet 启动时利用所有 Liferay 服务实用程序在 Liferay 中执行操作。使用 Liferay 文档库需要使用的类是DLAppLocalServiceUtil。这个 util 类具有处理文档库中文件/文件夹的所有必要方法。
对于网络内容相关的东西,例如结构、模板和文章,只需使用JournalStructureLocalServiceUtil、JournalTemplateLocalServiceUtil和JournalArticleLocalServiceUtil。
我希望我的问题是正确的;)
您可以在部署 portlet 时通过 DLFolderService 创建文件夹结构。
要在服务器启动时运行方法,您将不得不使用我认为的 CustomAction,请查看:here