kazak Posted March 24, 2018 Report Share Posted March 24, 2018 Ребят, привет. Есть вывод количества товаров в категории. Выглядит так: Найдено {$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] товаров Подскажите, как красиво прописать это условие? Или хотя бы в какую сторону копать? А то не знаю даже как сформулировать запрос в Гугл) Quote Link to post Share on other sites
ps-simpla Posted March 24, 2018 Report Share Posted March 24, 2018 {$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'} Quote Link to post Share on other sites
Noxter Posted March 24, 2018 Report Share Posted March 24, 2018 Вот пожалуйста: Найдено {$total_products_num} {$total_products_num|plural:'товар':'товаров':'товара'} Quote Link to post Share on other sites
kazak Posted March 24, 2018 Author Report Share Posted March 24, 2018 ps-simpla, Noxter - от души, спасибо! Quote Link to post Share on other sites
kazak Posted March 24, 2018 Author Report Share Posted March 24, 2018 Ребят, хотел судьбу обмануть, но не тут то было. Изначально не все описал, думал это не важно — вместо "товар", "товаров", "товара" у меня для каждой категории созданы дополнительные поля и прописаны переменные. Идея такова, чтобы например для категории "Телевизоры" выводилось "телевизор", "телевизоров", "телевизора". Это подразумевает вывод этих переменных таким образом: {$category->peremennaya_1}, {$category->peremennaya_2}, {$category->peremennaya_3} Но включить вывод этих переменных в предложенную конструкцию не получается... Как можно обойти ситуацию? Quote Link to post Share on other sites
Maksclub Posted March 24, 2018 Report Share Posted March 24, 2018 (edited) Ребят, хотел судьбу обмануть, но не тут то было. Изначально не все описал, думал это не важно — вместо "товар", "товаров", "товара" у меня для каждой категории созданы дополнительные поля и прописаны переменные. Идея такова, чтобы например для категории "Телевизоры" выводилось "телевизор", "телевизоров", "телевизора". Это подразумевает вывод этих переменных таким образом: {$category->peremennaya_1}, {$category->peremennaya_2}, {$category->peremennaya_3} Но включить вывод этих переменных в предложенную конструкцию не получается... Как можно обойти ситуацию? Можно 1 вариант:создать в таблице s_categories добавить поле name_cases в нем хранить сериализированные значения для названия категории На бекенде их десериализировать и выводить массивом уже после plural 2 вариантиспользовать решение от Мишани и получать дял каждого слова его падежи (из БД или из АПИ если в БД нет),записать в массив и выводить после plural ... 1 подразумевает, что руками в админке нужно будет забить все значения2 автоматом сам подтянет — в принципе можно подтягивать падежные слова и писать также сериализированным в БД Edited March 24, 2018 by Maksclub Quote Link to post Share on other sites
kazak Posted March 24, 2018 Author Report Share Posted March 24, 2018 Можно 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}'} - так не работает... Quote Link to post Share on other sites
phukortsin Posted March 24, 2018 Report Share Posted March 24, 2018 Найдено {$total_products_num} {$total_products_num|plural:$category->peremennaya_1:$category->peremennaya_2:$category->peremennaya_3} Quote Link to post Share on other sites
Noxter Posted March 24, 2018 Report Share Posted March 24, 2018 Вы не верно поняли вопрос. В базе уже созданы нужные поля, и заполнены. Вопрос в том, как это вывести в шаблоне сайта... Не могу же я прописать: Найдено {$total_products_num} {$total_products_num|plural:'{$category->peremennaya_1}':'{$category->peremennaya_2}':'{$category->peremennaya_3}'} - так не работает...Внутри скобок не должно быть, одна в начале и одна в конце. Quote Link to post Share on other sites
kazak Posted March 24, 2018 Author Report Share Posted March 24, 2018 Найдено {$total_products_num} {$total_products_num|plural:$category->peremennaya_1:$category->peremennaya_2:$category->peremennaya_3} Огонь, работает! Благодарю! Quote Link to post Share on other sites
kossik Posted May 15, 2018 Report Share Posted May 15, 2018 А подскажите пожалуйста текст вот этой функции: {$total_products_num}Как мне вывести количество товара при поиске, либо в определенной категории? Quote Link to post Share on other sites
phukortsin Posted May 15, 2018 Report Share Posted May 15, 2018 А подскажите пожалуйста текст вот этой функции: {$total_products_num} Вопрос некорректный, ибо это не функция. Как мне вывести количество товара при поиске, либо в определенной категории? Уже дан в теме ответ, и даже в нескольких местах - #2, #3, #8... Quote Link to post Share on other sites
kossik Posted May 16, 2018 Report Share Posted May 16, 2018 (edited) Вопрос некорректный, ибо это не функция. Уже дан в теме ответ, и даже в нескольких местах - #2, #3, #8...Ага, спасибо. Сначала думал, что это вручную написано было Edited May 16, 2018 by kossik Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.