Wayfinder не уважает &level=`0`?

У меня есть следующий вызов Wayfinder:

[[Wayfinder? &startId=`0` &level=`0` &includeDocs=`5,6,7,11,12`]]

Это должно показать ссылки на перечисленные ресурсы, которые хранятся в родительском ресурсе. Однако они этого не делают. Единственный способ заставить его работать - включить родительский ресурс в качестве startId:

[[Wayfinder? &startId=`3` &level=`0` &includeDocs=`5,6,7,11,12`]]

Это нормально, если все ресурсы находятся под одним родителем, но у меня есть множество ресурсов на разных уровнях и родителей, которые я не могу отобразить.

Кто-нибудь знает, что я делаю не так?

2 ответа

Решение

Если вы укажете includeDocs, в нем будут перечислены только эти документы, поэтому вам нужно либо установить startId для вашего родителя, либо включить необходимых родителей в вызов includeDocs.

(Строка 539 в wayfinder.class.php:)

/* if set, limit results to specific resources */
if (!empty($this->_config['includeDocs'])) {
    $c->where(array('modResource.id:IN' => explode(',',$this->_config['includeDocs'])));
}

http://rtfm.modx.com/extras/revo/wayfinder - вы видели документы?

&level - Depth (number of levels) to build the menu from. '0' goes through all levels. 

если вы хотите исключить некоторые документы - просто используйте &excludeDocs свойство или фильтр &where, как

&where=`[{"template:!=": "4"}]` 

(получить все документы, кроме как с шаблоном "4"). Документы о состоянии где - http://rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where

Другие вопросы по тегам