Здравствуйте.
Думаю, многие из вас сталкивались с проблемой склонения существительных в зависимости от какого-либо числа. Например, “15 дней”. А если будет 21, выводить “21 дней”? Для решения этой проблемы написано множество функций, но я не встречал реализации в виде помощника Zend_View. Итак, встречайте: App_View_Helper_Plural.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Helper_View_Plural extends Zend_View_Helper_Abstract { public function plural($n, $form1, $form2, $form3) { $plural = ($n % 10 == 1 && $n % 100 != 11 ? 0 : ($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 or $n % 100 >= 20) ? 1 : 2)); switch($plural) { case 0: default: return $form1; case 1: return $form2; case 2: return $form3; } } } |
Использование (в шаблоне):
1 2 3 |
Вывод:
1 день
4 дня
25 дней
Надеюсь, этого поможет вам сделать ваши проекты более удобными для пользователей.
Всего доброго.