0

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

具体来说,我想限制某些用户从头开始创建表单,并且只为他们提供复制现有表单的能力。我可以在没有代码的情况下做到这一点吗?是否有一个我没有看到的地方埋藏着?

4

1 回答 1

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 表单/CreateFormWizard.xml

更改此行:

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

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

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

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

希望这可以帮助!

于 2013-06-14T21:24:11.107 回答