2012-01-10 5 views
1

を使用して、私は「ホーム」を表示するために私boot.scalaで次のメニュー項目を持って、「概要」、およびMetaMegaProtoUserからユーザーメニュー:では表示ログインおよびサインアップメニュー別途(グループ化)リフト

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> 

私は「ホーム」と(私のページでは別の場所にある場所とUser.menusにグループ化されたメニューの「について」を持ちたいです右上に「ログイン|サインアップ」と表示されます。

答えて

1

Menu.groupスニペットを使用する必要があります。これにより、特定のLocGroupのメニュー項目をレンダリングできます。ウェブページExploring Liftのセクション7.5.2には優れた章があります。

LocGroupを使用すると、メニュー項目を分類することができます。メニュー項目は、1つ以上のグループに関連付けることができます。グループ名の文字列引数を含む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 
) 

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

を通して、あなたのBoot.scalaentriesを追加した後あなたが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を自由にスタイル設定し、どこにでも置くことができ、あなたの心が望むように多くのグループに行くことができます!