Для этого возьмем уже готовую функцию для склонения числительных на PHP, и зарегистрируем её в Smarty, чтобы можно было делать склонение числительных smarty.
//Немного модифицируем первоначальную функцию, чтобы она работала в Smarty
function declOfNum($params)
{
$number=$params['n'];
$titles=$params['t'];
$cases = array (2, 0, 1, 1, 1, 2);
return $number." ".$titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ];
}
//а теперь зарегистрируем в Smarty
$smarty->register_function("decl_of_num", "declOfNum");
Готово! Теперь будет работать склонение числительных smarty.
Вызывать будем вот так:
{$titles[0]='товар'}
{$titles[1]='товара'}
{$titles[2]='товаров'}
{decl_of_num n=$count_of_goods t=$titles}


