On Sunday, October 9, 2011 1:56:18 AM UTC-4, miroslavgojic wrote:
>
> What if I need more than one menu.
>
> Usually I have 2 or 3 menus (top, bottom, and side)
>
> Can I do someting like this:
> in controller
> var1 = (response <http://web2py.com/book/default/docstring/response>.menu
> =(...))
> var2 = (response <http://web2py.com/book/default/docstring/response>.menu
> =(...))
No, that won't work (not correct Python). But you don't have to use
response.menu at all -- it's just a convenience. MENU() takes any list of
tuples, so you could do:
menu1 = [...]
menu2 = [...]
Note, in that case, you would have to define menu1 and menu2 in a model file
(which is where response.menu is often set anyway) so they will be available
in all controllers and views. Alternatively, you could make response.menu
either a list or dictionary of menus:
response.menu = {}
response.menu['menu1'] = [...]
response.menu['menu2'] = [...]
and then call MENU(response.menu['menu1']), etc.
Anthony
>
>
> in layout
> {{=MENU(var1,_class='sf-menu')}}
> {{=MENU(var2,_class='sf-menu')}}
>
>
> - - Miroslav Gojic - -
>
>
>
> On Fri, Oct 7, 2011 at 22:07, Anthony <[email protected]> wrote:
>
>> See http://web2py.com/book/default/chapter/05#Custom-Helpers for details
>> on using the MENU helper. You can see an example of using it in conjunction
>> with Superfish (which is a Javascript library that turns the list structure
>> generated by MENU into a dynamic menu) in the 'welcome' app:
>> http://code.google.com/p/web2py/source/browse/applications/welcome/views/layout.html#102
>>
>> Anthony
>>
>>
>> On Friday, October 7, 2011 3:08:37 PM UTC-4, miroslavgojic wrote:
>>
>>> this is my controller
>>>
>>> from gluon.tools import Crud
>>> crud = Crud(db)
>>>
>>> def index():
>>> form=SQLFORM(db.poruke,fields=**['poruka','post_author'])
>>> if form.accepts(request.vars,**session):
>>> session.flash="new post accepted!"
>>> redirect(URL(r=request))
>>> poruke=db().select(db.poruke.**ALL)
>>> return dict(form=form,poruke=poruke)
>>>
>>> def people():
>>> crud.settings.formstyle = ('divs')
>>> form = crud.create(db.person,next=**URL('people'),message=T("**record
>>> created"))
>>> persons = crud.select(db.person,fields=[**'name'],headers={'name':
>>> 'Name'})
>>> return dict(form = form,persons=persons)
>>>
>>> def user():
>>> auth.settings.formstyle = ('divs')
>>> return dict(form=auth())
>>>
>>> this is my layout
>>>
>>> <!DOCTYPE html>
>>> <html>
>>> <head>
>>> <title>Web2Py</title>
>>> </head>
>>> <body>
>>>
>>> {{try:}}{{=auth.navbar(action=**URL('default','user'))}}{{**except:pass}}<br
>>>
>>> />
>>> {{include}}
>>>
>>> <div class="sidebar">
>>> {{block mysidebar}}
>>> default sidebar
>>> {{end}}
>>> </div>
>>>
>>> <div class="ez-box" id="footer">
>>> {{=T('Copyright')}} © 2010 -
>>> {{=T('Powered by')}} <a href="http://www.web2py.com">**
>>> web2py</a>
>>> </div>
>>> </body>
>>> </html>
>>>
>>> this is my view
>>>
>>> {{extend 'layout.html'}}
>>>
>>> {{for poruke in poruke:}}
>>> {{if poruke.post_author:}}
>>> {{=poruke.post_author}} says {{=poruke.poruka}} <br />
>>> {{else:}}
>>> Anonymous says {{=poruke.poruka}}<br />
>>> {{pass}}
>>> {{pass}}
>>>
>>> {{=form}}
>>>
>>> {{include 'test.html'}}
>>>
>>> {{block mysidebar}}
>>> my block
>>> {{end}}
>>>
>>> How t make implementation of
>>>
>>> response <http://web2py.com/book/default/docstring/response>.menu =
>>> [('Google', False, 'http://www.google.com',[]),
>>>
>>>
>>>
>>> ('Index', True, URL
>>> <http://web2py.com/book/default/docstring/URL>('index'), [])]
>>>
>>> *
>>> *
>>>
>>>
>>>
>>> - - Miroslav Gojic - -
>>>
>>>
>>>
>>> On Fri, Oct 7, 2011 at 18:58, Anthony <[email protected]> wrote:
>>>
>>>> On Friday, October 7, 2011 1:31:08 AM UTC-4, miroslavgojic wrote:
>>>>>
>>>>> Thanks for blocks - that work, this is similar to modules in joomla, I
>>>>> can write small block and get content on specific place at layout.
>>>>>
>>>>> I tray to use next code:
>>>>>
>>>>> response <http://web2py.com/book/default/docstring/response>.menu =
>>>>> [('Google', False, 'http://www.google.com',[]),
>>>>>
>>>>>
>>>>>
>>>>> ('Index', True, URL
>>>>> <http://web2py.com/book/default/docstring/URL>('index'), [])]
>>>>>
>>>>> but without any success.
>>>>> I reed in book that mentioned code I must put in controller but how to
>>>>> get same than in layout and does in controller I must use definition or
>>>>> haw.
>>>>>
>>>>
>>>> Can you show the relevant controller and view code related to the menu?
>>>> What do you expect to see, and what do you actually see? Note, typically
>>>> you
>>>> would pass response.menu to the MENU() helper, which will turn it into a
>>>> nested unordered list, which can then be styled/displayed as a menu via
>>>> CSS
>>>> and/or Javascript (e.g., the 'welcome' app uses the Superfish Javascript
>>>> menu).
>>>>
>>>> Anthony
>>>>
>>>>
>>>
>