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 <[email protected] <mailto:[email protected]>>
>
>
> 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 <[email protected]
> <mailto:[email protected]>> wrote:
> > On Jul 17, 10:52 am, Alex Fanjul <[email protected]
> <mailto:[email protected]>> 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 [email protected]
> <mailto:[email protected]>
> To unsubscribe from this group, send email to
> [email protected]
> <mailto:web2py%[email protected]>
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/web2py?hl=en.
--
Alejandro Fanjul Fdez.
[email protected]
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.