Sitecore 6.6项目铲斗模块:非活动铲斗按钮

时间:2015-06-17 08:16:34

标签: sitecore sitecore6 bucket

我有运行SIP 3.2的Sitecore 6.6,并且想要使用项目桶(在这种情况下,更新到Sitecore 7对我们来说并不起作用)。所以我安装了(the Module)并获得了在Sitecore中显示的新菜单图标。问题是,当我在内容树中选择一个项目时,Bucket按钮(将项目转换为存储桶)始终处于非活动状态。请参阅以下屏幕截图:

Bucket Button inactive

谷歌搜索没有帮助。知道什么是错的吗?

编辑:

Access Viewer: Access Viewer

安全编辑: Security Editor

2 个答案:

答案 0 :(得分:0)

此按钮将被禁用3种情况:

  1. 此项目已经是一个桶
  2. 项目已锁定
  3. 用户对所选项目没有bucket:makebucket的访问权限。
  4. 根据您所写的内容和截图,我认为这是您案例中的第二或第三种情况。检查项目是否已锁定,并尝试使用访问查看器安全编辑器检查/分配正确的访问权限。

    修改

    您可以随时调试此命令,看看它被禁用的原因是什么。

    在项目中创建一个名为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按钮处于活动状态。无论如何,谢谢你的帮助!