I don't know if I have problems with my email (cause nobody responded me the last ones asking for help), anyway next try: Thank you so much Alexandre, I think is a very useful bit of code because this feature (breadcumbs) its a must for web 2.0 nowdays, and from my point of view I think it should be included in web2py framework. After trying to review and understand your code, the most impressive part (for a Java ex-programmer like me) its this little line: ***return XML(' > '.join(str(m) for m in menus))***
Alex F El 28/12/2009 21:45, Alexandre Andrade escribió: > I improved the function and put it at > http://www.web2pyslices.com/main/slices/take_slice/46 > > Features: > > * links in every breadcrumb > * can set a breadcrumb to args > * can localize/personalize the controllers - using T() > > Thanks to Richard <richardbp(at)gmail.com <http://gmail.com>>, for > original function that I made improvements > > Put in your model/module: > > Select > | def breadcrumbs(arg_title=None): > "Create breadcrumb links for current request" > > # make links pretty by capitalizing and using 'home' instead of > 'default' > #pretty = lambda s: s.replace('default', 'InÃcio').replace('_', ' > ').capitalize() > > menus = [A(T('Home'), _href=URL(r=request, c='default', f='index'))] > if request.controller != 'default': > # add link to current controller > menus.append(A(T(pretty(request.controller)), > _href=URL(r=request, c=request.controller, f='index'))) > > if request.function == 'index': > # are at root of controller > menus[-1] = A(T(pretty(request.controller)), > _href=URL(r=request, c=request.controller, f=request.function)) > > else: > # are at function within controller > menus.append(A(T(pretty(request.function)), > _href=URL(r=request, c=request.controller, f=request.function))) > # you can set a title putting using breadcrumbs('My Detail Title') > > if request.args and arg_title: > menus.append(A(T(arg_title)), _href=URL(r=request, > c=request.controller, f=request.function,args=[request.args])) > else: > #menus.append(A(pretty(request.controller), _href=URL(r=request, > c=request.controller, f='index'))) > > if request.function == 'index': > # are at root of controller > #menus[-1] = pretty(request.controller) > pass > #menus.append(A(pretty(request.controller), > _href=URL(r=request, c=request.controller, f=request.function))) > > else: > # are at function within controller > menus.append(A(T(pretty(request.function)), > _href=URL(r=request, c=request.controller, f=request.function))) > # you can set a title putting using breadcrumbs('My Detail Title') > > if request.args and arg_title: > menus.append(A(T(arg_title), _href=URL(r=request, > f=request.function,args=[request.args]))) > > return XML('> '.join(str(m) for m in menus)) > > | > > To use, put in your view: > > Select > | {{=breadcrumbs() }} > | > > or > > Select > | {{=breadcrumbs('My Title for request.args ') }} > | > ------------------------------------------------------------ > 2009/8/7 Richard <richar...@gmail.com <mailto:richar...@gmail.com>> > > > hi Alex, > > I am now using this automatic breadcrumb function: > > > def breadcrumbs(): > "Create breadcrumb links for current request" > # make links pretty by capitalizing and using 'home' instead of > 'default' > pretty = lambda s: s.replace('default', 'home').replace('_', ' > ').capitalize() > menus = [A('Home', _href=URL(r=request, c='default', f='index'))] > if request.controller != 'default': > # add link to current controller > menus.append(A(pretty(request.controller), _href=URL > (r=request, c=request.controller, f='index'))) > if request.function == 'index': > # are at root of controller > menus[-1] = pretty(request.controller) > else: > # are at function within controller > menus.append(pretty(request.function)) > return XML(' > '.join(str(m) for m in menus)) > > > Has anyone else got a system they can share? > Richard > > > On Aug 5, 10:48 am, Richard <richar...@gmail.com > <mailto:richar...@gmail.com>> wrote: > > On Jul 17, 10:52 am, Alex Fanjul <alex.fan...@gmail.com > <mailto:alex.fan...@gmail.com>> wrote: > > > > > I agree with you Richard, > > > In deed, in statusbar there is already a "kind of breadcrumb" but > > > wihtout links... > > > > > A vote for this inbuild functionallity... > > > Otherwise, I bet that someone has a quick and simple idea to > do this > > > with one function and getting the information from url app, > controller, > > > function. > > > > hmm, doing it automatically from the URL might work for me if I plan > > it right. > > Does anyone else already have their own breadcrumb system? > > > > Richard > --~--~---------~--~----~------------~-------~--~----~ > You received this message because you are subscribed to the Google > Groups "web2py-users" group. > To post to this group, send email to web2py@googlegroups.com > <mailto:web2py@googlegroups.com> > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com > <mailto:web2py%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/web2py?hl=en > -~----------~----~----~----~------~----~------~--~--- > > > > > -- > Atenciosamente > > -- > ========================= > Alexandre Andrade > Hipercenter.com > > -- > > You received this message because you are subscribed to the Google > Groups "web2py-users" group. > To post to this group, send email to web...@googlegroups.com. > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/web2py?hl=en. -- Alejandro Fanjul Fdez. alex.fan...@gmail.com www.mhproject.org -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.