&tpl_N не работает в pdoMenu?
Попробовал использовать &tpl_N из общих параметров pdoTools, где N = порядковый номер ресурса. Но ничего не выходит!
Неужели в pdoMenu этот параметр не работает?
Мой вызов:
Или я что-то неправильно делаю?
Неужели в 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-му пункту. Или я что-то неправильно делаю?
Поблагодарить автора
Отправить деньги
Комментарии: 17
Неужели в pdoMenu этот параметр не работает?Естественно.
Не представляю, как оно может работать, если оформляется дерево, а не список. Из-за дерева там куча своих собственных параметров для определения чанков, на любой вкус и цвет.
Если этого мало — есть еще Fenom и любые условия с его помощью внутри чанка.
Ок, спасибо, теперь понятно. Значит буду с помощью условий от id вычислять нужный мне пункт и модифицировать его в том же шаблоне…
А не проще ли указывать в чанке
<li id="row-[[+id]]">...</li>
И прописывать CSS стили для #row-15, например?
Да, это бы решило проблему со стилизацией, но мне нужно только в одном пункте (Мои заявки) указать в скобках количество заявок через отдельный сниппет. А это уже пахнет отдельным шаблоном или условием, чтобы не выводилось на других пунктах.
Да, пожалуй. Тогда советую через Fenom:
{if $id == 15}
{$_modx->runSnippet('mySnippet', ['resource' => $id])}
{/if}
О! Спасибо!!!
Я с Fenom ещё на «Вы», хотя и понимаю что там всё очень просто.
Похоже пора брать себя в руки и перескочить на него… ))
Я с Fenom ещё на «Вы», хотя и понимаю что там всё очень просто.
Похоже пора брать себя в руки и перескочить на него… ))
Как вывести плейсхолдер, который был установлен сниппетом в другом месте страницы?
Например: до вызова меню другой сниппет устанавливает плейсхолдер [[+my.articles]] и позволяет его вызвать в любом месте страницы.
Как вызвать его через Fenom и в INLINE-чанке pdoMenu?
У меня не работают следующие варианты:
И дело совсем не в точке между my и articles (my.articles). Я пробовал разные плейсхолдеры, например: my_articles, my-articles, myarticles — всё равно не выводится.
Например: до вызова меню другой сниппет устанавливает плейсхолдер [[+my.articles]] и позволяет его вызвать в любом месте страницы.
Как вызвать его через Fenom и в INLINE-чанке pdoMenu?
У меня не работают следующие варианты:
{$_pls['my.articles']}
{$my.articles}
в то время как обычные плейсхолдеры чанка выводятся:{$id}
{$pagetitle}
И дело совсем не в точке между my и articles (my.articles). Я пробовал разные плейсхолдеры, например: my_articles, my-articles, myarticles — всё равно не выводится.
а сниппет вызывается тоже через fenom?
Нет, обычный сниппет, типа:
[[!snippet? &par1=`par1` &par2=`par2`]] // его цель выставить плейсхолдер.
1) сниппет вызываем так:
{$_modx->runSnippet('!snippet', [
'par1' => 'par1',
'par2' => 'par2'
])}
2) выводим так:{$_modx->getPlaceholder('par1')}
Выставленные плейсхолдеры нужно получить:
{var $placeholders = $_modx->getPlaceholders()}
{$placeholders['my.articles']}
Нет, не срабатывает…
Выбивает следующую ошибку, если вставить строки выше в @INLINE для pdoMenu:
Выбивает следующую ошибку, если вставить строки выше в @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…
Да, я ошибся, всё немного проще:
{var $articles = $_modx->getPlaceholder('my.articles')}
Значение: {$articles}
Спасибо, это работает!
Только у меня сейчас не получается сделать проверку этой переменной. Мне нужен аналог:
Только у меня сейчас не получается сделать проверку этой переменной. Мне нужен аналог:
[[+articles:notempty=`([[+articles]])`]]
[[+articles:is=`0`:then=``:else=`([[+articles]])`]]
Такой вариант не срабатывает:{$articles == '0' ? '' : '({$articles})'}
Я так понимаю, ты вообще не планируешь читать документацию по Fenom?
Мне некогда всё объяснять, извини.
Мне некогда всё объяснять, извини.
Ладно, буду пробовать дальше — в любом случае тебе спасибо большое за помощь!
P.S. Прости за мои нубские вопросы, всё оказывается очень просто, я тут офф. документацию не с того места читать начал. Думал только по ссылке что в docs.modx.com даётся, а оказывается там намного больше!
Проблема решена обычными операторами как в php! =)
А если определяю в переменную (1-ю строку) до вызова pdoMenu, а вторую строку указываю в &tpl, то ничего не выводит, а 1-я строка просто печатается на экран прямо в таком виде:
{var $placeholders = $_modx->getPlaceholders()}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.