Как мне предоставить отдельные макеты для разных типов пользователей в шаблонах NVelocity? - PullRequest
0 голосов
/ 28 ноября 2011

Я занимаюсь редизайном шаблонов для нашего интернет-магазина (с использованием Castle Monorail с механизмом просмотра NVelocity), но хочу предоставить старую разметку определенным пользователям.

Я начал с добавления в PropertyBag переменной, которая определяет версию, которую должен получить пользователь, и установил макет «BaseLayout.vm», который выглядит следующим образом:

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

Это нормально работает для макета, и я технически могу использовать этот подход в каждом файле шаблона, но это кажется немного сложным. Есть ли лучший способ, которым я могу механизировать это?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Вместо макета, который «перенаправляет» условно в другие макеты, вы можете поместить условие в код и установить свойство LayoutName в контроллере.

0 голосов
/ 12 декабря 2011

Я бы создал фильтр контроллера и переопределил имя макета для отображения в соответствии с вашей логикой

...