2017-04-10 9 views
1

Orchard.Setup 모듈에서 SetupViewModel을 확장하여 "Orchard에 오신 것을 환영합니다"설치 화면에 표준 관리 사용자 이름과 함께 표시되도록 내 웹 응용 프로그램에 특정한 옵션을 추가해야합니다. 등등. SetupController 및 확장 된 뷰 모델로 자체 모듈을 만들었지 만 Orchard는 여전히 표준 Orchard.Setup 모듈을 사용합니다. 지금까지 시도했지만 행운이 없습니다. 1. 사용자 정의 모듈의 컨트롤러에 OrchardSuppressDependency가 있습니다. 2. 내 사용자 정의 모듈에 우선 순위가 101이되도록 라우팅하십시오. 나는 자신의 모듈을 쉽게 사용할 수 있다는 것을 알고 있습니다.Orchard CMS에서 Orchard 설정보기 덮어 쓰기

public ShellContext CreateSetupContext(ShellSettings settings) { 
     Logger.Debug("No shell settings available. Creating shell context for setup"); 

     var descriptor = new ShellDescriptor { 
      SerialNumber = -1, 
      Features = new[] { 
       new ShellFeature { Name = "YOUR_MODULE_NAME" }, 
       new ShellFeature { Name = "Shapes" }, 
       new ShellFeature { Name = "Orchard.jQuery" }, 
      }, 
     }; 

     var blueprint = _compositionStrategy.Compose(settings, descriptor); 
     var shellScope = _shellContainerFactory.CreateContainer(settings, blueprint); 

     return new ShellContext { 
      Settings = settings, 
      Descriptor = descriptor, 
      Blueprint = blueprint, 
      LifetimeScope = shellScope, 
      Shell = shellScope.Resolve<IOrchardShell>(), 
     }; 
    } 

을하지만 내가 심지어 적어도 설치 목적 OrchardSuppressDependency와 IShellContextFactory 무시할 수없는 것 같다 ShellContextFactory CreateSetupContext 방법에 ShallFeature 이름을 변경합니다.

CMS 코드를 변경하지 않고 원하는 결과를 얻을 수있는 방법에 대한 아이디어가 있습니까?

과수원 버전은 1.8.1입니다.

답변

0

그래서, 그것은 내가 얻으려고했던 것이 아니지만, 그것은 무언가입니다. Orachard 설치 프로세스 중에 사용되는 IShellContextFactory를 재정의하려면 Host.config 파일을 사용할 수 있습니다. 예 :

<autofac> 
     <components> 
      <component instance-scope="single-instance" type="YourModuleNamespace.ShellBuilders.CustomContextFactory, YourModuleName" service="Orchard.Environment.ShellBuilders.IShellContextFactory, Orchard.Framework" /> 
     </components> 
    </autofac> 

적어도 당신은 오차드 소스를 변경할 필요가 없습니다.