Mailing List Archive

Checking multiple variables existence
Is there any way to check if multiple variables exist in the same if
statement? Right now I am having to writing multiple nested if statements
but can be quite cumbersome... so just looking for an easier way.

Currently I'd have to write:
<dtml-if var1>
<dtml-if var2>
<dtml-if var3>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>

When it would be easier to do something like:

<dtml-if "var1 and var2 and var3">
<dtml-else>
</dtml-if>

I've tried multiple different methods to accomplish this but haven't had
any luck... so is there an easier way to check multiple variables existence
in the same check?

Thanks.
Re: Checking multiple variables existence [ In reply to ]
it works:

<dtml-if "var1=='OK' and var2==3 and var3 in ('a',1,'1') and var4 != 'OK'
and var5">

note1: var5 is string, true when <>'' nor None but must exists

note2: var5 is int, true when <>0 nor None but must exists

<dtml-else>
</dtml-if>


----- Puvodní zpráva -----
Od: Justin Dunsworth

Is there any way to check if multiple variables exist in the same if
statement? Right now I am having to writing multiple nested if statements
but can be quite cumbersome... so just looking for an easier way.


Currently I'd have to write:
<dtml-if var1>
<dtml-if var2>
<dtml-if var3>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>


When it would be easier to do something like:


<dtml-if "var1 and var2 and var3">
<dtml-else>
</dtml-if>


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: Checking multiple variables existence [ In reply to ]
These are required to be set, though.. right?

Doing:
<dtml-call "REQUEST.set('var_one','OK')">
<dtml-call "REQUEST.set('var_two','OK')">

<dtml-if "var_one=='OK' and var_two=='OK'"> Set
<dtml-else> Not Set
</dtml-if>

works but taking away var_two and I get a NameError: name 'var_two' is not
defined. This is what I'm trying to check is if they exist. Not
particularly looking to match them to anything just yet but rather just to
see if they exist. If they throw an error then it's not working.

On Tue, Jan 24, 2012 at 11:08 AM, Jaroslav Lukesh <lukesh@seznam.cz> wrote:

> it works:
>
> <dtml-if "var1=='OK' and var2==3 and var3 in ('a',1,'1') and var4 != 'OK'
> and var5">
>
> note1: var5 is string, true when <>'' nor None but must exists
>
> note2: var5 is int, true when <>0 nor None but must exists
>
> <dtml-else>
> </dtml-if>
>
>
> ----- Puvodní zpráva ----- Od: Justin Dunsworth
>
>
> Is there any way to check if multiple variables exist in the same if
> statement? Right now I am having to writing multiple nested if statements
> but can be quite cumbersome... so just looking for an easier way.
>
>
> Currently I'd have to write:
> <dtml-if var1>
> <dtml-if var2>
> <dtml-if var3>
> <dtml-else>
> </dtml-if>
> <dtml-else>
> </dtml-if>
> <dtml-else>
> </dtml-if>
>
>
> When it would be easier to do something like:
>
>
> <dtml-if "var1 and var2 and var3">
> <dtml-else>
> </dtml-if>
>
>
>
Re: Checking multiple variables existence [ In reply to ]
Yes, use like that

<dtml-unless var1>
<dtml-call "REQUEST.set('var1','')">
</dtml-unless>


----- Puvodní zpráva -----
Od: Justin Dunsworth

These are required to be set, though.. right?


Doing:
<dtml-call "REQUEST.set('var_one','OK')">
<dtml-call "REQUEST.set('var_two','OK')">


<dtml-if "var_one=='OK' and var_two=='OK'"> Set
<dtml-else> Not Set
</dtml-if>


works but taking away var_two and I get a NameError: name 'var_two' is not
defined. This is what I'm trying to check is if they exist. Not particularly
looking to match them to anything just yet but rather just to see if they
exist. If they throw an error then it's not working.


On Tue, Jan 24, 2012 at 11:08 AM, Jaroslav Lukesh <lukesh@seznam.cz> wrote:

it works:

<dtml-if "var1=='OK' and var2==3 and var3 in ('a',1,'1') and var4 != 'OK'
and var5">

note1: var5 is string, true when <>'' nor None but must exists

note2: var5 is int, true when <>0 nor None but must exists

<dtml-else>
</dtml-if>

_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: Checking multiple variables existence [ In reply to ]
Thanks for the response.

I could do that but it isn't really getting rid of the original problem.
Using my original example I'd be turning this:
<dtml-if var1>
<dtml-if var2>
<dtml-if var3>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>
<dtml-else>
</dtml-if>

into:

<dtml-unless var1>
<dtml-call "REQUEST.set('var1','')">
</dtml-unless>
<dtml-unless var2>
<dtml-call "REQUEST.set('var2','')">
</dtml-unless>
<dtml-unless var3>
<dtml-call "REQUEST.set('var3','')">
</dtml-unless>

<dtml-if "var1!='' and var2!='' and var3!=''">
<dtml-else>
</dtml-if>

Thereby increasing the lines of code used, albeit in an initially
"prettier" format when it gets down to the checking of said variables.

I figured if there was an answer for my problem then it'd be an easier
method that I just overlooked. If not then I'll just go with it.

On Tue, Jan 24, 2012 at 11:43 AM, Jaroslav Lukesh <lukesh@seznam.cz> wrote:

> Yes, use like that
>
> <dtml-unless var1>
> <dtml-call "REQUEST.set('var1','')">
> </dtml-unless>
>
>
>
> ----- Puvodní zpráva ----- Od: Justin Dunsworth
>
> These are required to be set, though.. right?
>
>
> Doing:
> <dtml-call "REQUEST.set('var_one','OK')">
> <dtml-call "REQUEST.set('var_two','OK')">
>
>
> <dtml-if "var_one=='OK' and var_two=='OK'"> Set
> <dtml-else> Not Set
> </dtml-if>
>
>
> works but taking away var_two and I get a NameError: name 'var_two' is not
> defined. This is what I'm trying to check is if they exist. Not
> particularly looking to match them to anything just yet but rather just to
> see if they exist. If they throw an error then it's not working.
>
>
> On Tue, Jan 24, 2012 at 11:08 AM, Jaroslav Lukesh <lukesh@seznam.cz>
> wrote:
>
> it works:
>
> <dtml-if "var1=='OK' and var2==3 and var3 in ('a',1,'1') and var4 != 'OK'
> and var5">
>
> note1: var5 is string, true when <>'' nor None but must exists
>
> note2: var5 is int, true when <>0 nor None but must exists
>
> <dtml-else>
> </dtml-if>
>
>