我无法获得资源的最后发布日期。使用OpenCms API无法做到这一点。 http://files.opencms.org/javadoc/core/org/opencms/file/CmsResource.html
这很奇怪,它必须存储在某个地方,因为OpenCms Workplace在History选项中显示了这些信息。
来自CmsResource类的方法getDateReleased()始终返回DATE_RELEASED_DEFAULT,直到您设置资源的可用性。
有什么想法? 谢谢!
答案 0 :(得分:2)
最后,我通过挖掘OpenCms的源代码来实现这一目标。 我在getListItems方法中找到了解决方案:
所以我构建了这个方法来从任何资源获取最后发布的日期:
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,则资源尚未发布。