根据项目路径在功能区中显示额外选项
Show extra option in the ribbon based on item path
我正在使用 Sitecore 8 更新 2。
我需要创建一些存档功能。
所以我打算在与主页项目相同的级别添加一个新项目,并在功能区中为用户提供一个按钮。当他们单击此按钮时,当前项目将移至存档项目(存档项目将具有与主页项目相同的结构)。
当用户处理存档中的项目时,存档项目的选项不应出现在功能区中。相反,它应该有一个按钮来将项目恢复到原来的位置。
我所能找到的只是如何根据其模板添加功能区部分,但这对我帮助不大。
有谁知道我怎样才能做到这一点?
这里很好地解释了如何向 Sitecore 功能区添加按钮(命令):
Adding a custom button to the ribbon.
要检查是否应显示按钮,请覆盖 QueryState
方法。您可以 return CommandState.Enabled
、CommandState.Disabled
或 CommandState.Hidden
,例如:
public override CommandState QueryState(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
if (context.Items.Length != 1)
return CommandState.Hidden;
Item item = context.Items[0];
if (item.TemplateID == ...)
return CommandState.Enabled;
return CommandState.Hidden;
}
然后覆盖 Execute
方法并在那里执行您的逻辑:
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
if (context.Items.Length != 1)
return;
Item item = context.Items[0];
...
}
我正在使用 Sitecore 8 更新 2。 我需要创建一些存档功能。
所以我打算在与主页项目相同的级别添加一个新项目,并在功能区中为用户提供一个按钮。当他们单击此按钮时,当前项目将移至存档项目(存档项目将具有与主页项目相同的结构)。
当用户处理存档中的项目时,存档项目的选项不应出现在功能区中。相反,它应该有一个按钮来将项目恢复到原来的位置。
我所能找到的只是如何根据其模板添加功能区部分,但这对我帮助不大。
有谁知道我怎样才能做到这一点?
这里很好地解释了如何向 Sitecore 功能区添加按钮(命令): Adding a custom button to the ribbon.
要检查是否应显示按钮,请覆盖 QueryState
方法。您可以 return CommandState.Enabled
、CommandState.Disabled
或 CommandState.Hidden
,例如:
public override CommandState QueryState(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
if (context.Items.Length != 1)
return CommandState.Hidden;
Item item = context.Items[0];
if (item.TemplateID == ...)
return CommandState.Enabled;
return CommandState.Hidden;
}
然后覆盖 Execute
方法并在那里执行您的逻辑:
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
if (context.Items.Length != 1)
return;
Item item = context.Items[0];
...
}