annet
unread,Sep 24, 2008, 7:18:17 AM9/24/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to web2py Web Framework
I have some questions about generating a menu.
Am I right, when I conclude that when I want to generate an
application wide menu, I have to define all functions in a single
(e.g. the default) controller?
From the documentation I understand that there have various options to
generate a menu:
In the controller:
# 1) From examples default.py #
app=request.application
response.menu=[
['home',request.function=='index','/%s/default/index'%app],
['download',request.function=='download','/%s/default/
download'%app],
['features',request.function=='features','/%s/default/
features'%app],
['api',request.function=='api','/%s/default/api'%app],
['dal',request.function=='orm','/%s/default/orm'%app],
['examples',request.function=='examples','/%s/default/
examples'%app],
['license',request.function=='license','/%s/default/license'%app],
['thanks',request.function=='thanks','/%s/default/thanks'%app],
['faq',request.function=='faq','/%s/default/faq'%app]]
# 2) From examples database_examples.py #
response.menu=[['Register
User',False,URL(r=request,f='register_user')],
['Register Dog',False,URL(r=request,f='register_dog')],
['Register
Product',False,URL(r=request,f='register_product')],
['Buy product',False,URL(r=request,f='buy')]]
# 3) From the cookbook pdf defined within the function #
response.menu=[['civilized',False,URL(r=request,f='civilized')],
['slick',True,URL(r=request,f='slick')],
['basic',False,URL(r=request,f='basic')]]
# 4) From admin's default.py #
_f=request.function
response.menu=[(T('site'),_f=='site','/%s/default/
site'%request.application)]
if request.args:
_t=(request.application,request.args[0])
response.menu.append((T('about'),_f=='about','/%s/default/about/
%s'%_t))
response.menu.append((T('design'),_f=='design','/%s/default/design/
%s'%_t))
response.menu.append((T('errors'),_f=='errors','/%s/default/errors/
%s'%_t))
if not session.authorized: response.menu=[(T('login'),True,'')]
else: response.menu.append((T('logout'),False,'/%s/default/
logout'%request.application))
response.menu.append((T('help'),False,'/examples/default/index'))
(Could one of you please explain this code to me?)
And 5) in the view using an unordered list with list items.
I wonder what is the best way to create a menu, taking a single point
of definition into account. Furthermore, how do these menus reflect
their state, that is, active - inactive - hover?
Best regards,
Annet.