【问题标题】:Add and remove Ektron content items from taxonomies? (C#)从分类中添加和删除 Ektron 内容项目? (C#)
【发布时间】:2015-09-02 14:01:40
【问题描述】:

我在 Ektron 中存储了分配给分类的内容项。我正在尝试创建一种允许我以编程方式更改分类法的方法。到目前为止,我通过 ID 找到了内容项,并且能够检索其分类,但我不确定如何更改它们。

var ektronItem = contentManager.GetItem((long) item.tctmd_id);
if (ektronItem != null) // item exists in Ektron
{
    var newTaxonomies = item.taxonomy_ids;

    var taxonomyAPI = new Taxonomy();
    var taxData = taxonomyAPI.ReadAllAssignedCategory(ektronItem.Id);

    foreach (var tax in taxData)
    {
        taxonomyAPI.RemoveTaxonomyItem(???);
        // here I'm trying to remove the content item from the taxonomy
    }
}

taxonomyAPI.RemoveTaxonomyItem() 采用 Ektron.Cms.TaxonomyRequest 对象,但我不确定如何创建它。我也不确定这是否是我应该使用的方法。

【问题讨论】:

    标签: c# taxonomy ektron content-management


    【解决方案1】:

    如果其他人想知道如何做到这一点,这是我想出的解决方案:

    var contentManager = new Ektron.Cms.Framework.Content.ContentManager();
    var criteria = new Ektron.Cms.Content.ContentCriteria(ContentProperty.Id, EkEnumeration.OrderByDirection.Ascending);
    criteria.AddFilter(ContentProperty.FolderId, CriteriaFilterOperator.EqualTo, toUpdate.folder_id);
    criteria.OrderByDirection = Ektron.Cms.Common.EkEnumeration.OrderByDirection.Descending;
    criteria.OrderByField = Ektron.Cms.Common.ContentProperty.GoLiveDate;
    criteria.FolderRecursive = true;
    criteria.PagingInfo = new Ektron.Cms.PagingInfo(50, 1);
    
    var ektronItem = contentManager.GetItem((long) item.tctmd_id);
    if (ektronItem != null) // item exists in Ektron
    {
        // update taxonomy in Ektron
        var taxIds = item.taxonomy_ids;
    
        var taxonomyAPI = new Taxonomy();
        var taxData = taxonomyAPI.ReadAllAssignedCategory(ektronItem.Id);
    
        var taxManager = new Ektron.Cms.Framework.Organization.TaxonomyItemManager();
    
        var taxCriteria = new TaxonomyItemCriteria();
        // create a taxonomy criteria of the item ID
        taxCriteria.AddFilter(TaxonomyItemProperty.ItemId, CriteriaFilterOperator.EqualTo, item.tctmd_id);
        // get all taxonomy items with item ID 
        var taxItems = taxManager.GetList(taxCriteria);
        // determine taxonomyItemType
        var type = taxItems.FirstOrDefault().ItemType;
    
        foreach (var tax in taxData)
        {                      
            // delete from old taxonomies
            taxManager.Delete(tax.Id, (long)item.tctmd_id, type);
        }
    
        foreach (var tax in taxIds)
        {
            // add to new taxonomies
            var taxonomyItemData = new TaxonomyItemData()
            {
                TaxonomyId = tax,
                ItemType = type,
                ItemId = (long)item.tctmd_id
            };
            try
            {
                taxManager.Add(taxonomyItemData);
            }
            catch (Exception ex)
            {
    
            }
        }
    }
    

    【讨论】:

    • 我正在用 C# 创建一个新内容。如何检查是否存在带有“标题”的内容,这样我就不会在标题末尾创建带有下标的新内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    相关资源
    最近更新 更多