pdoMenu, fenom и вывод id
        Привет. Странная штука.
В чанке для tplInner не выводится id обрабатываемого ресурса через fenom.
При чем с синтаксисом modx все работает — [[+id]] выводит правильный id. А {$id} не выводит ничего. Перепробовал, кажется, все:
{$_pls['id']}
{$_modx->getPlaceholder('id')}
{'id' | placeholder}
Во всех вариантах пустой вывод.
При чем в шаблоне вернего уровня {$id} работает.
Как можно решить эту проблему?
    
    
                                                                                
            В чанке для tplInner не выводится id обрабатываемого ресурса через fenom.
При чем с синтаксисом modx все работает — [[+id]] выводит правильный id. А {$id} не выводит ничего. Перепробовал, кажется, все:
{$_pls['id']}
{$_modx->getPlaceholder('id')}
{'id' | placeholder}
Во всех вариантах пустой вывод.
При чем в шаблоне вернего уровня {$id} работает.
Как можно решить эту проблему?
Комментарии: 16
                tplInner это же обертка, разве она содержит какие либо плейсхолдеры кроме как [[+wrapper]], [[+classnames]]...?            
                    
                Если оставить tplInner пустым внутри, то выведет все плейсхолдеры, которые содержаться в чанке. Вызов:
 
            
                    [[!pdoMenu?
    &parents=`0`
    &level=`2`
    &tplInner=`test`
    ]]Результат:
            - … и так далее. А мне надо всередину пункты дополнительные натыкать ((
 
                Хм… спасибо.
Только непонятно, почему тогда [[+id]] работает…
                    Только непонятно, почему тогда [[+id]] работает…
                У вас, случайно, не inline-чанк?
Возможно, в памяти системы уже выставлен плейсхолдер [[+id]] и родной парсер просто подхватывает его.
                    Возможно, в памяти системы уже выставлен плейсхолдер [[+id]] и родной парсер просто подхватывает его.
                Нет. не инлайн. Отдельный чанк.
При чем, если я пишу что-то вроде
{var $rid = '[[+id]]'}, а потом вывожу, как {$rid} — он выводит правильное значение. Только в $rid он сохраняет всю конструкцию [[+id]], а уже потом ее обрабатывает
                    При чем, если я пишу что-то вроде
{var $rid = '[[+id]]'}, а потом вывожу, как {$rid} — он выводит правильное значение. Только в $rid он сохраняет всю конструкцию [[+id]], а уже потом ее обрабатывает
                Оберните подпункты в tplParentRow, а в tplInner оставьте только wrapper.            
                    
                Мне надо подгрузить в меню «пункты», которые не являються ресурсами. Грубо говоря, на некоторых страницах есть внутреннее меню, которое скролит страницу на нужное место, но это все один ресурс. Поэтому, я во внутреннем меню проверяю, есть ли на этой странице TV, с таким «меню». И в дальнейшем мне надо сделать что-то типа
— Услуги (ресурс 1)
— — Покраска (ресурс 2, скрол на раздел покраска)
— — Рихтовка (ресурс 2, скрол на раздел рихтовка)
— — Полировка (ресурс 2, скрол на раздел полировка)
— — Продажа инструментов (ресурс 3)
Можно, конечно, подргружать дополнительные пункты яваскриптом, но хотелось обойтиись без дополнительного js
                    {var $scrollMenu = json_decode($id | resource : 'scrollMenu', true)}
<ul class="submenu {$classnames}">
    {if $scrollMenu | len > 0}
        {foreach $scrollMenu as $idx => $item}
        {var $alias = $item.title | strip | lowercase | replace : " " : "-"}
        <li>
            <a href="{$id | url : ['scheme' => 'full'] : ['goto' => $alias]}">{$item.title}</a>
        </li>
        {/foreach}
    {/if}
   {$wrapper}
</ul>И меню в дальнейшем должно выглядеть как-то так:— Услуги (ресурс 1)
— — Покраска (ресурс 2, скрол на раздел покраска)
— — Рихтовка (ресурс 2, скрол на раздел рихтовка)
— — Полировка (ресурс 2, скрол на раздел полировка)
— — Продажа инструментов (ресурс 3)
Можно, конечно, подргружать дополнительные пункты яваскриптом, но хотелось обойтиись без дополнительного js
                Ну вот все это и поместите tplParentRow. Или я не поняла
Вот пример. Было:
                    Вот пример. Было:
&tplInner=`@CODE: <ul>[[+wrapper]]</ul>`
&tplParentRow=`@CODE: <li>[[+menutitle]]</li>[[+wrapper]]`Стало:&tplInner=`@CODE: [[+wrapper]]`
&tplParentRow=`@CODE: <li>[[+menutitle]]</li><ul>[[+wrapper]]</ul>`            
                Так мне перед [[+wrapper]] надо добавить пункты меню вручную, предварительно проверив, есть ли они в том ресурсе, коотрый обрабатывается в данный момент… или в tplParentRow есть плейсхолдер id?            
                    
                Да, содержит id.
 
                    <ul>                                               // tplOuter
    <li>Первый пункт. Содержит подменю. Активный   // tplParentRowActive
        <ul>                                       // tplInner
            <li>Первый подпункт, текущий</li>      // tplInnerHere
            <li>Второй подпункт</li>               // tplInnerRow
        </ul>
    </li>
    <li>Второй пункт. Содержит подменю             // tplParentRow
        <ul>                                       // tplInner
            <li>Первый подпункт</li>               // tplInnerRow
            <li>Второй подпункт</li>               // tplInnerRow
        </ul>
    </li>
    <li>Третий пункт</li>                          // tpl
</ul>            
                Попробую, спасибо            
                    
                Не, так не выйдет ничего. [[+wrapper]] строит полностью сабменю — 
                    
                В tplInner тоже не получится в середину. В MODX есть тип ресурса «ссылка», создаете и в поле «ссылка» указываете ссылку с якорем, куда нужно перебросить. Потом обычный вызов pdoMenu, документы сортируете и группируете как вам нужно.

            
                    
            
                Я сделал. В tplInner оставил только {$wrapper}, а в tpl
                    <ul class="mobile-nav__secondary">
        {foreach $sections as $idx => $section}
        {var $alias = $section.title | strip | lowercase | replace : " " : "-"}
        <li>
            <a href="{$id | url : ['scheme' => 'full'] : ['goto' => $alias]}">{$section.title}</a>
        </li>
        {/foreach}
        {$wrapper}
    </ul>            
                Я предложил правку, а там посмотрим
https://github.com/bezumkin/pdoTools/pull/306
Кому интересно, но лень разбираться в гитхабе
то вот изменения
                    https://github.com/bezumkin/pdoTools/pull/306
Кому интересно, но лень разбираться в гитхабе
то вот изменения
                Столкнулся с подобным глюком — в tplInner на феном не выводит id. Странно прошло почти 5 лет а вопрос до сих пор не решен. Ссылки от последнего коммента уже битые            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.