-1

我只想知道 Liferay 提供的任何设施,我们只使用内置 portlet 的功能吗?

例如,我有一些自定义 portlet,我想从我的自定义 portlet 中将一些文档添加到文档和媒体 portlet 的数据库表中。这可能吗?

我不想使用它的 GUI 只是我需要访问它的功能或说操作。

如果我可以在我自己的 portlet com.liferay.portal.service.UserLocalServiceUtil.addUser 中以这种方式调用任何内置 portlet 的 adduser 方法

那么我可以使用这种方式吗?如何?

4

1 回答 1

1

我不确定我是否理解了这个问题,但您当然可以在您的 portlet 中的任何位置使用许多提供的服务。例如,如果您想保存从页面上传的文件,您可以使用以下内容:

protected FileEntry saveFile(String name, File file, ThemeDisplay themeDisplay) throws PortalException, SystemException{
    _log.debug("request of saving new file " + name);
    if (file == null){
        _log.debug("file content is null.. save aborted");
        return null;
    }
    if (!StringUtils.hasLength(name)){
        _log.debug("file name is null.. save aborted");
        return null;
    }
    long defaultRepoId = DLFolderConstants.getDataRepositoryId(themeDisplay.getScopeGroupId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
        ServiceContext serviceContext = new ServiceContext();
        serviceContext.setSignedIn(true);
        serviceContext.setAddGroupPermissions(true);
        serviceContext.setAddGuestPermissions(true);
        Folder folder = fetchFolder(defaultRepoId);
        long folderId = (folder != null ? folder.getFolderId() : DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
        FileEntry entry = DLAppServiceUtil.addFileEntry(defaultRepoId, folderId, name, MimeTypesUtil.getContentType(file), name, "", "", file, serviceContext);
        _log.debug("file " + name + " saved successfully");
        return entry;
    }

这是你想要的?以类似的方式,您可以添加多种类型的实体(用户、wiki 节点、文档……)

请注意,DLAppServiceUtil由 Liferay 提供(6.1,由于文档库的更改,可能在 6.0 中有所不同)

于 2012-10-03T13:42:33.387 回答