In using Zope (and Plone), I'm always amazed at how extensible the system is. I've managed to create several special macros in Plone for creating some nice helper "boxes" for my slots. BUT, the problem I always have is that while the system has lots of functionality, I never know what it is. Lots of Zope sites have comments about "see the Zope Book", but I find "the Zope Book" rather frustrating because it seems to cover things only at a conceptual level and doesn't really provide a good reference book. For example, I was working (by example) on developing a nice little box for one of my slots that would list the "Files" in the current folder (and only in the current folder). Since I was converting this from the "newsBox" macro, I saw roughly what needed to be done. I managed to find some document somewhere that covered the details of searchResults, but what I was struggling with mostly was something very simple: At the point where the macro is run, there is a variable called "here" available. Ignoring the background questions for the moment (who sets this?, is it set for all documents?, what is the "type" of this variable?), I had a very simple question. I know I have this variable, what can I do with it? I just wanted to find out the parent object and then, ultimately, the path of the parent object so that I could use that as an argument to searchResults. It took me forever to finally come up with: path='/'.join(here.aq_parent.getPhysicalPath()) because I didn't know about aq_parent, I didn't know about getPhysicalPath(), etc. It would really have helped me to know what the attributes and methods are for each of these objects. I tried using "dir", e.g.: <div tal:replace="python:dir(here)"></div> But this generated an error because it said "dir" was undefined. Is there a simple way, when working within the Zope framework, to quickly determine what methods are available on an object? Looking at the wealth of Zope code out there, I feel I must be missing something that other people are using in developing the code. Either there are some development tools are some great sources of documentation that I'm unaware of?!? -- Mike