Revo - Wayfinder - &startId
Доброго дня, всем.
Решил перейти с Evo на Revo, но столкнулся с необъяснимой проблемкой :)
Есть меню вида:
П1
— пп1-1
─ пп1-2
─ пп1-3
П5 (Доп.меню)
─ пп5-1
─ пп5-2
─ пп5-3
Пункты с 1 по 4 выводятся в верхнем меню через
Первое боковое меню выводит подпункты для активного раздела —
Во втором боковом меню должен выводится Пункт 5 (на каждой странице, как доп.меню)
Проблема в том, что второе боковое меню выводится только на странице 5 и дочерних, т.е. получается, что «стартайди» в данном случае работает не что включать в меню, а на каких страницах выводить.
Все естественно опубликовано и разрешено для показа в меню (пока не разберусь). Чистил кеш, ставил кешируемый вызов сниппета, отрубал friendly urls и т.д.
В Evo все нормально, как и должно быть. Может настройки какие пропустил по незнанию?
Решил перейти с 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 все нормально, как и должно быть. Может настройки какие пропустил по незнанию?
Комментарии: 8
Удивительно, но виноват оказался &hideSubMenus
Тут расписал подробнее: forums.modx.com/thread/79163/revo-wayfinder---startid#dis-post-436383
Если в кратце, то при выставлении этого параметра в `1`, то перестает выводить меню целиком если находимся на страницах отличных от &startId или дочерних.
Как же тогда выводить дополнительные меню, не через getResorces же :(
Тут расписал подробнее: forums.modx.com/thread/79163/revo-wayfinder---startid#dis-post-436383
Если в кратце, то при выставлении этого параметра в `1`, то перестает выводить меню целиком если находимся на страницах отличных от &startId или дочерних.
Как же тогда выводить дополнительные меню, не через getResorces же :(
Или еще лучше — покажите, как грамотно написать PHx запрос для вывода wayfinder с разными параметрами в зависимости от id текущей страницы. С PHx пока не разбирался, так что туплю немного. Илт все-таки лучше отдельный сниппет писать?
Лучше сниппет-обертку, будет гораздо лучше и быстрее.
<?php
if ($modx->resource->id == 5) {
$start = 1;
}
else {$start = 6;}
$params = array(
'startId' => $start
,'tpl' => 'mytpl'
//, и так далее
);
return $modx->runSnippet('Wayfinder', $params);
?>
<?php
if ($modx->resource->id == 5) {
$start = 1;
}
else {$start = 6;}
$params = array(
'startId' => $start
,'tpl' => 'mytpl'
//, и так далее
);
return $modx->runSnippet('Wayfinder', $params);
?>
Замечательно, но как это скажется на кешировании?
Результат в Рево будет норм кешироваться или каждый раз при вызове считать будет? Ессно берем вызов снипетта [[...]].
Результат в Рево будет норм кешироваться или каждый раз при вызове считать будет? Ессно берем вызов снипетта [[...]].
Это ж обычный сниппет — все будет норм.
Странно, но ругается на 'startId' => $start
...unexpected T_DOUBLE_ARROW…
...unexpected T_DOUBLE_ARROW…
Запятую не поставили, или еще что-то.
Копипаста с этого форума просто символы похоже добавило, а в CodeMirror не заметил. Перебил массив и все стало норм.
return $modx->runSnippet('Wayfinder',array(
'startId'=>$id,
'hideSubMenus'=>'1',
//…
));
Спасибо :)
return $modx->runSnippet('Wayfinder',array(
'startId'=>$id,
'hideSubMenus'=>'1',
//…
));
Спасибо :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.