I like the spirit of your second suggestion - just not sure about the 
implementation.

(I don't mean "not sure because I don't like it" - as a front-end guy, I just 
don't know the right way to implement what you're asking for. But getting this 
right is surprisingly critical for extensibility.)

In the past, we've discussed the ability to extend Rave using 
plugins/extensions/whatever. It would be mightily useful if a plugin is able to 
dynamically add an item to a specified menu. If DB is the place to do it, I'm 
all for it.

The alternative - file replacement - is limiting when it comes to customizing 
your instance, and then trying to upgrade to a new version of Rave.

(Background - the platform that I'm familiar with, Elgg, first allowed plugins 
a programmatic way to append menu items. That quickly became hard to manage, 
since some plugins wanted to override certain options added by other plugins. 
In one of the recent releases, the menus changed - now, a plugin can register 
and unregister menu items. You also have a provision to specify the sort order 
for menu items. Saved us a lot of pain that would otherwise be caused by file 
replacement.)

Stan Drozdetski
MITRE

-----Original Message-----
From: Chris Geer [mailto:[email protected]] 
Sent: Thursday, April 26, 2012 4:19 PM
To: [email protected]
Subject: Re: Review Request: Separates the menubar from the page.jsp into a 
standalone jsp for easy customization

In regards to this I've got a couple of ideas (limited to navbar for the
moment):

1) The simplest approach is to define multiple navbar.tag files (i.e.
userpage_navbar.tag, store_navbar.tag) and that way each jsp file can
properly incorporate the correct navbar layout they want. Same thing could
be done with tiles.
2) Another approach, like you suggested, is make them dynamic based on some
configuration. I like this approach but I'm not sure how we would drive it
out of the DB. Page_template would be the perfect place but most pages
aren't based on page templates at the moment. In fact, store.jsp doesn't
look like it pulls any data from the DB. I guess we could build it where it
was based on page_type and just have static values from some page types. So
maybe, STORE, USER, ADMIN, PERSON_PROFILE?

If it was DB driven I envision a navitems table with the following columns:
id, page_type, menu_name, menu_item_name, menu_item_url, menu_item_icon.
(being to have multiple groups is important to us since we want to have the
items split between two dropdown menus)

Parent User Story: https://issues.apache.org/jira/browse/RAVE-585

Chris

On Thu, Apr 26, 2012 at 8:25 AM, <[email protected]> wrote:

>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4880/#review7265
> -----------------------------------------------------------
>
>
> Thanks for the patch.  A couple of issues though:
>
> 1) This only takes into account the portal pages.  Menus on other pages
> are rendered differently.  What would be the best approach is to have a
> single menubar with navigation contributions based on page template and
> render out the nav elements dynamically. This approach can then be extended
> to allow menu item contributions from other sources.
>
> 2) This needs a JIRA ticket for us to Apply it :)
>
> - mfranklin
>
>
> On 2012-04-25 23:47:10, Chris Geer wrote:
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/4880/
> > -----------------------------------------------------------
> >
> > (Updated 2012-04-25 23:47:10)
> >
> >
> > Review request for rave.
> >
> >
> > Summary
> > -------
> >
> > I pulled the "menubar" code out of page.jsp and put it into
> common/menubar.jsp to support easier customization for users. I added an
> optional attribute to the base-layout to support this additional field and
> added it to the tile-def for standard pages.
> >
> > Something similar might be done for profile and store in the future but
> they can't use this exact JSP since their menu options differ from normal
> pages.
> >
> >
> > Diffs
> > -----
> >
> >
> /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/menubar.jsp
> PRE-CREATION
> >
> /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp
> 1330602
> >
> /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
> 1330602
> >   /trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml
> 1330602
> >
> > Diff: https://reviews.apache.org/r/4880/diff
> >
> >
> > Testing
> > -------
> >
> > Ran portal and witnessed no problems.
> >
> >
> > Thanks,
> >
> > Chris
> >
> >
>
>

Reply via email to