Sitecore 6.6 Модуль Ведра для Предметов: Кнопка Неактивного Ведра

У меня Sitecore 6.6 с SIP 3.2 и я хочу использовать Item Buckets (в этом случае обновление до Sitecore 7 у нас не работает). Поэтому я установил ( Модуль) и получил новые значки меню для показа в Sitecore. Проблема в том, что когда я выбираю элемент в дереве содержимого, кнопка "Ведро" (для преобразования элемента в корзину) всегда неактивна. Смотрите следующий скриншот:

Кнопка Bucket неактивна

Поиск в Google не помог. Есть идеи, что не так?

РЕДАКТИРОВАТЬ:

Access Viewer:Access Viewer

Редактор безопасности:Редактор безопасности

2 ответа

Решение

Оказалось, что предмет, который вы хотите превратить в ведро, ДОЛЖЕН быть заблокирован (нажмите Home -> Edit). Тогда кнопка Bucket активна. В любом случае спасибо за вашу помощь!

Есть 3 сценария, когда эта кнопка будет отключена:

  1. Этот предмет уже является ведром
  2. Элемент НЕ заблокирован
  3. Пользователь не имеет прав доступа к bucket:makebucket на выбранный товар.

Из того, что вы написали, и из вашего скриншота, я думаю, что это 2-й или 3-й сценарий в вашем случае. Проверьте, заблокирован ли элемент, и попробуйте использовать Access Viewer и Security 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 метод.

Другие вопросы по тегам