pdoPage в 2 колонки

Необходимо вывести результаты картотеки в 2 — 3 колонки
Понимаю, что тема уже поднималась, но готового рабочего решения так и не смог нагуглить
Разбить вывод pdoResources на несколько колонок (блоков) — пробовал этот вариант, но при использованииtoSeparatePlaceholders вываливаются ошибки
./core/cache/includes/elements/modsnippet/30.include.cache.php 58
PHP warning: Illegal string offset 'log'
../core/cache/includes/elements/modsnippet/30.include.cache.php 58
PHP warning: Cannot assign an empty string to a string offset
Поэтому пробую такой способ:
tpl для pdoPage ищет и вставляет точки разрывы колонок
{var $total = $modx->getPlaceholder('page.total')}
{var $columns = '3'}
<div class="mp-1"><a href="{$uri}">{$pagetitle}</a></div>
{if ($idx>=($total/$columns) AND $idx<($total/$columns+1)) OR ($idx>=($total/$columns*2) and $idx<($total/$columns*2+1)) } 
</div>
<div class="col-lg-4 col-md-12 col-sm-12 col-sx-12">
{/if}
+- Работает, и только в случае limit=0 только для одной страницы. Иначе (при limit=100) на второй странице page=2 получаем продолжение IDX с 101, а так-как [[+page]] — имеет тип string, а знаний не хватает использовать его в формуле:

{if ($idx>=($limit*($pagenumber-1) + $limit/$columns) AND $idx<($limit*($pagenumber-1) + $limit/$columns +1)) OR ...  }
Может кто подскажет, как получить $pagenumber типа int из [[+page]]?
Или запустить отдельный count отличный от IDX?
Или наведите на готовое не столь топорное решение
SYAN
01 ноября 2021, 23:36
modx.pro
433
0

Комментарии: 1

Сергей Шлоков
05 ноября 2021, 14:31
0
использовании toSeparatePlaceholders вываливаются ошибки
Это не ошибки, а ворнинги. Они не ломают код.

пробовал этот вариант
Очень стрёмный вариант. Без фенома можно и такой костыль пилить. Но с феномом всё проще. Нужно сохранить данные в переменную, потом по ней прогнать цикл, в котором проверять условие и формировать колонки.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1