Как указать MODX wayFinder для определения идентификатора ресурса, на котором он находится в данный момент

Я новичок в WayFinder, но я немного поработал над ним, и он отлично сработал для меня, однако мне нужно что-то более динамичное, что я не знаю, как это сделать.

У меня есть набор из 5 страниц на моем веб-сайте, и у каждой страницы есть другое боковое меню, но каждое меню для всех пяти ресурсов будет немного отличаться

Мне нужен wayfinder, чтобы определить текущий идентификатор и затем отобразить соответствующее меню

Я попробовал пару вещей, но ничего, я могу приступить к работе:

[[!Если? & При условии =[[*28]] & Затем =[[Wayfinder? &startId=27&excludeDocs=28,29,30,31,32,33,89]]]]

Поэтому мне нужно сказать, если ID = 28, отобразить это меню, если ID = 29, отобразить это и так далее.

Я также попробовал &idIs=28 и пару других вариантов, но не могли найти что-нибудь, чтобы помочь мне в этом. У кого-нибудь еще есть идеи, как заставить это работать? Спасибо.

4 ответа

Решение

Вы можете использовать выходные фильтры для условных вызовов. Документация для них здесь

Ваш код будет выглядеть примерно так:

[[*id:is=`28`:then=`[[Wayfinder? &startId=27&excludeDocs=28,29,30,31,32,33,89]]`:else=``]]

С предложением набора типов решения wayfinder будет вызываться каждый раз, что приводит к ненужному времени загрузки на ваш сайт. Это будет быстрее, потому что wayfinder будет вызываться только когда id = 28.

[[[[*id:is=`28`:then=`Wayfinder? &startId=27 &excludeDocs=28,29,30,31,32,33,89`:else=``]]]]

Подробнее об этом здесь: http://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/

Если меню должно начинаться с текущего идентификатора, вы должны использовать &startId=`[[*id]]`

Если вы хотите, чтобы он отображал все ресурсы в текущей папке, вы можете использовать UltimateParent, поэтому &startId=`[[UltimateParent]]`

Надеюсь это поможет!

Это должно работать. Субъект - это просто параметр, с которым вы сравниваете его, поэтому он не должен содержать значение.

[[!If?
   &subject=`[[*id]]`
   &operator=`EQ`
   &operand=`28`
   &then=`[[Wayfinder? &startId=`27` &excludeDocs=`28,29,30,31,32,33,89`]]`
]]
Другие вопросы по тегам