I solved this. On Friday, December 14, 2012 3:37:45 PM UTC-8, Lewis wrote: > > I understand that code and put it in my controller. > > But, where do I put the reference to it in the view (the base view that is > extended): > > By default it says: <div id="navbar">{{='auth' in globals() and > auth.navbar(separators=(' ',' | ',''))}}</div> > > I assume that user.bar must replace auth.navbar(...). > > But, I don't see how. An arbitrary function in a controller cannot do the > same things that the auth class method does. The other problem is that my > user.bar() is not in default so I must also reference the controller file. > Using URL('...', '....') in place of auth.navbar did not work. > > I am sorry: when you go mucking about substituting for internal > functions/classes of web2py it is very unclear what one must do because the > behavior of the internal classes is a bit obscure. > > Thank you. > > On Friday, July 20, 2012 4:29:37 PM UTC-7, pbreit wrote: >> >> I just write my own: >> >> def user_bar(): >> action = '/user' >> if auth.user: >> logout=A('logout', _href=action+'/logout') >> profile=A('profile', _href=action+'/profile') >> password=A('change password', _href=action+'/change_password') >> bar = SPAN(auth.user.email, ' | ', profile, ' | ', password, ' | >> ', logout, _class='auth_navbar') >> else: >> login=A('login', _href=action+'/login') >> register=A('register',_href=action+'/register') >> lost_password=A('lost password', _href=action+ >> '/request_reset_password') >> bar = SPAN(' ', login, ' | ', register, ' | ', lost_password,_class >> ='auth_navbar') >> return bar >> >>
--