Page 1 of 1

Display DIVS in random order

Posted: Fri Nov 30, 2012 9:53 am
by Joseph777
Hello

How do i display DIVS (see bellow) in random order?

Code: Select all

{content block='block_1' assign='block_1' label='1. Block' wysiwyg='false'}
{content block='block_2' assign='block_2' label='2. Block' wysiwyg='false'}
{content block='block_3' assign='block_3' label='3. Block' wysiwyg='false'}
{content block='block_4' assign='block_4' label='4. Block' wysiwyg='false'}
{content block='block_5' assign='block_5' label='5. Block' wysiwyg='false'}


{if $block_1}
<div>
{$block_1}
</div>
{/if}

{if $block_2}
<div>
{$block_2}
</div>
{/if}

{if $block_3}
<div>
{$block_3}
</div>
{/if}

{if $block_4}
<div>
{$block_4}
</div>
{/if}

{if $block_5}
<div>
{$block_5}
</div>
{/if}

Re: Display DIVS in random order

Posted: Fri Nov 30, 2012 12:07 pm
by Jos
Maybe something like this? (didn't test myself)

Code: Select all

{content block='block_1' assign='block[1]' label='1. Block' wysiwyg='false'}
{content block='block_2' assign='block[2]' label='2. Block' wysiwyg='false'}
{content block='block_3' assign='block[3]' label='3. Block' wysiwyg='false'}
{content block='block_4' assign='block[4]' label='4. Block' wysiwyg='false'}
{content block='block_5' assign='block[5]' label='5. Block' wysiwyg='false'}

{assign var=blockids value=[1,2,3,4,5]}
{capture}{$blockids|@shuffle}{/capture}

{foreach $blockids as $blockid}
{if !empty($block[$blockid])}
<div>
{$block[$blockid]}
</div>
{/if}
{/foreach}

Re: Display DIVS in random order

Posted: Fri Nov 30, 2012 1:00 pm
by Joseph777
thanks for reply

show these errors:

Code: Select all

string(129) "Smarty error: [in tpl_body:34 line 13]: syntax error: invalid attribute name: '$blockids' (Smarty_Compiler.class.php, line 1550)" string(132) "Smarty error: [in tpl_body:34 line 13]: syntax error: expecting '=' after attribute name 'as' (Smarty_Compiler.class.php, line 1558)" string(139) "Smarty error: [in tpl_body:34 line 13]: syntax error: expecting '=' after attribute name '$blockid' (Smarty_Compiler.class.php, line 1591)" string(126) "Smarty error: [in tpl_body:34 line 13]: syntax error: foreach: missing 'from' attribute (Smarty_Compiler.class.php, line 1165)" 

Re: Display DIVS in random order

Posted: Fri Nov 30, 2012 1:15 pm
by Jos
Did you copy/paste literally?
please check this part:
<div>
{$block[$blockid]}
</div>

Re: Display DIVS in random order

Posted: Fri Nov 30, 2012 1:37 pm
by Joseph777
Jos wrote:Did you copy/paste literally?
please check this part:
<div>
{$block[$blockid]}
</div>
yes