以编程方式使Sitecore项可bucketable



我正在以树结构的编程方式生成许多sitecore内容项。举个例子,内容树中的结构如下:

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

现在,Subfolder1中的所有子项都使用相同的模板,类似于其他子文件夹。我想让所有的子文件夹都可以通过编程实现。我知道如何使用Sitecore UI来做到这一点,但在这种情况下这是不实际的,因为会有数千个这样的子文件夹。那么,我该如何通过编程实现呢?

添加以下命名空间以使用buckets扩展方法:

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

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新