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 <abas...@gmail.com> 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 <aba...@gmail.com> 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
>>>>
>>>>
>>>
>

Reply via email to