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