<div class="inner">
<div class="buttons">
<div class="inl">Анонси</div><div class="inl active">Реклама</div>
</div>
<div class="items">
<div class="announc" style="display: none;">
[[!pdoResources?
&parents=`49`
&sortdir=`DESC`
&tpl=`anonsyTpl`
&limit=`10`
&includeTVs=`day, month, year`
]]
</div>
<div class="article">
[[!pdoResources?
&parents=`82`
&sortdir=`DESC`
&tpl=`reklamaTpl`
&limit=`1`
&includeTVs=`name, tel`
]]
</div>
</div>
</div>
Как сделать если Анонсы есть - то активная кнопка Анонсы, если Анонсов нет - активная кнопка Реклама?
Версия MODX: Все
В шаблонах для всех страниц выводится чанк Анонсы событий/Реклама разделенные кнопкой. Как сделать если Анонсы есть — то активная кнопка Анонсы, если Анонсов нет — активная кнопка Реклама?
Комментарии (7)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Павел Романов 07.03.2015 12:22 #
vasilina 07.03.2015 13:28 #
убирать из Анонсов:
1. из класса inl — active
2. из класса announc — стиль display: none;
и добавлять в Рекламу:
1. в класс inl — active
2. в класс article — display: none
Павел Романов 08.03.2015 15:02 #
и т. д.
Вот тут про фильтры и условные операторы: docs.modx.pro/system/basics/filters-input-and-output
vasilina 08.03.2015 18:17 #
Павел Романов 09.03.2015 13:02 #
В вызов, который выводит Ваши анонсы, я добавил два параметра:
Первый помещает результат работы сниппета в плейсхолдер [[+anounces]] (и выведет список анонсов в том месте страницы, где будет стоять эта конструкция), а второй определяет имя плейсхолдера, куда будет выводиться общее количество выводимых анонсов.
То есть, добавив на страницу в любое место после вызова плейсхолдер [[+count]], система на его месте выведет число этих анонсов.
Если их нет, то будет 0, если их пятнадцать, то выведется 15, если пять, то 5.
Далее фильтром просто проверяется это условие:
дословно: если [[+count]] (число анонсов) меньше (lt) единицы (то есть 0, их нет), то вывести строку:
Также в зависимости от этого можете вставлять и полностью блоки с выводом, как я описал в первом своем посте:
то есть, если [[+count]] (число анонсов) более (gt) 0 (то есть хотя бы один анонс есть), то вывести слово «Анонси», если нет (else, иначе, условие не выполняется), то выводится слово «Реклама».
Соответственно, не нужно городить никаких display:none — просто выводите то слово, какое нужно. А ниже также выводите сами анонсы или рекламный блок.
vasilina 09.03.2015 14:34 #
vasilina 09.03.2015 18:09 #