Корзина с падежами

Дополнение заменяет в корзине единообразное "товар(ов)" на "товар, товара, товаров" в зависимости от количества товара.

В принципе, это функция, которую можно использовать и в других аналогичных местах.
Более того, по умолчанию она вообще со "штуками" работает (штука, штуки, штук), если не задать массив других трех вариантов.

1. в файл cart_functions.php добавляем функцию
function name_on_total ($num = 0, $name1 = 'штука', $name2 = 'штуки', $name3 = 'штук')
{
if (in_array($num%100,array(11,12,13,14))) return $name3;
$suffix = $num%10;
if (in_array($suffix,array(1))) return $name1;
if (in_array($suffix,array(2,3,4))) return $name2;
return $name3;
}

2. в файле cart.php заменяем строку
$GLOBALS['_RESULT'] = array( "shopping_cart_value" => $k, "shopping_cart_value_shown" => show_price($k), "shopping_cart_items" => $cnt );
на
$GLOBALS['_RESULT'] = array( "shopping_cart_value" => $k, "shopping_cart_value_shown" => show_price($k), "shopping_cart_items" => $cnt, "shopping_cart_name" => name_on_total($cnt,'товар','товара','товаров'));

3. в файле head.tpl.html в JS-функции doCart заменяем
doCart_act2
на
req["shopping_cart_name"]

4. в файле shopping_cart_info.tpl.html заменяем
{$smarty.const.CART_CONTENT_NOT_EMPTY}
на
{$shopping_cart_items|name_on_total:"товар":"товара":"товаров"}