Great, I should test this code tonight !
some more question : id don't understand the two different usage  of __getitem__
and __bobo_traverse__. __bobo_traverse__ seems to be a way to control
url walk and __getitem__ control the way attributs can be load by zope.

If I change the URL when I use __bobo_traverse__ it works, and if I change the way
I'm searching attributs in zope object tree it works too. Is it correct ?


2008/3/26, Martijn Jacobs <martijn@fourdigits.nl>:

If you have a zope product you can do something like this indeed :

class MyContainer(Folder):
   """My Folderish Product"""

   def mydoc_xls(self, REQUEST=None):
      """My new xls method"""
      return "My new xls method"

   def __getitem__(self, key):
      """Check for mydoc.xls, then return mydoc_xls"""
      if key == 'mydoc.xls':
           return self.mydoc_xls
      return super(Folder, self).__getitem__(key)




Hi!
Hey, Tres, could you point us to a web example or a web page with more information about that technique?
I'm very interested on it and the technique that was introduced sometime ago about how to return a string as __bobo_traverse__ response but the example was uncompleted (for me at least)

This kind of information was very useful for many of us but there are no good tutorial or how-to

Thanks a lot!

2008/3/26, Tres Seaver <tseaver@palladion.com>:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Martijn Jacobs wrote:
> Maybe a simple solution  :
>
> Do you use apache as a frontend for your zope? If you do you can rewrite
> the incoming url's for example like this :
>
> RewriteEngine On
> RewriteRule ^/folder/mydoc.xls(.*)
> http://localhost:8080/VirtualHostBase/http/myIntranet/object_in_zope/VirtualHostRoot/mydoc_xls$1
> [L,P]


Or add a '__getitem__' to your class that looks for that key and returns
the right method.


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver@palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFH6ZfK+gerLs4ltQ4RAgdjAJ9bwmIjAbqkG1YKUyrgbKSG47FlXgCdHW+P
GzL6mjcA1K8t9Q/5Y75tfF4=
=mySN
-----END PGP SIGNATURE-----


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
  http://mail.zope.org/mailman/listinfo/zope-announce
  http://mail.zope.org/mailman/listinfo/zope-dev )



--
Mis Cosas
http://blogs.sistes.net/Garito
Zope Smart Manager
http://blogs.sistes.net/Garito/670


_______________________________________________
Zope maillist - Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )


-- 
Martijn Jacobs
Four Digits, Internet Solutions

a: Willemsplein 15-1 6811 KB Arnhem NL
kvk: 091621370000 | btw: 8161.22.234.B01
e-mail: martijn@fourdigits.nl | web: http://www.fourdigits.nl
tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117

_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )