Sitecore 6.6 Модуль Ведра для Предметов: Кнопка Неактивного Ведра
У меня Sitecore 6.6 с SIP 3.2 и я хочу использовать Item Buckets (в этом случае обновление до Sitecore 7 у нас не работает). Поэтому я установил ( Модуль) и получил новые значки меню для показа в Sitecore. Проблема в том, что когда я выбираю элемент в дереве содержимого, кнопка "Ведро" (для преобразования элемента в корзину) всегда неактивна. Смотрите следующий скриншот:
Поиск в Google не помог. Есть идеи, что не так?
РЕДАКТИРОВАТЬ:
Access Viewer:
Редактор безопасности:
2 ответа
Оказалось, что предмет, который вы хотите превратить в ведро, ДОЛЖЕН быть заблокирован (нажмите Home -> Edit). Тогда кнопка Bucket активна. В любом случае спасибо за вашу помощь!
Есть 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
метод.