Page 1 of 1

[OPGELOST] dubbele if/else smarty werkt niet

Posted: Tue Oct 05, 2010 8:15 pm
by brentnl
Hallo, ik heb de volgende code geschreven, maar enkel de eerst div krijgt inhoud zegmaar.. Dat komt volgens mij omdat ik dezelfde if/else functie gebruik.. hoe kan ik dit voorkomen?

Code: Select all

	<div>
	{if $item->locatie_namevalue === 'Lunenburg'}
	{cms_module module="verkoopsysteem" query="3"}
	{elseif $item->locatie_namevalue === 'De Linde'}
	{cms_module module="verkoopsysteem" query="11"}
	{elseif $item->locatie_namevalue === 'Ambianz'}
	{cms_module module="verkoopsysteem" query="5"}
	{elseif $item->locatie_namevalue === 'De Kelder'}
	{cms_module module="verkoopsysteem" query="1"}
	{elseif $item->locatie_namevalue === 'The Level'}
	{cms_module module="verkoopsysteem" query="13"}
	{else}
	<p>Er zijn nog geen promotors bekend voor dit feest.</p>
	{/if}
	</div>
	
	<div>
	{if $item->locatie_namevalue === 'Lunenburg'}
	{cms_module module="verkoopsysteem" query="8" listtemplate="winkels"}
	{elseif $item->locatie_namevalue === 'De Linde'}
	{cms_module module="verkoopsysteem" query="10" listtemplate="winkels"}
	{elseif $item->locatie_namevalue === 'Ambianz'}
	{cms_module module="verkoopsysteem" query="9" listtemplate="winkels"}
	{elseif $item->locatie_namevalue === 'De Kelder'}
	{cms_module module="verkoopsysteem" query="7" listtemplate="winkels"}
	{elseif $item->locatie_namevalue === 'The Level'}
	{cms_module module="verkoopsysteem" query="14" listtemplate="winkels"}
	{else}
	<p>Er zijn nog geen winkels bekend voor dit feest.</p>
	{/if}
	</div>

Re: dubbele if/else smarty werkt niet

Posted: Tue Oct 05, 2010 9:41 pm
by Jos
Probeer het eens met == in plaats van ===

Re: dubbele if/else smarty werkt niet

Posted: Tue Oct 05, 2010 9:44 pm
by brentnl
Jos wrote: Probeer het eens met == in plaats van ===
geen verschil. had ik zelf namelijk ook al geprobeerd helaas..

Re: dubbele if/else smarty werkt niet

Posted: Tue Oct 05, 2010 10:22 pm
by Jos
Het moet in dit geval wel == zijn...

Maar om op je probleem terug te komen.. het kan zijn dat de smarty variabele $item->locatie_namevalue zijn waarde verliest na de aanroep van {cms_module module="verkoopsysteem" query="..."}

Wat je kunt doen is de waarde van $item->locatie_namevalue eerst in een andere variabele zetten, en vervolgens die variabele in je if-statements gebruiken.

Dat doe je met bijvoorbeeld

Code: Select all

{assign var='mypromotor' value=$item->locatie_namevalue}
waarna je de variabele $mypromotor beschikbaar hebt.

zie ook http://www.smarty.net/manual/en/languag ... ion.assign

Re: dubbele if/else smarty werkt niet

Posted: Tue Oct 05, 2010 10:35 pm
by brentnl
dat ik daar niet zelf aan gedacht heb... het werkt inderdaad. thanks!  ;D

Hoe kan alleen zo'n standaard tag als $item->..  zijn 'waarde' verliezen?

Re: [OPGELOST] dubbele if/else smarty werkt niet

Posted: Wed Oct 06, 2010 3:29 pm
by Jos
De module-aanroep zorgt ervoor dat er smarty-variabelen worden gedefinieerd. Dat kan dus ook heel makkelijk de variabele $item betreffen, waardoor die dus overschreven wordt met andere waarden.

vandaar...