Bitrix PHP

Правильные окончания у перечисляемых существительных

Думаю, многим не нравится видеть надпись на сайте вроде «1 штук», «2 товаров» и т.д. Есть очень простая возможность исправить это.

Для этого нужно вывод в шаблоне обрабатывать такой функцией:

function getNumEnding($number, $endingArray)

{

$number = $number % 100;

if ($number>=11 && $number<=19)

{

$ending=$endingArray[2];

} else  {

$i = $number % 10;

switch ($i) {

case (1): $ending = $endingArray[0]; break;

case (2): case (3): case (4): $ending = $endingArray[1]; break;

default: $ending=$endingArray[2]; }

}

return $ending;

}

В случае 1С-Битрикс эту функцию нужно поместить в файл /bitrix/php_interface/init.php .

Вызывается она в шаблоне примерно следующим образом:

<?=$num?> <?=getNumEnding($num, Array(«белый кролик», «белых кролика», «белых кроликов»))?>

Соответственно:

$num — количество

Array(«белый кролик», «белых кролика», «белых кроликов») — список склонений слов для количеств 1, 2 и 5.

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

девятнадцать + пятнадцать =