Как сделать многоуровневое меню для pick-навигации

В приведенных примерах применялось только одно меню. Однако запросы к целевому блоку можно производить из нескольких меню и/или из одного меню с несколькими уровнями. В этом случае, на каждое новое меню или на каждый уровень меню нужно в целевом блоке заводить отдельное поле.

Допустим, меню состоит из двух уровней (категория и подкатегория), тогда в целевом блоке должны быть два ключевых поля, допустим 3-е и 4-е. А ссылки для запросов в навигационных блоках должны выглядеть так:

Шаблон для категорий

catalog_categories.tpl
<?php
. . . . . 
$goodsBlock = 9;
echo "<a href='?page=$page&block=$goodsBlock";
echo "&pick[3][eq]={$dat['rec']}"; # Запрос категории из родного блока
echo "&pick[4][eq]=".Request::get($goodsBlock,'pick', 4, 'eq'); # Запрос подкатегории



echo "'>$dat[1]</a>";
. . . . . 
?>

Шаблон для подкатегорий

catalog_subcategories.tpl
<?php
. . . . . 
$goodsBlock = 9;
echo "<a href='?page=$page&block=$goodsBlock";
echo "&pick[3][eq]=".Request::get($goodsBlock,'pick', 3, 'eq');
echo "&pick[4][eq]={$dat['rec']}";
echo "'>$dat[1]</a>";
. . . . . 
?>