Here's an example of doing what David decribed (at least, as I understood it
;-) ):
// In Boot.scala
// Build SiteMap
val entries = ... ::
Menu(DynMenuLoc("Dynamic Menu", Link(List("dynamic"), true,
"/dynamic"), "Dynamic Menu")) ::
...
case class DynMenuLoc (
override val name: String,
override val link: Link[Unit],
override val text: LinkText[Unit],
_params: LocParam[Unit]*
) extends Loc[Unit] {
override val params = _params.toList
override val defaultValue = Full(())
override def supplimentalKidMenuItems = {
DynMenuItem.findAll.map(dmi => {
MenuItem(Text(dmi.label.is), Text(dmi.link.is), Nil, false, false,
Nil)
}) ::: super.supplimentalKidMenuItems
}
}
object DynMenuItem extends DynMenuItem with LongKeyedMetaMapper[DynMenuItem]
with CRUDify[Long, DynMenuItem]
class DynMenuItem extends LongKeyedMapper[DynMenuItem] with IdPK {
def getSingleton = DynMenuItem
object label extends MappedString(this, 32)
object link extends MappedString(this, 255)
}
I can post the full example code on github if it'd help, also.
-Ross
On Nov 20, 2009, at 10:37 PM, philip wrote:
> Hi David,
>
> Really looking forward to this - I spent a day on this with absolute
> failure.
>
> Philip
>
> On 11月20日, 上午1時56分, David Pollak <[email protected]>
> wrote:
>> Philip & list,
>>
>> I've had it on my to-do list to write up an example... and haven't... but...
>>
>> In your Loc, you can override def supplimentalKidMenuItems and dynamically
>> generate kid menu items.
>>
>> I'll try to get to an example.... but not today... sorry :-(
>>
>> Thanks,
>>
>> David
>>
>>
>>
>>
>>
>> On Thu, Nov 19, 2009 at 12:35 AM, philip <[email protected]> wrote:
>>
>>> Hi David,
>>
>>> Since I am programming a CMS for my client, I need my lift menu to
>>> come from the database.
>>
>>> LiftRules.setSiteMap(SiteMap(MenuInfo.menu :_*))
>>
>>> def menu: List[Menu] =
>>> {
>>> Log.info("Menu called")
>>> ...
>>
>>> It seems my menu function only gets called once, on subsquent calls I
>>> do not get any log message.
>>
>>> Maybe I have to subclass SiteMap?
>>
>>> Can you point me in the right direction?
>>
>>> Thanks, Philip
>>
>>> On 10月21日, 下午11時20分, David Pollak <[email protected]>
>>> wrote:
>>>> I owe the list example code to do this... maybe tomorrow.
>>
>>>> On Wed, Oct 21, 2009 at 6:26 AM, philip <[email protected]> wrote:
>>
>>>>> Hi,
>>
>>>>> How can I get a Liftweb menu to be generated from database content?
>>
>>>>> Alternatively, can the menu come from a XML datasource? could I load/
>>>>> serialize from that?
>>>>> Could it change dynamically at any time?
>>
>>>>> Thanks, Philip
>>
>>>> --
>>>> Lift, the simply functional web frameworkhttp://liftweb.net
>>>> Beginning Scalahttp://www.apress.com/book/view/1430219890
>>>> Follow me:http://twitter.com/dpp
>>>> Surf the harmonics
>>
>>> --
>>
>>> You received this message because you are subscribed to the Google Groups
>>> "Lift" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<liftweb%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/liftweb?hl=.
>>
>> --
>> Lift, the simply functional web frameworkhttp://liftweb.net
>> Beginning Scalahttp://www.apress.com/book/view/1430219890
>> Follow me:http://twitter.com/dpp
>> Surf the harmonics- 隱藏被引用文字 -
>>
>> - 顯示被引用文字 -
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "Lift" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/liftweb?hl=.
>
>
--
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=.