4

这是我第一次创建命令模板。基本上,我希望在基于特定分支创建内容项时触发该命令。我尝试遵循 Sitecore 的“数据定义食谱”中的指导方针,但我根本无法让它发挥作用。

这正是我所做的(在 Sitecore 7.1 中):

我创建了一个这样的命令模板:

namespace MyApp.Commands
{
    public class MyCommand : Sitecore.Shell.Framework.Commands.Command
    {
        public override void Execute(Sitecore.Shell.Framework.Commands.CommandContext context)
        {
            // do stuff
        }
    }
}

我已将其注册为 Commands.config 中的命令,如下所示:

<command name="mynamespace:mycategory:mycommand" type="MyApp.Commands.MyCommand,MyApp"/>

在 Sitecore 中,我基于“/sitecore/templates/System/Branches/Command Template”模板创建了一个名为 MyCommandTemplate 的命令模板,并将 Command 字段设置为:

mynamespace:mycategory:mycommand(id=$ParentID)

此外,我创建了一个名为 MyTemplate 的数据模板,并在“__Standard Values”中将 MyCommandTemplate 添加到插入选项中。

对于 MyTemplate,我基于“/sitecore/templates/System/Branches/Branch”分支模板创建了一个名为 MyBranch 的分支,并在分支的 $name 子项上检查了它确实在插入选项中设置了 MyCommandTemplate .

但是,当我基于 MyBranch 创建内容项时,不会触发 MyCommand 中的 Execute 方法(代码未运行,我无法在 Visual Studio 中使用调试器对其进行点击)。

有谁知道我做错了什么?

4

1 回答 1

0

不确定命令模板是否适用于分支级别,要测试您的代码是否有效,请尝试添加基于“MyTemplate”数据模板的项目,并查看您的代码是否运行。

如果命令模板在分支级别上不起作用,我建议您在命令模板类中添加一些代码,以便在用户基于“MyTemplate”数据模板创建任何项目时创建所需的项目

于 2014-02-26T09:43:15.267 回答