저는 현재 save-event에있는 이벤트 처리기에서 페이지의 최신 개정 날짜와 해당 구성 요소를 사용자 지정 데이터베이스에 저장하고 있습니다.이 작업은 작동하지만, 일부 성능 문제에 직면했습니다. 이 작업을 어떻게하는지에 대한지역화 된 구성 요소를 사용하여 공유 페이지 가져 오기
, 제가 예를 들어 보겠습니다 : 구성 요소가 저장
경우/(변경 한) 업데이트 후, 나는 내 사용자 지정 데이터베이스에이 구성 요소를 사용하여 모든 페이지를 업데이트하고 싶습니다.
기본 청사진 설정 : (200)는 구성 요소를 ((200)에서 고유 구성 요소) 400 번역 구성 요소에 대한 게시 페이지 (500)에서 600 로컬 사이트에 게시 고유 (400)의 구성 요소와 페이지)
그래서 할 수 있습니다에 대한 500 마스터 게시를 포함 우리가 컴포넌트 X를 200 개 가지고 있고,이 컴포넌트가 500 페이지에 포함되어 있고, X가 400 개로 지역화되어 있고 (X (l)라고 부르겠습니다) 600 페이지가 지역화되어 있지 않습니다 (즉 컴포넌트 x (l))
이제 내 질문에 : 내 저장 전날 (종류의 바보 느끼는)
var filter = new UsingItemsFilter(component.Session)
{
IncludeLocalCopies = true,
ItemTypes = new[] { ItemType.Page }
};
하지만 이것은 단지 내가 다음 일을 그래서 500 에서 페이지에 나에게 참조를 줄 것이다 : NT 핸들러, 내가 사용하여 페이지 X (난)에 포함 된 것을 확인 그의 구성 요소를 확인, 각 페이지에 대해 다음
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);
}
}
그리고 : 이 페이지를 고유 그 (그들을 반복에 의해) 아동 출판물의 모든 페이지의 TCM ID를 생성한다 (지금은 약간의 코딩 psuedocodelike를 사용하여 메신저) 이 상태를 내 사용자 지정 데이터베이스에 저장합니다.
그럼, TOM.NET API (CoreServiceClient가 아님)를 사용하여 지역화 된 구성 요소를 사용하는 모든 페이지를 쿼리하는 방법이 있습니까?
게시판의 하위 발행물을 찾는 더 좋은 방법은 없으므로 childPublication의 페이지 만 확인하면됩니까?
브롬 마틴
Tridion 관련 질문. 아직 알지 못했다면 http://tridion.stackexchange.com/에 전용 Tridion Stack Exchange 사이트가 있습니다. 그 팁을 위해 –
Thx를 게시하면 더 빠르고 더 큰 응답을 얻을 수 있습니다. 아프지도 않습니다. – user1978413