25 янв. 2017 г., 5:10

Как реализовать постраничное разбиение

Всем доброго времени суток! Возник вопрос, не получается найти решение. Прошу помощи. Ситуация такая: У каждого ресурса есть MIGX TV в котором есть несколько строк данных. Эти строки выводятся с помощью сниппета getImageList внутри сниппета pdoResource, который перебирает нужные ресурсы. Все строки вместе выводятся корректно. Но вот дальше тупик. Задача сделать постраничное разбиение вывода строк. pdoPage для pdoResource делает разбиение, но limit берется по количеству ресурсов, а так как в каждом ресурсе несколько строк из MIGX TV, то выводится гораздо больше строк чем указано в limit. Посоветуйте как в данном случае реализовать постраничное разбиение?
Вариант только один: перевести на migxdb с хранением записей в отдельной таблице, чтобы каждая запись хранилась отдельно. И скорее всего писать свой запрос.
Спасибо за совет. Т.е. нужен свой сниппет, стандартными pdoPage и pdoResources не воспользоваться?
и еще вопрос Требуется вывести ресурсы несколько раз есть перечень ID в каком порядке выводить ресурсы на пример 1,2,1,3,4,5,1,2,4,5,1,5 если вывести при помощи pdoResources или getResources, указав в параметрах &resources=`1,2,1,3,4,5,1,2,4,5,1,5`, то ресурсы выведутся только пять раз 1,2,3,4,5 и всё, как сделать вывод ресурсов по своему списку?
тут простой выборкой не сделать, поскольку эти данные подставляются в блок WHERE, например, WHERE id in(1,2,1,3,4,5,1,2,4,5,1,5) и при запросе просто проверяется вхождение в массив. Тут либо писать запрос с union, либо просто в цикле перебирать и для каждого вызывать $modx->getObject()
Тут простой выборкой не сделать, поскольку в SQL эти данные подставляются в блок WHERE, скорее всего так: WHERE id in(1,2,1,3,4,5,1,2,4,5,1,5) и при запросе просто проверяется вхождение в массив. Тут либо писать запрос с union, либо просто в цикле перебирать и для каждого вызывать $modx->getObject()
Спасибо, за ответ, проблема в том что нужен еще постраничный вывод, вот ломаю голову как вывести.
Я сам давно уже перешёл на modxsite и всё делаю через процессоры. Там свой вывод пагинации, так что вряд ли подскажу.

Добавить комментарий