Перейти к содержанию
Официальный форум поддержки Simpla

Склонение слова в зависимости от полученного числа


Рекомендуемые сообщения

Ребят, привет.

 

Есть вывод количества товаров в категории. Выглядит так:  Найдено {$total_products_num} товаров

 

Нужно изменить слово "товаров" на нужный падеж и число в зависимости от их количества. 

Чтобы получалось так:

 

Если товар 1: Найдено 1 товар

Если товаров 2-4: Найдено [N] товара

Если товаров 5-20:  Найдено [N] товаров

Если товаров 21, 31, 41 и т.д.: Найдено [N] товар

Если товаров 22-24, 32-34, 42-44 и т.д.: Найдено [N] товара

Если товаров 25-30, 35-40, 45-50 и т.д.: Найдено [N] товаров

 

Подскажите, как красиво прописать это условие? Или хотя бы в какую сторону копать? 

А то не знаю даже как сформулировать запрос в Гугл)

 

Ссылка на сообщение
Поделиться на другие сайты

Ребят, хотел судьбу обмануть, но не тут то было.

 

Изначально не все описал, думал это не важно — вместо "товар", "товаров", "товара" у меня для каждой категории созданы дополнительные поля и прописаны переменные. Идея такова, чтобы например для категории "Телевизоры" выводилось "телевизор", "телевизоров", "телевизора".

 

Это подразумевает вывод этих переменных таким образом: {$category->peremennaya_1}, {$category->peremennaya_2}, {$category->peremennaya_3}

 

Но включить вывод этих переменных в предложенную конструкцию не получается... Как можно обойти ситуацию?

Ссылка на сообщение
Поделиться на другие сайты

Ребят, хотел судьбу обмануть, но не тут то было.

 

Изначально не все описал, думал это не важно — вместо "товар", "товаров", "товара" у меня для каждой категории созданы дополнительные поля и прописаны переменные. Идея такова, чтобы например для категории "Телевизоры" выводилось "телевизор", "телевизоров", "телевизора".

 

Это подразумевает вывод этих переменных таким образом: {$category->peremennaya_1}, {$category->peremennaya_2}, {$category->peremennaya_3}

 

Но включить вывод этих переменных в предложенную конструкцию не получается... Как можно обойти ситуацию?

 

Можно

 

1 вариант:

создать в таблице s_categories добавить поле name_cases 

в нем хранить сериализированные значения для названия категории

 

На бекенде их десериализировать и выводить массивом уже после plural

 

2 вариант

использовать решение от Мишани и получать дял каждого слова его падежи (из БД или из АПИ если в БД нет),

записать в массив и выводить после plural

 

...

 

1 подразумевает, что руками в админке нужно будет забить все значения

2 автоматом сам подтянет — в принципе можно подтягивать падежные слова и писать также сериализированным в БД

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

Можно

 

1 вариант:

создать в таблице s_categories добавить поле name_cases 

в нем хранить сериализированные значения для названия категории

 

На бекенде их десериализировать и выводить массивом уже после plural

 

2 вариант

использовать решение от Мишани и получать дял каждого слова его падежи (из БД или из АПИ если в БД нет),

записать в массив и выводить после plural

 

...

 

1 подразумевает, что руками в админке нужно будет забить все значения

2 автоматом сам подтянет — в принципе можно подтягивать падежные слова и писать также сериализированным в БД

 

Вы не верно поняли вопрос. В базе уже созданы нужные поля, и заполнены.

 

Вопрос в том, как это вывести в шаблоне сайта...

 

Не могу же я прописать:  

 

Найдено {$total_products_num} {$total_products_num|plural:'{$category->peremennaya_1}':'{$category->peremennaya_2}':'{$category->peremennaya_3}'} - так не работает...

Ссылка на сообщение
Поделиться на другие сайты

Вы не верно поняли вопрос. В базе уже созданы нужные поля, и заполнены.

 

Вопрос в том, как это вывести в шаблоне сайта...

 

Не могу же я прописать:  

 

Найдено {$total_products_num} {$total_products_num|plural:'{$category->peremennaya_1}':'{$category->peremennaya_2}':'{$category->peremennaya_3}'} - так не работает...

Внутри скобок не должно быть, одна в начале и одна в конце.
Ссылка на сообщение
Поделиться на другие сайты

Найдено {$total_products_num} {$total_products_num|plural:$category->peremennaya_1:$category->peremennaya_2:$category->peremennaya_3}

 

Огонь, работает! Благодарю!

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

А подскажите пожалуйста текст вот этой функции: {$total_products_num}

Как мне вывести количество товара при поиске, либо в определенной категории?

Ссылка на сообщение
Поделиться на другие сайты

А подскажите пожалуйста текст вот этой функции: {$total_products_num}

 

Вопрос некорректный, ибо это не функция.

 

Как мне вывести количество товара при поиске, либо в определенной категории?

 

Уже дан в теме ответ, и даже в нескольких местах - #2, #3, #8...

Ссылка на сообщение
Поделиться на другие сайты

Вопрос некорректный, ибо это не функция.

 

 

Уже дан в теме ответ, и даже в нескольких местах - #2, #3, #8...

Ага, спасибо. Сначала думал, что это вручную написано было

Изменено пользователем kossik
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...