【问题标题】:Sitecore 6.6 Item Buckets Module: Inactive Bucket ButtonSitecore 6.6 项目桶模块:非活动桶按钮
【发布时间】:2015-06-17 08:16:33
【问题描述】:

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

Google 搜索没有帮助。知道有什么问题吗?

编辑:

访问查看器:

安全编辑器:

【问题讨论】:

    标签: sitecore sitecore6 bucket


    【解决方案1】:

    原来你想变成桶的项目必须被锁定(点击主页 -> 编辑)。然后 Bucket 按钮处于活动状态。无论如何感谢您的帮助!

    【讨论】:

      【解决方案2】:

      此按钮将被禁用的三种情况:

      1. 这个项目已经是一个桶
      2. 项目锁定
      3. 用户无权访问所选项目上的bucket:makebucket

      从你写的和你的截图来看,我认为这是你的情况的第二或第三个场景。检查项目是否被锁定并尝试使用 Access viewerSecurity Editor 来检查/分配适当的访问权限。


      编辑:

      您可以随时调试此命令并查看它被禁用的原因。

      在您的项目中创建一个名为 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 方法中放置断点。

      【讨论】:

      • 好点。我现在在访问查看器中分配了 make 和 unmake bucket 的权限,但是 Bucket 按钮仍然处于非活动状态。
      • 您能否粘贴来自访问查看器的屏幕截图,显示您对此项目的访问权限?你能检查一下这个项目是否被锁定?
      • 在第一篇文章中添加了访问查看器和安全编辑器的屏幕截图。我想变成桶的项目是“Aktuelles”。此项目不应被锁定。前面的内容编辑器中没有锁符号。
      猜你喜欢
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      相关资源
      最近更新 更多