pdoresources random limit
Привет.
Не могу сообразить, как сделать следующею выборку. Объясню наглядно
Есть раздел «Новости», в ней 3000 материалов.
Нужно выбрать из 10 последних добавленных новостей одну случайную/
Если я делаю так, то компонент может выбрать любой из 3000 ресурсов материал. А нужно только из 10 последних.
Не могу сообразить, как сделать следующею выборку. Объясню наглядно
Есть раздел «Новости», в ней 3000 материалов.
Нужно выбрать из 10 последних добавленных новостей одну случайную/
Если я делаю так, то компонент может выбрать любой из 3000 ресурсов материал. А нужно только из 10 последних.
[[!pdoResources?
&limit=`1`
&sortby=`RAND()`
&includeContent=`1`
&parents=`[[*id]]`
]]
Комментарии: 6
Должно работать вот так:
[[!pdoResources?
&parents=`0`
&resources=`[[pdoResources?limit=`10`&returnIds=`1`]]`
&limit=`1`
&sortby=`RAND()`
&includeContent=`1`
]]
Спасибо, а если я хочу исключить из выборки текущий материал (в котором нахожусь), как это можно сделать?
[[!pdoResources?
&parents=`0`
&resources=`-[[*id]],[[pdoResources?limit=`10`&returnIds=`1`]]`
&limit=`1`
&sortby=`RAND()`
&includeContent=`1`
]]
А всё, спасибо, сообразил
[[!pdoResources?
&parents=`0`
&resources=`[[pdoResources? &resources=`-[[*id]]` limit=`10`&returnIds=`1`]]`
&limit=`1`
&sortby=`RAND()`
&includeContent=`1`
]]
Скажите пожалуйста, а такой вызов с параметром &sortby=`RAND()` — будет выдавать рандом только если не кэшировать вызов сниппета? Как решить вопрос с кешированием в таком случае?
А как вы хотите получить из базы другие элементы, если результат выводится из кэша? Для выборки новых элементов каждый раз, сниппет тоже должен отрабатывать каждый раз, а для этого его нужно вызывать некэшированным.
Точно, спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.