Использование тегов MODX внутри @INLINE-чанков pdoTools
Многие знают, что в pdoTools в качестве шаблона вывода можно указывать @INLINE-код, чтобы не создавать лишних сущностей.
Некоторые знают, что в таких конструкциях нельзя вызывать сниппеты, не работают фильтры ввода-вывода. А в документации про это даже картинка саркастическая есть.
Хочу раскрыть небольшую тайну, как можно это ограничение иногда обойти… Подробности под катом :-Р
Итак, секрет: pdoTools конвертирует двойные фигурные скобки в квадратные. А значит, такой код будет работать как миленький:
Единственное — вложенные обратные кавычки все портят, поэтому фильтры вывода и сниппеты могут вызываться только без параметров.
[[!pdoResources?
&tpl=`@INLINE <li>[[+pagetitle]]</li>`
]]
Некоторые знают, что в таких конструкциях нельзя вызывать сниппеты, не работают фильтры ввода-вывода. А в документации про это даже картинка саркастическая есть.
Хочу раскрыть небольшую тайну, как можно это ограничение иногда обойти… Подробности под катом :-Р
Итак, секрет: pdoTools конвертирует двойные фигурные скобки в квадратные. А значит, такой код будет работать как миленький:
[[pdoResources?
&tpl=`@INLINE <h3><a href="[[+uri]]">[[+pagetitle]]</a> - {{!year}}</h3>
<p>{{+content:striptags:ellipsis}}</p>`
&includeContent=`1`
]]
Единственное — вложенные обратные кавычки все портят, поэтому фильтры вывода и сниппеты могут вызываться только без параметров.
Комментарии: 12
This is magic! >:D
В принципе, если все параметры вложенных сниппетов запихать в набор параметров и вызывать с ним, получится добавить все, что угодно?
Только блог для тикета по идее должен быть «Готовые решения».
Только блог для тикета по идее должен быть «Готовые решения».
Да, наборы параметров, думаю, — это выход.
Единственное — вложенные обратные кавычки все портят, поэтому фильтры вывода и сниппеты могут вызываться только без параметров.Вообще-то нет.
У меня всё работает и со вложенными ковычками, только что проверил на последних версиях MODX и pdoTools.
То есть, вот так все нормально выводит?
[[pdoResources?
&tpl=`@INLINE <h3><a href="[[+uri]]">{{+pagetitle:ellipsis=`50`}}</a></h3>
]]
UPD. Даже подсветка синтаксиса споткнулась))
Потому что у тебя там ковычки в конце не хватает. А так да, всё работает:
[[!pdoResources?
&parents=`0`
&tpl=`@INLINE <p><a href="{{+uri}}">{{+pagetitle:ellipsis=`5`}}</p>`
]]
Здорово! Теперь лишних чанков хоть можно не плодить из-за одного модификатора MODX.
при таком вызове скорее всего нужно забыть про fastMode?
Если ты используешь сложные теги с модификаторами — конечно. Если же нет, то fastMode будет работать как обычно, независимо от типа чанка.
А вот такое уже выводить не хочет. Есть варианты обойти?
{{+tv.image:phpthumbon=`w=75`}}
{$_pls['tv.image'] | phpthumbon : "w=75"}
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.