2014-09-17 6 views
1

트리 구조로 프로그래밍 방식으로 많은 sitecore 컨텐트 항목을 생성하고 있습니다. 예를 제공하기 위해, 구조는 컨텐츠 트리에 다음과 같은 : 지금 Sitecore 항목을 프로그래밍 방식으로 버킷으로 만들 수 있습니다.

Sitecore 
    content 
     Item1 
      SubFolder1 (containing thousands of subitems) 
     Item2   
      SubFolder2 (containing thousands of subitems) 
...and so on 

, Subfolder1 내의 모든 하위 항목도 마찬가지로 다른 하위 폴더를 같은 템플릿을 사용합니다. 모든 하위 폴더를 프로그래밍 방식으로 버킷으로 만들길 원합니다. Sitecore UI를 사용하여이 작업을 수행하는 방법을 알고 있지만이 경우에는 수천 개의 하위 폴더가 있으므로 실용적이지 않습니다. 그렇다면 프로그래밍 방식으로 어떻게 할 수 있습니까?

답변

4

버킷 확장 방법을 사용하여 다음과 같은 네임 스페이스를 추가

using Sitecore.Buckets.Extensions; 

이 항목 버킷을 만들려면 다음 코드를 사용하여 :

public static void CovertToBucketItem(Item SubFolderItem) 
{ 
    Sitecore.Buckets.Managers.BucketManager.CreateBucket(SubFolderItem); 
    using (new Sitecore.Data.Items.EditContext(SubFolderItem, SecurityCheck.Disable)) 
    { 
     if (!IsBucketItemCheck(SubFolderItem)) 
     { 
      IsBucketItemCheckBox(SubFolderItem).Checked = true; 
     } 
    } 
} 
public static bool IsBucketItemCheck(Item item) 
{ 
    return (((item != null) && (item.Fields[Sitecore.Buckets.Util.Constants.IsBucket] != null)) && item.Fields[Sitecore.Buckets.Util.Constants.IsBucket].Value.Equals("1")); 
} 

public static CheckboxField IsBucketItemCheckBox(Item item) 
{ 
    return item.Fields[Sitecore.Buckets.Util.Constants.IsBucket]; 
} 

모든 하위 항목은 SubFolderItem 일반적인 방법으로 추가 할 수 있습니다.

SubFolderItem.Add(SubItemName,SubItemTemplate) 

것은 ..

하위 항목에 대한 템플릿 Standard Value

희망이 도움말을 확인 Bucketable 분야가 있는지 확인