MODx Wayfinder &level=2 исключить ВСЕ, кроме одного
Я пытаюсь написать вызов 2 для Wayfinder, который исключает ВСЕ документы уровня 2, кроме одного документа уровня 2 (id=39) (поэтому должны быть включены ВСЕ документы уровня 1). Как этого добиться?
[[Wayfinder? &startId=`0` &level=`2` excludeDocs=`3,4,5,6,7,8,9` &outerTpl=`menu`]]
Лучшее, что я мог придумать, - это перечислить ВСЕ документы уровня 2 для исключения, не очень аккуратное решение. Также пытался использовать PHx, но безуспешно.
3 ответа
Единственный другой способ, которым я могу видеть, - это иметь 2 вызова wayfinder, один для верхнего уровня, один для уровня 2 и использовать & includeDocs.
Stucture:
-Resource 1
-Resource 2
-Resource 3
-Resource 4
-Resource 5
-Resource 39 (just inc this resource)
-Resource 7
Уровень 1 Один:
[[Wayfinder?
&startId=`0`
&level=`1`
&outerTpl=`menu`]]
Уровень второй:
[[Wayfinder?
&startId=`2,5`
&level=`1`
&includeDocs=`39`
&outerTpl=`menu`]]
Чтобы исключить содержимое всего каталога из Wayfinder (или getResources) и остаться в пределах естественных границ намерения автоматического построения меню, рассмотрите возможность использования ресурса Weblink в качестве прокси для родительского каталога, чьи дочерние элементы вы хотите скрыть, а затем просто скрыть фактический родительский каталог из меню.
- Отметьте Родительский каталог, чьи дети вы хотите скрыть, как "Скрыть из меню"
- Создайте ресурс Weblink обратно в этот родительский каталог и сделайте так, чтобы он отображался как прокси обратно в этот каталог
Фактический родительский каталог остается красивым и опрятным. Любые дети в нем (даже новые) все еще организованы и аккуратны, и веб-ссылка "прокси" служит для того, чтобы представлять ее так, как вы хотите в меню.
Вы можете включить один ресурс второго уровня, задав ему определенный шаблон и используя параметр 'where':
[[Wayfinder? &startId=`0` &level=`2` &where=`{"template:IN":[1,2,3]}` &outerTpl=`menu`]]
Вам также необходимо добавить идентификаторы шаблона для других ресурсов, которые вы хотите включить.