On Fri, Jul 3, 2009 at 06:44, Vidul Petrov<[email protected]> wrote:
>
> Hi,
>
> Given that I have a menu like:
>
> response.menu = [
> ['Home', request.function=='index',
> URL(request.application,'default','index'), []],
> ['New Post', request.function=='create',
> URL(request.application,'default','create'), []],
> ]
>
> the "active" link does not work unless I copy this addition from an
> older SVN revision in "html.py":
>
> diff -a gluon/html.py ~/web2py-read-only/gluon/html.py
> 1270,1273c1270
> < if active:
> < li = LI(A(name, _href=link, _class="active"))
> < else:
> < li = LI(A(name, _href=link))
> ---
>> li = LI(A(name, _href=link))
>
> I am wondering why this addition was removed, probably there is a
> better way to implement the menu?
Sure. There is a bug in this. I think it could fix the problem (not tested):
def serialize(self, data, level=0):
if level == 0:
ul = UL(**self.attributes)
else:
ul = UL(_class=self['ul_class'])
for item in data:
(name, active, link) = item[:3]
link_attrs = []
if link:
link_attrs.append(_href=link)
else:
link_attrs.append(_href='#null')
if active:
link_attrs.append(_class='active')
li = LI(A(name, *link_attrs))
if len(item) > 3 and item[3]:
if li['_class']:
li['_class'] += ' ' + self['li_class']
else:
li['_class'] = self['li_class']
li.append(self.serialize(item[3], level+1))
ul.append(li)
return ul
--
Álvaro Justen
Peta5 - Telecomunicações e Software Livre
21 3021-6001 / 9898-0141
http://www.peta5.com.br/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" 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/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---