"or" conditional with part-type

Options

I have a program with 4 part-types and I need to test against 2 of them. I'm going for something like this:

If (this-part-type OR that-part-type) { DO THIS }

 

The following is what I have, and it's not working. Any insight or advice would be greatly appreciated!

 

[[?

     [[?xParty Hostx::x[[S48:0:smileytongue:art-type]]]]

     [[?xOmega Psi Phix::x[[S48:0:smileytongue:art-type]]]]::T::

     DOING STUFF

]]

 

For what it's worth, the following checks against 1 part type and works as expected:

[[?xParty Hostx::x[[S48:0:smileytongue:art-type]]x::

     DOING STUFF

]]

 

Tagged:

Comments

  •  

    [[?

         [[?xParty Hostx::x[[S48:0:smileytongue:art-type]]x::T::F]]

         [[?xOmega Psi Phix::x[[S48:0:smileytongue:art-type]]x::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

     

    / Not Tested.

  • Brian Mucha:

     

    [[?

         [[?xParty Hostx::x[[S48:0:smileytongue:art-type]]x::T::F]]

         [[?xOmega Psi Phix::x[[S48:0:smileytongue:art-type]]x::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

     

    / Not Tested.

    I tried this with no luck. I also tried a few variations, again with no success.

     

    Thank you for your assistance, and nice Alphonse avatar. I'm assuming no relation?

  • Dustin Rambo:

    I tried this with no luck. I also tried a few variations, again with no success.

     

    Thank you for your assistance, and nice Alphonse avatar. I'm assuming no relation?

    Okay, I took a closer look and the syntax looks right. I'd usually order it like this, but there is no real difference.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type]]x::xParty Hostx::T::F]]

         [[?x[[S48:0:smileytongue:art-type]]x::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    Conditionals read like this:

     

    If THIS contains THAT return A else B

     

    So what I would test first is what your S-Tag is actually returning. Put this in your page...

     

    <p>Part-Type: x[[S48:0:smileytongue:art-type]]x</p>

     

    ...and make sure that it displays as...

     

    Part-Type: xParty Hostx

     

    These are case sensitive, so it might be safer to use part-type-id instead.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type-id]]x::x1234x::T::F]]

         [[?x[[S48:0:smileytongue:art-type-id]]x::x5678x::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    / No relation to my knowledge, but I pretend there is. :smileyhappy:

    // Kudo for knowing Alphonse

    /// Slashies!

  • Brian Mucha:

    Okay, I took a closer look and the syntax looks right. I'd usually order it like this, but there is no real difference.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type]]x::xParty Hostx::T::F]]

         [[?x[[S48:0:smileytongue:art-type]]x::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    Conditionals read like this:

     

    If THIS contains THAT return A else B

     

    So what I would test first is what your S-Tag is actually returning. Put this in your page...

     

    <p>Part-Type: x[[S48:0:smileytongue:art-type]]x</p>

     

    ...and make sure that it displays as...

     

    Part-Type: xParty Hostx

     

    These are case sensitive, so it might be safer to use part-type-id instead.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type-id]]x::x1234x::T::F]]

         [[?x[[S48:0:smileytongue:art-type-id]]x::x5678x::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    / No relation to my knowledge, but I pretend there is. :smileyhappy:

    // Kudo for knowing Alphonse

    /// Slashies!

    That makes perfect sense, I will tinker with it and see what I come up with. Thank you very, very much!

  • Dustin Rambo:

    That makes perfect sense, I will tinker with it and see what I come up with. Thank you very, very much!

    Good news is that the session tag is returning the correct values

     

    Bad news is that something isn't working as expected. maybe it's the conditional, maybe not.

     

    Let me ask a silly question;

     

    The way i've got the code structured, would the "Doing Stuff" portion execute for either part-type, or does the first part-type map to "doing stuff" and the second to "doing nothing"?

     

    I was thinking it was something like

    if(part type == this OR part type == that) {do stuff}

    else { do nothing}

     

    But it seems i'm getting 

    if (part type == this) {

         do stuff

    }else {

         if(part type == that) {

              do nothing

         }

    }

     

    Pardon my loose pseudo code

     

    I appreciate your help, either way!

  • Dustin Rambo:

    Good news is that the session tag is returning the correct values

     

    Bad news is that something isn't working as expected. maybe it's the conditional, maybe not.

     

    Let me ask a silly question;

     

    The way i've got the code structured, would the "Doing Stuff" portion execute for either part-type, or does the first part-type map to "doing stuff" and the second to "doing nothing"?

     

    I was thinking it was something like

    if(part type == this OR part type == that) {do stuff}

    else { do nothing}

     

    But it seems i'm getting 

    if (part type == this) {

         do stuff

    }else {

         if(part type == that) {

              do nothing

         }

    }

     

    Pardon my loose pseudo code

     

    I appreciate your help, either way!

    I think it should work for either. Lets walk through this.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type]]x::xParty Hostx::T::F]]

         [[?x[[S48:0:smileytongue:art-type]]x::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    Say the Part Type is 'Party Host'. So that S48 tag evaluates to this:

     

    [[?

         [[?xParty Hostx::xParty Hostx::T::F]]

         [[?xParty Hostx::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    So, the first conditional is true and the second is false. (If xParty Hostx contains xParty Hostx then T else F)

     

    They would evaluate to this:

     

    [[?

         T

         F

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    That means... If TF contains T then Do Stuff else Do Nothing.

     

    If the PartType was Omega Psi Phi it would be If FT contains T then Do Stuff else Do Nothing.

     

    Since both TF and FT contain T, the DOING STUFF block should be returned in both cases.

     

    And if Part Type was neither, then it would be If FF contains T then Do Stuff else Do Nothing. (And presumably your DOING NOTHING block is actually empty.)

  • Brian Mucha:

    I think it should work for either. Lets walk through this.

     

    [[?

         [[?x[[S48:0:smileytongue:art-type]]x::xParty Hostx::T::F]]

         [[?x[[S48:0:smileytongue:art-type]]x::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    Say the Part Type is 'Party Host'. So that S48 tag evaluates to this:

     

    [[?

         [[?xParty Hostx::xParty Hostx::T::F]]

         [[?xParty Hostx::xOmega Psi Phix::T::F]]

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    So, the first conditional is true and the second is false. (If xParty Hostx contains xParty Hostx then T else F)

     

    They would evaluate to this:

     

    [[?

         T

         F

    ::T::

         DOING STUFF

    ::

         DOING NOTHING

    ]]

     

    That means... If TF contains T then Do Stuff else Do Nothing.

     

    If the PartType was Omega Psi Phi it would be If FT contains T then Do Stuff else Do Nothing.

     

    Since both TF and FT contain T, the DOING STUFF block should be returned in both cases.

     

    And if Part Type was neither, then it would be If FF contains T then Do Stuff else Do Nothing. (And presumably your DOING NOTHING block is actually empty.)

    Oooh, ok, I see. You really helped me to see what I was missing. I was brought up in Java and this is quite different from the if else statements that I am used to.

     

    I'll be able to make good use of this, thanks a million!

  • Dustin Rambo:

    Oooh, ok, I see. You really helped me to see what I was missing. I was brought up in Java and this is quite different from the if else statements that I am used to.

     

    I'll be able to make good use of this, thanks a million!

    Great!

     

    Yeah, S-Tags and conditionals are pretty weird.

Categories