2011-12-05 4 views
3

다음과 같이 Sitecore의 콘텐츠 트리에 구조를 만들었습니다. 템플릿을 기반으로하는 홈 루트 항목입니다. 그런 다음 날짜순으로 이름이 지정된 홈 항목 아래에 일련의 폴더가 있습니다.sitecore 항목을 콘텐츠 트리의 폴더로 이동하려고 시도했습니다.

홈 항목 아래에 새 항목을 추가하면 현재 날짜로 표시된 폴더 아래로 자동으로 이동하도록 명령 템플릿을 만듭니다.

그러나 Item 클래스 'MoveTo 메서드는 매개 변수로 Item 만 가져옵니다. 그래서 폴더를 항목으로 표현할 수 없으므로 항목을 폴더로 이동하는 방법을 모릅니다.

일부 파고를했는데 항목을 폴더 바로 아래에 배치하면 홈 항목 바로 아래에 다른 ParentID가 표시되어 폴더가 실제로 목. 그러나 Folder가 나타내는 Item을 검색하려고하면 null이 반환됩니다.

Sitecore에서 Sitecore.Context.Database.Items["/sitecore/content/Home/30Nov2011"];

답변

5

모든 아이템 (심지어 폴더), 당신은 path 또는 GUIDDatabase 객체를 사용에 따라 항목으로 폴더를 해결할 수 있습니다.

var currentDb = Sitecore.Data.Database.GetDatabase("master"); 
var folderItem = currentDb.GetItem("/sitecore/content/Home/30Nov2011"); 
Sitecore.Context.Item.MoveTo(folderItem); 

편집 :이 컨텐츠 편집기 환경에서 작업하는 사용자가 명시 적으로 당신이 데이터베이스를 포함하지 않습니다 Context 범위로 (이 경우 master 데이터베이스)를 사용할 데이터베이스를 이야기해야합니다으로 함께 일하기를 희망합니다.

희망이 도움이됩니다.

+0

그래, 그랬어. 이상한 점은 홈 항목의 항목을 조사했을 때 작동했지만 폴더의 경우 null을 반환한다는 것입니다. 확실하게 그것이 어떤 DB를 사용하고 있는지 알지 못한다면 둘 다 null을 돌려 주었을 것입니다. 어쨌든 여기서 주어진 코드가 작동합니다. 도움을 주셔서 감사합니다 :) – Garnaph

+0

당신은 아마도 컨텍스트 범위 (코어 또는 쉘)에 연결된 DB에도 '집'항목이 있지만 ID는 '마스터'항목의 '집'항목과 다를 것입니다. db는 완전히 다른 항목 일 것입니다. –

관련 문제