[Zope] checking for elements in a list

Peter Bengtsson peter at fry-it.com
Sun Dec 4 19:30:52 EST 2005


I suggest you try a little scripting language called Python.
You can use in inside Zope by creating Python Scripts (formal name:
Script (Python))
Try to stay away from DTML as much as possible. It's only about as
good as PHP alone.

On 12/4/05, Christopher Rivard <chris at chrisrivard.com> wrote:
> Thanks Peter,
>
> The conditional within the dtml did the trick.
> This is a continuation of this issue (a bit cumbersome):
>
> http://groups.yahoo.com/group/zope/message/150345
>
> The solution that I have come to is to simply set a cookie and serve up
> the correct fields based on the cookie:
>
> <dtml-if "17 in list_map_dir_id and 21 not in list_map_dir_id">
> <dtml-call "RESPONSE.setCookie(list_type,'lodge')">
> <dtml-elif "21 in list_map_dir_id and 17 not in list_map_dir_id">
> <dtml-call "RESPONSE.setCookie(list_type,'resto')">
> <dtml-elif "21 in list_map_dir_id and 17 in list_map_dir_id">
> <dtml-call "RESPONSE.setCookie(list_type,'restolodge')">
> <dtml-else>
> <dtml-call "RESPONSE.setCookie(list_type,'other')">
> </dtml-if>
>
> <dtml-in insert_listing1_sql>
> id: <dtml-var newid>
> <dtml-call "REQUEST.set('list_map_list_id', newid)">
> </dtml-in>
> <dtml-call insert_listing_map_sql>
> <dtml-call
> "RESPONSE.redirect('add_listing2?list_id=%s'%(REQUEST['list_map_list_id']))">
>
>
> add_listing2 is the form that displays restaurant specific fields
> (price, cc's accepted) or lodge (type, price range, internet access) or
> both...those tricky motel/restaurants in rural NM...
>
> It seems that if I try this after the list is inserted, it comes out of
> MySQL as a string, not integer and therefore I could not iterate to
> check membership in the list.
>
> I am sure there are more elegant ways to do this  - the client wanted
> the data in a RDBMS for portability....yah yah yah....
>
> Thanks for you help!
> Chris
>
> Christopher Rivard
> Clearwired Web Services
>
> 5345 Wyoming NE Suite 200C
> Albuquerque, NM 87109
>
> office/ 505.217.3505
> mobile/ 505.301.4010
> toll-free/ 866.430.2832
> fax/ 505.217.3506
>
> e/ chris at clearwired.com
> w/ www.clearwired.com
>
>
>
>
> Peter Bengtsson wrote:
>
> >On 12/4/05, J Cameron Cooper <zope-l at jcameroncooper.com> wrote:
> >
> >
> >>Christopher Rivard wrote:
> >>
> >>
> >>>Hello,
> >>>
> >>>I'm am trying to check for the membership of items in a list and think
> >>>I'm missing something.
> >>>How is this done in dtml?
> >>>
> >>>List allids: [15,16,17,18]
> >>>
> >>>Check for multiple items in the list:
> >>>
> >>><dtml-in allids prefix="loop">
> >>><dtml-if expr="loop_item == 17">
> >>>something
> >>><dtml-elif expr="loop_item == 17 and loop_item != 18">
> >>>doesn't work
> >>></dtml-if>
> >>></dtml-in>
> >>>
> >>>The goal is to check for combinations:
> >>>17 and not 18
> >>>18 only
> >>>17 only
> >>>17 and 15
> >>>18 and 16
> >>>...combinations.
> >>>
> >>>I don't think that I really want to loop through the list, just want to
> >>>check membership in the list.
> >>>
> >>>
> >>In Python, you can simply ask::
> >>
> >>   17 in allids
> >>
> >>   18 not in allids
> >>
> >>and so forth as boolean expressions.
> >>
> >>
> >>
> >He can do this in DTML too.
> ><dtml-if "17 in allids">
> >  you're here!
> ></dtml-if>
> >
> >
> >
> >>Just make sure that the elements of the list you're getting are what you
> >>think they are. If you ask about the integer 17 and the list actually
> >>has a string "17" they won't match. You can either adjust what you test
> >>or use something like the 'int' function to "cast".
> >>
> >>                --jcc
> >>--
> >>Building Websites with Plone
> >>http://plonebook.packtpub.com/
> >>_______________________________________________
> >>Zope maillist  -  Zope at zope.org
> >>http://mail.zope.org/mailman/listinfo/zope
> >>**   No cross posts or HTML encoding!  **
> >>(Related lists -
> >> http://mail.zope.org/mailman/listinfo/zope-announce
> >> http://mail.zope.org/mailman/listinfo/zope-dev )
> >>
> >>
> >>
> >
> >
> >--
> >Peter Bengtsson,
> >work www.fry-it.com
> >home www.peterbe.com
> >hobby www.issuetrackerproduct.com
> >
> >
> >
> >
> >
>
>


--
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com


More information about the Zope mailing list