Как указать 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`]]`
]]