I have foreach loop
{foreach from=$rootCategories item=category}
<li id="parentCategory" data-category="{$category.id_category}">
<span>
<img alt="{$category.name}" src="{$base_dir}img/c/{$category.id_category}.jpg" width='46' height='26'>
<h1>{$category.name}</h1>
</span>
</li>
{/foreach}
Current output is:
Ajp Alter beta black cpanle cupa
I want it to be
A Ajp Alter
B beta black
C cpanle cupa
I have used that code in foreach
$lastFoundLetter = '';
$firstLetter = {$category.name|substr:0:1}
{if {$firstLetter} != {$lastFoundLetter}} //you've started a new letter category
{if {$lastFoundLetter} != ''} //if there's a real value in $lastFoundLetter, we need to close the previous div </div>
{/if }
<div id="{$firstLetter}"> {$firstLetter} "<br/>"
{ $lastFoundLetter} = {$firstLetter}; </div>
{/if}
but its not working i think i have used wrong code.Guys plz help me
Code for changed question :
{assign var = 'lastFoundLetter' value= ''}
{foreach from=$rootCategories item=category}
{assign var = 'curFirstLetter' value= {$category.name|substr:0:1|upper}}
{if $curFirstLetter neq $lastFoundLetter}
{if $lastFoundLetter neq ''}<br />{/if}
{$curFirstLetter}
{assign var = 'lastFoundLetter' value=$curFirstLetter}
{/if}
{$category.name}
{/foreach}
That code will do what you want:
{assign var = 'lastFoundLetter' value= ''}
{foreach from=$rootCategories item=category}
{assign var = 'curFirstLetter' value= {$category.name|substr:0:1|upper}}
{if $curFirstLetter neq $lastFoundLetter}
{$curFirstLetter}
{assign var = 'lastFoundLetter' value=$curFirstLetter}
{$category.name}
{else}
{$category.name}
{/if}
<br />
{/foreach}
It was tested in newest Smarty 3.1.18
Result for this code is:
A Ajp
Alter
B beta
black
C cpanle
cupa
so the same you expected