[Zope] Re: Adding a new property over http

Jon Franz jfranz@one.net
Fri, 15 Sep 2000 09:41:07 -0400


Heres a snip of DTML that adds a property to the parent if the property
doesn't exist.
If you create a ZClass with this, it will modify the parent folder when
called from
within a DTML document, if you do it as a DTML Method, it will modify the
parent document.

>>>
<dtml-if "hasProperty('z_count')">
   <dtml-call "REQUEST.set('z_count', z_count + 1)">
   <dtml-call "manage_changeProperties(REQUEST)">
<dtml-else>
   <dtml-call "manage_addProperty('z_count', 1, 'int' )">
</dtml-if>
<<<

Now, if you wanted to Take a variable in a form (or link), and make it a
property like in your example, you're method would look like this, Assuming
the form had fields to pass the values as 'NewName:string' and
'NewValue:tokens', or your calling link ends with
?NewName:string=foo&NewValue:tokens=mytokens

>>>
<dtml-if "hasProperty(NewName)">
   <dtml-call "REQUEST.set(NewName, NewValue)">
   <dtml-call "manage_changePRoperties(REQUEST)">
<dtml-else>
   <dtml-call "manage_addProperty(NewName, NewValue)">
</dtml-if>
<<<

I hope this helps!  Now if only someone could answer why the behaivor
changes between having it as a DTML method and a ZClass! (And how to fix
it!)

    Message: 5
    From: "Jason Cunliffe" <jasonic@nomadicsltd.com>
    To: <zope@zope.org>
    Subject: [Zope] Adding a new property over http
    Date: Thu, 14 Sep 2000 15:00:41 -0400
    charset="iso-8859-1"
    
    Hello
    
    I asked this in longer form before, but it fell by the way I think..
    
    How to add a property to a containing folder.
    Looking for DTML or External Method way to do this.
    
    We need a Method to to add a new folder property assigning an 'Id' =
    <somename> adn 'type' = 'tokens'.
    We need to be able to do this by passing the variable <somename> over
http.
    
    thanks
    - Jason