-1

組み込みポートレットの機能を使用するだけで、liferay が提供する機能はありますか?

たとえば、カスタム ポートレットがあり、カスタム ポートレットからドキュメント ポートレットとメディア ポートレットのデータベース テーブルにドキュメントを追加したいのですが、可能ですか?

その機能にアクセスするか、アクションを言う必要があるだけで、その GUI を使用したくありません。

この方法で、自分のポートレット com.liferay.portal.service.UserLocalServiceUtil.addUser 内の任意の組み込みポートレットの adduser メソッドを呼び出すことができる場合

だから私はそのように使うことができますか?そしてどのように?

4

1 に答える 1

1

質問を理解できたかどうかわかりませんが、もちろん、提供されている多くのサービスをポートレットのどこでも使用できます。たとえば、ページからアップロードしたファイルを保存する場合は、次のようなものを使用できます。

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 ノード、ドキュメントなど) を追加できます。

Liferay によって提供されていることに注意してくださいDLAppServiceUtil(6.1、ドキュメント ライブラリの変更により 6.0 では異なる可能性があります)。

于 2012-10-03T13:42:33.387 に答える