Способ, чтобы getResources не показывал неопубликованные идентификаторы, если дан список идентификаторов
У меня есть запрос SQL, который выплевывает группу идентификаторов. Я передаю эти идентификаторы в вызов getResources как таковой:
[[getResources?
&parents=`4`
&resources=`' . $ids . '`
&limit=`0`
&showHidden=`1`
&tpl=`PropItemTPL`
&sortby=`menuindex ASC, id`
&sortdir=`ASC`
&includeContent=`1`
&includeTVs=`1`
&processTVs=`1`
&showUnpublished=`0`
]]
Проблема в том, что это показывает все идентификаторы, даже если они не опубликованы.
Я включил &showUnpublished='0'
но это не имеет значения.
Кто-нибудь знает, есть ли способ получить эту работу с getResources? Или мне нужно переписать мой PHP и MySQL?
2 ответа
Параметр resources является отдельным от остальной логики выбора. Если вы включите идентификатор ресурса в свойство ресурсов, он будет включен независимо от любых других свойств выбора.
Попробуйте pdoResources, и я не думаю, что у вас возникнет эта проблема. Это также намного быстрее, чем getResources.
Вы можете добавить предложение "where" в качестве одного из ваших параметров, сузив набор результатов только для опубликованных документов:
[[getResources?
&parents=`4`
&resources=`' . $ids . '`
&limit=`0`
&showHidden=`1`
&tpl=`PropItemTPL`
&sortby=`menuindex ASC, id`
&sortdir=`ASC`
&includeContent=`1`
&includeTVs=`1`
&processTVs=`1`
&where=`{"published" : true}`
]]