2013-11-25 2 views
1

Недавно мы обновились от Ektron 8.6 до 9.0 (Ektron CMS400.NET, версия: 9.00 SP2 (Build 9.0.0.249)).Элементы таксономии и библиотеки Ektron (в версии 9)

У меня есть код (ниже), который мы используем для отображения ссылок на элементы в таксономии. В разделе 8.6 это будет отображать элементы библиотеки, если они были добавлены к таксономии. Начиная с 9.0, он больше не отображает элементы библиотеки. Он по-прежнему работает для элементов DMS и обычных страниц (все материалы первого класса в Ektron).

private List<ContentData> getTaxonomyItems(long TaxonomyId) 
{ 
    listContentManager = new ContentManager(); 
    criteria = new ContentTaxonomyCriteria(ContentProperty.Id, EkEnumeration.OrderByDirection.Ascending); 

    criteria.PagingInfo = new Ektron.Cms.PagingInfo(400); // there's a lot of items and I don't want to page them. 

    criteria.AddFilter(TaxonomyId, true); // this gets sub taxonomies too :) 

    List<ContentData> contentList = listContentManager.GetList(criteria); 

    return contentList; 
} 

(Я хотел бы просто сказать пользователям использовать DMS вместо библиотеки, но у нас есть требование безопасности, и я не в курсе так, как я могу усилить безопасность на DMS пунктов, как мы можем с элементами библиотеки, отбросив файл webconfig в папке библиотеки.)

Это ошибка, с которой столкнулся любой другой человек? Или есть проблема с моим кодом (изменилось ли API при обновлении до 9.0)?

Спасибо.

+0

У меня было более старое связанное сообщение (http://stackoverflow.com/questions/12381065/how-to-select-library-items-that -весь-к-таксономии-в-этроне) и solutio n к тому, что он работает для элементов библиотеки, но он не работает для вложенных таксономий. Независимо от заданного значения глубины поиска, он только когда-либо возвращает самый верхний уровень таксономии (глубина = 1) – nedlud

ответ

2

Я в конечном итоге по электронной почте поддержки Ektron в Сиднее (я в Австралии), и они сказали:

я ожидал бы ContentManager только возвращать содержание, а не библиотечные элементов - должна быть лазейка, которая теперь закрыто. Таксономия - это путь .

Так что я использовал некоторые из кода они предоставили и придумали следующий, который, кажется, работает ...

private List<TaxonomyItemData> getTaxonomyItems(long TaxonomyId) 
{ 
    List<TaxonomyItemData> list = new List<TaxonomyItemData>(); 

    TaxonomyManager taxManager = new TaxonomyManager(Ektron.Cms.Framework.ApiAccessMode.Admin); 
    TaxonomyCriteria taxonomyCriteria = new Ektron.Cms.Organization.TaxonomyCriteria(); 
    taxonomyCriteria.AddFilter(Ektron.Cms.Organization.TaxonomyProperty.Path, 
     Ektron.Cms.Common.CriteriaFilterOperator.StartsWith, GetTaxonomyPathById(TaxonomyId)); 
    List<TaxonomyData> TaxonomyDataList = taxManager.GetList(taxonomyCriteria); 

    foreach (TaxonomyData taxd in TaxonomyDataList) 
    { 
     TaxonomyData taxTree = taxManager.GetTree(taxd.Path, 
     1, // depth. doesn't seem to work. have to manually tranverse lower taxonomies. 
     true, // include items 
     null, 
     Ektron.Cms.Common.EkEnumeration.TaxonomyType.Content, 
     Ektron.Cms.Common.EkEnumeration.TaxonomyItemsSortOrder.taxonomy_item_display_order); 

     foreach (TaxonomyItemData taxItem in taxTree.TaxonomyItems) 
     { 
      list.Add(taxItem); 
     } 
    } 
    return list; 
} 

private static String GetTaxonomyPathById(long taxonomyId) 
{ 
    TaxonomyManager tMgr = new TaxonomyManager(); 
    TaxonomyData tData = tMgr.GetItem(taxonomyId); 
    if (tData != null) 
    { 
     return tData.Path; 
    } 
    return ""; 
} 

Этот код выбирает элементы для все дочерней таксономии, а также возвращение библиотеки Предметы. Одна проблема заключается в том, что он извлекает дубликаты для некоторых элементов, но их легко очистить.

Я также сообщил, что Ektron ...

TaxonomyManager.GetItem («{путь}») является более эффективным способом, чтобы получить категории

Вот почему я ve включил метод GetTaxonomyPathById() (вдохновленный этим сообщением в блоге: http://www.nimbleuser.com/blog/posts/2009/iterating-through-ektron-content-in-multiple-taxonomies-via-directly-interfacing-with-search-indexing-services/)

 Смежные вопросы

  • Нет связанных вопросов^_^