Revo - Wayfinder - &startId


Доброго дня, всем.

Решил перейти с Evo на Revo, но столкнулся с необъяснимой проблемкой :)

Есть меню вида:

П1
— пп1-1
─ пп1-2
─ пп1-3

П5 (Доп.меню)
─ пп5-1
─ пп5-2
─ пп5-3

Пункты с 1 по 4 выводятся в верхнем меню через
[[Wayfinder? &startId=`0` &excludeDocs=`5` &level=`1`]]

Первое боковое меню выводит подпункты для активного раздела —
[[Wayfinder? &startId=`[[UltimateParent]]` &excludeDocs=`5.1, ... ,5.3` &level=`1`]]

Во втором боковом меню должен выводится Пункт 5 (на каждой странице, как доп.меню)
[[Wayfinder? &startId=`5` ]]

Проблема в том, что второе боковое меню выводится только на странице 5 и дочерних, т.е. получается, что «стартайди» в данном случае работает не что включать в меню, а на каких страницах выводить.

Все естественно опубликовано и разрешено для показа в меню (пока не разберусь). Чистил кеш, ставил кешируемый вызов сниппета, отрубал friendly urls и т.д.

В Evo все нормально, как и должно быть. Может настройки какие пропустил по незнанию?
07 september 2012, 16:18    Eklniy Babai   
0    1077 0

Comments (8)

  1. Eklniy Babai 08 september 2012, 16:32 # 0
    Удивительно, но виноват оказался &hideSubMenus

    Тут расписал подробнее: forums.modx.com/thread/79163/revo-wayfinder---startid#dis-post-436383

    Если в кратце, то при выставлении этого параметра в `1`, то перестает выводить меню целиком если находимся на страницах отличных от &startId или дочерних.

    Как же тогда выводить дополнительные меню, не через getResorces же :(
    1. Eklniy Babai 08 september 2012, 17:30 # 0
      Или еще лучше — покажите, как грамотно написать PHx запрос для вывода wayfinder с разными параметрами в зависимости от id текущей страницы. С PHx пока не разбирался, так что туплю немного. Илт все-таки лучше отдельный сниппет писать?
      1. Василий Наумкин 08 september 2012, 18:10 # 0
        Лучше сниппет-обертку, будет гораздо лучше и ­быстрее.

        <?php
        if ($modx->resource->id == 5) {
        ­$start = 1;
        }
        else {$start = 6;}

        $params = ­array(
        'startId' => $start
        ,'tpl' => ­'mytpl'
        //, и так далее
        );

        return $modx->­runSnippet('Wayfinder', $params);
        ?>
        1. Eklniy Babai 08 september 2012, 20:07 # 0
          Замечательно, но как это скажется на кешировании?
          Результат в Рево будет норм кешироваться или каждый раз при вызове считать будет? Ессно берем вызов снипетта [[...]].
          1. Василий Наумкин 08 september 2012, 20:08 # 0
            Это ж обычный сниппет — все будет норм.
          2. Eklniy Babai 09 september 2012, 14:37 # 0
            Странно, но ругается на 'startId' => $start
            ...unexpected T_DOUBLE_ARROW…
            1. Василий Наумкин 09 september 2012, 14:57 # 0
              Запятую не поставили, или еще что-то.
              1. Eklniy Babai 09 september 2012, 15:14 # 0
                Копипаста с этого форума просто символы похоже добавило, а в CodeMirror не заметил. Перебил массив и все стало норм.

                return $modx->runSnippet('Wayfinder',array(
                'startId'=>$id,
                'hideSubMenus'=>'1',
                //…
                ));

                Спасибо :)
        You need to login to create comments.