1

如何在 Ektron 8.0 中获取所选 Ektron 内容的版本号。

 ContentAPI m_refContentApi = new ContentAPI();
 var data = m_refContentApi.GetHistoryList(ContentBlockId);

我已经尝试了上面的代码,但它没有提供任何版本号。

任何人回复

4

1 回答 1

2

我猜您在这里所说的版本号是在查看工作区中内容片段的历史记录时看到的版本号。解决这个问题...

我不相信这个版本号可以作为 Ektron 提供的对象的属性。如果您需要此版本号,您将需要复制 Ektron 用于生成版本号的过程。

该答案基于对 /workarea/controls/viewhistorylist.aspx.cs 代码的分析。我正在使用 Ektron 8.6 SP1。
在工作区中,使用以下代码访问历史信息:

Ektron.Cms.Commerce.CatalogEntryApi m_refCatalogAPI = new Ektron.Cms.Commerce.CatalogEntryApi();
List<Ektron.Cms.Commerce.EntryVersionData> entry_version_list = new List<Ektron.Cms.Commerce.EntryVersionData>();
if (Id != -1)
{
    entry_version_list = m_refCatalogAPI.GetVersionList(Id, ContentLanguage);
}

“Id”变量是内容片段的 EktronId。
不幸的是,这个列表本身不包含版本号。有一个名为 VersionId 的变量,但这与在工作区用户界面中看到的不同。

要获得用于打印 Ektron 的版本,请遍历列表中的元素并检查内容片段是否先前已发布。如果某个版本已发布,则它被视为主要数字,出现在小数点的左侧,如果未发布,则它是出现在小数点右侧的次要数字。

如果您不需要正在使用的数字来匹配工作区 GUI,那么您可能需要考虑使用 VersionId 属性。较小的数字表示较旧的内容,但如果您需要区分主要版本和次要版本,这将无法解决问题,您需要复制 Ektron 使用的过程。

于 2013-06-10T23:46:17.640 回答