Hi, I'm trying to create an inline interface to manage_edit. If a user is authenticated, instead of seeing the default views of each snippet of content, they get a textarea with a submit button for each snippet. I'm still new to all this, so I'm not sure how I should be going about it: a zclass with the content as a property? a product that subclasses DTMLDocument and overrides the __call__ method? I settled on creating a DTML method, "editable", which works fine if you call it from the url (code included at bottom of mail): http://mysite.com/snippet/editable Inside "editable", when I call <dtml-var __str__> the content of the parent object is returned, which is what I wanted. The plan was, whenever I had a snippet which I wanted to be editable, I would call it inside my dtml thus: <dtml-var snippet/editable> which of course doesn't work. Eventually I found I had to do... <dtml-var "snippet.editable(REQUEST)"> ...because the editable method doesn't inherit the context of snippet like it does when you call it from the URL, and I needed to authenticate the user. But now I'm finding that the <dtml-var __str__> inside the editable method is actually rendering the content of the page that the snippet is in, rather than the snippet itself. How should I call the editable method of snippet in such a way that it inherits the context of snippet rather than the context of its parent? I've tried <dtml-with snippet><dtml-var editable></dtml-with> but then editable can't access any other objects, e.g. update_content, in the folder. Perhaps I should be going about this completely differently? Thanks Seb ------------------------------ editable is a DTML method: <dtml-if "AUTHENTICATED_USER.has_role('Manager')"> <form action="update_content"> <input type="text" name="title:text" value="<dtml-var title_or_id>"> <textarea name="data:text" cols="30" rows="20"> <dtml-var __str__> </textarea> <input type="submit"> </form> <dtml-else> <dtml-var __str__> </dtml-if> update_content is an external method: def update_content(self,REQUEST): self.manage_edit(data=REQUEST.form["data"],title=REQUEST.form["title"]) return REQUEST.form["data"]