Заголовок, множественное или единственное число в зависимости от кол-ва выводимых ресурсов
Подскажите пожалуйста, есть ли что-то, что бы генерировало множественное и единственное число в зависимости от количества выводимых ресурсов через pdoResources? Например, если по заданным условиям выводится один ресурс, то заголовок «Образец», а если более одного: «Образцы». Честно гуглил, не нашел((
Заранее спасибо
Заранее спасибо
Комментарии: 11
есть модификатор
declension (decl) — склоняет слово, следующее за числом по правилам русского языка. Например: 1 яблоко, 2 яблока, 10 яблок. Вторым параметром указывается выводить ли само число, по умолчанию выводится только подходящий вариант слова. Разделитель вариантов можно задавать третьим параметром, по умолчанию |
declension (decl) — склоняет слово, следующее за числом по правилам русского языка. Например: 1 яблоко, 2 яблока, 10 яблок. Вторым параметром указывается выводить ли само число, по умолчанию выводится только подходящий вариант слова. Разделитель вариантов можно задавать третьим параметром, по умолчанию |
{6 | declension : 'яблоко|яблока|яблок'} // яблок
{3 | declension : 'яблоко|яблока|яблок' : true} // 3 яблока
{101 | decl : 'яблоко,яблока,яблок' : false : ','} // яблоко
В том и соль, что нет никакого числа.
Есть выводимые ресурсы в виде карточек и есть заголовок к ним.
Допустим у нас концерт и на нем выступает либо один солист, либо несколько, и вот надо как-то сделать автоматизацию, что елси pdoResources выводит один ресурс, то заголовок у нас «Солист:», а если более одного ресурса: «Солисты:» и ниже уже шаблончики этих солистов или солиста.
Или можно как-то «посчитать», получить значение выводимых ресурсов, в соответствии условию, в виде числа?
Есть выводимые ресурсы в виде карточек и есть заголовок к ним.
Допустим у нас концерт и на нем выступает либо один солист, либо несколько, и вот надо как-то сделать автоматизацию, что елси pdoResources выводит один ресурс, то заголовок у нас «Солист:», а если более одного ресурса: «Солисты:» и ниже уже шаблончики этих солистов или солиста.
Или можно как-то «посчитать», получить значение выводимых ресурсов, в соответствии условию, в виде числа?
ну тут не долго думая можно использовать 2 параметра из документации: toPlaceholders (тут будет список) и setTotal (тут будет количество результатов). Ну и в total уже будет число
Эх, как было бы прекрасно, если бы еще где-то примеры использования этих параметров были((
Тыкался так и этак — всё что угодно кроме количества даёт(
Направьте пожалуйста
Тыкался так и этак — всё что угодно кроме количества даёт(
Направьте пожалуйста
[[+qq]]
[[pdoResources?
&parents=`8`
&resources=`[[+tv.soloistsList]]`
&processTVs=`1`
&prepareTVs=`1`
&setTotal=`1`
&tpl=`@CODE: [[+total]]`
&toPlaceholder=`qq`
]]
[[!pdoResources?
&parents=`8`
&resources=`[[+tv.soloistsList]]`
&processTVs=`1`
&prepareTVs=`1`
&setTotal=`1`
&tpl=`@CODE: [[+total]]`
&toPlaceholder=`qq`
]]
Список ресурсов
[[+qq]]
Количество
[[+total]]
в tpl чанк ресурсов как обычно
Кажется дошло, работает, сделал так:
Убираю из этого концерта солистов — подставляет TBC, и эта фигня вылезает в другой карточке.
Что ж я делаю не так?(
[[+total:isequal=`1`:then=`Soloist`:else=`Soloists`]]:
[[+tv.soloistsList:notempty=`[[+qq]]`:empty=`TBC`]]
[[pdoResources?
&parents=`8`
&resources=`[[+tv.soloistsList]]`
&sortdir=`ASC`
&limit=`10`
&tpl=`soloistsListTPL`
&includeTVs=`simpleText`
&showUnpublished=`1`
&processTVs=`1`
&prepareTVs=`1`
&setTotal=`1`
&toPlaceholder=`qq`
]]
Это код карточки концертов, они другим снипетом выводятся на страницу списком и вот грабли — одна из них почему-то показывает тупо всех солистов сколько допускает параметр &limit.Убираю из этого концерта солистов — подставляет TBC, и эта фигня вылезает в другой карточке.
Что ж я делаю не так?(
попробуйте добавить
&resources=`[[+tv.soloistsList:default=`-0`]]`
вместо -0 можно попробовать 999999999999
Увы, не спасает. Если без &toPlaceholder=`qq`, то всё выводится корректно, если задействую его, то какая-то флюктуация начинается((
Так круто на профильном форуме спустя 2 года самому себе написать ответ на свой вопрос! Классика…
Всё дело было в том, что tplWrapper был @INLINE. Сделал отдельный чанк, и там [[+total]] нормально отдает реальную цифру, написал вот такое и стало мне счастье:
Всё дело было в том, что tplWrapper был @INLINE. Сделал отдельный чанк, и там [[+total]] нормально отдает реальную цифру, написал вот такое и стало мне счастье:
<div class="concert-list-item">
<h4>
Soloist[[+total:isnot=`1`:then=`s`:else=``]]:
</h4>
[[+output]]
</div>
Классика — это не читать документацию.
Нужно было просто заменить [[+total]] на {{+total}}, тогда парсер MODX пропустит этот плейхолдер, а pdoTools обработает как надо.
P.S. @Иван Бочкарев В вашей версии документации в примере указаны неправильные теги — в моей старой версии всё верно.
Вот твой коммит, с изменением смысла примера.
Нужно было просто заменить [[+total]] на {{+total}}, тогда парсер MODX пропустит этот плейхолдер, а pdoTools обработает как надо.
P.S. @Иван Бочкарев В вашей версии документации в примере указаны неправильные теги — в моей старой версии всё верно.
Вот твой коммит, с изменением смысла примера.
Василий, большое вам человеческое уважение и благодарность за вашу поистине прометеевскую деятельность! Стараюсь, учусь по мере сил и возможностей))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.