2016-11-11 7 views
2

는, 시나리오 다음 달성하기 위해 지침을 필요로 사용자 정의 필드를 기준으로 컨텐츠 트리에 정렬 Apply (적용) 약속 날짜 ". 나는 "2016"과 같은 년 폴더의 밑에 "약속"유형을 추가 할 때 "2016"와 같은 년 폴더의 밑에 "약속"유형을 추가 할 때 "모든 약속"이름을 가진 폴더를 창조했다.Kentico 9 Kentico 9에서

지금 "2016 년" , 나는 ti가 "AppointmentDate"에 의해 주문을 삽입해야한다. 이제 "앱 4"와 같은 이름으로 새 약속을 추가하는 경우처럼

- All Appointments 
---- 2016 
-------- Ap1 (AppointmentDate fields = 5 May 2016) 
-------- Ap2 (AppointmentDate fields = 6 Jun 2016) 
--------- Ap3 (AppointmentDate fields = 25 Jun 2016) 

그래서 다음 위치를 설정 "AppointmentDate 필드 = 2016년 6월 11일", 그것은 관리자 패널의 컨텐츠 트리에서 AP2와 AP3 사이에 삽입해야하므로.

희망 검색어는 분명합니다.

미리 감사드립니다.

답변

3

할 수 있습니다 attach 글로벌 이벤트

DocumentEvents.Create.After += Document_Create_After; 

및 문서 페이지의 경로에 대한 방법 확인 및 원하는 페이지 입력하면 만들 수 있습니다. 그것은`당신이 주문해야 노드 경우 단지

CMS.DocumentEngine.TreeProvider.MoveNodeDown 

또는

CMS.DocumentEngine.TreeProvider.MoveNodeUp 

은 당신의 분야에 따라과 요구 사항을 주문 사용 (적절한 하위 트리에, 적절한 페이지 유형 등의 종류입니다).

+0

안녕 마틴, 빠른 답장을 보내 주셔서 감사합니다. 글로벌 이벤트 첨부를 알고 있지만 트리 노드에 정렬을 적용하는 방법을 혼동하는 것은 특정 필드에 의한 정렬 또는 새 노드를 위 또는 아래에 지정된대로 삽입하는 방법입니다. 또한 "CMS.DocumentEngine.TreeProvider.MoveNodeDown"API와 관련하여 TreeProvider 클래스에서 K9에서 제거 된 것처럼 보입니다. DocumentHelper 클래스에서이 메서드 만 가져 오는 것으로 "DocumentHelper.MoveDocument (newnode, targetnode);" 내가 잘못하면 나를 바로 잡으십시오. –

+0

CMS.DocumentEngine.TreeProvider.SetNodeOrder 메서드 (TreeNode, Int32)를 사용하고 새 문서보다 이전 날짜의 약속 수를 확인할 수 있습니다 (3 개의 새 약속이있는 경우 노드 순서를 3으로 설정)). 순서가 0인지 아닌지는 잘 모르겠다. 그렇지만 1 기반 일 수 있으므로 테스트하고 조정해야 할 수도있다. –

+0

내 늦은 답변에 대해 유감스럽게 생각합니다. Trevor가 맞습니다. - 이것은 내가 원하는 행동을 달성하는 데 익숙한 유일한 방법입니다. 설명을 위해 Travor에게 감사드립니다. –