Help required to correct my Switch condition code

Author Message

SathishKumar Subramanian

Thursday 18 December 2003 1:46:31 am

Hi,

I am using the following code. In this code, If either the total count of resources or the articles count greater than 0 then I am trying to publish the html content in the switch condition. If the resource count is greater than 0 then I want to publish the Message 1. Similarly if the articles count greater than 0 then I want to publish the Message 2.

The {switch match=$:totRes:totalResources} condition is not checking the required validation. So I am getting the Message 1 and 2 in all conditions eventhough total resources or total articles are 0.

The code is:

{*Get total Count of Study Materials*}
{let name=totRes totalResources=fetch('content','list_count', hash('parent_node_id',$node.node_id,'class_filter_array',array(17),'class_filter_type','include'))}

{*Get total Count of Articles*}
{let name=totArt totalArticles=fetch('content','list_count', hash('parent_node_id',$node.node_id,'class_filter_array',array(2),'class_filter_type','include'))}

{section show=(or(gt($totRes:totalResources,0),gt($totRes:totArt:totalArticles,0)))}

{switch match=$:totRes:totalResources}
{case match=gt(0)}
<table><tr><td>Message 1 </td></tr></table>
{/case}
{/switch}

{switch match=$:totRes:totArt:totalArticles}
{case match=gt(0)}
<table><tr><td>Message 2 </td></tr></table>
{/case}
{/switch}

{/section}
{/let}
{/let}

Pls help to correct the problem. Thanx in Advance :)

Sathizh

Tore Skobba

Thursday 18 December 2003 2:23:37 am

Hi

Have you tried to debug with writting out the actual values of your variables?

Try this:

{*Get total Count of Study Materials*}
{*Get total Count of Articles*}
{let totalResources=fetch('content','list_count', hash('parent_node_id',$node.node_id,'class_filter_array',array(17),'class_filter_type','include'))

totalArticles=fetch('content','list_count', hash('parent_node_id',$node.node_id,'class_filter_array',array(2),'class_filter_type','include'))

}

Debug: totRes: {$totalResources}
Debug totArt: {$totalArticles}

{section show=gt($totalResources,0)}
<table><tr><td>Message 1 </td></tr></table>
{/section}

{section show=gt($totalArticles,0)}
<table><tr><td>Message 2 </td></tr></table>
{/section}

{/let}

SathishKumar Subramanian

Thursday 18 December 2003 2:39:59 am

Hi,

Sorry, I have missed one more info.
Inside the {section show=(or(gt($totRes:totalResources,0),gt($totRes:totArt:totalArticles,0)))} I am having additional html contents rather than message 1 and 2. So if the total resources or articles count greater than 0 then they should be shown .
So the section before the switch conditions are required.

sathizh

Tore Skobba

Thursday 18 December 2003 6:44:32 am

then just insert this?

{section show=or(gt($totalResources,0),gs($totalArticles,0))}
Common stuff
{/section}

Or alternatively if objective to minimize conditional branches

{section show=gt($totalResources,0)}
Write common stuff
<table><tr><td>Message 1 </td></tr></table>
{/section}

{section show=gt($totalArticles,0)}
Write common stuff
<table><tr><td>Message 2 </td></tr></table>
{/section}

But you should print out your values to check that they are ok.

cheers
Tore

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.