В настоящее время я работаю над обработчиком событий, который будет в save-event, сохранять последнюю дату версии страницы и ее компонентов в пользовательскую базу данных, и это работает, m сталкиваются с некоторыми проблемами производительности.Получить общие страницы с помощью локализованного компонента
Позвольте мне привести вам пример, для того, как это работает:
Если компонент сохраняется/обновляется (внесены изменения), то я хочу, чтобы обновить все страницы, используя этот компонент в моей пользовательской базе данных.
Основных настройки плана: 200 содержит компоненты 400 публикации перевода для компонентов (неотъемлемые компоненты из 200) 500 мастера публикации на страницах 600 местных публикации сайта неотъемлемых компонентов от 400 и страниц из 500)
Так позволяет скажем, что у нас есть компонент X в 200, этот компонент включен в страницу в 500, X локализован в 400 (назовем его X (l)), а страница в 600 НЕ локализована (т.е. будет использовать компонент x (l))
Итак, теперь на мой вопрос: В мою эвакуацию обработчик нт, я проверить, какие страницы X (л), включаются в, с помощью:
var filter = new UsingItemsFilter(component.Session)
{
IncludeLocalCopies = true,
ItemTypes = new[] { ItemType.Page }
};
, но это будет только дать мне ссылки на страницы из 500. Итак, что я тогда делать (который чувствует себя отчасти глупо) заключается в создать TCM идентификатор всех страниц в детских изданиях (обернув над ними), которые присущи этой странице (теперь им с помощью некоторых psuedocodelike кодирования):
foreach(var 500page in foundPages)
foreach(var publication in publications){
if(subject.Session.IsExistingObject(
new TcmUri(page.Id.ItemId,page.Id.ItemType,publication.Id.ItemId)
))
{
someListThatWillContainAllChildPagesFrom500.Add(TheAboveTcmUri);
}
}
а потом для каждой страницы, проверьте компоненты в том, что и, наконец, сохраните это состояние в моей пользовательской базе данных.
Вопрос в том, есть ли способ для запроса для всех страниц, которые используют локализованный компонент, используя TOM.NET api (no not CoreServiceClient)?
Есть ли лучший способ найти дочерние публикации публикации, поэтому мне нужно только проверить страницы в childPublication?
Br Martin
Спасибо за ваш вопрос, связанный с Tridion. Если вы еще не знали, теперь есть специальный сайт Tridion Stack Exchange по адресу http://tridion.stackexchange.com/. Вы можете получить более быстрый/больший ответ, если вы разместите там –
Thx для этого совета, там тоже плохой пост! – user1978413