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.


Reply via email to