2013-06-11 1 views
0

WFFM 삽입 양식 마법사의 특정 부분을 제한하는 가장 좋은 방법은 무엇입니까?WFFM (Sitecore Web Forms for Marketingers) 마법사의 일부 제한

특히 특정 사용자가 양식을 처음부터 만들지 못하도록 제한하고 기존 양식을 복사 할 수있는 기능 만 제공하고 싶습니다. 코드없이이 작업을 수행 할 수 있습니까? 내가 보지 않는 곳에 어딘가에 묻혀있는 설정이 있습니까?

+0

코드를 작성하기 시작하면 버그를 해결하는 데 도움이됩니다. – vdbuilder

+0

@vdbuilder - 불행히도 나는 .net을 정말로 모른다. 이 질문에 대한 비즈니스 요구 사항 측면에서 더 많이 나옵니다. 나는 꽤 잘 Sitecore 관리 측면의 일을 그래서 나는 "쉽게"핵심 DB에서 설정을 찾기 위해 열심히 변화를 통해 이것을 할 수있는 방법을 바라고 있었다. – cbarnes0981

답변

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/쉘/응용 프로그램/모듈/웹 양식/CreateFormWizard.xml

변경이 라인 :

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

대신과 같이 방금 만든 클래스를 사용 :

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

나는이 방법을 테스트하지 않은,하지만 이론적으로는 작동합니다.

희망이 도움이됩니다.

+0

감사합니다 아담! 더 많은 비즈니스 사용자로 구현할 수있는 솔루션을 기대했지만, 개발자에게이 문제를 해결할 수 있는지 확인해 보겠습니다. – cbarnes0981