Убрать из выборки первый уровень вызова pdoMenu
        Приветствую сообщество!
В общем вопрос следующего характера, есть вот такая конструкция, например:
-Главная (id — 1)
-Категория 1 (id — 2)
--Подкатегория 1.1 (Раздел с тикетами) (id — 5)
--Подкатегория 1.2 (Раздел с тикетами) (id — 6)
--Подкатегория 1.3 (обычный документ) (id — 7)
-Категория 2 (id — 3)
--Подкатегория 2.1 (Категория товаров) (id — 8)
--Подкатегория 2.2 (Категория товаров) (id — 9)
--Подкатегория 2.3 (обычный документ) (id — 10)
-Служебные страницы (id — 4)
так вот, смысл в том, что мне надо соорудить меню! Но логика (как хотелось бы, чтобы она работала) должна работать следующим образом:
Дело в том, что как бы я не пытался динамически вызвать сниппет для построения меню, он выводит максимум только так:
--Подкатегория 1.2 (Раздел с тикетами) (id — 6)
То да… однозначно он выводит меню того уровня который мне нужен! Далее… Проблемы продолжаются… Если я есесна перейду в один из созданных тикетов данного подраздела, то вся динами есесна пропадает!
В общем надеюсь, что задача ясна!
П.С.
Чтобы предотвратить наплыв комментов о том, почему бы не использовать жесткое назначение ID для родителя в вызове сниппета, отвечу… НЕ выход! Т.к. при этом теряется динамичность и придется создавать два разных типа шаблонов для одной категории и для другой или шаблоны или чанки городить, без разницы, костыли однозначно не выход!
    
    
                                                                                
            В общем вопрос следующего характера, есть вот такая конструкция, например:
-Главная (id — 1)
-Категория 1 (id — 2)
--Подкатегория 1.1 (Раздел с тикетами) (id — 5)
--Подкатегория 1.2 (Раздел с тикетами) (id — 6)
--Подкатегория 1.3 (обычный документ) (id — 7)
-Категория 2 (id — 3)
--Подкатегория 2.1 (Категория товаров) (id — 8)
--Подкатегория 2.2 (Категория товаров) (id — 9)
--Подкатегория 2.3 (обычный документ) (id — 10)
-Служебные страницы (id — 4)
так вот, смысл в том, что мне надо соорудить меню! Но логика (как хотелось бы, чтобы она работала) должна работать следующим образом:
- На главной отображается два элемента, тип выбор куда попасть в Категорию 1 или в Категорию 2 (это легко, при помощи pdoTools сделал, допустим, фигня)
 - Нажимаю на Подкатегория 1.1 и здесь должно быть только меню этой категории, т.е. так:
--Подкатегория 1.1 (Раздел с тикетами)
--Подкатегория 1.2 (Раздел с тикетами)
--Подкатегория 1.3 (обычный документ) - соответственно во второй категории так же...
 
Дело в том, что как бы я не пытался динамически вызвать сниппет для построения меню, он выводит максимум только так:
[[pdoMenu?
&parents=`[[*parent]]`                   
&level=`1`
]]Т.е. ровно до второго уровня как мне якобы и надо… НО! только если я нахожусь например здесь: --Подкатегория 1.2 (Раздел с тикетами) (id — 6)
То да… однозначно он выводит меню того уровня который мне нужен! Далее… Проблемы продолжаются… Если я есесна перейду в один из созданных тикетов данного подраздела, то вся динами есесна пропадает!
В общем надеюсь, что задача ясна!
П.С.
Чтобы предотвратить наплыв комментов о том, почему бы не использовать жесткое назначение ID для родителя в вызове сниппета, отвечу… НЕ выход! Т.к. при этом теряется динамичность и придется создавать два разных типа шаблонов для одной категории и для другой или шаблоны или чанки городить, без разницы, костыли однозначно не выход!
Комментарии: 8
                В parents указывай текущий id страницы.            
                    
                та емае! :D
Я ж говорю не выход!
Т.к. генерировать надо так:
-Категория 1 (id — 2) — захожу сюда и генерируется меню так:
+ ко всему теряется динамичность, ведь мне надо чтобы меню само генерировалось для обоих категории со своими подкатегориями!
                    Я ж говорю не выход!
Т.к. генерировать надо так:
-Категория 1 (id — 2) — захожу сюда и генерируется меню так:
--Подкатегория 1.1 (Раздел с тикетами) (id — 5)НО! Если я зайду например в дочерний документ подкатегории:
--Подкатегория 1.2 (Раздел с тикетами) (id — 6)
--Подкатегория 1.3 (обычный документ) (id — 7)
--Подкатегории 1.2 (Раздел с тикетами) (id — 6)то меню начнет генерироваться с учетом её родителя, а именно вот как так:
--Подкатегории 1.2 (Раздел с тикетами) (id — 6)И все, больше в меню по идее ничего не будет!
+ ко всему теряется динамичность, ведь мне надо чтобы меню само генерировалось для обоих категории со своими подкатегориями!
                Если всё правильно понял, то здесь поможет pdoField, а конкретно его возможность UltimateParent.            
                    
                ууу, где ж вы раньше были :DDD
Да, сам уже дошел до этого, сделал вот такой костыль:
[[pdoMenu?
&parents=`[[*id:pdofield=`{«topLevel»:2,«field»:«id»}`]]`
]]
Таким образом, теперь все вызывается как надо!
Но Вам тем не менее спасибо, за подтверждение! :D
                    Да, сам уже дошел до этого, сделал вот такой костыль:
[[pdoMenu?
&parents=`[[*id:pdofield=`{«topLevel»:2,«field»:«id»}`]]`
]]
Таким образом, теперь все вызывается как надо!
Но Вам тем не менее спасибо, за подтверждение! :D
                Мне кажется или есть выход проще если уровень вложенности не изменится. По идее можно просто проверить parent текущего документа:
т.е. если документ в корне значит скормить id иначе скормить parent
                    [[pdoMenu?
&parents=`[[*parent:is=`0`:then=`[[*id]]`:else=`[[*parent]]`]]`
]]т.е. если документ в корне значит скормить id иначе скормить parent
                Если я правильно понял то вот ссылка. Если решит проблему хорошо, если нет то скину позже как оставить одинаковое меню на 3 уровнях вложенности на одном шаблоне. Просто с телефона.
Этот вариант наверное костыль, т.к сделал его методом тыка)
                    Этот вариант наверное костыль, т.к сделал его методом тыка)
{set $a = [$id]}
                
                {if $_modx->resource.parent in list $a}
     
                {'!pdoMenu' | snippet : [
                    'parents' => $_modx->resource.id,
                    'level' => '1',
                    'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                    'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block; font-size:20px;" class="text_bold">
                                            <a href="{$link}">{$menutitle}</a>
                                        </h2>{$wrapper}'
                ]}
                
                
                {elseif $_modx->resource.parent in list $a}
                
                {'!pdoMenu' | snippet : [
                    'parents' => $_modx->resource.parent,
                    'level' => '1',
                    'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                    'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block; font-size:20px;" class="text_bold">
                                            <a href="{$link}">{$menutitle}</a>
                                        </h2>{$wrapper}'
                ]}
                
                {elseif ($_modx->resource.parent | resource : "parent") in list $a}
                 {'!pdoMenu' | snippet : [
                    'parents' => $_modx->resource.parent,
                    'level' => '1',
                    'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                    'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block; font-size:20px;" class="text_bold">
                                            <a href="{$link}">{$menutitle}</a>
                                        </h2>{$wrapper}'
                ]}
                {else}
                {'!pdoMenu' | snippet : [
                    'parents' => ($_modx->resource.parent | resource : "parent"),
                    'level' => '1',
                    'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                    'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block; font-size:20px;" class="text_bold">
                                            <a href="{$link}">{$menutitle}</a>
                                        </h2>{$wrapper}'
                ]}
                {/if}            
                3 уровня            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.