[Zope] Where do I find out about cookies?

R. David Murray bitz@bitdance.com
Fri, 25 Aug 2000 09:41:51 -0400 (EDT)


On Fri, 25 Aug 2000, Jean Jordaan wrote:
>     <dtml-if "REQUEST.form.has_key('sort_key')">
>         <dtml-call "REQUEST.set('sort_key', REQUEST.form['sort_key'])">
>         <dtml-call "RESPONSE.setCookie('sort_key',
> REQUEST.form['sort_key'])">
>     <dtml-else>
>         <dtml-if "REQUEST.cookies.has_key('sort_key')">
>             <dtml-call "REQUEST.set('sort_key',
> REQUEST.cookies['sort_key'])">
>         <dtml-else>
>             <dtml-call "RESPONSE.setCookie('sort_key', 'title')">
>             <dtml-call "REQUEST.set('sort_key', 'title')">
>         </dtml-if "REQUEST.cookies.has_key['sort_key']">
>     </dtml-if "REQUEST.form.has_key('sort_key')">
[...]
>     <dtml-if "sort_key=='title'">

Since anything in any of the REQUEST dictionaries is on the name space
stack, you should be able to reduce the above IF block to:

<dtml-if sort_key>
  <dtml-if "REQUEST.form.has_key('sort_key')">
    <dtml-call "RESPONSE.setCookie('sort_key',REQUEST.form['sort_key'])">
  </dtml-if>
</dtml-else>
  <dtml-call "REQUEST.set('sort_key','title')">
  <dtml-call "RESPONSE.setCookie('sort_key','title')">
</dtml-if>

If the 'cookie' dictionary is "closer" than the 'form' dictionary in the
namespace stack you'd need to stick one more REQUEST.set in the
inner if.

Obviously, I haven't tested this :)

--RDM