2012-01-10 1 views
1

У меня есть следующие пункты меню в моем boot.scala, чтобы вывести на экран «Home», «О», и меню пользователей из MetaMegaProtoUser:Показать логин и Signup меню отдельно (сгруппированных) с помощью Lift

val homeLink = new Link("index" :: Nil, false) 
val homeMenu = Menu(Loc("homeHome", homeLink, "Home")) 
val aboutLink = new Link("about" :: "index" :: Nil, false) 
val aboutMenu = Menu(Loc("aboutHome", aboutLink, "About")) 
val menus = homeMenu :: aboutMenu :: User.menus 
LiftRules.setSiteMap(SiteMap(menus: _*)) 

В мой default.html у меня есть следующий, чтобы сделать меню:

<lift:Menu.builder li_item:class="active" linkToSelf="true"></lift:Menu> 

Я хочу иметь «Home» и «о» меню сгруппированы в одном месте и User.menus в отдельном месте в моей странице (например, верхний правый, обозначающий «Вход в систему».

ответ

1

Вы должны использовать фрагмент Menu.group, который позволяет отображать пункты меню для определенного LocGroup. На веб-странице Exploring Lift есть замечательная глава в разделе 7.5.2.

LocGroup позволяет классифицировать элементы меню ... Элемент меню может быть связан с одной или несколькими группами. Просто добавьте параметр LocGroup с строковыми аргументами для имен групп.

Это означает, что вы можете сделать что-то вроде этого,

val entries = (
    (Menu("Login")/"login" >> LocGroup("main")) :: 
    (Menu("Logout")/"logout" >> LocGroup("user")) :: 
    (Menu("Profile")/"profile" >> LocGroup("user", "main")) :: 
    (Menu("Home")/"index" >> LocGroup("main")) :: Nil 
) 

После добавления entries к вашему Boot.scala через

LiftRules.setSiteMap(SiteMap(entries: _*)) 

Вы можете вынести только пункты меню для LocGroup("user") с,

<div id="userMenu"> 
    <div class="lift:Menu.group?group=user;a:class=userLink"></div> 
</div> 

Обратите внимание, что в сообщении Menu.group вы определяете группу, передавая параметр group=user и можете также передавать параметры стилизации, например a:class=userLink.

После этого вы можете свободно стилизовать #userMenu, как вы хотите, поместить его где угодно и т. Д. И пойти на столько групп, сколько пожелает ваше сердце!