pdoPage в 2 колонки
Необходимо вывести результаты картотеки в 2 — 3 колонки
Понимаю, что тема уже поднималась, но готового рабочего решения так и не смог нагуглить
Разбить вывод pdoResources на несколько колонок (блоков) — пробовал этот вариант, но при использованииtoSeparatePlaceholders вываливаются ошибки
tpl для pdoPage ищет и вставляет точки разрывы колонок
Или запустить отдельный count отличный от IDX?
Или наведите на готовое не столь топорное решение
Понимаю, что тема уже поднималась, но готового рабочего решения так и не смог нагуглить
Разбить вывод 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?
Или наведите на готовое не столь топорное решение
Комментарии: 1
использовании toSeparatePlaceholders вываливаются ошибкиЭто не ошибки, а ворнинги. Они не ломают код.
пробовал этот вариантОчень стрёмный вариант. Без фенома можно и такой костыль пилить. Но с феномом всё проще. Нужно сохранить данные в переменную, потом по ней прогнать цикл, в котором проверять условие и формировать колонки.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.