Добрый день!
У меня в представлениях есть поле {{ field_fru }}, это число, я его скрываю и вывожу в пользовательском поле, например:
У меня есть {{ field_fru }} фруктов.
Т.е. могут быть варианты:
У меня есть 1 фрукт.
У меня есть 2 фрукта.
У меня есть 5 фруктов.
Знаю, там в представлении есть множественные настройки, но это не то. В русском языке слово может принимать 3 варианта склонения, а в настройках только 2 можно настроить.
Как можно сделать, чтобы слово "фрукты" (и все остальные слова) склонялось правильно, в зависимости от числа в поле field_fru? Может какой-нибудь php-код прямо в пользовательское поле добавить или другой способ более оптимальный есть?
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Для русского языка проще всего использовать функцию для склонения слов по числу, прямо в пользовательском поле с PHP в Drupal Views. Пример:
<?phpfunction plural_form($number, $forms) {
// $forms = ['фрукт', 'фрукта', 'фруктов']
$number = abs($number) % 100;
$n1 = $number % 10;
if ($number > 10 && $number < 20) return $forms[2];
if ($n1 > 1 && $n1 < 5) return $forms[1];
if ($n1 == 1) return $forms[0];
return $forms[2];
} $count = (int) $row->field_field_fru[0]['raw']['value']; // или как у вас field_fru доступен
$word = plural_form($count, ['фрукт', 'фрукта', 'фруктов']);
print
"У меня есть $count$word.";?>
ignatev, спасибо, что-то подобное как раз хотелось). Буду пробовать.
А может программирование в другом месте задействовать?
Почему нельзя сделать поле с падежами или склонениями?