Способ, чтобы 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}`
           ]]
Другие вопросы по тегам