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>, for original function that I
made improvements
Put in your model/module:
[image: 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:
[image: Select]
{{=breadcrumbs() }}
or
[image: Select]
{{=breadcrumbs('My Title for request.args ') }}
------------------------------------------------------------
2009/8/7 Richard <[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]> wrote:
> > On Jul 17, 10:52 am, Alex Fanjul <[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]
> To unsubscribe from this group, send email to
> [email protected]<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.