我有运行SIP 3.2的Sitecore 6.6,并且想要使用项目桶(在这种情况下,更新到Sitecore 7对我们来说并不起作用)。所以我安装了(the Module)并获得了在Sitecore中显示的新菜单图标。问题是,当我在内容树中选择一个项目时,Bucket按钮(将项目转换为存储桶)始终处于非活动状态。请参阅以下屏幕截图:
谷歌搜索没有帮助。知道什么是错的吗?
编辑:
Access Viewer:
安全编辑:
答案 0 :(得分:0)
此按钮将被禁用3种情况:
bucket:makebucket
的访问权限。根据您所写的内容和截图,我认为这是您案例中的第二或第三种情况。检查项目是否已锁定,并尝试使用访问查看器和安全编辑器检查/分配正确的访问权限。
修改强>
您可以随时调试此命令,看看它被禁用的原因是什么。
在项目中创建一个名为MakeBucket
的类(将My.Assembly.Namespace
更改为项目命名空间):
namespace My.Assembly.Namespace
{
using System.Collections.Specialized;
using Sitecore.Diagnostics;
using Sitecore.ItemBucket.Kernel.ItemExtensions.Axes;
using Sitecore.ItemBucket.Kernel.Kernel.Pipelines;
using Sitecore.ItemBucket.Kernel.Security;
using Sitecore.Shell.Framework.Commands;
internal class MakeBucket : Command
{
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull(context, "context");
var items = context.Items;
Assert.IsNotNull(items, "Context items list is null");
Context.ClientPage.Start("uiBucketItems", new BucketArgs(items[0], new NameValueCollection()));
}
public override CommandState QueryState(CommandContext context)
{
Error.AssertObject(context, "context");
var item = context.Items[0];
if (!new BucketSecurityManager(item).IsAllowedToCreateBucket)
{
return CommandState.Disabled;
}
if (!item.Locking.HasLock())
{
return CommandState.Disabled;
}
return item.IsBucketItemCheck() ? CommandState.Disabled : CommandState.Enabled;
}
}
}
并在App_Config/Include/Sitecore.ItemBuckets.config
而不是原始item:bucket
命令中注册:
<command name="item:bucket" type="My.Assembly.Namespace.MakeBucket,My.Assembly" />
附加调试器并在QueryState
方法中放置一个断点。
答案 1 :(得分:0)
事实证明,你想要变成一个桶的项目必须被锁定(点击主页 - &gt;编辑)。然后Bucket按钮处于活动状态。无论如何,谢谢你的帮助!