Получение последнего ресурса в шаблоне - через idx или как-то иначе.
Всем добрый день
Подскажите пожалуйста, я могу каким то образом получить последний элемент из idx или id и его проверить?
Объясню ситуацию.
У меня сниппет, который выводит ресурсы сначала из одной папки, потом из второй.
Мне в шаблоне вывода нужно разобрать элементы. Если idx == 1 я проверяю и с этим проблем не возникает.
Но вот когда мне нужно добавить условия, вот такие:
— если есть второй idx и он является последним в этой папке, то сделать это.
— если есть второй idx или иначе ресурс в этой папке, но он не последний — добавить это
— если есть последний ресурс и он не второй — закрыть это
В общем в коде ситуация такая
Мне говорили, что есть какой то параметр last, но я ничего не нашел в сети на эту тему.
Вообще может есть другой способ, проще. Подскажите пожалуйста)) Буду благодарен :)
Подскажите пожалуйста, я могу каким то образом получить последний элемент из idx или id и его проверить?
У меня сниппет, который выводит ресурсы сначала из одной папки, потом из второй.
Мне в шаблоне вывода нужно разобрать элементы. Если idx == 1 я проверяю и с этим проблем не возникает.
Но вот когда мне нужно добавить условия, вот такие:
— если есть второй idx и он является последним в этой папке, то сделать это.
— если есть второй idx или иначе ресурс в этой папке, но он не последний — добавить это
— если есть последний ресурс и он не второй — закрыть это
В общем в коде ситуация такая
<div> Первый элемент и он без проблем </div> //тут есть атрибут вызова
<div> // тут есть то, что этот вызов принимает и скрывает или открывает обертку
<div> Элемент 2 </div>
<div> Элемент 3 </div>
<div> Элемент 4 </div>
</div>
Вот проблема как раз с этой оберткой. Потому что закрывающий и открывающий тег div обертки должен работать только от условий. Если элементов больше чем один и если их больше чем два. Мне говорили, что есть какой то параметр last, но я ничего не нашел в сети на эту тему.
Вообще может есть другой способ, проще. Подскажите пожалуйста)) Буду благодарен :)
Комментарии: 2
Вы пишите свой сниппет, верно?
И наверняка при выводе одной папки вы знаете кол-во в этой самой папке...?
Просто посчитайте количество и проверьте по условию.
И наверняка при выводе одной папки вы знаете кол-во в этой самой папке...?
Просто посчитайте количество и проверьте по условию.
Не совсем, точнее это было нужно немного для другого ))
У меня на странице выводятся все продукты компании. Но эти продукты группируются по папкам. Получается на одной странице есть результаты из каждой папки, при том у второго и последнего блока должны быть div обертки. Проблему решил следующим образом
Это сниппет — Tpl-lvl-1-catalog-All-Deposits
Данный снипет является оберткой над pdoResources, нужен для фильтрации результата
Сниппет представляет собой
А вывожу я все это при помощи Fenom на странице
Конечно тут накручено, но кое как с помощью получилось мне получить последний элемент в выдаче pdoResources))) Может и косячно, но пока работает)
У меня на странице выводятся все продукты компании. Но эти продукты группируются по папкам. Получается на одной странице есть результаты из каждой папки, при том у второго и последнего блока должны быть div обертки. Проблему решил следующим образом
<div class="py-8 bg-light">
<div class="container">
<div class="group-last-child">
[[!pdoResources?
&depth=`1`
&where=`{"isfolder":"1"}`
&tvPrefix=``
&tpl=`Tpl-lvl-1-catalog-All-Deposits`
&sortby=`{"menuindex":"ASC"}`
&includeTVs=`valuta, time-if-deposit`
]]
</div>
</div>
</div>
Это сниппет — Tpl-lvl-1-catalog-All-Deposits
[[!mySnippetFilter?
&parents=`[[+id]]`
&depth=`5`
&tplFirst=``
&resources=``
&tvPrefix=``
&tpl=`Tpl-lvl-2-Bank-All-Deposits`
&sortby=`{"menuindex":"ASC"}`
&includeTVs=`valuta, time-if-deposit, from-sum-deposit, bet-for-deposit`
&setTotal=`1`
&toPlaceholder=`myOut`
]]
[[+myOut]]
Данный снипет является оберткой над pdoResources, нужен для фильтрации результата
Сниппет представляет собой
$where = Array();
if(count($_POST['tv'])) {
$where = array_merge($where, $_POST['tv'] );
if (count($where['from-sum-deposit:<='])) {
unset($where['from-sum-deposit:<=']);
};
if (!empty($where['srok']) and $where['srok'] == 'all' ) {
unset($where['srok']);
}
}
$scriptProperties['where'] = json_encode($where);
$html = $modx->runSnippet('pdoResources', $scriptProperties);
echo $html;
А вывожу я все это при помощи Fenom на странице
{set $total = $_modx->getPlaceholder('total')}
{if $idx == 1}
Тут код чанка для первого элемента
{else}
{$idx == 2? 'код открытия оболочки для второго и поледующих элементов, эта оболочка появляется и скрывается по кнопке' : ' '}
код для элементов внутренних, начиная от второго и дальше
{$idx == $total? 'проверка на последний элемент, получается если total равен idx тогда он последний и я закрываю два дива':''}
{/if}
Конечно тут накручено, но кое как с помощью получилось мне получить последний элемент в выдаче pdoResources))) Может и косячно, но пока работает)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.