[Zope-dev] PythonMethods: Can't Slice context.REQUEST.PARENTS
The Doctor What
docwhat@gerf.org
Sat, 11 Nov 2000 02:00:03 -0600
--6c2NcOVqGQ03X4Wi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
I cannot slice context.REQUEST.PARENTS
The reason I want to do this is to travel up the URL tree for a
breadcrumb navigation do-hicky.
I want to slice it so I can make a copy because if I just do
...reverse() on it, I screw up everything afterwards.
It says I'm unauthorized (Guarded.py __careful_getattr__) so I
assume this is a feature.
I suppose I can just .reverse() it back again at the end, but it
seems.....wrong some how.
Attached is my code at the moment...it sucks, I know. This is
python project numero uno and zope project duo...
If anyone has a better example of how to hand text (I'm using buff
and returning it) back, I'd appreciate it.
I'm much to tired, so off I go to bed...
Ciao!
--
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor.
-- Wernher von Braun
The Doctor What: <fill in the blank> http://docwhat.gerf.org/
docwhat@gerf.org KF6VNC
--6c2NcOVqGQ03X4Wi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=breadcrumbs
<params>buff='',lose=1</params>
"""
This is a breadcrumb generator. A breadcrumb trail is what you get at yahoo as
you traverse downward in their directory structure:
computers->video->blah->etc.
It shows you where you are in your site.
My breadcrumbs shall follow these rules:
1) The current DTML Document shall be the last item. It will not be a link.
2) If the current DTML Document isn't index_html, then the parent crumb will be
the index_html for the folder
3) All crumb names are overridable by setting the 'nickname' attribute.
4) The root folder will always be called "Home"
Ciao!
docwhat@gerf.org
"""
## Start being crumb-y!
buff = "\n<!-- start Breadcrumbs -->\n[ "
# Get the list of parents and reverse it
list = context.REQUEST.PARENTS[:]
list.reverse()
# Iterate over all the parent objects, skipping the 'current'one
# (see below for dealing with that
for x in range(lose,len(list)-1):
obj = list[x]
url = obj.absolute_url()
name = obj.title_or_id()
buff = "%s\n -> <a href='%s'>%s</a>" % (buff, url, name)
# Deal with the 'current' object(s)
obj = list[-1]
buff = "%s\n '%s'" % (buff, obj)
buff = "%s\n '%s'" % (buff, context.id)
if obj != context:
buff = "%s\n -> '%s'" % (buff, obj.title_or_id())
buff = "%s\n -> '%s'" % (buff, obj.title_or_id())
buff = buff + "\n]\n<!-- end Breadcrumbs -->\n"
return buff
--6c2NcOVqGQ03X4Wi--