&tpl_N не работает в pdoMenu?

Попробовал использовать &tpl_N из общих параметров pdoTools, где N = порядковый номер ресурса. Но ничего не выходит!
Неужели в pdoMenu этот параметр не работает?

Мой вызов:
[[!pdoMenu? 
    &parents=`118835` 
    &displayStart=`1`  [[-не влияет, проверял]]
    &showHidden=`1` 
    &tplOuter=`@INLINE <ul[[+classes]]>[[+wrapper]]</ul>` 
    &tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a></li>` 
    &tpl_2=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a><span>(2)</span></li>` [[-этот не подставляется]]
    &tplStart=`@INLINE <li><div class="uk-panel-title">[[+menutitle]]</div></li>[[+wrapper]]`
    &outerClass=`uk-list pull-left`
]]
То есть у меня не подставляется шаблон с спаном ко 2-му пункту.

Или я что-то неправильно делаю?
Василий Столейков
21 сентября 2015, 03:59
modx.pro
1
1 959
0
Поблагодарить автора Отправить деньги

Комментарии: 17

Василий Наумкин
21 сентября 2015, 09:35
0
Неужели в pdoMenu этот параметр не работает?
Естественно.

Не представляю, как оно может работать, если оформляется дерево, а не список. Из-за дерева там куча своих собственных параметров для определения чанков, на любой вкус и цвет.

Если этого мало — есть еще Fenom и любые условия с его помощью внутри чанка.
    Василий Столейков
    21 сентября 2015, 09:38
    0
    Ок, спасибо, теперь понятно. Значит буду с помощью условий от id вычислять нужный мне пункт и модифицировать его в том же шаблоне…
      Василий Наумкин
      21 сентября 2015, 09:48
      +1
      А не проще ли указывать в чанке
      <li id="row-[[+id]]">...</li>
      И прописывать CSS стили для #row-15, например?
        Василий Столейков
        21 сентября 2015, 11:34
        0
        Да, это бы решило проблему со стилизацией, но мне нужно только в одном пункте (Мои заявки) указать в скобках количество заявок через отдельный сниппет. А это уже пахнет отдельным шаблоном или условием, чтобы не выводилось на других пунктах.
          Василий Наумкин
          21 сентября 2015, 11:47
          +1
          Да, пожалуй. Тогда советую через Fenom:
          {if $id == 15}
          	{$_modx->runSnippet('mySnippet', ['resource' => $id])}
          {/if}
            Василий Столейков
            21 сентября 2015, 11:49
            0
            О! Спасибо!!!
            Я с Fenom ещё на «Вы», хотя и понимаю что там всё очень просто.
            Похоже пора брать себя в руки и перескочить на него… ))
              Василий Столейков
              29 сентября 2015, 19:12
              0
              Как вывести плейсхолдер, который был установлен сниппетом в другом месте страницы?
              Например: до вызова меню другой сниппет устанавливает плейсхолдер [[+my.articles]] и позволяет его вызвать в любом месте страницы.

              Как вызвать его через Fenom и в INLINE-чанке pdoMenu?

              У меня не работают следующие варианты:
              {$_pls['my.articles']}
              {$my.articles}
              в то время как обычные плейсхолдеры чанка выводятся:
              {$id}
              {$pagetitle}

              И дело совсем не в точке между my и articles (my.articles). Я пробовал разные плейсхолдеры, например: my_articles, my-articles, myarticles — всё равно не выводится.
                Руслан Кундиус
                29 сентября 2015, 19:23
                0
                а сниппет вызывается тоже через fenom?
                  Василий Столейков
                  29 сентября 2015, 21:01
                  0
                  Нет, обычный сниппет, типа:
                  [[!snippet? &par1=`par1` &par2=`par2`]] // его цель выставить плейсхолдер.
                    Руслан Кундиус
                    29 сентября 2015, 22:39
                    0
                    1) сниппет вызываем так:
                    {$_modx->runSnippet('!snippet', [
                    	'par1' => 'par1',
                    	'par2' => 'par2'
                    ])}
                    2) выводим так:
                    {$_modx->getPlaceholder('par1')}
                  Василий Наумкин
                  29 сентября 2015, 20:08
                  1
                  0
                  Выставленные плейсхолдеры нужно получить:
                  {var $placeholders = $_modx->getPlaceholders()}
                  {$placeholders['my.articles']}
                    Василий Столейков
                    29 сентября 2015, 21:05
                    0
                    Нет, не срабатывает…
                    Выбивает следующую ошибку, если вставить строки выше в @INLINE для pdoMenu:
                    [[+menutitle]] 
                    Fatal error: Call to undefined method microMODX::getPlaceholders() in /home/s****/www/core/components/pdotools/model/fenom/Fenom/Template.php(462) : eval()'d code on line 13
                    И вроде включил и разрешил в настройках везде и всё что касается Fenom…
                      Василий Наумкин
                      30 сентября 2015, 03:19
                      0
                      Да, я ошибся, всё немного проще:
                      {var $articles = $_modx->getPlaceholder('my.articles')}
                      Значение: {$articles}
                        Василий Столейков
                        30 сентября 2015, 12:57
                        0
                        Спасибо, это работает!
                        Только у меня сейчас не получается сделать проверку этой переменной. Мне нужен аналог:
                        [[+articles:notempty=`([[+articles]])`]]
                        [[+articles:is=`0`:then=``:else=`([[+articles]])`]]
                        Такой вариант не срабатывает:
                        {$articles == '0' ? '' : '({$articles})'}
                          Василий Наумкин
                          30 сентября 2015, 12:58
                          0
                          Я так понимаю, ты вообще не планируешь читать документацию по Fenom?

                          Мне некогда всё объяснять, извини.
                          Василий Столейков
                          30 сентября 2015, 13:10
                          +1
                          Извини что отвлекаю, я не требую ответа, просто прочитав документацию на docs.modx.proи официальную не нашел ответа.
                          Ладно, буду пробовать дальше — в любом случае тебе спасибо большое за помощь!


                          P.S. Прости за мои нубские вопросы, всё оказывается очень просто, я тут офф. документацию не с того места читать начал. Думал только по ссылке что в docs.modx.com даётся, а оказывается там намного больше!
                          Проблема решена обычными операторами как в php! =)
                    Василий Столейков
                    29 сентября 2015, 21:07
                    0
                    А если определяю в переменную (1-ю строку) до вызова pdoMenu, а вторую строку указываю в &tpl, то ничего не выводит, а 1-я строка просто печатается на экран прямо в таком виде:
                    {var $placeholders = $_modx->getPlaceholders()}
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        17