2011-11-28 3 views
0

캐슬 모노레일을 NVelocity 뷰 엔진과 함께 사용하는 온라인 스토어 템플릿을 다시 디자인하고 있지만 특정 사용자에게 이전 레이아웃을 제공하고 싶습니다.NVelocity 템플릿에서 다른 사용자 유형에 대한 별도의 레이아웃을 어떻게 제공해야합니까?

나는 사용자가 얻을 다음과 같습니다 'BaseLayout.vm'에 레이아웃을 설정해야 버전을 결정합니다 PropertyBag에 변수를 추가 시작했습니다

#if($StoreVersion == 2) 
    #parse("VersionTwo/DefaultLayout.vm") 
#else 
    #parse('VersionOne/DefaultLayout.vm') 
#end 

이것은에 대한 확인 작업 레이아웃과 기술적으로 모든 템플릿 파일에서이 접근법을 사용할 수 있지만, 약간 길어 보인다. 이 기계화 할 수있는 더 좋은 방법이 있습니까?

+0

에 기반 렌더링 할 수는 그게 BaseLayout.vm의 전체 내용 또는 그것의 단지 부분? –

+0

그게 전부입니다. 아이디어는 버전 특정 템플릿으로 리디렉션되는 작업을 나타내는 파일을 갖는 것입니다. 저보다 버전 특정 템플릿으로 리디렉션하는 더 좋은 방법이 있는지 궁금합니다. – Septih

+0

왜 컨트롤러에'LayoutName' 속성을 설정하지 않습니까? –

답변

2

조건부로 다른 레이아웃으로 "전달"하는 레이아웃 대신 코드에 조건을 넣고 컨트롤러에서 LayoutName 속성을 설정할 수 있습니다.

+1

관심이있는 다른 사람들을 위해 위의 작업을 레이아웃에 적용하고 컨트롤러의 Process 메서드를 오버라이드하여 SelectedViewName 동작을 변경했습니다. – Septih

0

나는 상자 컨트롤러 필터와 레이아웃의 이름을 오버라이드 (override) 할 것은 논리

관련 문제