2014-07-27 4 views
2

Orchard CMS에 대한 사용자 정의 테마를 수행하고 있습니다.사용자 정의 Orchard CMS 테마에서 관리자 모양 재정의

클라이언트 프로젝트의 일환으로 요구 사항 중 하나는 블로그 관리 페이지에 몇 가지 추가 기능이 있습니다. Parts.Blogs.BlogPost.ListAdmin.cshtml에서 간단한 변경을 수행하는 것이 매우 쉽습니다.

블로그 소스 코드를 변경하고 싶지 않습니다. 테마에서 wiew를 덮어 쓰고 싶습니다. 프론트 엔드에있는 다른 모든 것들.

~/Themes/MyTheme/Views/Parts.Blogs.BlogPost.ListAdmin.cshtml 
~/Themes/MyTheme/Views/Orchard.Blogs/Parts.Blogs.BlogPost.ListAdmin.cshtml 
~/Themes/MyTheme/Views/Dashboard/Admin/Parts.Blogs.BlogPost.ListAdmin.cshtml 

를하지만보기는 포착되지 않습니다

나는 다음과 같은 경로를 시도 과수원 포럼에서 발견 된 일부 가이드 라인을.

그렇다면 기본 테마 대신 관리 대시 보드에서 선택하는 내 테마의보기를 어떻게 무시할 수 있습니까?

감사

답변

3
당신은 다음에 이런 식으로 .cs 파일을 추가, 프로젝트 파일과 테마를 만들 필요가

:

public class AdminOverride : IThemeSelector 
{ 
    public ThemeSelectorResult GetTheme(RequestContext context) 
    { 
     if (AdminFilter.IsApplied(context)) 
     { 
      return new ThemeSelectorResult { Priority = 111, ThemeName = "NewAdminTheme" }; 
     } 

     return null; 
    } 
} 

하지만 현재로서이 테마를 설정하지 마십시오, 백엔드에서 활성화하십시오. 다음과 같이 Theme.txt의 기본 테마로 TheAdmin을 설정해야합니다.

BaseTheme: TheAdmin 
+0

Ok. 나는 그것을 시도했다. 내가 현재 코딩하고있는 (프론트 엔드) 테마를 가지고 있다면, 프론트 엔드는 전체 관리 테마로 넘어갑니다. 내가 원하는 것은 아닙니다. 새로운 관리자 테마를 만들고 코드를 추가하고 수정 된 뷰를보기 (보기)하지만 관리자에게 넘겨주지 않습니다 (그래서 css도 admi 뷰도 없습니다 ...). 그래서 그것을 작동하게하려면 모든 현재 관리 테마를 새로운 테마로 복사해야합니다. 그런 다음 변경 사항과 코드를 추가해야합니다. 이 방법은 작동하지만 Admin Theme를 복제했습니다 ... 나에게 일종의 해결 방법으로 들립니다. – manudea

+0

모든 관련 자료를 복제하지 않고 단일보기를 무시하는 제안은 있습니까? – manudea

+0

Theme.txt 파일에 BaseTheme : TheAdmin을 설정하십시오. – Hazza