1

リソースの最終公開日を取得できません。OpenCms API でそれを行う方法はありません。 http://files.opencms.org/javadoc/core/org/opencms/file/CmsResource.html

これは非常に奇妙です。OpenCms Workplace は履歴オプションにこの情報を表示するため、どこかに保存する必要があります。

OpenCms Workplace のリソースの履歴

CmsResource クラスのメソッド getDateReleased() は、リソースの可用性を設定するまで、常に DATE_RELEASED_DEFAULT を返します。

何かご意見は?ありがとう!

4

1 に答える 1

2

最後に、OpenCms のソース コードを掘り下げてこれを実現します。ここの getListItems メソッドで解決策を見つけました。

https://github.com/alkacon/opencms-core/blob/branch_8_5_x/src/org/opencms/workplace/commons/CmsHistoryList.java

そこで、任意のリソースから最終公開日を取得するために、このメソッドを作成しました。

public static Date getLastPublishedDate(CmsJspActionElement cms, CmsResource resource) throws Exception {
    CmsObject cmso = cms.getCmsObject();
    String sitePath = cmso.getSitePath(resource);

    if (cmso.readAllAvailableVersions(sitePath).size() > 0) {
        I_CmsHistoryResource histRes = cmso.readAllAvailableVersions(sitePath).get(0);
        int publishTag = histRes.getPublishTag();
        CmsHistoryProject project = cmso.readHistoryProject(publishTag);            
        return new Date(project.getPublishingDate());                                   
    } else {
        return null;
    }   
}

NULL が返された場合、リソースはまだ公開されていません。

于 2013-01-16T12:46:29.710 に答える