Jump to content

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


Recommended Posts

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

 

Есть вывод количества товаров в категории. Выглядит так:  Найдено {$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] товаров

 

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

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

 

Link to post
Share on other sites

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

 

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

 

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

 

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

Link to post
Share on other sites

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

 

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

 

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

 

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

 

Можно

 

1 вариант:

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

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

 

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

 

2 вариант

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

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

 

...

 

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

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

Edited by Maksclub
Link to post
Share on other sites

Можно

 

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}'} - так не работает...

Link to post
Share on other sites

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

 

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

 

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

 

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

Внутри скобок не должно быть, одна в начале и одна в конце.
Link to post
Share on other sites
  • 1 month later...

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

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

Link to post
Share on other sites

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

 

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

 

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

 

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

Link to post
Share on other sites

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

 

 

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

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

Edited by kossik
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...