我使用的是 Ektron CMS 版本 8.5 SP2。
我有一些分类项目。有些是实际页面,有些是库项目(Word 文件和 PDF 等文档)。
假设我的分类中有 3 个页面和 2 个库项目,总共 5 个项目。
我使用以下代码...
ContentManager cManager = new Ektron.Cms.Framework.Content.ContentManager();
Ektron.Cms.Content.ContentTaxonomyCriteria ctCriteria = new Ektron.Cms.Content.ContentTaxonomyCriteria();
ctCriteria.AddFilter(1707, true); // hard coded taxonomy ID
List<ContentData> list = cManager.GetList(ctCriteria);
Label1.Text = list.Count.ToString();
当此代码运行时,列表中的项目数为 3。如果我输出实际列表,我可以看到它只是分类中的页面,而不是 2 个库项目。
似乎 ContentManager.getList() 函数无法获取库项目,即使这些项目已添加到分类法中也是如此。我可以确认在管理工作区中,库项目在分类中可见。
为了澄清,这是一个问题检索已添加到分类的项目。
有谁知道我如何检索列表all分类中的项目,包括其中的任何库项目。
注意:如果我将文件添加到文档管理系统而不是库中,则它可以正常工作。但在实时系统中,我的库中有数百个项目,我希望有一种方法可以通过分类法查看它们,而不必将它们全部移至 DMS 中。
我也在 Ektron 开发者论坛上发布了这个问题,但没有得到回复。我希望这里有人能提供帮助。
Cheers.
前几天我对@nedlud 的回答发表的评论的后续,我觉得这应该有自己的答案。
根据框架API文档 http://reference.ektron.com/developer/framework/Organization/TaxonomyManager/:
如果意图检索已在分类法中分类的 CMS 项目,请使用分类项目管理器.
但正如评论中已经指出的,TaxonomyItemData
此 API 返回的对象有许多空属性,例如QuickLink
and Html
。我发现使用TaxonomyManager
,可以成功查询分配给特定分类类别的项目。
这是使用 Framework API(版本 >= 8.5)的简短片段;这让人想起使用旧的(版本 TaxonomyRequest并获取一个对象结构,该结构不仅封装了分类法本身,还封装了分类到该分类法中的项目:
//e.g. for a single-level taxonomy
long taxRoot = 1707; //from OP's question
TaxonomyManager taxManager = new TaxonomyManager();
//GetTree overload supplying includeItems parameter
TaxonomyData taxTree = taxManager.GetTree(taxRoot, includeItems: true);
foreach(TaxonomyItemData taxItem in taxTree.TaxonomyItems)
{
//these should print true
Response.Write(!String.IsNullOrEmpty(taxItem.QuickLink));
Response.Write(!String.IsNullOrEmpty(taxItem.Html));
}
我目前正在将一些 8.0 版本的代码重构为 8.6 版本,并转换为 Framework API。直到 Ektron 修复(错误?)TaxonomyItemManager
返回TaxonomyItemData
对于 null 属性,我将使用上面的方法 +LINQ
用于排序/过滤/等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)