限制 WFFM 插入表单向导的特定部分的最佳方法是什么?
具体来说,我想限制某些用户从头开始创建表单,并且只为他们提供复制现有表单的能力。我可以在没有代码的情况下做到这一点吗?是否有一个我没有看到的地方埋藏着?
限制 WFFM 插入表单向导的特定部分的最佳方法是什么?
具体来说,我想限制某些用户从头开始创建表单,并且只为他们提供复制现有表单的能力。我可以在没有代码的情况下做到这一点吗?是否有一个我没有看到的地方埋藏着?
我不相信有可用的设置或权限来控制您要求的内容。
您可以尝试的一种方法是对 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">
我没有测试过这种方法,但理论上它应该可以工作。
希望这可以帮助!