Brian Lloyd wrote: <snip id is sometimes a method (not always though ;-)>
This is one of the things on my List Of Evil Things that should be changed one day in Zope3K :)
<RANT type="angry,frustrated"> How about the nasty hacky mess that is DTML? Some priceless artifacts that need to go: <dtml-var "someMethod(_, _.None, myparam)"> <dtml-call "REQUEST.set('keyname','value')"> <dtml-let x="'hello out there'"> <dtml-var "_[REQUEST['myDoc']]">What is this supposed to do?! <dtml-var "PARENTS[-1].folder.getitem(_.getitem('id',1))"> Not to mention the horribleness that is <dtml-in> and <dtml-with>. There's dtml-tree too, but hopefully I'm going to land very hard on that tomorrow and beat it into something like a decent shape ;-) While I'm at it, how about some docs for the manage_* methods in the interfaces Wiki? </RANT> Okay, seriously, DTML is really hurting Zope's chances with a lot of people/companies. DTML should be easier than, say, creating a Form in Lotus Notes or writing a component in Mason. That requries, IMHO: 1. Clear definition of when it should be used. 2. A clean, concise syntax (like Python, DTML is more like Perl right now ;-) 3. Good documentation (much easier to do if 1 and 2 are met...) I also think having Python Methods ship with Zope would really help... There are niggles (like the rediculous id problem) which you can live with, but doing anything other than the really mundane in DTML means extreme hair loss right now, which is not good. I wonder how many other people would agree with me: nevermind ZEO, or the PTK, ZPatterns or any new fancy functionality. Can we at least have a decent template language that doesn't confuse the hell out of newbies and oldbies alike... cheers, Chris (Who just spent 1/2 hour figuring out how to do a multi-language site in Zope, and now after 6hrs of trying has given up doing a recursive tree copy to get the old site into the new structure with a DTML method or two and is resorting to ugly hacky external methods because Python Methods arent' around/stable) PS: Zope: yes it makes the hard things very easy, but it makes the easy things very hard, so it all balances out nicely... ;-)