Sitecore中的规则和操作的Hello World

时间:2015-07-02 10:54:14

标签: sitecore sitecore7

我正在学习sitecore规则并阅读Rule Engine Cook Book上的资料。我只想在Item save上显示一个消息窗口。这就是我到目前为止所做的:

  1. Rule下添加了/sitecore/system/Settings/Rules/Item Saved/Rules
  2. 规则1: 项目模板为Address entry的位置 运行Show Hello World脚本

    1. Show Hello World
    2. 下添加了一个脚本/sitecore/system/Settings/Rules/Item Saved/Actions/

      在脚本中有3个字段,我需要填写,因为食谱说,Enter a value in the Type field, or a value in the Code, References, and Language fields. Do not enter values in all four fields.因此我在字段中填写了以下数据:

      代码: Sitecore.Context.ClientPage.ClientResponse.Alert("More than one address not allowed under this item!");

      参考文献:我不知道该写些什么。

      语言CSharp

      我不知道我在这里做错了什么。任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:2)

我刚刚成功重新创建了您的脚本并在新的Sitecore实例上进行了测试。以下是您必须遵循的步骤:

  1. /sitecore/templates/System/Rules/Script下添加模板类型/sitecore/system/Settings/Rules/Definitions/Elements/Script的新项目。我把我的项目称为“mydemoscript”。如果您运行的是早期版本的Sitecore(我认为7.2或更早版本),那么您的保存路径将是/sitecore/system/Settings/Rules/Item Saved/Actions

  2. 在脚本的Code字段中添加以下内容:&lt;%Sitecore.Context.ClientPage.ClientResponse.Alert(“此项目下不允许多个地址!”);%&gt; < / p>

  3. 在脚本的Type字段中添加“CSharp”

  4. 保存您的脚本项目。

  5. /sitecore/system/Settings/Rules/Item Saved/Rules创建规则下,我将我的名字命名为“mydemo”

  6. Rule字段中使用与之前相同的条件。对于操作,请使用“运行特定脚本”操作。请务必编辑操作以引用您在步骤1-4中创建的脚本。

  7. 测试!

答案 1 :(得分:1)

我认为我在code项目中没有看到Actions字段。

执行某些操作代码的最简单方法是使用值为Type的字段:

  

My.Assembly.Namespace.MyCustomAction,My.Assembly

然后MyCustomAction类代码:

using Sitecore.Data;
using Sitecore.Rules.Actions;

namespace My.Assembly.Namespace
{
  public class MyCustomAction<T> : RuleAction<T> where T : ConditionalRenderingsRuleContext
  {
    public override void Apply(T ruleContext)
    {
        // your code here
    }
  }
}