Перейти к содержимому


[дополнение] корзина с падежами


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 14 October 2014 - 07:55 PM

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

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


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:"товар":"товара":"товаров"}
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)