限制Sitecore Web Forms for Marketers(WFFM)向导的部分内容

时间:2013-06-11 20:48:36

标签: sitecore sitecore6 web-forms-for-marketers

限制WFFM插入表单向导的特定部分的最佳方法是什么?

具体来说,我想限制某些用户从头开始创建表单,并且只允许他们复制现有表单。我可以不用代码吗?在我看不到的地方埋葬了什么环境?

1 个答案:

答案 0 :(得分:1)

我认为没有可用的设置或权限来控制你的要求。

您可以尝试的一种方法是对Sitecore.Forms.Shell.UI.CreateFormWizard类(在Sitecore.Forms.Core程序集中)进行子类化。然后,您将覆盖OnLoad方法,执行一些逻辑以确定当前用户是否应该能够通过向导创建新表单,然后显示/隐藏单选按钮以创建新表单。

这样的事情:

public class CreateFormWizardExtended : Sitecore.Forms.Shell.UI.CreateFormWizard
{
    protected override void OnLoad(EventArgs e)
    {
        base.CreateBlankForm.Visible = Sitecore.Context.User.IsInRole("sitecore\\AllowedToCreateForms");
        base.OnLoad(e);
    }
}

然后,您需要修改CreateFormWizard xml控件:

  

/ sitecore / shell / Applications / Modules / Web Forms For   营销/ CreateFormWizard.xml

更改此行:

<WizardForm CodeBeside="Sitecore.Forms.Shell.UI.CreateFormWizard, Sitecore.Forms.Core">

改为使用您刚创建的类,如下所示:

<WizardForm CodeBeside="MyNamespace.CreateFormWizardExtended, MyAssembly">

我没有测试过这种方法,但理论上它应该可行。

希望这有帮助!